Pular para o conteúdo

Compartilhando acesso à internet com iptables

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.
Eduardo Assis tucs
Hits: 83.682 Categoria: Linux Subcategoria: Internet
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Compartilhando Internet com iptables

VPN no Conectiva 8 com o PPTPD

Shell script com PHP

Raid 1 em 5 minutos e descanso por 3 meses

Autenticando usuários Windows no Linux (PDC)

Configurando um servidor de e-mail para pequenas redes

Instalando o Nagios-mysql no Debian Etch

Como instalar e configurar Apache-Tomcat 6 no Debian Lenny com o Apache2

Como bloquear anúncios indesejados durante sua navegação pela web

Entendendo redes wireless

Compartilhamento de Internet via NAT/DHCP (Speedy Home)

#1 Comentário enviado por mbmaciel 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 removido 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 ?
#36 Comentário enviado por nicolasmafre em 31/01/2018 - 23:47h

[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?


Eu estou com a mesma dúvida, pois falaram mas não explicaram. Eu também tenho duas placas de rede ("eno1" e "enp5s0") e meu roteador também tem seu ip interno. Tudo que vejo manda a primeira placa (eno1) fixar um ip e na segunda (enp5s0) deixar como dhcp, mas ja testei com a segunda interface de rede em static e dhcp e nada funcionou.

Outra coisa, nos arquivos leio, todos mandam colocar a interface que recebera a internet no comando do IPTABLES, mas aqui é posto "ppp0" ao invés (por exemplo) "enp5s0". Por qual motivo isso?

Como fica a configuração da segunda placa?

Contribuir com comentário

Entre na sua conta para comentar.