Direcionamento de Porta [RESOLVIDO]

1. Direcionamento de Porta [RESOLVIDO]

Ricardo Franzen
rfranzen

(usa Ubuntu)

Enviado em 16/03/2009 - 12:18h

Pessoal estou precisando de uma ajudinha num problema que encontrei aqui.

Seguinte, tenho uma ADSL normal (com IP publico) que vai direto para um servidor onde tenho o firewall. Este firewall faz o "meio campo" entre as estações da rede e a internet.

Gostaria de direcionar o tráfego que chegar da internet na porta 3389 para uma estação dentro da rede.

Configurei no modem nas opções de Virtual Server para direcionar o conteúdo da porta 3389 para o Firewall e neste tentei configurar um redirecionamento normal para a estação, porém sem sucesso.

Seguem as regras que pus no Firewall:
iptables -A FORWARD -p tcp -d $IP-ADSL --dport 3389 -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp -d $ESTACAO_INTERNA --dport 3389 -j MASQUERADE

Agradeço qualquer ajuda. Abraços.



  


2. Re: Direcionamento de Porta [RESOLVIDO]

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 16/03/2009 - 14:05h

iptables -A FORWARD -p tcp -d $IP-ADSL --dport 3389 -j ACCEPT
OK. Regra acima QUASE completa. O retorno também deve ser tratado.
iptables -A FORWARD -p tcp -s $IP-ADSL --sport 3389 -j ACCEPT


iptables -t nat -A POSTROUTING -p tcp -d $ESTACAO_INTERNA --dport 3389 -j MASQUERADE

NÃO!
A regra acima está ERRADA, podes remover.
No caso não queres fazer mascaramento da porta mas sim nat estático de pacotes que ENTRAM no firewall. Pacotes que entram são pegos em PREROUTING. A regra para fazer o redirecionamento é esta:

iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to $ESTACAO_INTERNA:3389

Tem um artigo meu que explica as relações das tablelas do iptables:
http://www.vivaolinux.com.br/artigo/Estrutura-do-Iptables/
http://www.vivaolinux.com.br/artigo/Estrutura-do-IPTables-2-a-tabela-nat/



3. Re: Direcionamento de Porta [RESOLVIDO]

Ricardo Franzen
rfranzen

(usa Ubuntu)

Enviado em 16/03/2009 - 14:27h

Elgio, obrigado pela resposta.

