[FUG-BR] PF com RDR na externa mas para acesso pela rede interna
Félix
fprasera em gmail.com
Quinta Setembro 24 17:24:52 BRT 2015
Boa tarde.
Provavelmente está acontecendo o seguinte problema neste acesso:
A estação 192.x.x.96 manda um pacote para 201.x.x.131.
O FreeBSD então direciona o pacote de 192.x.x.96 para 192.x.x.60
O servidor 192.x.x.60 recebe o pacote e tenta responder para 192.x.x.96.
Mas a estação 192.x.x.96 está esperando a resposta de 201.x.x.131 que
foi onde ela tentou conectar e não de 192.x.x.60, por isso ela descarta o
pacote.
Se for este o caso tem duas formas de resolver este problema.
A primeira é utilizar um dns interno diferente do externo de forma que o
dns interno responda por um nome como servico.minhaempresa.com.br e aponte
para 192.x.x.60 e o dns externo aponte este mesmo dns para 200.x.x.131, e ao
invés de conectar pelo ip conectar pelo endereço DNS.
A segunda alternativa é o FreeBSD quando direcionar o pacote da rede
interna para o servidor na porta 7070 tambem fazer nat, desta forma o
retorno da estação será para o FreeBSD que deverá traduzir os endereços
corretamente.
Félix
-----Mensagem Original-----
From: Rafael Chagas Pelegrineli
Sent: Thursday, September 24, 2015 4:27 PM
To: freebsd em fug.com.br
Subject: [FUG-BR] PF com RDR na externa mas para acesso pela rede interna
Boa tarde. Tenho um FreeBSD 8.4 com PF e o utilizo como gateway na
empresa, então o forward está habilitado e o firewall rodando com NAT da
rede interna para externa traduzindo para o endereço externo do servidor, e
RDR de portas específicas no endereço externo para endereços internos na
rede. O problema é uma máquina interna acessar uma porta específica
utilizando o IP externo como destino, mas que tem um RDR para outra máquina
na rede interna.
Ex: Tenho um servidor com endereço 192.x.x.60 com um serviço rodando na
porta 7070. No gateway tenho uma regra que redireciona os acessos ao
endereço externo 200.x.x.131 na porta 7070 para o servidor interno
192.x.x.60 na porta 7070. Mas se uma máquina na rede interna com endereço
192.x.x.96 precisar acessar o serviço utilizando o IP externo 201.x.x.131 na
porta 7070, o RDR não funciona.
Regras do firewall com relação a esse
problema:================================================ext_if0="re2"ext_addr0="200.x.x.131"ext_net="{
200.x.x.128/26}"
int_if0="re0"int_addr0="192.x.x.1"int_net="{ 192.x.x.0/16 }"
set fingerprints "/etc/pf.os"set block-policy returnscrub in allset skip on
lo0
nat pass on $ext_if0 from any to any -> $ext_addr0
rdr pass on $ext_if0 proto tcp from any to $ext_addr0 port 7070 ->
192.x.x.60
pass out allblock in on $ext_if0 all
=================================================
Se estou em um computador fora da rede, um telnet para 200.x.x.131 7070
funciona, mas dentro da rede não.Alguma dica?
Rafael Chagas Pelegrineli
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
Mais detalhes sobre a lista de discussão freebsd