Dúvida teórica a respeito do iptables.

1. Dúvida teórica a respeito do iptables.

Willian
Atento

(usa Debian)

Enviado em 28/02/2012 - 16:00h

Bom tarde pessoal,
estive lendo um artigo a respeito do iptables, mais especificamente sobre as tabelas filter e nat. O artigo era focado mais na questão teórica de como a "coisa" funciona do que na demonstração de regras explicitamente.

Então num certo ponto do artigo, o autor exemplifica uma situação usando a tabela nat para fazer o seguinte:
Imagine que ele queira se conectar em um servidor onde a porta para o SSH tenha sido trocada para a 12345 em vez da 22. Então, como ele não quer ficar lembrando em qual porta o SSH está "escutando" ele criou a seguinte regra:

iptables -t nat -A OUTPUT -p tcp -d IPDOMEUSERVIDOR --dport 22 -j DNAT --to :12345

Até aqui tudo bem. O que eu não entendo é porque a regra não poderia usar a chain POSTROUTING? Por exemplo, usar a regra:

iptables -t nat POSTROUTING -p tcp -d IPDOMEUSERVIDOR --dport -j DNAT -to:12345

O que eu quero entender é porque não faz sentido alterar a porta destino na chain POSTROUTING?

Desde já agradeço...



  


2. Re: Dúvida teórica a respeito do iptables.

leonardo Souza
lejoso

(usa Debian)

Enviado em 28/02/2012 - 16:28h

Boa Tarde,

Na Chain POSTROUTING só é possível usar o alvo SNAT. O DNAT é apenas utilizado nas Chains OUTPUT E PREROUTING.
O que essa regra que ele criou diz: Que quando uma conexão com destino a ao ip "IPDOMEUSERVIDOR" e porta de destino 22, ele apenas vai alterar a porta de destino para a porta especificada. Essa regra só valerá para requisições que saem do proprio firewall. Se ele quiser fazer isso com requisições que vem de fora da rede, ai deve utilizar a chain PREROUTING.

Att,

Leonardo


3. Re: Dúvida teórica a respeito do iptables.

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 28/02/2012 - 17:30h

Good.



4. Re: Dúvida teórica a respeito do iptables.

Willian
Atento

(usa Debian)

Enviado em 28/02/2012 - 20:24h

lejoso escreveu:

Boa Tarde,

Na Chain POSTROUTING só é possível usar o alvo SNAT. O DNAT é apenas utilizado nas Chains OUTPUT E PREROUTING.
O que essa regra que ele criou diz: Que quando uma conexão com destino a ao ip "IPDOMEUSERVIDOR" e porta de destino 22, ele apenas vai alterar a porta de destino para a porta especificada. Essa regra só valerá para requisições que saem do proprio firewall. Se ele quiser fazer isso com requisições que vem de fora da rede, ai deve utilizar a chain PREROUTING.

Att,

Leonardo

Boa noite,
primeiramente obrigado pela atenção.

Na verdade, eu entendi o que a regra que ele criou fez. Também sei que o SNAT é usado na cadeia POSTROUTING e o DNAT na PREROUTING. E também que a cadeia OUTPUT é somente para pacotes que saem da própria máquina em que o firewall está "rodando". Estas coisas estão muito claras pra mim.

O que eu não entendo é por que devemos, apenas, usar o SNAT no POSTROUTING? Por que motivo eu não posso usar DNAT nessa cadeia? Por que a regra:

iptables -t nat POSTROUTING -p tcp -d IPDOMEUSERVIDOR --dport -j DNAT -to:12345

Não funcionaria? Tudo bem, você pode me dizer porque simplesmente a cadeia POSTROUTING não aceita DNAT, mas eu quero saber o porque ela não aceita. Essa é a questão.

Desde já agradeço.


5. Re: Dúvida teórica a respeito do iptables.

leonardo Souza
lejoso

(usa Debian)

Enviado em 29/02/2012 - 21:54h

Não funciona o DNAT na chain POSTROUTING por que o iptables foi desenvolvido dessa maneira. Se você não concorda com isso ou tem alguma dúvida ou sugestão, mande um e-mail para o coreteam da netfilter.org.

coreteam@netfilter.org

Eles são os responsáveis pelo desenvolvimento da ferramenta e poderão responder as suas dúvidas.

Att,

Lejoso


6. Re: Dúvida teórica a respeito do iptables.





Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts