Depois de meses, volto a publicar um artigo inédito aqui no Linux in Brazil. Tem vários outros na fila, alguns eu recebi por email e ainda nem respondi aos autores, mas eu acabo lendo e respondendo. Quem quiser mandar, entre em contato; mande em texto puro, parágrafos separados por linhas em branco, já corretamente acentuado e revisado.
Clicando em Detalhes você poderá ver o artigo do Marcelo M. Lopes (marcelo@tre-sc.gov.br) com um passo a passo sobre como configurar um micro com Linux para atuar como roteador e interligar duas redes (ou uma rede local à Internet). Confira!
Configurando roteamento com o IPTables (Masquerading)
Marcelo M. Lopes - marcelo@tre-sc.gov.br
O objetivo deste documento é demonstrar uma solução simples para roteamento de pacotes entre redes, mais especificamente entre duas redes ethernet, utilizando o IPTables. Observe que o foco não é a parte de segurança e sim a funcionalidade da solução.
Hardware Utilizado
A configuração de hardware utilizada foi um Pentium200 com 64Mb de ram e 2Gb de disco, porém poderia-se baixar esses valores conforme a demanda das redes a serem conectadas. Nesse laboratório nossas redes tinham aproximadamente 20/200 pontos e considerou-se o hardware sub-utilizado. Somente durante a configuração foi necessária a utilização de monitor e mouse; como hardware adicional foi instalada uma segunda placa de rede.
Software
O S.O. instalado foi o Suse Linux7.3; o tipo de instalação foi a "mínima" (aproximadamente 250Mb), mais alguns pacotes como o "iptables" e o "pico" (adicionados manualmente). O reconhecimento das 2 placas de rede(3com padrão) ocorreu sem problemas. obs: como área de swap criou-se uma partição de 128Mb.
Configuração
Inicialmente devem ser feitas as configurações das placas de rede, hostname, domainname; para exemplificar:
eth0: 192.168.1.1/255.255.0.0
eth1: 10.10.1.1/255.255.0.0
hostmane: router
domainname: mydomain.com
Ativando o roteamento
Verifique na distruição de sua preferência a localização dos scripts de inicialização e adicione o seguinte comando para ativar o roteamento:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Rotas
Considerando a conexão física de rede OK, partimos paras as rotas necessárias:
# route add -net 192.168.0.0 netmask 255.255.0.0 eth0
# route add default gw 10.10.1.1 eth1
Confirme/edite o arquivo /etc/route.conf, definindo as seguintes entradas:
192.168.0.0 0.0.0.0 255.255.0.0 eth0
#gateway default
default 10.10.1.1 0.0.0.0 eth1
Serviços
Todos os serviços considerados desnecessários (telnet, finger, ftp, etc...) foram desativados, ficando apenas rodando o sshd para futuras manutenções.
Regras de Masquerading
Para possibilitar a troca de pacotes entre as duas redes são necessárias algumas regras de mascaramento de ip; utilizou-se o iptables-1.2.2-66(kernel 2.4.10); adicione as seguintes regras a um dos scripts de inicialização(depende da distro):
export IPTABLES=/usr/sbin/iptables
export MODPROBE=/sbin/modprobe
$MODPROBE ip_nat_ftp
$MODPROBE ip_conntrack
$MODPROBE ip_conntrack_ftp
$IPTABLES -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED, RELATED -j ACC
$IPTABLES -A FORWARD -i eth0 -o eth1 -j ACCEPT
$IPTABLES -A FORWARD -j LOG
echo "- Enabling SNAT (MASQUERADE) funtionality on eth1"
$IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo -e "\nDone.\n"
Após estes procedimentos seu micro já estará roteando pacotes entre as redes, sendo ainda preciso configurar nas estações da rede interna (192.168.0.0) O gateway padrão como sendo o endereço IP da interface eth0 (192.168.1.1).
Duas Ponderações:
Não me parace necessário o masquerade entre duas redes com IPs privados (ou não válidos, rfc 1597), no caso :192.168.0.0/16 e 10.10.0.0/24. Já se a rede 10.10.0.0/16 serviu apenas como exemplo para um acesso a internet, e na verdade seu IP seria um IP válido do tipo 200.200.200.0/24, o masquerade se faz necessário.
Quanto as rotas:
-> route add -net 192.168.0.0 netmask 255.255.0.0 eth0
Posso estar errado, mas como a rede 192.168.0.0/16 esta ligada diretamente na interface do roteador, a rota para a rede já é criada automaticamente pela pilha IP.
-> route add default gw 10.10.1.1 eth1
O Default Gateway deveria apontar para o próximo roteador no caminho para Internet (ex:10.10.1.2) e não para o próprio IP.
De qualquer forma, parabens pelo artigo, conciso e prático.
Gustavo Araujo Bittencourt
Postado por: gbitten em setembro 13, 2002 02:28 PMNão entendi como ele mascarou para a web? Como este mascaramento é reconhecido pelo outro roteador(GW)? Tipo, ele faz um mascaramento na eth0, que vai ser quem vai receber um ip válido para a web? Quer dizer o outro roteador(GW) que vai dar para o router o ip válido?
Postado por: Márcio em setembro 13, 2002 07:13 PMVisivelmente o Autor deste documento nao tem nenhum conhecimento em redes/TCP-IP, nota 0.
Postado por: Frederic L.V em setembro 14, 2002 09:02 PMRoteamento
Postado por: marcosq em setembro 15, 2002 01:31 PMLeia
Postado por: Marco em setembro 23, 2002 02:37 PMdesejo me cadastrar na lista
Postado por: mario em setembro 26, 2002 12:33 AMVoce sabe como posso configurar uma rota multicasting para 2 placas de rede?
Postado por: Nicanor em outubro 2, 2002 05:49 PMGostaria muito de saber como sâo aferidos os conhecimentos de uma pessoa na prática.
A pessoa prepara o sistema,divide em partições,instala,modifica,acrescenta arquivos não inclusos na instalação, em fim prepara o sistema para funcionar. Como aferir a esta pessoa o seu grau de conhecimento em Linux para que possa certificar-se ?
eu gostaria de saber para q serve cada comando
por quê não adianta nada eu efetuar o que você está disendo sem saber o significado.
E SE EU TIVESSE SOMENTE 1 PLACA DE REDE QUE SE LKIGA NUM HUB, E DEPOIS PELO HUB SE DISTRUBUI PARA OUTRAS MAQUINAS?
COMO FICARIA AS REGRAS DO IPTABLES?
este cara nao entende nada sobre o NAT, quem quiser pode procurar pelo GUIA FOCA LINUX que la te explicando tudinho sobre como usar o iptables.
abraco
Preciso de sua ajuda para aprender a entrar
no sistema de terceiros...se puder me dar uns toques
ficarei agradecido...pois não aguento+...
sem mais,
Droyd
Bom e velho brasil.
Criticas e mais criticas, fazer que eh bom nada.
Testem e vejam se funciona, ao inves apenas de criticar.
Nao funcionou ??? Arrume os erros, caso seja tao bom a ponto de criticar.
Um bom critico deve entender e saber fazer o que esta errado na critica.
:-)
Como posso fazer o rotiamento de uma rede para um modem
Postado por: Thiago Pinto Dias em outubro 21, 2002 08:29 PMTenho uma conexão no trabalho com a internet
Gostaria de usar em casa como rotias da minha placa de rede para um modem
para poder conectar em casa
Como faço para configurar um rotedor para acessar o speed (ppoe) de um lado e uma rede 192.168.0 do outro.
Tenho um 486 com 8Mbs de memória
Postado por: Marcio em outubro 21, 2002 10:49 PMprimeiramente, brain, parabens pela iniciativa...
2º pra nao confundir a galera vc poderia ter colocado um ip "diferente" na eth1, pra evitar comentarios do tipo "esse cara nao sabe nada de routing" ;)
para aqueles que leram mas nao entenderam, uma boa saida é digitar "man iptables" (sem as aspas), ta em ingles mas da pra entender...
Postado por: Carcaça em outubro 31, 2002 02:50 AMBom dia...eu tenho algumas duvidas "bobas"...sera que tem como vcs mandarem para mim o tutorial desta materia. Vou-lhe fazer uma das perguntas "bobas" quando vc fala isso: "Verifique na distruição de sua preferência a localização dos scripts de inicialização e adicione o seguinte comando para ativar o roteamento:
# echo 1 > /proc/sys/net/ipv4/ip_forward" eu nao estedi, vc quer que eu procuro esta arquivo e adiciono ele este comando, # echo 1 > /proc/sys/net/ipv4/ip_forward? Desculpa por esta pergunta "bobas".
Obrigado
Marcelo
Tenho minha rede conectada a uma outra por dois links dedicados.
Atualmente eles atuam trafegando informações especificas para determinados serviços,
ou seja, o tráfego do servico A na outra ponta vem pelo link A.
O trafego do serviço B vem pelo link B. Apesar de eu ter metricas diferentes e
rotas estáticas, quando um link cai, o tráfego vem pelo outro mas nao volta.
Alguem tem alguma ideia?
Obrigado
Postado por: wilson em novembro 27, 2002 12:01 PMExiste algum problema de com o modem da alcatel para que funcione em linux?
Postado por: luciano em novembro 29, 2002 05:03 PMMeus parabéns... resolvidos estão meus problemas com ftp!!!!
Postado por: Maurício Rocha Bastos em dezembro 3, 2002 05:43 PMEu aqui usando o iptables
fiz o seguinte script
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_nat_ftp
modprone ip_conntrack
modprobe iptable_nat
iptables -P FORWARD DROP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -p udp --dport 80 -j MASQUERADE
iptables -A FORWARD -p tcp --dport 80 -s 0/0 -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -d 0/0 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -d 0/0 -p udp --dport 80 -j ACCEPT
Onde eth0 eh o speedy funcionando corretamente e o eth1 rede interna 192.168.0.0/24 nao entendo pq a rede interna nao consegue navegar quero uma coisa bem simples apenas fechar o forward e abrir apenas a porta 80 o servidor de dns esta no firewall e tanto na estacao qto no firewall resolve os ips nao entendo o q esta acontecendo se alguem puder postar algum script simples sobre fechar o forward e abrir apenas navegacao com mascaramento agradeco
Abracos,
Pedro Drimel
Postado por: Pedro Drimel em dezembro 17, 2002 05:06 PM
gostaria de ver algum artigo falando sobre samba com mandrake 9.0 alguem poderia me ajudar.
wesley
Postado por: wesley em dezembro 26, 2002 04:19 PMsobre internet a cabo,
Como fazer o cable modem funcioar no linux, pois so consigo fazer funcionar adicionando a rota para o ip_valido designado do provedor, mais depois que reinicio este ip muda e a conexão não funciona novamente.
Eu tenho um speedy ppoe e instalei o mandrak 9.1, so que não sei configurar para efetuar logon no meu provedor que é terra.. teria alguma pagina ou insformções de como fazer??? Detalhe sou leigo de linux mas quero muito aprender a mexer
Postado por: Isac Marcelo dos Santos em janeiro 29, 2003 09:10 PM
Isac,
leia esta página:
www.roaringpenguin.com
Uses os softwares RP-PPPoE (que é o principal) e o TkPPPoE para conectar a partir do X.
Eu instalei os dois (no Conectiva 7.0) e uso o Speedy via Linux sem o menor problema.
Ola pessaol......
Alguem pode me ajudar o problema e o seguinte...
tenho adsl aqui... eth0 10.0.0.139
(rede interna)outra placa de rede eth1 192.168.0.1
configurei squid/proxy e esta rodando blz...
deixei a porta padra 3128
mas o problema e o seguinte o email nao funciona outlook express o que devo fazer para funcionar....
obrigado
Tenho duas placas de rede eth0 que esta conectada ao roteador e eth1 na rede de clientes as duas ultilisam ip valido .Como faco para que eth1 possa enchergar o roteador ??
Postado por: junior em fevereiro 19, 2003 02:39 PMolá
Estou com uma dificuldade.
Tenho conexão rápida a internet fia rádio e ADSL.
Como faço com meu servidor de internet ,que tem uma placa de rede ligando minha rede interna e outra ligando atualmente o sistema ADSL,servidor esse com sistema operacional Linux,gostaria que quando o ADSL saice do "ar" automaticamente meu servidor usasse a minha conexão via rádio
O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.