Desativei todas regras e mesmo assim não funcionou. O tcpdump me traz as seguintes informações:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:25:09.203684 IP 201.34.127.2.54013 > 10.0.0.15.3389: S 857399868:857399868(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>
14:25:09.203818 IP 10.0.0.15.3389 > 201.34.127.2.54013: R 0:0(0) ack 857399869 win 0
14:25:09.755653 IP 201.34.127.2.54013 > 10.0.0.15.3389: S 857399868:857399868(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>
14:25:09.755780 IP 10.0.0.15.3389 > 201.34.127.2.54013: R 0:0(0) ack 1 win 0
14:25:10.305830 IP 201.34.127.2.54013 > 10.0.0.15.3389: S 857399868:857399868(0) win 8192 <mss 1460,nop,nop,sackOK>
14:25:10.305956 IP 10.0.0.15.3389 > 201.34.127.2.54013: R 0:0(0) ack 1 win 0


Onde:
10.0.0.15 eh a maquina firewall

Não existe nenhum problema em se fazer dois roteamentos NAT? o do modem ADSL e o do iptables?

Mais uma vez obrigado.


4. Re: Direcionamento de Porta [RESOLVIDO]

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 16/03/2009 - 15:04h

14:25:09.203684 IP 201.34.127.2.54013 > 10.0.0.15.3389: S 857399868:857399868(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>
14:25:09.203818 IP 10.0.0.15.3389 > 201.34.127.2.54013: R 0:0(0) ack 857399869 win 0

Por estas duas linhas do tcpdump (pegas no firewall, certo?) pode-se ver que o 10.0.0.15 está recebendo SIM o pacote e está respondendo com reset. Logo, o NAT está ocorrendo mas o 10.0.0.15 está RESETANDO a configuração.

A porta 3389 está mesmo aberta em 10.0.0.15?
O serviço não está configurado para recusar conexões estranhas? 10.0.0.15 não tem seu próprio firewall?

Se por acaso queres que as conexões vindas da Internet para a 10.0.0.15 PAREÇAM estar vindo do firewall, ai tens o que se chama de duplo nat. Te digo como funciona, mas antes veja estas questões que levante, principalmente se consegues acessar a porta 3389 de dentro da rede


5. Re: Direcionamento de Porta [RESOLVIDO]

Ricardo Franzen
rfranzen

(usa Ubuntu)

Enviado em 16/03/2009 - 15:24h

Então Elgio,
10.0.0.1 é o Modem ADSL
10.0.0.15 é o Firewall
172.16.8.6 é o Computador que deve receber o tráfego da porta 3389

O Firewall está apenas fazendo redirecionamento do squid e este. Não está fechando nenhuma porta. Todas políticas (INPUT, OUTPUT e FORWARD) estão definidas como ACCEPT.

Fica assim:
internet <-> modem ADSL <-> Firewall <-> Computador ouvindo na 3389

Os pacotes que chegam da internet no modem com destino a porta 3389 são encaminhados para o firewall 10.0.0.15:3389 (até aqui vimos que está funcionando);

O firewall deveria encaminhar estes pacotes para o computador, porém, como você disse, ele está resetando a configuração.

Esta última parte eu realmente não tenho a menor idéia do porque está acontecendo.

Alguma idéia?


6. Como diria Jack...

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 16/03/2009 - 15:43h

... vamos por partes.

Ao responder o teu tópico eu pressupus uma firewall já roteando corretamente. Ou seja, teus clientes já navegando na Internet através do firewall. Agora, como tu falou que teus clientes usam squid redirecionado, passei a imaginar que faltam configurações de roteamento no teu firewall.

Então, segue um conjunto de todas as regras que deveria ter, sendo que segue a SEGUINTE convenção (que deve corrigir se não for isto):

172.16.8.6: MAQUINA ALVO DA PORTA 3389

eth0: NO FIREWALL, placa ligada ao modem

eth1: NO FIREWALL, placa ligada a 172.16.8.6 (não me diz que são a mesma placa, porque dai VAI DAR PROBLEMA CERTO)

172.16.8.1: Ip do firewall na placa eth1

10.1.0.1: Ip do firewall na placa eth0

# ligando roteamento
echo "1" > /proc/sys/net/ipv4/ip_forward

# permitindo roteamento de e para 172.16.8.6
iptables -I FORWARD -i eth1 -s 172.16.8.6 -j ACCEPT
iptables -I FORWARD -o eth1 -d 172.16.8.6 -j ACCEPT

# Capturando porta 3389 da internet
iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 172.16.8.6:3389

NOTA!! 172.16.8.6 DEVE TER COMO GATEWAY padrão o 172.16.8.6. NÃO DEVE ESTAR NA MESMA REDE DO MODEM.

Isto TEM QUE FUNCIONAR SIM!

PS: a 10.0.0.15 responder com RESET não quer dizer que o redir NÃO ESTEJA FUNCIONANDO. Dependendo de onde executou o tcpdump, pode ser que o pacote chegou sim na 172.16.8.6, esta DEU UM RESET, e o firewall desfez o nat, parecendo que quem deu o reset foi 10.0.0.15.



7. Re: Direcionamento de Porta [RESOLVIDO]

Ricardo Franzen
rfranzen

(usa Ubuntu)

Enviado em 16/03/2009 - 16:06h

Elgio, lamento informar, mas não funcionou.

Sobre o roteamento, o firewall já esta configurado para realizar o forward. O redirecionamento do squid que eu mencionei era para configuração de proxy transparente.

Agora sobre o direcionamento da porta...

Tenho esta mesma configuração em outra filial, porém lá temos uma adsl empresarial onde o modem não é um destes normais. Lá o Firewall é quem fica com a cara na internet. O modem é transparente. Naquele caso, estas regras que você passou funcionam perfeitamente, inclusive eu já havia configurado a mais tempo.
Agora, tenho certa desconfiança que seja algo com este NAT que ocorre duas vezes.

De qualquer forma, obrigado pela ajuda. Vou pensar em outra alternativa.


8. MATEI A CHARADA

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 16/03/2009 - 16:18h

O que está acontecendo é que teu modem está recebendo as respostas de 172.16.8.6 e não considera isto como de sua rede (se bem que isto não explica os pacotes de RST. Mas entendo que naquele momento tinhas outro problema).

O duplo nat que se referes não afeta em nada, mas o modem precisa receber os pacotes como sendo do firewall. Tenta isto (com as mesmas convenções de antes):
# ligando roteamento

echo "1" > /proc/sys/net/ipv4/ip_forward

# permitindo roteamento de e para 172.16.8.6
iptables -I FORWARD -i eth1 -s 172.16.8.6 -j ACCEPT
iptables -I FORWARD -o eth1 -d 172.16.8.6 -j ACCEPT

# Capturando porta 3389 da internet
iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 172.16.8.6:3389

# NOVA REGRA ALEM DAS ANTERIORES: mascarando saida do firewall
iptables -t nat -I POSTROUTING -o eth0 -s 172.16.8.6 -j MASQUERADE

Isto faz com que o teu firewall Linux troque o IP 172.16.8.6 para o seu antes de repassar ao modem. Agora terás um TRIPLO NAT. Mas é a vida:

Internet -> Modem: Modem redireciona para 10.0.0.15. Troca ip de destino portanto

Modem -> 10.0.0.15: firewall troca para 172.16.8.6

172.16.8.6: responde direto para IP público, com seu IP de origem

10.0.0.15 -> Modem: remove origem 172.16.8.6 e coloca o seu, 10.0.0.15

Modem identifica esta resposta como a esperada ao pacote original e desfaz o nat.

Outra solução mais interessante seria:
a) no modem, colocar o IP 172.16.8.6 como destino e não o 10.0.0.15

b) ensinar o modem que para chegar em 172.16.8.6 precisa rotear para 10.0.0.15

c) configurar o modem para que faça nat também de 172.16.8.6

:-o






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts