Compartilhando internet com iptables

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

[ Hits: 84.298 ]

 


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

Matando X-Window travado

Problemas no Urban Terror 3.7 e True Combat

Leitura recomendada

Instalando o Google Chrome no Fedora 21 e 22 Workstation e Alterando o Ambiente Gráfico

Autenticação automática no IG

Instalando o flash-player no Debian 6.0

Personalizar mensagem de erro no Squid

Instalando pacotes de atualização no Conectiva Linux de maneira mais veloz

  

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