http://www.zago.eti.br/adsl_nat.txt Use CTRL+F para refinar a pesquisa. veja adsl.txt http://www.zago.eti.br/adsl.txt **************************************************** **************************************************** Como Compartilhar a Internet com o Kernel 2.4.x/IPTABLE e NAT Downloads: Em breve este tutorial estará sendo disponibilizado em TXT e PDF. Aguarde. 1. O que é servidor NAT, "mascaramento" e para que serve ? Hoje em dia já não se discute mais se a Internet é importante ou não, a questão é como tornar esta ferramenta mais acessível a todas as camadas da população, dentro das residências, assim como nas empresas. Dentro deste contexto, poder compartilhar um único acesso a Internet com mais usuários simultaneamente, sem onerar é muito importante para alcançar a universalização da Internet. Talvez você já tenha ouvido falar no termo "NAT" (Network Address Translation) e/ou "mascaramento" e não ter compreendido a verdadeira função e a utilidade de servidor com esta funcionalidade. Vamos começar afirmando que esta tecnologia é chave para a disseminação de acesso à Internet e vamos aprender como usar o Linux para isto ! Um servidor NAT que efetue o mascaramento de rede, consiste basicamente de um computador (ou dispositivo dedicado) com uma interface de acesso à Internet (os mais comuns são, tipo conexão serial PPP ou interface de rede ethernet ligado à rede ADSL- Speedy em São Paulo, ou via cabo e outra interface de rede conectada à rede interna. O servidor NAT permite que as Estações que estão na rede interna possam acessar a Internet simultaneamente, compartilhando um único acesso de internet. Vide diagrama abaixo: Rede Externa -> IP "Quente" (Válido) Ex: eth0 -> 200.30.40.103 Rede interna -> IP "Frio" Ex: eth1 -> 192.168.0.1 2. O que é endereço IP ? Todos os equipamentos que estão conectados na Internet quer sejam dispositivos, servidores ou clientes possuem necessariamente um endereço IP (Internet Protocol) que consiste de quatro números de 0 a 255 separados por ".". Denominamos de IP "Quente" ou Válido, os endereços de internet de dispositivos, servidores e clientes que são acessíveis e públicos para a Internet como um todo. Todo computador conectado à Internet possui um endereço IP "Quente" ! Para quem tem acesso à internet via conexão ADSL (tipo Speedy da Telefonica), pode verificar que possui um endereço IP fixo, designado pela operadora. "Eu nunca configurei o tal de endereço IP na minha máquina" - dirá um usuário típico de conexão discada de internet. Acontece que nestes casos durante o processo de conexão é alocado um endereço IP válido pela provedora de acesso de forma dinâmica, ou seja, cada vez que se conecta recebe um IP, para aquela conexão. Os endereços IP que estão na Rede Interna são endereços IP "Frios", ou seja são endereços que não são "enxergados" pela rede externa, ou de forma técnica dizemos que são endereços não roteados na internet. Para este propósito são utilizados os endereços IP 192.168.0.0 a 192.168.255.255 para redes Classe C - 254 endereços IP por subrede. "Bem, se para qualquer micro navegar na internet é necessário um IP válido, e tenho somente um IP fornecido pelo meu provedor, como é que diversos equipamentos que estão na minha rede interna podem acessar a internet simultâneamente ?" Se você "captou" a pergunta acima, parabéns ! Você está a um passo de entender o tema deste documento. 3. Todos os Serviços "escutam" em uma Porta "Ok, quer dizer que sabendo o endereço IP válido de um servidor posso acessá-lo ? Mas, se um servidor oferece os serviços de HTTP (páginas HTML) e transferência de arquivos FTP como é que ele sabe quando solicito arquivos via FTP e quando acesso as páginas da Web ?" Neste momento, precisamos entender o conceito de Porta. Cada serviço no servidor "escuta" em uma porta pré-definida. O servidor de HTTP, ou seja servidor de páginas de internet, típicamente aguarda a conexão na porta 80. O servidor de FTP "escuta" na porta 21. Ou seja, pode-se entender a Porta como o "endereço" de uma aplicação/serviço que está dentro de um equipamento que possui um endereço de internet - IP. Para designar o endereço IP e a Porta, utilizamos a seguinte notação: :. Ex: 200.30.40.103:80 -> estamos acessando o serviço HTTP(Porta 80) do servidor cujo IP é 200.30.40.103. Como convenção os serviços mais importantes/conhecidos possuem o número da porta < 1024. 4. O Servidor NAT em Ação Agora vamos mostrar com um exemplo de como dois computadores dentro da rede interna podem acessar simultaneamente um serviço HTTP (navegar na Internet) e efetuar um download de um arquivo via FTP, utilizando um acesso à Internet. O servidor NAT possui o endereço IP=200.30.40.103, válido ou seja é capaz de navegar/acessar a internet. Agora vamos ver o que acontece para que a estação com IP "Frio" 192.168.0.10, incapaz de nevegar na internet consegue, por meio do servidor NAT, acessar o servidor de web com IP=201.34.2.130. A estação com IP=192.168.0.10 envia por meio de "gateway" 192.168.0.1 (servidor NAT na interface de rede interna) um pacote endereçado à servidor de web IP=200.30.40.103:80 (porta 80 = HTTP). O servidor NAT modifica este pacote como sendo enviado por ele (NAT) com IP=200.30.40.103:1024, designando arbitrariamente uma porta acima de 1023, ou seja o servidor de web para todos os efeitos recebe uma solicitação para porta 80 (serviço de página de web - HTTP) do servidor NAT e envia de volta a resposta (página web) para o servidor NAT endereçado para a porta 1024. O servidor NAT sabe que a porta 1024 foi a porta utilizada para reencaminhar a requisição da estação 192.168.0.10 e modifica o pacote endereçando corretamente para o mesmo ! Da mesma forma a requisição da estação IP=192.168.0.20 para o servidor de FTP é reencaminhado como sendo originado do servidor NAT, apenas definindo uma porta diferente da outra estação, neste caso foi usado a porta 1025. O servidor NAT usa portas diferentes para "endereçar" os equipamentos (endereço IP) da rede interna. Utilizando o mesmo princípio em "N" máquinas, teremos todos eles acessando simultaneamente a internet com apenas uma conexão à Internet ! 5. Configurando o NAT em Kernel 2.4.x/IPTABLES Estamos partindo do pressuposto de que o computador que fará o papel de servidor NAT já tenha sido configurado para suportar a(s) interface(s) de rede e acesso à internet. Vide documentos sobre como instalar rede. O núcleo do sistema operacional Linux é chamado de "Kernel". A versão atual é 2.4.x e possui recurso de implementar o servidor NAT de forma muito fácil com a utilização de recursos do IPTABLE a qual mostramos abaixo. Para os kernels da versão 2.2.x deve-se utilizar o IPCHAINS. Edite o arquivo de configuração /etc/rc.d/rc.local e insira no final do mesmo: # Carrega o modulo NAT( + todos os modulos dependentes) modprobe iptable_nat # Na tabela NAT ( -t nat ), adicione a regra (-A) após rotear (POSTROUTING) # todos os pacotes encaminhados para fora via ppp0 (-o ppp0) e "mascarar" a # conexão (-j MASQUERADE) no caso de interface rede tipo ADSL trocar o # ppp0 pelo dispositivo de rede (p.ex. eth0) iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # Habilita o encaminhamento dos pacotes echo 1 > /proc/sys/net/ipv4/ip_forward Pronto ! Basta reinicializar o servidor NAT. Autor: Seido **************************************************** **************************************************** **************************************************** **************************************************** **************************************************** **************************************************** **************************************************** **************************************************** **************************************************** **************************************************** ****************************************************