Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais] ·  Efetividade ·  Linux in Brazil ·  Floripa  

Compartilhando a sua conexão à Internet usando Linux

O texto abaixo, publicado originalmente no BR-Linux em 31 de julho de 2003, explica como compartilhar o seu acesso à Internet usando um computador com o Linux. Este computador pode ser dedicado a esta finalidade (transformando-se assim em um roteador), ou pode ser mais um computador da sua rede local, usado para as finalidades que você desejar e atuando também como roteador.

Configurar este recurso é mais simples do que parece, e são apresentadas as receitas para várias distribuições de Linux. O texto foi escrito por mim com colaborações de vários leitores (todos citados e referenciados, a não ser quando pediram para permanecer anônimos).

Esta é, ainda hoje, uma das páginas mais acessadas no BR-Linux a partir de sites de busca, o que me motivou a trazê-la de volta para a primeira página com um convite: se você domina o assunto, que tal atualizar o texto sobre a sua distribuição favorita, ou acrescentar instruções sobre ela - caso ela ainda não tenha sido coberta? Se tiver interesse, mande o seu trecho de texto (na forma de um "capítulo" completo) como indicação de notícia, com o título iniciando com "Compartilhando a Internet".

Veja abaixo a versão corrente do texto, onde serão acrescidas as contribuições de leitores conforme forem chegando.


Compartilhando a sua conexão Internet usando Linux



Augusto C. Campos (augustoΘbr-linux.org) - com colaboração de vários leitores

Hoje em dia o acesso a Internet via banda larga é uma realidade em grande parte do território nacional, assim como se torna cada vez mais comum a existência de redes de pequeno porte nas casas e escritórios. Estas duas realidades somadas levam à necessidade de compartilhar a conexão à Internet entre os diversos computadores da maneira mais barata e eficaz possível.

Escapando das complicações

Se você ainda está planejando a sua rede local, ainda há tempo para escapar de todas as complicações: tente encontrar equipamento e um provedor que suporte uma das configurações abaixo:


Fig. 1 - Casos em que não há necessidade de configuração extra


Note que no caso 1, o modem (que pode também ser um adaptador ADSL, um cable modem ou outro equipamento com esta mesma função) está conectado a um hub (ou switch) onde estão conectados também os demais computadores da rede local. Configurar os computadores neste tipo de configuração é trivial, mas nem sempre se pode recorrer a este método: alguns modems podem ter perda de performance se conectados diretamente a um hub, outros exigem a conexão direta a um computador por razões diversas. E alguns provedores bloqueiam este tipo de compartilhamento mesmo quando o modem o suporta.

No caso 2, o modem também é hub, o que significa que ele possui entrada para conexão simultânea dos cabos de rede de diversos micros. Neste caso, conectar toda a sua rede local à Internet passa a ser uma tarefa extremamente simples.

Compartilhando a conexão de um micro

Se você não tem a sorte de poder compartilhar sua conexão simplesmente conectando cabos de rede extras, resta o recurso de habilitar este recurso no micro que possui a conexão. Existem muitas formas de fazer isto, mas a mais comum é através da inclusão de uma segunda placa de rede no PC conectado à Internet, seguida da configuração deste computador para rotear, que neste contexto significa transferir o tráfego entre a sua rede local e a Internet.


Fig. 2 - Um PC interligando a rede local à Internet


De modo geral, a primeira placa de rede (que por convenção é chamada de eth0) é conectada ao modem que dá acesso à Internet, e a segunda (chamada de eth1) liga-se à rede local da mesma forma que todos os demais micros da casa ou escritório.

Existem muitas maneiras de configurar o PC que compartilha a Internet. Por exemplo, se ele estiver rodando Windows, você pode habilitar o roteamento ou usar o Internet Connection Sharing (figura ao lado), ou usar um dos diversos softwares disponíveis para esta finalidade. Mas este é um artigo sobre Linux, então naturalmente não iremos dar muitos detalhes desta alternativa ;-)

No mundo Linux também é possível escolher mais de um caminho, e vamos ver alguns deles. Claro que não temos pretensão de esgotar o assunto, e nem poderíamos; ao final do texto, é apresentada uma coleção de links para outras fontes de informação.

Os pontos em comum

Não importa qual o método que você escolher, será necessário configurar sua rede local normalmente. Este ponto não será coberto neste artigo - configure cada um dos micros normalmente. Mas a não ser que você tenha alguma razão para agir de forma diferente, siga as seguintes dicas:

- Use endereços IP estáticos, na faixa 192.168.1.X, onde X é um número entre 1 e 254, para todos os micros. O micro que tem a conexão à Internet também vai receber um endereço desta faixa na sua segunda placa de rede (a eth1).

Use a máscara de rede 255.255.255.0.

- Configure o endereço dos servidores DNS do seu provedor em todos os micros da rede.

- Informe a todos os micros da rede local que o seu gateway padrão ou sua rota default é o endereço IP da placa eth1 do micro que tem a conexão.

Siga os passos acima usando as ferramentas providas pelo seu sistemna operacional, seguindo as instruções providas na documentação do mesmo. De modo geral esta operação é trivial e pode ser feita facilmente não importando se os micros rodam Windows, Linux ou mesmo se são Macs. As imagens abaixo mostram as telas de configuração em um PC com o SuSE Linux 8.2, cujo endereço IP vai ser 192.168.1.1 e que irá se conectar à Internet através de outro PC com Linux cujo endereço IP é 192.168.1.6:


Fig. 3. O IP deste micro com o SuSE Linux será 192.168.1.1, e ele irá tentar acessar a Internet através da conexão disponibilizada pelo micro cujo IP é o 192.168.1.6


Configurando o micro com acesso à Internet

Este é o ponto crucial de sua conexão. O micro com duas placas de rede é que faz o encaminhamento do tráfego entre a sua rede local e a Internet, realizando uma operação de troca de endereçamento que pode se chamar NAT ou Masquerading, dependendo do contexto.

A forma de configurar esta operação varia de acordo com a distribuição de Linux adotada, mas o pré-requisito é que as duas placas de rede já estejam adequadamente configuradas e em operação. Assim, antes de prosseguir configure o micro de tal forma que você consiga acessar normalmente a Internet nele (seguindo sempre as instruções do seu provedor), e que você possa também acessar (ou no mínimo obter retorno através do comando ping) os micros da rede local. Naturalmente o acesso à Internet ocorrerá através da primeira placa de rede (chamada de eth0), enquanto o acesso à rede local ocorrerá através da segunda placa (a eth1)

Veremos agora como configurar as diversas distribuições de Linux.


- SuSE 8.2 (por Augusto Campos)


- Red Hat e similares (por ANIMAL)


- Slackware (1) (por Angelo Fernando Probst)



- Slackware (2) (por Ranieri Oliveira e Ronaldo Oliveira Soares)


- Slackware (3) (por Nenhum_de_Nós)


- Kurumin (por Carlos E. Morimoto)


- Smoothwall (por Antonio Luis Ribeiro)



- Via shell (por Augusto Campos)


- Apêndice: scripts de exemplo (enviados por Daniel Oliveira Nascimento)

(Se a sua distribuição favorita não está na lista, estamos esperando a sua contribuição!)







a) Configurando o SuSE 8.2 para compartilhar a conexão


    Se você instalar o SuSE Linux 8.2 no micro com conexão à Internet, poderá usar este micro para suas tarefas normais com o Linux ao mesmo tempo em que ele opera como um roteador para interligar o restante da sua rede local à Internet.

    Se você está certo de que o micro está conseguindo se comunicar tanto com as máquinas da rede local quanto com a Internet, ativar a operação de compartilhamento da conexão é muito simples, e pode ser feito em dois passos. Vamos ver apenas o mínimo necessário para compartilhar a conexão, embora a ferramenta de configuração permita vários outros itens avançados. Conte com a documentação do SuSE Linux para saber usar os demais recursos.

    Passo 1: Abra o Centro de Controle YaST2 e selecione o ícone Firewall, como na figura abaixo:


    O módulo de configuração do Firewall no SuSE 8.2


    Passo 2: seguir o assistente de configuração simplificada da firewall do SuSE 8.2, que tem 4 telas. Na primeira devemos identificar qual a placa de rede externa (a que conecta à Internet) e qual a interna (conectada à rede local). Geralmente isso significa respectivamente eth0 e eth1, mas em alguns casos de conexão ADSL (quando é necessário usar o PPPoE localmente) a interface externa será chamada de ppp0.


    Definindo qual a placa da Internet e qual a da rede local


    Na segunda tela definimos se o seu micro deverá ser servidor de rede. De modo geral, você não vai querer que seu servidor de conexão possa ser usado também como servidor web, ou de correio eletrônico, ou outro qualquer, pelos usuários da Internet, certo? Portanto, pode deixar tudo em branco sem medo:


    Nosso micro definitivamente não será um servidor - tudo em branco!


    A terceira tela oferece algumas opções avançadas, das quais apenas uma é crucial para o compartilhamento de Internet: "Encaminhar tráfego e mascarar". Esta é justamente a opção que ativa o tráfego entre a rede local e a Internet:


    Aqui ativamos efetivamente o compartilhamento da rede


    A quarta e última tela tem opções sobre como o sistema irá registrar em seus arquivos de log as conexões suspeitas que detectar - sugiro manter a configuração default, que registra apenas pacotes críticos. Confirme a operação, e o seu sistema se transformará instantaneamente em um roteador - não é necessário fazer reboot, e nem fechar nenhum aplicativo que você queira usar - se você tiver configurado os outros micros da rede conforme explicado acima, eles poderão navegar na Internet imediatamente.















b) Red Hat e Conectiva (e talvez Mandrake)


    Esta dica foi enviada pelo ANIMAL (rortiz@horizon.com.br), e funciona no Red Hat e distribuições derivadas (que usem o arquivo sysctl.conf).

    Altere a 1° linha do arquivo sysctl.conf para ativar o roteamento:

    /etc/sysctl.conf:



    ip_forward = 0 altere para 1



    vai ficar assim:


    ip_forward = 1


    Carregue os módulos de nat:

    modprobe iptable_nat (esse é o módulo básico para nat).

    Se quiser ftp no seu nat execute também estas linhas:


    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp


    Agora vamos redirecionar os pacotes com esta linha do iptables. Nosso exemplo é para uma conexão speedy...se for outro tipo de conexão alterar....ou eth0 ou eth1...


    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE



    Está pronto seu script de compartilhamento














c) Mandrake

Esta seção está aguardando um colaborador que a adote. Se você quiser escrever como configurar o compartilhamento de conexão (NAT/Masquerading) usando as ferramentas específicas da versão oficial mais recente desta distribuição, entre em contato através do e-mail brain@matrix.com.br.








