Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: fedora
Por U235
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Compartilhando acesso à internet com iptables
Linux user
tucs
09/01/2003
Neste artigo usaremos o iptables para fazer um compartilhamento de seu link dedicado com a Internet (speedy, velox, lp, etc) com suas estações de rede.
Por: Eduardo Assis | Blog: http://www.proredes.com.br
[ Hits: 61520 ]
Conceito: 9.2   2 voto(s)2 voto(s)2 voto(s)2 voto(s)2 voto(s) + quero dar nota ao artigo

Compartilhando Internet com iptables

Servidor

Temos uma máquina Linux com 2 (duas) placas de rede:
  • eth0: 200.x.x.x (ip fixo da internet)
  • eth1: 10.0.0.x (ip fixo interno)

Verifique se o iptables está instalado:

# rpm -q iptables
iptables-1.2.4-1cl

No caso estou usando a versão 1.2.4 do iptables em um Conectiva, se o seu não estiver instalado, faça o download (www.rpmfind.net, por exemplo) e instale-o com o seguinte comando:

# rpm -Uvh iptables-version

Depois de instalado vamos compartilhar à Internet. Digite a seguinte seqüência de comandos no shell:

# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward


Onde:
  • modprobe iptable_nat : Carregar o módulo NAT (isso carrega todos os outros);
  • iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE : Na tabela NAT (-t nat), adicionar uma regra (-A) após o routing;
  • echo 1 < /proc/sys/net/ipv4/ip_forward : Habilitar IP forwarding.

O ambiente gerado pela configuração realizada pelos comandos acima será descartada após o reinício do servidor, dessa forma sugiro que você aplique estas regras em algum script que será executado durante a fase de inicialização do servidor (ex.: /etc/rc.d/rc.local).

Cliente

Configure suas estações de rede da seguinte forma:
  • gateway: IP do servidor Linux
  • servidores DNS: qualquer servidor DNS válido (ex.: 200.204.0.138)

Recarregue as configurações das estações e pronto, estará navegando de modo transparente.

Referências


Abraços,
tucs




Páginas do artigo
   1. Compartilhando Internet com iptables

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por mordecai em 10/01/2003 - 22:00h:

Valeu mesmo !!! consegui compartilhar até o irc para um micro cliente com windows !!

[2] Comentário enviado por fabio em 29/04/2003 - 21:44h:

Po, mais um que você ajudou. Acabei de compartilhar a conexão ADSL da rede de um amigo num server RH8.0 através desse artigo.
Da hora!

[3] Comentário enviado por rodrigopa em 11/06/2003 - 16:01h:

Não consigo acessar sites ftp dos micros cliente , somente do servidor, vc poderia me ajudar.?

[4] Comentário enviado por Oki em 10/11/2003 - 18:34h:

Grande tucs,

Resolveu meu problema aqui. :-)

Esse artigo é bala, simples, direto e funciona :-)

[]'s
Celso Goya
moinho.net

[5] Comentário enviado por Oki em 10/11/2003 - 18:37h:

Grande tucs,

Resolveu meu problema aqui. :-)

Esse artigo é bala, simples, direto e funciona :-)

[]'s
Celso Goya
moinho.net

[6] Comentário enviado por lacierdias em 20/11/2003 - 15:10h:

Ficou exelente a sua explicação bem detelhada assim q é bom detalhes.
Abraço

[7] Comentário enviado por dudu em 25/05/2004 - 18:02h:

Completando...

Para os hosts clientes acessarem FTP's carreguem tb os seguintes modulos:

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack

O script completo ficaria assim:

modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

[8] Comentário enviado por fernandowilson em 26/05/2004 - 13:36h:

nao entendi, pois tenho um roteador que tem seu ip da rede interna 10.0.0.x e minhas maquinas seguem essa sequencia. e voce sitou um ip valido 200.xxx.xxx.xxx numa segunda placa, como isso funciona?

[9] Comentário enviado por rook em 27/05/2004 - 22:46h:

Este IP válido faz referência a conexão com a internet. Por exemplo, um acesso ADSL com o modem ligado na placa de rede.

[10] Comentário enviado por alphainfo em 04/06/2004 - 10:55h:

Caro Fernando,

Como o próprio TUCS havia dito acima, o micro possui 2 placas de rede, uma que está conectada à rede interna e outro no teu velox, por exemplo.

[11] Comentário enviado por alphainfo em 04/06/2004 - 15:31h:

Permitem dar o meu pedacinho de contribuição ao artigo??

Da maneira que ficou, os clientes de email (ex:OutLook Express) não funciona. Então, sugiro que o script completo fique assim:

#!/bin/bash
##################################
# Comeco
##################################
IPREDE=Coloque aqui o IP da sua rede, por exemplo "192.168.1.0"
DNS1=Coloque aqui o primeiro DNS que a telemar te deu, exemplo "200.167.232.14"
DNS2=Coloque aqui o segundo DNS que a telemar te deu, exemplo "200.165.20.150"

modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack
echo "Habilitando o roteamento a WEB ..."
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Feito!"

#### Para funcionar os OutLook da vida...
iptables -A FORWARD -p udp -s $IPREDE -d $DNS1 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $IPREDE -d $DNS2 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $DNS1 --sport 53 -d $IPREDE -j ACCEPT
iptables -A FORWARD -p udp -s $DNS2 --sport 53 -d $IPREDE -j ACCEPT
#
echo " Feito!"
####

echo "Liberando o acesso ao SMTP e POP dos clientes de email ..."

iptables -A FORWARD -p TCP -s $IPREDE --dport 25 -j ACCEPT
iptables -A FORWARD -p TCP -s $IPREDE --dport 110 -j ACCEPT
iptables -A FORWARD -p TCP --sport 25 -j ACCEPT
iptables -A FORWARD -p TCP --sport 110 -j ACCEPT
echo " Feito!"

echo "PRONTO!"

#####
#EOF
####


Acho que é só...

[]'s

Daniel Freire

[12] Comentário enviado por abysmal em 14/06/2004 - 17:41h:

blz, show de bola, deu tudo certinho...

[13] Comentário enviado por marcosvalente em 17/06/2004 - 21:43h:

Adorei esse artigo !!!!! até os complementos....O artigo é muito muito bom

[14] Comentário enviado por flexsystem em 11/07/2004 - 01:01h:

Legal valeu apena copiar este artigo, parabéns!!!!

[15] Comentário enviado por tarso em 14/07/2004 - 22:18h:

Exenlente,precisamos também é de uma apostila para iptables.

[16] Comentário enviado por Rodrigues em 27/07/2004 - 23:15h:

só é pior que por velox no linux que é uma coisa bem chata mesmo hehe

[17] Comentário enviado por fasmaia em 16/08/2004 - 22:02h:

seguindo o raciocinio besta compilação, que tal agregar um limitador e um controle de IP cliente, dai fica um servidor de internet completo, e é o que eu to precisando he, he, ,he ,he.....

abraço.

Francisco Maia (www.naveg-net.com.br)

[18] Comentário enviado por fasmaia em 16/08/2004 - 22:02h:

seguindo o raciocinio besta compilação, que tal agregar um limitador de banda e um controle de IP cliente, dai fica um servidor de internet completo, e é o que eu to precisando he, he, ,he ,he.....

abraço.

Francisco Maia (www.naveg-net.com.br)

[19] Comentário enviado por usales em 18/08/2004 - 16:10h:

Legal!!! este é o artigo que faltava no site.

[20] Comentário enviado por cacosapo em 02/09/2004 - 09:21h:

excelente, parabéns!
só um toque de segurança, na linha:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
ficaria melhor, de acordo com o exemplo:
iptables -t nat -A POSTROUTING -i eth1 -o ppp0 -j MASQUERADE

do jeito que estava dependendo de outros parametros de configuração, uma pessoa maliciosa poderia usar seu firewall para mascarar acessos (e possiveis ataques) a outras pessoas.

[21] Comentário enviado por fernandus em 05/11/2004 - 10:22h:

por que precisamos carregar os modulos referentes ao Ftp?

[22] Comentário enviado por vagnerd em 19/11/2004 - 08:17h:

nossa que r0x.

[23] Comentário enviado por credmann em 05/12/2004 - 06:41h:

