NAT com firewall - simples, rápido e funcional

Para todos aqueles que não tem profundas experiências com o Linux, mas querem compartilhar sua conexão e ao mesmo tempo manter sua rede segura contra ataques externos.

[ Hits: 199.050 ]

Por: Lacier Dias em 26/11/2003 | Blog: http://br.linkedin.com/in/lacierdias/


Redirecionamento de portas



Vamos agora a um último passo que é fowardar certas portas para os hosts da rede interna. Isso permite que você rode um servidor de FTP ou crie um servidor de Counter Strike, por exemplo, em qualquer um dos micros da rede e não apenas no servidor que está diretamente conectado à internet. O servidor simplesmente direciona todas as requisições recebidas na porta para o micro especificado, de forma transparente.

O forward de portas também usa o Nat, por isso você também deve carregar o módulo caso não tenha feito anteriormente:

# modprobe iptable_nat

Em seguida vem as regras para fazer o forward da porta. Neste caso estou direcionando a porta 22 (do SSH) na conexão com a internet (eth0) para o micro 192.168.0.2 da rede local:

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 192.168.0.2
# iptables -A FORWARD -p tcp -i eth0 --dport 22 -d 192.168.0.2 -j ACCEPT


Basta alterar a regra, adicionando a porta e a máquina da rede interna para onde ele deve ser redirecionada. Se você acessa via modem, basta substituir o "eth0" em ambas as linhas por "ppp0". Esta regra pode ser usada em conjunto com as anteriores, mas deve ir sempre logo no início do arquivo, antes das regras para compartilhar a conexão e, claro, antes das regras para fechar tudo :-)

Você pode repetir o comando várias vezes para direcionar varias portas diferentes para várias máquinas. Naturalmente uma mesma porta não pode ser fowardada duas vezes.

Também é possível forwardar ranges de portas. No Unreal Tournament por exemplo, você precisa abrir as portas UDP 7777, 7778 e 7779. Neste caso as regras seriam:

# iptables -t nat -A PREROUTING -i eth0 -p udp --dport 7777:7779 -j DNAT --to-dest 192.168.0.2
# iptables -A FORWARD -p udp -i eth0 --dport 7777:7779 -d 192.168.0.2 -j ACCEPT


Por Lacier Dias
20/11/2003

Página anterior    

Páginas do artigo
   1. Introdução
   2. Instalando o iptables
   3. Bloqueando acesso externo
   4. Liberando acesso a partir de determinadas portas
   5. Compartilhando a conexão com a internet
   6. Automatizando a definição de regras
   7. Redirecionamento de portas
Outros artigos deste autor

Configurando o Samba de maneira simples e funcional

Gateway com autenticação pelo Samba

Controle sua banda de maneira simples e inteligente com CBQ

Leitura recomendada

Configurando firewall básico para compartilhar internet

Firewall rápido e seguro com iptables

Usando o PF - Packet Filter

GUI para Iptables via web, linha de comando e outros

Script de Firewall com redirecionamento de portas em Linux Debian

  
Comentários
[1] Comentário enviado por fabio em 26/11/2003 - 21:18h

Parabéns pelo artigo Laciel, realmente é simples, rápido e funcional! :)

[2] Comentário enviado por jeffestanislau em 27/11/2003 - 07:22h

Parabéns pelo artigo, ficou muito bom!!!

[3] Comentário enviado por ths em 27/11/2003 - 10:10h

Muito bom esse artigo, campeão. Por acaso é possivel implementar nele um antivirus, utilizando o viralator ou polyoma + antivirus? Qual dos 2 funfa melhor? Ainda não vi nada sobre proxy + antivirus no site.

Um abraço.

[4] Comentário enviado por _simmons_ em 27/11/2003 - 11:08h

Muito bom o artigo Lacier, você só esqueceu de mencionar que é do Carlos Morimoto. E que está no site http://www.guiadohardware.net/artigos/256/ ... =/ . Realmente o artigo é ótimo. []s

[5] Comentário enviado por thiagosc em 05/12/2003 - 14:41h

O artigo é muito bom mais o problema que ele é idêntico ao do link que o simmons disse, o artigo do Carlos Marimoto, mas infelizmente ele não foi mencionada como a fonte...

[6] Comentário enviado por Estival em 05/12/2003 - 16:49h

Acho que copia de artigos que já existem na internet seja até valido, mas é preciso mencionar a origem, cara voce não mudou nadinha.........copiou tudo !!!

[7] Comentário enviado por F4bR1C10 em 15/01/2004 - 12:33h

bom.. artigo..

[8] Comentário enviado por N_I_T_R_O em 22/01/2004 - 10:23h