d) Slackware (dica 1)


    Colaboração do Angelo Fernando Probst - suldorio@bol.com.br - 07/2003

    Olá a todos. Chamo-me Angelo, sou graduando de Engenharia de Computação


    e trabalho no desenvolvimento de aplicações que "rodam" em Linux embarcado. Sou linuxer desde 2000 e o site Linux in Brazil me ajudou muito desde então. Na empresa em que trabalho, usamos o SuSE Linux 8.1, mas sou um fanático pelo Slackware e é sobre esta distribuição que pretendo dar minha colaboração.

    Apesar do apelo por soluções gráficas, é praticamente impossível se falar em configuração no Slack sem a edição direta de arquivos de script. E é por esse motivo que gosto tanto desta distro: o usuário sabe exatamente o que está sendo feito "por detrás dos panos".

    Então, pretendo colaborar apenas acrescentando algumas informações ao que foi dito sobre a configuração direta através do comando iptables.

    Vamos considerar a rede suposta no artigo. Três linhas foram necessárias para configurar o compartilhamento.


    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -P POSTROUTING DROP
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE


    Mas essa não é a única forma de se fazer isto. Além disso, desde a versão 8, o Slackware já inclui a primeira linha (echo 1 > /proc/sys/net/ipv4/ip_forward) no script


    /etc/rc.d/rc.inet2, caso os pacotes de rede tenham sido instalados. Porém, a "re-execução" desta linha não implica em nenhum problema.

    A outra forma: (considerando que os pacotes de rede foram instalados - o que é óbvio, senão você não estaria configurando isto - e que a primeira linha já foi

    incluída no arquivo /etc/rc.d/rc.inet2)


    iptables -t nat -P POSTROUTING DROP
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -A FORWARD -i eth1 -j ACCEPT


    Caso este "gateway" tenha mais de uma sub-rede pendurada nele, todas terão acesso ao compartilhamento sem precisar acrescentar a faixa de IP's de cada uma delas. Basta acrescentar uma cópia da última linha e trocar a interface (eth1) pela interface da outra rede.

    E se a conexão com a internet for discada? Ou seja, se o meu gateway se conecta a internet através de um modem, discando por uma linha telefônica convencional? É simples. É só trocar a interface (eth0) da segunda linha por ppp0. [nota do Augusto: essa troca também pode ser necessária em algumas modalidades de AD] Ficaria assim:


    iptables -t nat -P POSTROUTING DROP
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    iptables -A FORWARD -i eth1 -j ACCEPT


    E nas máquinas clientes?

    Na configuração da rede das máquinas clientes tem um campo para se colocar o IP do gateway. Deve-se preender este campo com o IP da máquina que compartilha a internet (IP da rede interna). Além disso, o DNS deve ser o mesmo preenchido na configuração da rede externa. Estas duas informações são válidas para qualquer sistema operacional que esteja sendo utilizado nas máquinas clientes.



    Para que esta configuração se torne permanente, é necessário que se acrescente estas linhas em algum arquivo de inicialização do sistema. Eu sugiro que se verifique se existe o arquivo /etc/rc.d/rc.inet2 e se confirme que no mesmo a primeira linha (echo 1 > /proc/sys/net/ipv4/ip_forward) já exista. Caso confirmado, basta acrescentar as outras linhas ao final do arquivo. Ou então, acrescentar todas as linhas (de apenas uma das duas alternativas apresentadas) no arquivo /etc/rc.d/rc.local.

    Como já foi dito no artigo, esta configuração é válida apenas para sistemas com o kernel 2.4.x em diante. Mas se alguém está procurando informações de como fazer isto em versões mais antigas (2.2.x ou 2.0.x), pode encontrá-las no link http://tlm.conectiva.com.br/compart_internet_linux/.

    Espero poder ter ajudado e poder ajudar no futuro. Meu e-mail para contato é suldorio@bol.com.br












e) Slackware 9.0 (dica 2)


    Colaboração de Ranieri M. Oliveira (ranieri.oliveira@terra.com.br) e Ronaldo Oliveira Soares (tudenski@terra.com.br), de Taboão da Serra - SP. 07/2003

    Vou descrever uma maneira bem simples, porém, muito funcional que me ajudou a compartilhar a internet (adsl-speedy 256K) de uma forma que ficasse com a conexão rápida para todos.

    Todo o compartilhamento é feito com apenas uma regra de iptables (verifique se você está com o iptables instalado), para fazer a regra da forma correta, precisamos ter em mãos alguns dados da rede (sub-net da rede, máscara da rede e o ip da internet), no meu caso as configurações são as seguintes:


    Sub-net da rede: 192.168.1.0
    Máscara da rede: 255.255.255.0
    Ip da internet: 200.xxx.xxx.xxx


    OBS: Substitua as configurações acima pelas suas configurações.

    A regra deve ser aplicada da seguinte forma:

    iptables -t nat -A POSTROUTING -s SUB-NET_DA_REDE/MÁSCARA_DA_REDE -d 0/0 -j SNAT --to IP_DA_INTERNET

    Então, no meu caso a regra ficaria da seguinte forma (basta digitar no terminal):

    iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 0/0 -j SNAT --to 200.xxx.xxx.xxx

    Agora basta configurar os demais micros da rede para que usem como gateway o micro que está com a internet compartilhada e configurar o endereço do servidor de dns.

    No meu caso o micro que está com a internet compartilhada é o 192.168.1.1, bastando nos outros micros configurar como gateway o 192.168.0.1 com o netconfig e colocando os endereços ip dos servidores de DNS também com o netconfig ou qualquer outra ferramenta de sua preferência e pronto, todos já estão com a internet funcionando.

    OBS: Quando você reiniciar o computador, está regra será perdida, e você terá que digitar novamente, se sua conexão for do tipo speedy-business (ip-fixo), basta você colocar a regra no arquivo /etc/rc.d/rc.local para que seja feito toda vez que o micro for reiniciado. Use o editor de texto de sua preferência para editar o /etc/rc.d/rc.local ( no meu caso o vim ).

    #vim /etc/rc.d/rc.local

    Vá até o final do arquivo, precione a tecla "i" (sem aspas) para entrar no modo de inserir texto e em uma nova linha coloque a regra.

    iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 0/0 -j SNAT --to 200.xxx.xxx.xxx

    Pressione a tecla ESC para sair do modo de inserir texto.

    Para salvar e sair faça o ":" seguido das letras "wq" e do sinal de exclamação "!" para que fique da seguinte forma:

    :wq!

    e pressione ENTER. Pronto.

    Caso sua internet seja ip-dinâmico, você pode criar um script para automatizar isso, mas para facilitar sua vida, eu já criei um, salve o conteudo do script abaixo em um novo arquivo em /etc/rc.d/rc.comp_internet


      #!/bin/bash
      #
      # script para automatizar o compartilhamento
      # da internet com ip dinâmico
      #
      # Criado Por Ranieri M. Oliveira ranieri.oliveira@terra.com.br

      #Guarda o número ip da conexão ppp0 na variável IP

      IP=`ifconfig ppp0 | grep inet | cut -d: -f2 | cut -dP -f1`

      #Executa a regra de iptables com o endereço ip obtido na variável IP

      `iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 0/0 -j SNAT --to $IP`

      # Troque o endereço da sub-net pelo endereço da

      # sua rede

      # Fim do script



    Agora precisamos dar permissão de execução no arquivo criado, para isso, faça:

    #chmod +x /etc/rc.d/rc.comp_internet

    Agora basta inserir no final do arquivo /etc/rc.d/rc.local a seguinte linha para que sempre que o computador for reiniciado ele execute o rc.comp_internet e compartilhe a conexão:

    . /etc/rc.d/rc.comp_internet

    Para que o script rc.comp_internet funcione, é nessário que a conexão já esteja estabelecida antes do script ser executado, se você usa o adsl-start para iniciar sua conexão, você pode inserir esta linha antes da linha 9, para que a conexão seja feita antes de executar os comando de captura do ip e compartilhamento da internet, para isso, coloque antes da linha 9 a seguinte linha:

    adsl-start

    Para que fique da seguinte forma


    #Guarda o número ip da conexão ppp0 na variável IP
    adsl-start
    IP=`ifconfig ppp0 | grep inet | cut -d: -f2 | cut -dP -f1`


    O restante do script continua o mesmo.

    Agora basta iniciar o script pela primeira vez, para que comece a funcionar.

    #. /etc/rc.d/rc.comp_internet

    Pronto, se você seguiu direitinho o tutorial sua internet já está compartilhada.



    Autores desta dica:



    Ranieri M. Oliveira
    Taboão da Serra - SP
    ranieri.oliveira@terra.com.br

    Ronaldo Oliveira Soares

    Taboão da Serra - SP

    tudenski@terra.com.br


















