NAT com firewall - simples, rápido e funcional
Para todos aqueles que não tem profundas experiências com o Linux, mas querem compartilhar sua conexão e ao mesmo tempo manter sua rede segura contra ataques externos.
Parte 5: Compartilhando a conexão com a internet
Vamos então à segunda receita, para compartilhar a conexão. Ela é
ainda mais simples e também permite ativar ou desativar o
compartilhamento a qualquer momento.
Em primeiro lugar você deve configurar as suas placas de rede e modem e verificar se tanto a conexão com a internet quanto a conexão com os micros da rede local estão funcionando normalmente. O compartilhamento da conexão em si pode ser feito com apenas três comandos.
Para compartilhar a conexão do modem com a rede local:
# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward
Para compartilhar uma conexão via ADSL ou cabo instalada na eth0:
# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward
Para desativar o compartilhamento, vale o de sempre:
# iptables - F
Isso mesmo, é só isso... :-) O compartilhamento é ativado ou desativado imediatamente, sem que seja necessário reiniciar a conexão. Rápido, prático e confiável.
As três linhas, respectivamente:
Se os clientes da rede já estiverem configurados para acessar a web através do endereço IP usado pelo servidor (192.168.0.1 se você quiser substituir uma máquina Windows compartilhando através do ICS) você já deve ser capaz de acessar a web automaticamente nos demais PCs da rede.
Uma observação é que estas regras não incluem um servidor DHCP, você deve configurar os clientes com endereço IP fixo ou então ativar o serviço DHCPD na sua distribuição. No Mandrake ou Red Hat basta ativar o serviço no painel de controle e o DHCP já irá funcionar automaticamente.
A configuração nos clientes fica:
Em primeiro lugar você deve configurar as suas placas de rede e modem e verificar se tanto a conexão com a internet quanto a conexão com os micros da rede local estão funcionando normalmente. O compartilhamento da conexão em si pode ser feito com apenas três comandos.
Para compartilhar a conexão do modem com a rede local:
# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward
Para compartilhar uma conexão via ADSL ou cabo instalada na eth0:
# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward
Para desativar o compartilhamento, vale o de sempre:
# iptables - F
Isso mesmo, é só isso... :-) O compartilhamento é ativado ou desativado imediatamente, sem que seja necessário reiniciar a conexão. Rápido, prático e confiável.
As três linhas, respectivamente:
- ativam o módulo nat do iptables, responsável pela tradução de endereços;
- avisam para o iptables que ele deve direcionar todas as conexões recebidas para a interface ppp0 (o modem) ou eth0 (a primeira placa de rede) e devolver as respostas para os clientes;
- confirmam a ativação no arquivo de configuração do TCP/IP.
Se os clientes da rede já estiverem configurados para acessar a web através do endereço IP usado pelo servidor (192.168.0.1 se você quiser substituir uma máquina Windows compartilhando através do ICS) você já deve ser capaz de acessar a web automaticamente nos demais PCs da rede.
Uma observação é que estas regras não incluem um servidor DHCP, você deve configurar os clientes com endereço IP fixo ou então ativar o serviço DHCPD na sua distribuição. No Mandrake ou Red Hat basta ativar o serviço no painel de controle e o DHCP já irá funcionar automaticamente.
A configuração nos clientes fica:
- Endereço IP: qualquer endereço dentro da faixa de endereços usados pelo servidor. Ex: 192.168.0.3.
- Servidor DNS: os endereços dos servidores DNS do seu provedor. Ex: 200.177.250.10
- Gateway Padrão: o endereço do servidor. Ex: 192.168.0.1.
- Domínio: O domínio do seu provedor. Ex: terra.com.br
# Carrega os módulos
modprobe iptables
modprobe iptable_nat
# Compartilha a conexão
modprobe iptable_nat
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
# Abre algumas portas (opcional)
iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 1021 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 1080 -j ACCEPT
# Abre para a rede local
iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT
# Fecha o resto
iptables -A INPUT -p tcp --syn -j DROP
modprobe iptables
modprobe iptable_nat
# Compartilha a conexão
modprobe iptable_nat
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
# Abre algumas portas (opcional)
iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 1021 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 1080 -j ACCEPT
# Abre para a rede local
iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT
# Fecha o resto
iptables -A INPUT -p tcp --syn -j DROP
Se você quiser que o PC também não responda a pings, adicione a linha:
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
Mais uma linha interessante de se adicionar, que protege contra pacotes danificados (usados em ataques DoS por exemplo) é:
iptables -A FORWARD -m unclean -j DROP
(esta linha deve ser adicionada antes das demais)