Segui o roteiro e funcionou muito bem (so nao abri nenhuma porta de input)
so que estou com um problema agora, nao consigo conectar em nenhum servidor de ftp pela maquina onde esta o iptables.
Alguem poderia me dizer qual regra devo adicionar para isso? tentei algumas de output mas como nao entendo muito disso nao consegui.
obrigado

[9] Comentário enviado por spyhunt3r em 30/01/2004 - 16:26h

Otimo artigo... continue assim.. falo!

[10] Comentário enviado por stefano.bw em 26/03/2004 - 22:00h

Artigo legal! Sabia que já o tinha visto em algum lugar e o _simmons_ me lembrou disso... Mas, mesmo assim, prefiro nesse site... Tá mais organizado... Acho que você deveria pelo menos citar a fonte, que é o http://www.guiadohardware.net/ né?! Dou 5.0 nele... Menos 2 ptos por não ser totalmente o que eu esperava e menos 3 ptos por ter copiado sem citar a fonte.

[11] Comentário enviado por diablo em 20/09/2004 - 10:06h

Alguem saberia me informar uma regra de iptables para bloquear acesso da minha rede interna a todos os site que tenham a palavra "sex" no seu endereço?

[12] Comentário enviado por diablo em 20/09/2004 - 10:16h

<b> ALGUEM SABERIA ME INFORMAR UMA REGRA DE IPTABLES PARA BLOQUEAR ACESSO DA MINHA REDE INTERNA A TODOS OS SITE QUE TENHAM A PALAVRA "SEX" NO SEU ENDEREÇO?

[13] Comentário enviado por lacierdias em 20/09/2004 - 12:07h

isso é função do squid..rsrsr acha não????

[14] Comentário enviado por s.cabral em 18/11/2004 - 11:52h

Tenho duas redes A, B, sendo que A tem acesso à internet, e B tem acesso por que acessa os serviços da rede A. Entretanto quero que os usuários da rede A enxerguem a rede B, e o contrário não deve ser permitido.
Como configuro isto no Coyote Linux?
Silvio

[15] Comentário enviado por naoexistemais em 03/12/2004 - 03:42h

Esse artigo é nda mais que um réplica do artigo escrito por Morimoto...

falou,

[16] Comentário enviado por removido em 09/03/2005 - 07:30h

muito legal este artigo.. mas como somos iniciantes voce deveria colocar com que extenção devemos salvar o script

[17] Comentário enviado por lacierdias em 09/03/2005 - 07:39h

Amigo não precisa ter extenção alguma o arquivo oq ele tem q ter é permissão para ser executado chmod 700 [nome do arquivo] isso ja resolve

[18] Comentário enviado por removido em 02/04/2005 - 13:53h

Blz pessoal?? Estou começando agora a mexer no linux e peguei esse artigo que parece resolver o meu problema.. vou tentar usa-lo e depois eu do u a nota.. valeu

[19] Comentário enviado por bestlinux em 30/04/2005 - 17:32h

Parabéns, otimo artigo :-)

Falow !

[20] Comentário enviado por luisoft3007 em 14/12/2005 - 11:22h

Parabéns Muito bom este artigo, Valew

[21] Comentário enviado por prandini em 09/08/2006 - 08:24h

Otimo artigo, mas acho que ja vi em algum lugar

[22] Comentário enviado por celfs em 19/02/2007 - 15:42h

Pessoal estou tentando instalar o squid no ubunto 5.10 mas da um erro no install :Impossivel achar pacote squid.

podem me ajudar

[23] Comentário enviado por s4l4t1r em 19/07/2007 - 20:16h

Pô kara muito bom este seu tuto .
blz mesmo .

[24] Comentário enviado por diogo-tadeu.ca em 08/08/2008 - 16:42h

Ola a todos.
Eu estou usando a distro. Ubuntu 8.04 rodando o samba como pdc, eu conseguiria rodar esse firewall junto, na msm maquina?
outra duvuda
daria para mim rodar esse firewall em uma rede domestica de 3 pc's???
desde ja agradeço

[25] Comentário enviado por xfabi0x em 21/08/2008 - 20:51h

Tb achei ótimo o artigo..
Foi bom que enriqueceu mais a internet com essas informações mesmo que copiadas.
No meu caso por exemplo em uma pesquisa no google eu achei esse artigo e não o original do guia do hardware, a única coisa q o autor pecou foi em não citar o orignal mas valeu, talvez eu não teria achado o original se não visse links aqui nos comentários dos colegas do VOL. :D

[26] Comentário enviado por mbmaciel em 30/01/2010 - 14:45h

Um ajuste ao artigo.

O comando iptables -F não apaga todas as regras, tem que especificar em qual tabela. Ex:

$ iptables -F -t nat

O comando iptables -F só apaga as regras da tabela filter.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts