Compartilhando internet com iptables

Publicado por Vitor Ribeiro de Souza em 19/11/2004

[ Hits: 84.487 ]

 


Compartilhando internet com iptables



Há vários tutoriais de como compartilhar internet com o iptables, eu mesmo já procurei vários e nenhum nunca funcionava! Até que um belo dia li em algum lugar tais comandos sem complicações alguma. Aí vai a dica, você irá compartilhar, simplesmente, sua internet com sua rede local.

Abra um terminal e digite os seguintes comandos:

# iptables -F
# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F POSTROUTING -t nat
# iptables -F PREROUTING -t nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o ppp0 -j MASQUERADE


Pronto, seu servidor já está compartilhando a internet! Agora só falta configurar os clientes, caso seja Windows é só ir na configuração da placa de rede e indicar o gateway. Se for clientes Linux você pode dar o comando:

# route add -net gw 192.168.0.1

Baseando-e na hipótese de que o IP do servidor é 192.168.0.1.

Pronto, internet compartilhada.

E isso galera espero que ajude, aqui quebrou mo galhão!!!

Outras dicas deste autor

Problemas no Urban Terror 3.7 e True Combat

Matando X-Window travado

Leitura recomendada

Internet discada com Discador Orolix

Compartilhando Internet com Centos 5.X

Bloquear P2P com Iptables

Acessando Banco do Brasil no Ubuntu 12.04 com Firefox

Saiba qual distribuição GNU/Linux combina com você

  

Comentários
[1] Comentário enviado por vagnerd em 19/11/2004 - 14:33h

issu ajuda pra carai ... eu ja usei!!
Flws ;)

[2] Comentário enviado por naoexistemais em 20/11/2004 - 07:45h

Será que nenhum funcionava ou você não tinha entendido, porque eu mesmo escrevi vários artigos e o mesmo já foi usado por milhares pessoas e sem problema.

Acho que nesse ponto você generalizou....

falou,

[3] Comentário enviado por vitor.jjb em 20/11/2004 - 18:10h

Amigo, em todos os artigos uqe li sobre isso, eles so colocavam os comandos para compartilhar e aceitar o ip_forward... mas nao botavam para limpar as Regras.... e eu nao falei que TODOS OS ARTIGOS DO MUNDO estavam errados.... apenas todos os artigos que EU LI nao funcionaram :)
flwww

[4] Comentário enviado por vargas88 em 03/01/2005 - 17:19h

Depois de varios tutoriais esse muito simples pratico e ultra eficiente resolveu meu problema.
Coloquei no final do arquivo /etc/rc.local
e ta rodando muito bem.

[5] Comentário enviado por danilorlima em 18/11/2005 - 22:13h

se eu substituir ppp0 por eth0 também da certo é que aqui a internet é a rádio e outra coisa o q significa /24 192.168.0.0/24 , so pode ter 24 clientes ??? :) :)

[6] Comentário enviado por removido em 24/11/2005 - 13:55h

