Compartilhamento da conexão

Se 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 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

O “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 DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state –state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -p tcp –syn -j DROP

O 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ão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# Bloqueia pings e protege contra IP spoofing e pacotes inválidos
iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state –state INVALID -j DROP

# Abre para a interface de loopback e para a interface de rede local
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT

# Abre para as portas especificadas
iptables -A INPUT -p tcp –dport 22 -j ACCEPT

# Bloqueia as demais conexões, deixando passar apenas pacotes de resposta
iptables -A INPUT -p tcp –syn -j DROP

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X