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 nohttp://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
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 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
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.