e) Slackware (dica 3)


    A dica abaixo foi enviada pelo leitor Nenhum_de_Nos (matheusber@yahoo.com.br)

    Bem, vejamos agora como fazer um compartilhamento de conexão com a

    internet, tendo clientes e/ou servidor usando Slackware GNU\Linux.

    Como no Slackware não se tem um configurador geral do sistema, existem

    alguns específicos, o que se vai fazer é configurar de fato o


    compartilhamento e deixar estes ajustes em arquivos do sistema para que

    sempre que se ligue o servidor/cliente ele faça o que for preciso para que

    isso sempre esteja ligado.

    - O que é preciso ?

    Para termos o NAT/Masquerading, temos que ter suporte a isso no kernel,

    coisa que é explicada em Manuais e Documentação à parte, e não falaremos

    aqui. Mas que deve ser conferido antes de passar desta parte.

    - O que deve ser feito ?

    Uma vez o kernel configurado, o que resta fazer é coletar informações

    sobre a rede local ( endereços de rede, placas ... ) e de posse disso se

    começa a inserir regras via iptables ( www.iptables.org ).

    Considerando que se tem duas placas de Rede no servidor, eth0 e eth1,

    ponto com a internet e ponto com a rede local respectivamente, o que vamos

    fazer é mandar o que vem de eth1 com destino à internet para sair por

    eth0, mas sair de uma forma que pra quem ve este pacote externamente, ele


    veio de eth0 ;)

    Como temos isso explicado e bem explicado no item "Configurando através da

    linha de comando"
    , o que é necessário para ser feito no slackware/servidor

    é colocar estes comandos em um script de inicialização. Como eu não tenho

    um servidor muito requisitado e quem depende dele não é nada mais que um

    outro computador também caseiro então coloco as regras no arquivo de

    configurações locais do Slackware, /etc/rc.d/rc.local. Nada impede que se


    crie um outro arquivo, digamos um /etc/rc.d/rc.firewall e faça tudo lá,

    e colocá-lo no /etc/rc.d/rc.M logo depois da inialização da rede. Mas isso

    fica a cargo do gosto/necessidade de cada um :)

    Para um cliente, só é preciso que ele tenha a rede devidamente

    configurada, que seu gateway seja o servidor Slackware e que ele tenha

    como servidor DNS o DNS do seu provedor. Detalhe que não há necessidade de

    se o servidor for Slackware, o cliente também ser Slackware, e vice-versa

    :)

    Observações:

    - Lembre-se de ver qual o caso de NAT que se precisa, é tratado diferente

    dividir conexão discada, cabo e via rádio.

    - Há mais modulos a serem carregados, que só são usados em casos

    específicos.

    - Qualquer dúvida, Google.com, iptables.org e as paginas de HowTo's

    - Qualquer duvida sobre o Slackware, visitem a pagina do GUS-BR (

    gus-br.linuxmag.com.br )

    Autor: Nenhum_de_Nos ( matheusber@yahoo.com.br )




















f) Debian

Esta seção está aguardando um colaborador que a adote. Se você quiser escrever como configurar o compartilhamento de conexão (NAT/Masquerading) usando as ferramentas específicas da versão oficial mais recente desta distribuição, entre em contato através do e-mail brain@matrix.com.br.








g) Kurumin


    Contribuído por Carlos E. Morimoto, o autor do Kurumin:

    1- Conecte-se à internet.

    2- Configure a sua rede local no Iniciar > Configuração do Sistema > Configurar Rede

    3- Clique no Iniciar > Configuração do sistema > Compartilhar Conexão e Firewall > Compartilhar conexão via modem ou ADSL PPPoE (ou conpartilhar conexão na ETH0, dependendo do tipo de acesso que utiliza)

    4- Clique no Iniciar > Configuração do Sistema > Compartilhar Conexão e Firewall > Ativar Kurumin Firewall

    :-P







h) LRP

Esta seção está aguardando um colaborador que a adote. Se você quiser escrever como configurar o compartilhamento de conexão (NAT/Masquerading) usando as ferramentas específicas da versão oficial mais recente desta distribuição, entre em contato através do e-mail brain@matrix.com.br.

