Quando as conexões de banda larga
começaram a se tornar populares, por volta de 2000, compartilhar a
conexão se tornou uma dúvida comum, já que compartilhar uma conexão
ininterrupta faz muito mais sentido do que compartilhar a conexão via
modem. No começo, era muito comum serem usados PCs com o Windows 98 ou
2000, compartilhando a conexão através do ICS, ou micros antigos rodando
mini-distribuições Linux especializadas na tarefa, como o antigo
Coyote.
Hoje em dia, compartilhar a conexão deixou de ser um problema, já que
praticamente qualquer modem ADSL pode ser configurado como roteador,
sem falar dos pontos de acesso com funções de roteador e da enorme
variedade de servidores domésticos que temos no mercado.
Vamos então a um tutorial rápido de como compartilhar a conexão no
Linux, usando um PC com duas placas de rede, aproveitando para incluir
também alguns recursos adicionais no servidor, instalando também um
proxy transparente e um servidor DHCP. Este mesmo servidor pode ser
configurado também como um servidor de arquivos e impressoras para a
rede, assumindo também o papel de NAS.
Os passos a seguir podem ser usados em praticamente qualquer
distribuição, de forma que você pode usar a que tiver mais
familiaridade. Também não é necessário reservar um PC só para
compartilhar a conexão: você pode perfeitamente usar seu próprio micro,
ou outro que fique ligado continuamente.
Se você não se importar em fazer a configuração via linha de comando,
você pode utilizar um PC antigo, instalando a versão server do Ubuntu.
Ela está disponível no http://www.ubuntu.com/getubuntu/downloadmirrors, juntamente com a versão principal, mas é um pouco menor, com cerca de 500 MB.
Ao contrário da versão desktop, que carrega o ambiente gráfico por
padrão e precisa de um PC com pelo menos 256 MB de memória RAM para
rodar, a versão server usa um instalador simples, em modo texto (o mesmo
usado nas primeiras versões), e pode ser instalada mesmo em micros com
apenas 32 MB de memória RAM:
Esta versão instala apenas os pacotes
básicos, sem o ambiente gráfico, por isso o boot depois da instalação é
feito em modo texto. Logue-se usando a conta criada durante a instalação
e use o comando "sudo passwd" para definir a senha de root. A partir
daí você pode se logar diretamente como root, como em outras
distribuições:
$ sudo passwd
Inicialmente, o Ubuntu server vem apenas
com o vi instalado, que não é um editor de texto particularmente
amigável, mas, depois de fazer a configuração inicial da rede (editando o
arquivo "/etc/network/interfaces"), você pode instalar outro editor
mais amigável, como o mcedit (que faz parte do pacote "mc"), o "joe" ou o
"nano". Não importa muito qual editor resolva usar, o importante é que
você se sinta confortável com pelo menos um deles.
Um exemplo de arquivo "/etc/network/interfaces" configurado é:
# /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
O arquivo é dividido em duas partes. A
linha "auto ..." lista as interfaces que devem ser ativadas
automaticamente e as demais contém a configuração de cada uma. Para
configurar uma nova placa de rede, você adicionaria a configuração
relacionada a ela no final do arquivo e a adicionaria na linha "auto",
como em "auto lo eth0 eth1". Se, por outro lado, você quiser desativar
uma interface, precisa apenas removê-la da linha auto, não é preciso
remover as demais linhas.
A interface "lo" é a interface de
loopback, usada para a comunicação local entre diversos aplicativos e
componentes do sistema, por isso nunca deve ser desativada. Embora o uso
da interface de loopback pareça ser uma exclusividade do Linux, ela é
usada também no Windows; a única diferença é que no Windows ela não
aparece na configuração.
Em seguida temos a configuração de cada
interface, que vai em uma seção separada. No caso da interface lo é
usada uma única linha, "iface lo inet loopback", usada em qualquer
instalação, seguida pelas demais interfaces.
Como você pode ver, as últimas 5 linhas
na configuração da placa eth0 especificam o IP utilizado pelo PC e o
restante da configuração da rede, com exceção dos endereços dos
servidores DNS, que vão no arquivo "/etc/resolv.conf".
Se você quisesse que a interface fosse configurada via DHCP, poderia substituir as 6 linhas referentes a ela por:
iface eth0 inet dhcp
Ao configurar um servidor com duas placas de rede, onde a eth0 está ligada à rede local e a eth1 ao cable modem (obtendo o endereço via DHCP), por exemplo, o arquivo ficaria:
# /etc/network/interfaces
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
iface eth1 inet dhcp
Veja que nesse caso a configuração da interface eth0 não inclui o gateway, pois é a eth1 que será usada para acessar a web.
Depois de editar o arquivo, você pode aplicar as alterações reiniciando o serviço relacionado a ele:
# /etc/init.d/networking restart
Um problema comum que afeta versões do Debian, Ubuntu e distribuições baseadas neles é as interfaces mudarem de endereço a cada reset em micros com duas ou mais interfaces de rede. A placa eth0 passa então a ser a ath1 e assim por diante, o pode ser uma grande dor de cabeça ao configurar um servidor para compartilhar a conexão, já que se as duas interfaces mudam de posição, nada funciona.
A solução para o problema é um pequeno
utilitário chamado "ifrename", que permite fixar os devices utilizados
para as placas. Utilizá-lo é bem simples. Comece instalando o pacote via
apt-get:
# apt-get install ifrename
Crie o arquivo "/etc/iftab" e, dentro dele, relacione o device de cada interface com o endereço MAC correspondente, seguindo o modelo abaixo:
#/etc/iftab
eth0 mac 00:11:D8:76:59:2E
eth1 mac 00:E0:7D:9B:F8:01
eth0 mac 00:11:D8:76:59:2E
eth1 mac 00:E0:7D:9B:F8:01
Em caso de dúvida, use o comando "ifconfig -a" para ver a configuração atual das placas e o endereço MAC de cada uma. Uma vez criado, o arquivo é verificado a cada boot e a configuração se torna persistente, resolvendo o problema. Este bug das interfaces itinerantes afeta apenas algumas distribuições, por isso você não precisa se preocupar com ele até que perceba que está usando uma das afetadas.
O Ubuntu server vem com o servidor SSH
instalado por padrão, de forma que depois de configurar a rede, você
pode fazer todo o resto da configuração confortavelmente a partir do seu
micro. Uma dica é que ao utilizar o joe, o nano ou o vi (o mcedit não
suporta o uso do clipboard), você pode usar o botão central do mouse
para colar texto dentro do terminal, o que é muito útil quando você tem
um modelo de configuração pronto pra usar.
Post completo - GDH.