Compartilhando

Do ponto de vista da segurança e até mesmo da facilidade de configuração, é sempre recomendável usar um servidor com duas placas de rede, separando o tráfego proveniente da internet do tráfego da rede local. Com duas placas separadas, fica mais fácil criar as regras de firewall adequadas para bloquear acessos provenientes da internet e, ao mesmo tempo, permitir o tráfego vindo da rede local.

Se você acessa via ADSL, é recomendável manter o modem configurado como bridge ao invés de configurá-lo como roteador. Dessa forma, o servidor recebe todas as portas de entrada, permitindo que você acesse o servidor remotamente via SSH (muito útil para prestar suporte remoto em servidores instalados por você) ou disponibilize um servidor web ou FTP.

Embora acabe sendo mais trabalhoso, nada impede que você configure o modem como roteador e use o servidor para novamente compartilhar a conexão recebida do modem, acrescentando os demais serviços. Nestes casos, você vai precisar configurar o modem para direcionar ao servidor as portas que devem ficar abertas para a internet, como a porta 22, usada pelo SSH (caso você pretenda administrar o servidor remotamente), por exemplo, o que é configurado na interface de administração do modem.

Comece configurando a rede local, usando uma das faixas de endereços IP reservadas a redes locais, como, por exemplo, 192.168.0.x, onde o servidor fica com o IP 192.168.0.1 e os micros da rede interna recebem endereços IP seqüenciais, de 192.168.0.2 em diante. Não se esqueça de colocar o endereço IP do servidor (192.168.0.1 no exemplo) como gateway padrão na configuração dos clientes. A configuração de gateway padrão no servidor fica em branco, pois o gateway padrão do servidor vai ser definido ao configurar a conexão com a internet.

Verifique se é possível dar ping nos PCs da rede interna (ex: ping 192.168.0.2) a partir do servidor. Se estiver usando Linux nas estações, experimente ativar o servidor SSH em uma das estações e tentar se conectar a ela a partir do servidor.

Da primeira vez que configurar a rede, use endereços IP estáticos para todas as estações, pois assim é mais fácil detectar problemas diversos. Depois de tudo funcionando, mude para configuração via DHCP se preferir. Se alguma das estações estiver inacessível, verifique se não existe um firewall ativo, verifique o cabo, troque a porta usada no hub, etc.

Com a rede local funcionando, o próximo passo é conectar o servidor à internet. É preferível deixar para configurar a placa da internet depois da placa da rede local, pois isso evita alguns erros comuns. Por exemplo, se você configurar a conexão com a web e depois configurar a rede local, colocando um endereço qualquer no campo “default gateway”, o gateway informado na configuração da rede local vai substituir o gateway do provedor (definido ao conectar na internet), fazendo com que a conexão deixe de funcionar.

Rode o comando “ifconfig” para verificar qual é a Interface ligada à internet. Lembre-se de que ao conectar via ADSL com autenticação ou acesso discado, a interface eth0 ou eth1 é substituída pela interface virtual ppp0.

Em seguida, temos os comandos que compartilham a conexão. No Linux, o compartilhamento é feito usando o Iptables, o firewall integrado ao Kernel. Na verdade, o Iptables é expandido através de módulos, por isso suas funções vão muito além das de um firewall tradicional. Para ativar o compartilhamento, são necessários apenas três comandos:

# modprobe iptable_nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Substitua o “eth0” pela placa da internet. Este comando simplesmente compartilha a conexão proveniente da placa da internet com todas as demais placas de rede espetadas no servidor, por isso não é necessário especificar a placa de rede local.

O primeiro comando ativa o “iptable_nat“, o módulo do Iptables responsável por oferecer suporte ao roteamento de pacotes via NAT. O segundo ativa o “ip_forward“, o módulo responsável pelo encaminhamento de pacotes, utilizado pelo módulo iptable_nat.

Finalmente, o terceiro cria uma regra de roteamento, que orienta o servidor a direcionar para a internet todos os pacotes (recebidos dos clientes) que se destinarem a endereços que não façam parte da rede local (ou seja, qualquer coisa fora da faixa 192.168.0.x). A partir daí, o servidor passa a ser o gateway da rede.

Nem todas as distribuições instalam o executável do Iptables por padrão. No Mandriva, por exemplo, ele é instalado ao marcar a categoria “firewall” durante a instalação. Para instalá-lo posteriormente, use o comando “urpmi iptables“.

Em muitas distribuições com o Kernel 2.6, é necessário usar um quarto comando ao compartilhar uma conexão ADSL. Este comando ajusta os tamanhos dos pacotes recebidos do modem ao MTU usado na rede local. Note que, apesar da diagramação do livro quebrar o comando em duas linhas, trata-se de um único comando:

# iptables -A FORWARD -p tcp –tcp-flags SYN,RST SYN -m \
tcpmss –mss 1400:1536 -j TCPMSS –clamp-mss-to-pmtu

A barra invertida (“\”) faz com que o shell não interprete o caractere seguinte (no caso, a quebra de linha), permitindo quebrar o comando em duas linhas, sem causar um erro. Ele é um truque que permite incluir comandos longos demais para caberem na página, divididos em duas linhas ou mais. Na verdade, o comando forma uma única linha.

Adicione os comandos em um dos scripts de inicialização do sistema, para que eles sejam executados automaticamente durante o boot. No Debian e derivados, coloque-os no final do arquivo “/etc/init.d/bootmisc.sh“.No Fedora, Mandriva e outros derivados do Red Hat, use o arquivo “/etc/rc.d/rc.local“.

Esta receita é genérica, deve funcionar em qualquer distribuição. Lembre-se de substituir “eth0” no comando por “ppp0“, caso você conecte via ADSL com autenticação (PPPoE) e precise usar o pppoeconf ou o adsl-setup para estabelecer a conexão. Em caso de dúvida, cheque qual é a interface usando o comando “ifconfig”.

Uma segunda opção, mais elegante, porém mais complicada, é criar um serviço de sistema, que pode ser ativado e desativado. Neste caso, crie o arquivo de texto “/etc/init.d/compartilhar“. Dentro dele vão as linhas abaixo. Observe que, novamente, o comando para ajustar o MTU dos pacotes em conexões via ADSL forma uma única linha:

#!/bin/bash

iniciar(){
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp –tcp-flags SYN,RST SYN -m tcpmss –mss \
1400:1536 -j TCPMSS –clamp-mss-to-pmtu
}

parar(){
iptables -F -t nat
}

case “$1” in
“start”) iniciar ;;
“stop”) parar ;;
“restart”) parar; iniciar ;;
*) echo “Use os parâmetros start ou stop”
esac

Este é um shell script que aceita três funções: start, stop e restart, executando dentro de cada uma os comandos que compartilham e param o compartilhamento da conexão. Esta estrutura é similar à usada nos demais scripts de inicialização do sistema, como os do Apache, Samba, Squid e outros serviços.

Transforme-o em um arquivo executável, usando o comando:

# chmod +x /etc/init.d/compartilhar

A partir daí, você pode iniciar e parar o compartilhamento usando os comandos:

# /etc/init.d/compartilhar start
# /etc/init.d/compartilhar stop

Em muitas distribuições você pode usar o comando “service“, que simplifica o comando. Neste caso, você poderia digitar apenas “service compartilhar start”. Para que a conexão seja ativada durante o boot, adicione o comando “/etc/init.d/compartilhar start” dentro do arquivo “/etc/init.d/bootmisc.sh” ou “/etc/rc.d/rc.local”, de acordo com a distribuição usada.

Se preferir, você pode compartilhar usando uma das ferramentas disponíveis nas distribuições. No Kurumin use o “Iniciar > Internet > Compartilhar conexão e firewall > Compartilhar conexão via modem ou ADSL PPPoE”. No Mandriva você pode usar o DrakGw, encontrado na seção “Rede e Internet” do Mandriva Control Center.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X