i) Coyote

Esta seção está aguardando um colaborador que a adote. Se você quiser escrever como configurar o compartilhamento de conexão (NAT/Masquerading) usando as ferramentas específicas da versão oficial mais recente desta distribuição, entre em contato através do e-mail brain@matrix.com.br.




j)Como configurar o SmoothWall para ADSL

O tutorial abaixo foi enviado pelo Antônio Luis Ribeiro, e explica como usar o Linux Smoothwall ou o IPCop para transformar um PC com 2 placas de rede em um roteador dedicado de baixo custo para uma rede de computadores com Windows.


    por Antônio Luis Ribeiro (ribeiro@ieav.cta.br ou al_ribeiro@uol.com.br)

    Observação: Este Procedimento vale também para o IPCOP [www.ipcop.org]

    Características:


    - Firewall


    - NAT



    - Proxy Transparente(squid)


    - Detecção de Intruso(snort)


    - Interface de Controle via WEB


    - Servidor de DHCP


    - Suporte a ISDN, ADSL USB, PPPoE

    1. Material Necessário

    1.1.Software


    - SmoothWall 1.0 GPL (www.smoothwall.org)

    1.2.Hardware


    - Um Computador DX4 100 (ou superior), 32 RAM, disco maior ou igual a 500 Mb.


    - Duas Placas de Rede

    Obs.: recomendo 3Com/Intel. Pode ser a RTL8139C para no máximo 20 estações de trabalho. A RTL8139D não se comportou bem nos nossos testes.

    1.3.Outros


    - Gravador CDRW para gerar o CD do SmoothWall.



    - Driver de CDROM usado para instalar o SmoothWall (temporário).


    - Programa WinSCP para transferência de arquivos entre o Firewall

    e a estação. [http://winscp.vse.cz/eng/download.php]


    - Programa Putty para efetuar acesso seguro ao Firewall. [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html]


    - Uma estação com Windows com a placa de rede configurada.

    Obs.:não coloque o endereço IP deixe a opção pegar automáticamente

    ativada.

    1.4.Serviços


    - Speedy Home ou Business no caso de São Paulo (Obs.: No caso de Speedy Business você vai precisar do endereço IP do seu "GATEWAY" e do servidor de "DNS".)


    - Assinatura de um Provedor

    Obs.: O SmoothWall tem suporte ao PPPoE e quanto a nova autenticação

    imposta aos usuários "Business" você terá que efetuar somente uma

    vez, através de uma estação Windows (explico no PASSO 12 B).

    2.Montar o Firewall

    Com o CD do SmoothWal nas mãos o Servidor com as duas placas de rede

    e o driver de CDROM instalados, vamos dar inicío ao processo de instalação

    e configuração.

    O SmoothWall chama a placa da LAN de (GREEN) e da INTERNET (RED), ou seja, a sua [eth0] é a GREEN e a [ETH1] a RED. A definição de eth0 e eth1 é

    definida pelo número do slot PCI da placa mãe é só procurar que você

    irá encontrar essa numeração do lado do slot, tipo PCIA, PCIB, PCIC etc.

    Abaixo temos dois exemplos de configuração, na coluna A, todos os slot's


    estão preenchidos e na B somente os dois últimos slot's.


    slot - A - B
    PCIA - eth0 - sem placa de rede
    PCIB - eth1 - eth0
    PCIC - eth2 - eth1


    Geralmente olhando o computador aberto com a fonte do seu lado direito

    o slot PCI de numero um (eth0) é o que fica mais próximo da fonte.

    Sendo assim identifique as placas para tornar a sua vida mais

    fácil a frente.



    LAN -> GREEN -> Rede Interna
    ADSL -> RED -> Modem ADSL


    2.1.Instalar

    IMPORTANTE: TODO O CONTEÚDO DO DISCO SERÁ APAGADO

    PASSO 1: INSTALAÇÃO


    - Ligue o servidor e configure o "Setup" para efetuar "Boot" pelo driver de

    CDROM.


    - Coloque o CD do SmoothWall no driver de CDROM e de um novo "Boot".



    - Irá aparecer a tela de informções do SmoothWall.


    - Caso esteja de acordo com o que está escrito tecle [ENTER].

    PASSO 2: SELEÇÃO DO IDIOMA


    - Escolha o idioma que preferir para efetuar a instalação.

    Você vai ficar muito alegre pois o Português do Brasil vai estar lá.


    - Use a tecla [TAB] para navegar e [SPACEBAR] ou [ENTER] para selecionar.

    PASSO 3: TELA DE BEM-VINDO



    - Tecle [SPACEBAR] ou [ENTER] para ir para próxima tela.

    PASSO 4: SELEÇÃO DA MÍDIA


    - Use a tecla [TAB] para navegar e [SPACEBAR] ou [ENTER] para selecionar.


    - Escolha CDROM.

    PASSO 5: PREPARAÇÃO DO DISCO

    **** ALERTA **** O Conteúdo do disco e totalmente apagado.


    - Este passo é totalmente automático.

    PASSO 6: CONFIGURAÇÃO BÁSICA DE REDE


    - Selecione "PROBE" para identificar a ETH0 (GREEN).


    - Se você seguiu o meu conselho quanto a placa de rede esse processo

    será fácil.


    - Para configurar manualmente leia o manual de instalação (http://www.smoothwall.org/download/pdf/docs/0.9.9/doc.userguide.print.pdf)


    - Entre com o endereço IP da sua LAN. Exemplo: IP 192.168.0.1, MASK 255.255.255.0

    PASSO 7: CONFIGURAÇÃO HTTP


    - Esse passo só é necessário para quem está fazendo a instalação via


    HTTP escolhida no PASSO 4.


    - Vá para o próximo passo.

    PASSO 8: INSTALAÇÃO DO SMOOTHWALL


    - Caso o processo de instalação pare na tela criando "root" é porque

    o programa de instalação não consegue em algumas marcas de HD criar

    as partições do "Zero". Solução: Faça na estação Windows um disco de boot, coloque nele o fdisk e crie uma partição usando o disco todo, volte ao PASSO 1.

    PASSO 9: CONFIGURAÇÕES BÁSICAS DO SISTEMA



    - Use a tecla [TAB] para navegar e [SPACEBAR] ou [ENTER] para selecionar.


    - Escolha o mapa do teclado.


    - Escolha "Time Zone".


    - Escolha o nome para o seu Servidor.

    PASSO 10: ISDN


    - Escolha "Disable" ou seja desabilite essa configuração.

    PASSO 11: USB ADSL


    - Escolha "Disable" ou seja desabilite essa configuração.



    - Caso tenha um ADSL USB, leia o manual.

    http://www.smoothwall.org/download/pdf/docs/0.9.9/doc.userguide.print.pdf

    PASSO 12: CONFIGURAÇÃO DA REDE


    - Por "default" vem configurado GREEN+ORANGE+RED.


    - Mude para GREEN+RED.


    - Não se esqueça que a GREEN já foi configurada no PASSO 6.


    - Configure a RED.

    PASSO 12 A: PPPoE



    - Para Speedy Home selecione no menu o item "PPPOE".


    - O nome e a senha você irá colocar mais tarde.


    - Não precisa configurar DNS e GATEWAY.

    PASSO 12 B: ENDEREÇO ESTÁTICO OU DHCP


    - Escolha de acordo com o seu ADSL instalado.


    - Caso seja estático você deverá ter o endereço IP, GATEWAY e DNS.

    Observações: Em alguns casos chegamos a pegar um Speedy Business que no Windows funcionava via DHCP e que no SmoothWall não foi possível, basta pegar os endereços.

    Caso, o seu Speedy Business tenha que efetuar autenticação, faça o seguinte:


    - Após ter configurado o SmoothWall siga para a estação Windows e tente navegar,

    ao fazer isso será redirecionado para a página de autenticação do Speedy é

    só preencher o formulário e pronto.

    Pela nossa experiência isso foi necessário somente uma única vez.

    Não foi possível usar o script que tem na internet (Autor : Edison Figueira Junior - efigueira@brc.com.br; Mantenedor: BRconnection - http://www.brc.com.br; o link que tenho no meu Bookmark é esse: http://200.204.182.49/ufla/guiaz/speedy.txt) pois o SmoothWall não tem o "LYNX" que é utilizado nesse script. Caso alguém queira efetuar o trabalho de compilar o LYNX para o SmoothWall ficaríamos agradecidos.

    PASSO 12 C: SERVIDOR DE DHCP



    - Habilite o servidor de DHCP.


    - Configure de acordo com o número de estações que tiver.

    PASSO 13: SENHAS


    - Coloque a senha para o "root". [acesso ao console do servidor]


    - Coloque a senha para o "setup". [acesso ao programa de configuração]


    - Coloque a senha para o "admin". [acesso a interface WEB]

    Após efetuar essa configuração o SmoothWall será "reinicializado" e toda

    a configuração posterior será feita via interface web.



    - https://IP_GREEN:445 - porta segura


    - http://IP_GREEN:81 - porta insegura

    Observação: IP_GREEN -> IP que você colocou no PASSO 6.


    - https://192.168.0.1:445


    - http://192.168.0.1:81

    PASSO 14: INTERFACE WEB

    Siga para a estação Windows, e caso ela esteja ligada efetue um "reboot" para

    que a mesma "pegue" um endereço IP do SmoothWall para proceder nas configurações via interface web.

    PASSO 14 A: PPPoE(Speedy Home)


    - Direcione o seu browser para o servidor.

    https://192.168.0.1:445


    - De um clique no link "dialup".


    - Coloque o usuário e a senha na tela.

    usuário: admin

    senha : definida no PASSO 13



    - Na nova tela selecione "configurações ppp".


    - Coloque um nome na caixa "Nome do Perfil".

    exemplo: PROV_UOL


    - Na caixa "Interface" escolha "PPPoE".


    - Coloque zero(0) em "Tempo de ociosidade".


    - Marque os itens: "Conexão persistente" e "Reiniciar conexão no Smoothwall".


    - Em autenticação coloque o nome e a senha do seu provedor.


    - Deixe a caixa "Método" em "PAP ou CHAP".



    - Clique em salvar, vá para o link "home" e clique em "Conectar".

    Se tudo estiver de acordo irá aparecer "Conectado" com o nome do perfil

    escolhido.

    PASSO 15: Configurações Adicionais


    - Direcione o seu browser para o servidor.

    https://192.168.0.1:445


    - De um clique no link "remote access".



    - Coloque o usuário e a senha na tela.

    usuário: admin

    senha : PASSO 13


    - Nessa tela de um clique em "ssh" e habilite a opção SSH.


    - Salve.


    - De um clique em "services".


    - Nessa tela de um clique em "proxy web" e habilite as opções:

    "Transparente" e "Enabled"



    - Salve.


    - Para outras configurações consulte o Manual.

    http://www.smoothwall.org/download/pdf/docs/0.9.9/doc.config.print.pdf

    Contato sobre a configuração do SmoothWall:



    Antonio Luis Ribeiro

    São José dos Campos - SP - Brasil

    Rodovia dos Tamoios Km 5,5 - CEP 12231-970

    Tel.:+55(12)3947-5437 FAX: +55(12)3944-1177


    EMail ribeiro@ieav.cta.br ou al_ribeiro@uol.com.br










z) Configurando através da linha de comando

Talvez você prefira fazer as coisas do jeito difícil, ou talvez você esteja usando uma distribuição de Linux sem um mínimo de facilidades disponíveis para o administrador. De qualquer forma, para ativar o compartilhamento de Internet nas distribuições mais recentes de Linux (baseadas no kernel 2.4), considerando que você tenha suporte ao iptables (esta costuma ser a configuração default) e que tenha o conjunto mínimo de utilitários, basta emitir 3 comandos:


echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o lo -d 127.0.0.0/8 -j ACCEPT
iptables -t nat -P POSTROUTING DROP
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE


As linhas acima devem funcionar sem alteração se você usou nossa sugestão de endereçamento para a rede local - se você usa outro padrão, mude o "192.168.1.0" da terceira linha para adequar-se à sua situação. Da mesma forma, mude o "eth0" da terceira linha se a sua placa de rede com acesso à Internet for outra.

Claro que antes de emitir estes comandos você deve garantir que ambas as placas de rede do seu computador estejam corretamente configuradas e acessando suas respectivas redes. E nada de reboots! O efeito destes comandos dura apenas até a máquina ser desligada. Se você quiser que eles tenham efeitos permanentes, inclua-os em um script de inicialização da sua máquina, conforme as instruções específicas da sua distribuição.




Conclusão

Espero ter demonstrado que configurar o compartilhamento da Internet no Linux não é tão complicado quanto dizem, e ajudado você a ter acesso à Internet de forma econômica e confiável.

Se você tiver alguma correção ou complemento a este documento, contate o autor/organizador através do e-mail brain@matrix.com.br. Se for uma dúvida referente a uma área específica do documento, contate o autor da seção que gerou a dúvida através do e-mail fornecido nela.

E se você tiver dúvidas, não hesite em tirá-las no nosso fórum.

Licença

Este documento é disponibilizado obedecendo aos termos da licença GNU FDL conforme exposta no site da Free Software Foundation. Os nomes e endereços de e-mail dos autores e colaboradores devem ser tratados como seções invariantes nos termos da mesma licença.




Apêndices:



O Daniel Oliveira Nascimento (don@dcc.ufmg.br) mandou alguns comentários que foram incorporados ao texto, além dos dois scripts que reproduzo abaixo (ele não deu informações sobre a autoria ou a licença dos mesmos):

Script de inicialização usado no Debian/Kurumin para compartilhar a Internet durante o boot:





    #!/bin/sh

    set -e

    AUTH=/sbin/velox.sh

    case "$1" in

    stop)

    /sbin/iptables --flush

    /sbin/iptables --table nat --flush

    /sbin/iptables --delete-chain


    /sbin/iptables --table nat --delete-chain

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

    ;;

    start)

    echo "Autenticando ..."

    $AUTH


    echo "."

    # mude ppp0 para a interface de saida

    /sbin/iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE

    # mude eth0 para a interface de entrada

    /sbin/iptables --append FORWARD --in-interface eth0 -j ACCEPT

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


    # roteia ftp

    /sbin/modprobe ip_conntrack_ftp

    /sbin/modprobe ip_nat_ftp

    # evita ataques com o comando ping

    /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

    # repele ataques do tipo ping da morte


    /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

    # evita ataques do tipo syn-flood

    /sbin/iptables -A INPUT -p tcp -m limit --limit 1/s -j ACCEPT

    # limita varredura de portas avançadas

    /sbin/iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

    # precaução contra bugs de tradução nat


    /sbin/iptables -A OUTPUT -m state -p icmp --state INVALID -j DROP

    ;;

    status)

    cat /proc/sys/net/ipv4/ip_forward

    ;;

    *)


    echo "Usage: /etc/init.d/gateway {start|stop|status}\n" gateway #todo restart

    exit 1

    esac