Eu preciso de uma regra que habilite o acesso dos clientes ao domínio '*.avast.com'. Tentei acrescentar '-d *.avast.com' e não funcionou. Preciso que os clientes só possam acessar a web para fazer a atualização do antivírus.

[24] Comentário enviado por randrade em 10/12/2004 - 15:30h:

jóia!

[25] Comentário enviado por ale_spy em 12/12/2004 - 21:54h:

Eu sei q a pergunta que estou fazendo pode parecer boa mas o que é iptables??? Alguem poderia me explicar? Fico grato! :-)

[26] Comentário enviado por tarso em 22/12/2004 - 11:25h:

Ótimo podeia também ter falado sobre o redirecionamento de portas ou ips.

[27] Comentário enviado por cRaYoN em 25/02/2005 - 18:27h:

Cara o artigo é muito bom! Sei que o objetivo da comunidade VOL é auxliar o pessoal, mas, gostaria de lembrar, como trabalho em Administração de Rede, que todos podem utilizar os scripts para servidores caseiros, mas quando for utilizar num ambiente de Trabalho (Produção), estude bastante o IPTABLES e conheça todas as suas características porque ele é uma poderosa arma.
Digo isso, porque num trabalho, vira e mexe, tem um mala que necessita de um acesso externo, e voce vai ter que ter conhecimento para liberar!

é isso ...

[28] Comentário enviado por mtcporto em 15/03/2005 - 23:27h:

Ola!

eu li o seu tutorial sobre compartilhamento, estava bem legal. Mas assim como o cara do FTP, eu estou com um problema. Na minha rede tem um linux com 3 placas de rede (1 velox e 2 de rede interna) atualmente o linux ta dando conta do recado e junto com aquela pequena regrinha e uma tabela de rotas tranquila, ta conseguindo fazer com que os clientes acessem internet e as duas redes que precisamos ter acesso. Tudo otimo se nao fosse por um detalhe:
Os clientes nao conseguem acessar alguns sites.
Ex.: www.caixa.com.br, www.bancoreal.com.br, www.globo.com, www.msn.com, www.hotmail.com e por ai vai.

Isso e alguma regra que ficou faltando, algum modulo que faltou carregar ou o que?

A distro e kurumin linux 4, so tem 2 regras de iptables (pra compartilhamento de rede e pra acesso as sub-redes de um dos roteadores) e a tabela com as rotas. De servidor, so tem o ssh rodando. Alguma ideia?

[29] Comentário enviado por roberva em 24/05/2005 - 20:49h:

iptables -t nat -A POSTROUTING -i eth0 -o eth1 -j MASQUERADE

o parametro "-i" pode ir com POSTROUTING ???

[30] Comentário enviado por Rlara em 25/05/2005 - 12:35h:

Pessoal, valeu as dicas sobre configuração da internet em máquinas clientes. Estou satisfeito pelo quão rápido consegui ajuda. Valeu galera !!!

[31] Comentário enviado por thiagoantunees em 24/07/2006 - 16:02h:

È seguinte cara eu preciso configurar da seguinte forma

Servidor -->eth0 entrada de internet (modem router)
-->eth1 saida - para o (AP/HUb) como eu faço redirecionar a intenet da eth0 para eth1 ,passando da eth1 (AP/HUB) distribuindo para os clientes.Essas regras podem ser feitas pelo iptables como faço isso alguém pode me ajudar desde ja agradesso.



[32] Comentário enviado por ba em 17/08/2006 - 11:35h:

Éta simples, fácil e funcional justamente o que precisava e tava procurando me ajudou bastante parabéns pelo artigo!!!


.:: bA q:-)

[33] Comentário enviado por pdjailton em 10/10/2006 - 17:59h:

Valeu cara, esse artigo ficou muito bom msm.

[34] Comentário enviado por Airozi em 03/11/2006 - 23:54h:

muito boa essa dica, funcionou de boa ^^

[35] Comentário enviado por leandrobrunoo em 28/08/2009 - 10:46h:

Queria saber se a placa eth0 q o modem estar conectado IP o 192.168.0.3
e a eth1 q e a do switch pode ser o ip com a mesma faixa ex 192.168.0.4 e qual seria o gateway da placa eth1 ?

as regras de firewall seria a mesma aqui desse artigo ?


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.