Eu comecei recentemente a usar este ótimo sistema operacional e apesar de ter experiência em redes Windows, sou muito novo em como conseguir certas tarefas no FreeNAS 9.3 (FreeBSD), especialmente com cadeias.
Basicamente eu estou tentando descobrir como rotear o tráfego de uma cadeia para outra, tudo gerenciado e configurado a partir do sistema host em si (de preferência um conjunto de regras, então eu só tenho que conectar ao host e configurar tudo lá se houver alterações vem junto).Então aqui está meu layout (o gateway padrão é meu roteador em 0,1):
ip do FreeBSD = .50 igb0 ipfw0 bridge0 epair0a epair1a default-gw = .1 - > openvpn-client-jail ip = .201 epair0b default-gw = .1 - > outro jail ip = .200 epair1b default-gw = .1
Então o que eu quero alcançar é que o 'outro-jail' em .200 não se comunica através do meu roteador, mas envia todo o tráfego para o 'openvpn-jail' em .201
Atualmente, ativei pf no meu host (.50), mas ainda não criei nenhuma regra. Esta é a parte em que eu ficaria feliz se alguém pudesse dar as mãos e me explicar isso com exemplos.
Eu suponho que terei que alterar o gateway padrão do 'outro-jail' para o .201, ou ele precisaria ser o host em .50, que é no final onde eu configuraria o host? regras, correto?
Eu apenas ative o gateway ipv4 (no host ou na cadeia de proxy?) e crie uma regra "rdr" nessa máquina? Algo como:
rdr em epair1a inet proto tcp para portar {porta de aplicativo customizada} - > epair0a
Então eu tentei fazer isso e editei meu rc.conf no meu host da seguinte forma:
pf_enable="YES"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
gateway_enable="YES"
#alias
ifconfig_igb0_alias0="inet 192.168.1.201 netmask 255.255.255.0"
ifconfig_igb0_alias1="inet 192.168.1.200 netmask 255.255.255.0"
Eu então adicionei .201 (openvpn jail) como o gateway padrão para .200 (outra cadeia), mas eu tive problemas com conectividade, então eu fui para a cadeia openvpn e adicionei isso ao rc.conf e reiniciei a cadeia :
gateway_enable="YES"
As cadeias podem pingar umas às outras com sucesso agora, e o host também pode pingar cada uma delas. Outra máquina dentro dessa rede também pode ver as cadeias como esta. Executar um traceroute na outra cadeia mostra que ele está passando pela cadeia aberta .201 openvpn. No entanto, ele não pode se comunicar com o mundo externo, então pingar o google ou o yahoo não vai a lugar nenhum.
Mas ... acontece que, se eu parar o serviço openvpn, minha outra cadeia pode alcançar o mundo externo e traceroute mostra que leva o .201 - > .1 rota, que está correta e funciona. Mas uma vez que eu inicio o serviço openvpn, o outro-jail não consegue se comunicar com nada do lado de fora, apenas com dispositivos na minha LAN. Neste caso, traceroute mostra .201 como o primeiro salto, mas depois disso é só * * *, * * * ...
Preciso configurar uma regra pf? Mas ele já funciona sem um se o daemon openvpn estiver parado, poderia ter algo a ver com o openvpn não permitindo que outra máquina enviasse seu tráfego através de um cliente como esse?
Tags networking routing freebsd freenas