velox.sh - autenticação para o Velox:





    #!/bin/sh


    #Inicio do conector Velox por Coffeeman <>#

    HOST='velox.telemar.com.br'

    LOGIN=''

    SENHA=''

    #altere o seu provedor, este j\x{00E1} esta para o terra.

    #Lista de provedores: SUPERIG, SEVEN, ITECINET, INTERNETT, INTERDOTNET

    #BR_TURBO, BRIDGE, ATT

    PROVEDOR='TERRAMG'

    lynx -source "http://$HOST/dashboard?fcn=accountLogonPrompt" > /dev/null

    lynx -source "http://$HOST/dashboard?fcn=viewService&service=internet_$PROVEDOR" > /dev/null

    lynx -source "http://$HOST/dashboard?fcn=serviceLogon&service=internet_$PROVEDOR&username=$LOGIN&password=$SENHA" > /dev/null








Comentários dos leitores

Os comentários abaixo são responsabilidade de seus autores e não são revisados ou aprovados pelo BR-Linux. Consulte os Termos de uso para informações adicionais. Esta notícia foi arquivada, não será possível incluir novos comentários.
Comentário de ricarab
Posso acrecentar?: Olá Augusto, gostaria de acrescentar um pouco á configuração da Suse por um motivo simples: quando migrei para esta distro a algum tempo apanhei para fazer a configuração manualmente!