não, isse /24 quer dizer a mascara da rede que esta sendo utilizada, nesse xaso a /24, logo dizendo que vc pode endereçar até 254 ip com essa mascara (192.168.0.1 até 192.168.0.254, sendo 192.168.0.0 determina qual a rede e 192.168.0.255 para dizer que é o broadcast, falow?????

[7] Comentário enviado por xafranski em 05/04/2006 - 19:50h

Blz cara...
Show de bola!!!
Funcionaou tranquilo. Valeu pela dica

[8] Comentário enviado por priest em 24/05/2006 - 10:25h

nesta parte "192.168.0.0/24" eu devo colocar a faixa de ip existente em minha rede? ex: tenho 4 micros aqui na rede com ip's variando de 192.168.0.1 até 192.168.0.4, no caso ficaria assim "192.168.0.1/4 " ?

[9] Comentário enviado por priest em 24/05/2006 - 22:22h

como faço pra logar como root dentro do terminal? Pq eu ja loguei no sistema como root, mas no terminal como que faz ?

[10] Comentário enviado por LINUX_FLAVIO em 21/07/2006 - 13:18h

Nota dez finalmente alguem curto e grosso (hehehe) Cara vc foi brilhante !!! Assim fica facil mesmo...

[11] Comentário enviado por joaovitorlinux em 01/11/2006 - 15:19h

Cara, valeu, to tava tentando mexer nisso fazia uns 3 dias e nada.
Outra coisa, o bom é vc acrescentar essas linhas de comando no final do arquivo /etc/rc.d/rc.local pois eu uso o CL 10 e ae reinicia a maquina, ele perde as config.
Mas, valeu mesmo
T+

[12] Comentário enviado por salvianoporto em 18/01/2007 - 14:59h

Cara, è isso ai mandou bem pois tenho visto muito tutoriais mas so mostra os comandos básicos sem limpar a tabela existente.

Blz .... t ++++

[13] Comentário enviado por thiagopeixoto em 20/02/2007 - 15:03h

Uma observação importante para quem não está conseguindo (como eu estava rs):
Conexao: CABO / CABLE
Provedor: AJATO

Nas máquinas clientes insira o DNS do seu provedor, no meu caso (SP):
DNS1: 200.162.196.29
DNS2: 200.162.192.5

Para saber o DNS de seu provedor vc pode consultar em www.abusar.org.br (eu particularmente não entrei lá, mas dizem que tem ;-) ) OU através de uma máquina Windows conectada no Ajato digitar ipconfig /all no prompt do DOS e lá estará os dois DNS`s. Tb tem a possibilidade de ligar pra lá e pedir, mas sinceramente nem sei se eles liberam esta informação...

Espero ter ajudado alguem aih...

[14] Comentário enviado por jeffersonjbj em 25/02/2007 - 19:05h

Não consegui. Estou compartilhando duas máquinas linux e aparece a seguinte mensagem na hora de configurar o gateway da máquina cliente:
Host name lookup failure

[15] Comentário enviado por FireBird em 08/03/2007 - 00:58h

Ficou bacana... Mas você poderia ter feito algo em relação a segurança. Pelo menos colocar algumas políticas em DROP pra evitar certos tipos de acesso.

[16] Comentário enviado por durvalnetolinux em 16/07/2007 - 14:21h

pessoal boa tarde. eu sou iniciante em linux.....

e estou precisando montar um servidor pra compartilhar a internet e fazer o controle de acesso.....com o squid!
site, palavras etc!

apostyilas e tutorias eu agradeceria muito!

SDS

[17] Comentário enviado por durvalnetolinux em 16/07/2007 - 14:22h

a sim estou usando o fedora 6... vcs acham bom? aconselham algum outro?

SDS

[18] Comentário enviado por Jandairs em 22/01/2008 - 15:36h

OLA GALERA ESTOU PRECISANDO DE UMA LUZ SE ALGUEM PUDER ME AJUDAR. ESTOU PRECISANDO DE ONFIGURAR UM SERVIDOR DE INTERNET COM O FEDORA / HED E ESTOU PRECISANDO COMPARTILHAR A CONEXÇÃO COM SQUID PRA FAZER UNS FILTRO DE SITE PROIBIDO SO QUE A NET É A RADIO E ELES USAM U ROTIADOR QUE JOGA DIRETO PRO SWITCH PRECISO FASER COM QUE ELA JOGA PRO SERVIDOR PRA FASER O FILTRO ALGUEM PODE ME DAR UMA LUZ AI, PORQUE EU JA MONTEI MUITO SERVIDOR DE NET COM MODEM ADSL E NÃO COM NET A RADIO . URGENTE POR FAVOR

[19] Comentário enviado por m4gnu5 em 22/12/2008 - 23:26h

amigo eu não consegui! me ajude por favor "minha placa de rede para a rede interna e eth2 minha placa de rede externa e eth0, como faço para compartilhar
a eth0 com a eth2,a eth1 esta sem uso! me ajude agradeço desde já!
mais um detalhe minha eth2 ip dela é 192.168.3.254. queria que roteasse para minhas maquinas da rede interna!

[20] Comentário enviado por ielsistemas em 29/12/2008 - 14:09h

Olá amigo, meu caso está sendo igual ao de todos mas ñ tive muito sucesso vou lhe descrever a minha rede:
na eth0 eu tenho um ip real x.x.x.x
na eth1 eu tenho um ip inválido 192.168.1.1
Ai eu atribui eles na placa e talz... o servidor conseguiu navegar blz... mas quando eu configuro as estações com 192.168.1.2 e o gw 192.168.1.1 que é a placa interna elas simplesmente não navegam.
estou usando debian 4 e abaixo segue meus conf pr vc ter uma noção:

a linha q esta descomentada no sysctl
#Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.conf.default.forwarding=1



[21] Comentário enviado por ielsistemas em 29/12/2008 - 14:11h

Olá amigo, meu caso está sendo igual ao de todos mas ñ tive muito sucesso vou lhe descrever a minha rede:
na eth0 eu tenho um ip real x.x.x.x
na eth1 eu tenho um ip inválido 192.168.1.1
Ai eu atribui eles na placa e talz... o servidor conseguiu navegar blz... mas quando eu configuro as estações com 192.168.1.2 e o gw 192.168.1.1 que é a placa interna elas simplesmente não navegam.
estou usando debian 4 e abaixo segue meus conf pr vc ter uma noção:

a linha q esta descomentada no sysctl
#Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.conf.default.forwarding=1

e logo abaixo meu interfaces q fica no etc/network/interfaces
auto lo
iface lo inet loopback


auto eth0
iface eth0 inet static
address x.x.x.x
netmask 255.255.255.248
gateway x.x.x.x
#Servidores DNS
dns-nameservers 201.10.128.3

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.255
broadcast 192.168.1.255
network 192.168.1.0

agora me diga se tem algo errado?
valew conto com a ajuda de vcs....

[22] Comentário enviado por joelmelo em 24/08/2010 - 22:36h

Segui as dicas e FUNFOU BACANA.

1º Passo:

Na maquina Real
#ifconfig etho 192.168.0.1
Na maquina Virtual
#ifconfig etho 192.168.0.2

2º Passo:

Executei o comando ping na Maquina real
#ping 192.168.0.2

Na Maquina Virtual
#ping 192.168.0.1

pingou e ambos corresponderam, ou seja, significa que estão em redes.

3º Passo:

Configurar a maquina real para um roteador para vm. Como meu modem não é roteado, terei que rotear usando minha própria máquina. Para isso execute o seguinte comandos:

#iptables -L -nV
#iptables -L -t nat
#iptables -L -t mangle

4º Passo:

Rodar o seguinte comando:
iptables -t -A POSTROUTING -o ppp0 -j MASQUERADE
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward


Obs.: Você pode abrir o editor de arquivo /etc/sysctl.conf e descomentar a seguinte linha deixando assim:

net.ipv4.ip_forward=1

caso se estiver no 0 coloque 1 em seguida salve o editor de arquivo, aew n precisa usar o comando echo 1 > /proc/sys/net/ipv4/ip_forward uma coisa ou outro eu prefiro net.ipv4.ip_forward=1

5º Passo:

Agora é so colocar o gateway na maquina virtual:

#route add default gw 192.168.01

teste com o comando ping 4.2.2.2

6º Passo:
Adicionar a resolução de nome dentro da pasta /etc/resol.conf na VM

nameserver 8.8.8.8
nameserver 4.2.2.2

Salva e sai do editor de arquivo
Feito isso ele já estaraá na internet direto e correr pro abraço.

7º Passo:
Pra deixar sua net funcionando, mesmo desligando a maquina faça o seguinte procedimento:

Na Maquina Real faça o mesmo procedimento porém não incluindo o gateway e mudando o endereço do ip, na pasta /etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
dns-nameservers 8.8.8.8

Feito isso salve o arquivo.

Na Maquina Virtual abre qualquer editor de arquivo /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 8.8.8.8

Pronto feito isso salve e sai do arquivo.

8º Passo:

Abre o editor de arquivo /etc/resol.conf e acrescentar o item abaixo tanto na maquina real quanto na virtual:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 4.2.2.2
nameserver 128.8.10.90
nameserver 198.41.0.4
nameserver 192.5.5.241
nameserver 193.0.14.129
nameserver 199.7.83.42
nameserver 192.36.148.17
nameserver 192.58.128.30
nameserver 202.12.27.33
nameserver 192.33.4.12
nameserver 192.228.79.201

Após isso salve e feche o arquivo. Com isso vc jah tem dns e rede configurado msm se desligar a maquina.

Obs.: Caso queira criar outra maquina real é só seguir o mesmo passo da 7º e da oitava, porém modificando o ip da maquina e colocando o endereço do Gateway, e fazendo as configuração no /etc/resolv.conf /etc/network/interfaces

9º Passo:

Acrescente as 2 linhas no /etc/rc.local

modprobe iptables_nat
iptables -t nat -A POSTROUTING -o ppp0 MASQUERADE

obs.: No red Hat terá que colocar no /etc/rc.d/rc.local

No Denbian /etc/rc.local

[23] Comentário enviado por rodrigo.a.sc em 29/01/2012 - 07:30h

Em resumo tente isso :

#modprobe iptables_nat
#iptables -t nat -A POSTROUTING -o ethx MASQUERADE
#echo 1 > /proc/sys/net/ipv4/ip_forward

rota do meu firewall :





Explicando o que vc vai fazer :

Algo interessante que deve ser comentado :

1º na instalação padrão do debian 6 temos que iniciar o modulo

modprobe iptables_nat

2º se a sua conexão não for do tipo ppp0 e entrar direto de um roteador local, do tipo quando vc compartilha a internet com TPLINK,DLINK é so ver a interface que o seu firewall está conectado na net, no meu caso eu criei um firewall para testes e coloquei a interface dele eth0 como 192.168.1.105 e sua rota para 192.168.1.1 (Meu roteador local)

iptables -t nat -A POSTROUTING -o ethx MASQUERADE
é interessante setar o arquivo abaixo como 1 para liberar a troca para o forward.

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

#route -n

Tabela de Roteamento IP do Kernel
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
192.168.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
root@FW01-DEBIAN6:/home/ftp#




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts