Quinto Passo de Criar um Servidor de Rede Ubuntu - Compartilhamento da Conexão
Autor: Software Livre | Publicado: 2011-08-10T19:11:00-07:00


Compartilhamento da conexãoSe você está usando um servidor com duas interfaces de rede, pode utilizá-lo também para compartilhar a conexão, adicionando também um proxy transparente com o Squid de forma a fazer cache dos arquivos e assim melhorar a velocidade da conexão.Depois de configuradas as duas interfaces de rede, você pode ativar o compartilhamento com a rede local usando os comandos abaixo. O segundo (echo ...) só pode ser executado diretamente como root, já que o sudo não permite escrever diretamente em arquivos de configuração usando o comando echo, por isso começamos usando o comando "sudo su" para nos logar diretamente na conta de root:$ sudo su# modprobe iptable_nat# echo 1 &gt; /proc/sys/net/ipv4/ip_forward# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADEO "eth1" no terceiro comando indica a placa onde está a conexão com a Internet. Não se esqueça de indicar a interface apropriada ao executar o comando (na dúvida você pode checar a configuração da rede usando o ifconfig). Se você acessa via ADSL, usando o pppoeconf ou o adsl-setup (com o modem configurado como bridge) será criada a interface "ppp0".A partir daí, todas as requisições recebidas na interface de rede local serão mascaradas e roteadas usando a interface especificada e as respostas serão devolvidas aos PCs da rede local.Os três comandos devem ser colocados em algum dos arquivos de inicialização do sistema para que passem a ser executados automaticamente durante o boot. No caso do Ubuntu e outras distribuições derivadas do Debian, você pode utilizar o arquivo "/etc/rc.local", colocando as linhas desejadas antes do "exit 0".Vamos aproveitar para incluir também regras para ativar um firewall simples, que bloqueie as portas de entrada na interface com a internet, deixando passar apenas pacotes de respostas e conexões em portas indicadas manualmente. Com isso, o firewall garante um bom nível de proteção, com um mínimo de efeitos colaterais.Para isso, utilizaremos o próprio iptables, complementando os três comandos anteriores. Estes comandos podem ser incluídos no arquivo /etc/rc.local, logo abaixo dos comandos para compartilhar a conexão:iptables -A INPUT -p icmp --icmp-type echo-request -j DROPecho 1 &gt; /proc/sys/net/ipv4/conf/default/rp_filteriptables -A INPUT -m state --state INVALID -j DROPiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -i&nbsp;eth0&nbsp;-j ACCEPTiptables -A INPUT -p tcp --syn -j DROPO primeiro comando faz com que o seu servidor deixe de responder a pings. Muitos ataques casuais começam com uma varredura de diversas faixas de endereços de conexões domésticas, enviando um ping para todas as máquinas. Responder ao ping indica não apenas que a máquina está online, mas também que provavelmente ela está com o firewall desativado, o que estimula o atacante a continuar o ataque, lançando um portscan e iniciando o ataque propriamente dito. Deixando de responder aos pings, o volume de ataques ao servidor cai bastante.Os dois comandos seguintes protegem contra IP spoofing (uma técnica usada em diversos tipos de ataques, onde o atacante envia pacotes usando um endereço IP falseado como remetente, tentando assim obter acesso a PCs da rede interna) e contra pacotes inválidos, que são comumente utilizados em ataques DoS e ataques de buffer overflow.As três últimas linhas autorizam pacotes provenientes da interface de loopback (lo), juntamente com pacotes provenientes da rede local e descartam novas conexões na interface de Internet, deixando passar apenas pacotes de resposta. Não se esqueça de substituir o "eth0" pela interface de rede local correta, caso contrário você vai acabar fazendo o oposto, ou seja, bloqueando as conexões dos PCs da rede local e deixando passar as provenientes da Internet :).Se você quiser abrir portas específicas adicione a regra "iptables -A INPUT -p tcp --dport 22 -j ACCEPT" (onde o "22" é a porta e o "tcp" é o protocolo) antes da regra que bloqueia as conexões. Você pode repetir a regra caso necessário, abrindo assim todas as portas desejadas.No final, incluindo os comandos para compartilhar a conexão e regras para abrir a porta 22 (SSH), os comandos a adicionar no script de inicialização seriam:#!/bin/sh# Compartilha a conexãomodprobe iptable_natecho 1 &gt; /proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -o&nbsp;eth1&nbsp;-j MASQUERADE# Bloqueia pings e protege contra IP spoofing e pacotes inválidosiptables -A INPUT -p icmp --icmp-type echo-request -j DROPecho 1 &gt; /proc/sys/net/ipv4/conf/default/rp_filteriptables -A INPUT -m state --state INVALID -j DROP# Abre para a interface de loopback e para a interface de rede localiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -i&nbsp;eth0&nbsp;-j ACCEPT# Abre para as portas especificadasiptables -A INPUT -p tcp --dport&nbsp;22&nbsp;-j ACCEPT# Bloqueia as demais conexões, deixando passar apenas pacotes de respostaiptables -A INPUT -p tcp --syn -j DROP