aqui vão meus passos:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o dsl0 -j MASQUERADE
iptables -t filter -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Veja que a última linha costuma ser ignorada, e pelo menos no Suse você terá problemas ao se conectar sem essa configuração! Prefiro fazer a configuração usando o firewall própio da Suse, também manualmente, se achar interessante, posso postar minha configuração.

Forte abraço! Boa iniciativa! :)


A Física é tão subjetiva quanto qualquer outra empresa humana.
Albert Einstein
Comentário de rednaxel
Para pensar: Eu usei uma configuração assim durante anos. No entanto, analisando as contas de luz e vendo os preços atuais de um modem router, eu diria que hoje em dia não vale mais a pena. Mesmo que o consumo de CPU seja baixo, o consumo de energia elétrica não é. Além disso, um micro ligado o tempo todo está se aproximando de seu MTBF - há um desgaste natural.

Comentário de StanStyle
Switcher + Firewall + CABLE/x: Switcher + Firewall + CABLE/xDSL modem + VPN + Toradeira ;-)
http://www.linuxmall.com.br/index.php?product_id=1792
O problema é se queimar o modem!! :)
O modelo wireless também é legal e o preço não é um absurdo, aliás, está ai algo que poderia ser incrementado: Configurando uma rede doméstica sem fio (wireless) usando Linux.
Comentário de Tudenski
Compartilhando a conexao: Eu postei uma das dicas, "Compartilhando a conexao com Slackware" em 2003, nem imaginava que isso ainda existia. Eu queria lembrar que naquela epoca nao existia "ou se existia era muito caro" modens roteadores, temos hoje em dia uma linha da d-link a um bom custo, um 500G modem roteador faz tudo isso, e um outro equipamento que eu tabem acho muito legal e o DI-624+ que é um roteador wireless, que pode compartilhar a internet para algumas maquinas liganas nele mesmo ou voce pode ligar ele em um swith e compartilhar para outros micros e ainda ter o privilegio de uma conexao wireless muito util. Outro equipamento muito legal e o G604T da d-link tambem que e um modem adsl e swith de 5 portas ('4 ou 5 portas se nao me engano') e wireless embutido, e o mais legal de tudo e que esse equipamento usa linux.
Comentário de toti
Sobre a ultima linha: *SE NAO ESTOU ENGANADO* essa ultima linha faz com que o linux diminua o tamanho do pacote TCP. Alguns modems ADSL (na verdade só conheço o alcatel speedtouch em modo bridge) precisam disso para que a conexão funcione adequadamente.

[ ]'s
Comentário de Rodrigo Terra Vieira
SUSEFirewall: Me interessei por uma resposta sua, e gostaria de uma ajuda com a configuração do Susefirewall2. Como posso Configurar ele? Eu configurei e minha internet ficou lenta e não consigo usar o Outlook. E eu não tenho um servidor de DNS, como faço p/ usar o DNS do provedor?
Comentário de Rodrigo Terra Vieira
compartilhando internet com Suse: Olá Brain,

Usei seu artigo p/ fazer meu servidor de internet com Suse, mas eu não sei o q tem de errado na configuração do firewall! A internet está lenta e não da para usar o Outlook. Configurei o firewall assim:

O que tem de errado?

FW_QUICKMODE="no"

FW_DEV_EXT="eth-id-00:e0:7d:e6:a3:1f"

FW_DEV_INT=" eth-id-00:e0:7d:d2:21:1b eth-id-00:02:44:0d:c7:69 eth-id-00:e0:7d:d2:20:f8"

FW_DEV_DMZ=""

FW_ROUTE="yes"

FW_MASQUERADE="yes"

FW_MASQ_DEV="$FW_DEV_EXT"

FW_MASQ_NETS="0/0"

FW_PROTECT_FROM_INTERNAL="no"

FW_AUTOPROTECT_SERVICES="no"

FW_SERVICES_EXT_TCP=""

FW_SERVICES_EXT_UDP="" # Common: domain

FW_SERVICES_EXT_IP=""

FW_SERVICES_EXT_RPC=""

FW_SERVICES_DMZ_TCP=""

FW_SERVICES_DMZ_UDP=""

FW_SERVICES_DMZ_IP=""

FW_SERVICES_DMZ_RPC=""

FW_SERVICES_INT_TCP=""

FW_SERVICES_INT_UDP=""

FW_SERVICES_INT_IP=""

FW_SERVICES_INT_RPC=""

FW_SERVICES_QUICK_TCP=""

FW_SERVICES_QUICK_UDP=""

FW_SERVICES_QUICK_IP=""

FW_TRUSTED_NETS=""

FW_ALLOW_INCOMING_HIGHPORTS_TCP="no"

FW_ALLOW_INCOMING_HIGHPORTS_UDP="DNS"

FW_SERVICE_AUTODETECT="yes" # Autodetect the services below when starting

FW_SERVICE_DNS="no"

FW_SERVICE_DHCLIENT="no"

FW_SERVICE_DHCPD="no"

FW_SERVICE_SQUID="no"

FW_SERVICE_SAMBA="no"

FW_FORWARD="" # Beware to use this!

FW_FORWARD_MASQ="" # Beware to use this!

FW_REDIRECT=""

FW_LOG_DROP_CRIT="yes"

FW_LOG_DROP_ALL="no"

FW_LOG_ACCEPT_CRIT="yes"

FW_LOG_ACCEPT_ALL="no"

FW_LOG=""

FW_KERNEL_SECURITY="yes"

FW_ANTISPOOF="no"

FW_STOP_KEEP_ROUTING_STATE="no"

FW_ALLOW_PING_FW="yes"

FW_ALLOW_PING_DMZ="no"

FW_ALLOW_PING_EXT="no"

FW_ALLOW_FW_TRACEROUTE="yes"

FW_ALLOW_FW_SOURCEQUENCH="yes"

FW_ALLOW_FW_BROADCAST="int"

FW_IGNORE_FW_BROADCAST="no"

FW_ALLOW_CLASS_ROUTING="no"

FW_CUSTOMRULES=""

FW_REJECT="no"

FW_HTB_TUNE_DEV=""

FW_IPv6=""

FW_IPv6_REJECT_OUTGOING="yes"

FW_IPSEC_TRUST="no"

FW_IPSEC_MARK=""
BR-Linux.org
Linux® levado a sério desde 1996. Notícias, dicas e tutoriais em bom português sobre Linux e Código Aberto. "A página sobre software livre mais procurada no Brasil", segundo a Revista Isto É.
Expediente
Sobre o BR-Linux
Enviar notícia ou release
Contato, Termos de uso
FAQ, Newsletter, RSS
Banners e selos
Anunciar no BR-Linux
BR-Linux apóia
LinuxSecurity, Tempo Real
Suporte Livre, Drupal
Verdade Absoluta
Pandemonium
Efetividade, Floripa.net
sites da comunidade
Ajuda
Moderação
Flames: não responda!
Publicar seu texto
Computador para Todos
Notícias pré-2004
Tutoriais, HCL pré-2004