Firewall iptables com NAT
Este artigo traz e explica um exemplo de script de firewall com NAT totalmente funcional.
Parte 4: FIREWALL.sh
No arquivo FIREWALL.sh é onde será realizada a chamada de todos os outros arquivos. O script abaixo limpa as regras antigas e define a política padrão para DROP.
OBS: Se você optou por um diretório diferente do usado por mim, realize as alterações necessárias.
OBS: Se você optou por um diretório diferente do usado por mim, realize as alterações necessárias.
#***************************************# # Firewall # # # # POR: CRISTYAN G. S. SANTOS # # # # DATA: 27/12/2006 # # # #***************************************# #!/bin/bash echo "CARREGANDO FIREWALL " echo -n "DEFAULT POLICY ACCEPT..................." iptables -t filter -P INPUT ACCEPT iptables -t filter -P FORWARD ACCEPT iptables -t filter -P OUTPUT ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P POSTROUTING ACCEPT echo "[OK]" echo -n "LIMPANDO REGRAS ANTIGAS................." iptables -t filter -F iptables -t filter -X iptables -t filter -Z iptables -t nat -F iptables -t nat -X iptables -t nat -Z iptables -t mangle -F iptables -t mangle -X iptables -t mangle -Z echo "[OK]" echo -n "DEFAULT POLICY DROP....................." iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP echo "[OK]" echo -n "CARREGANDO REGRAS DE INT-EXT............" sh /usr/local/bin/firewall/INT-EXT.sh echo "[OK]" echo -n "CARREGANDO REGRAS DE EXT-INT............" sh /usr/local/bin/firewall/EXT-INT.sh echo "[OK]" echo -n "CARREGANDO REGRAS DE INPUT.............." sh /usr/local/bin/firewall/INPUT.sh echo "[OK]" echo -n "CARREGANDO REGRAS DE FORWARD............" sh /usr/local/bin/firewall/FORWARD.sh echo "[OK]" echo -n "CARREGANDO REGRAS DE OUTPUT............." sh /usr/local/bin/firewall/OUTPUT.sh echo "[OK]" echo -n "CARREGANDO REGRAS DE NAT-IN............." sh /usr/local/bin/firewall/NAT-IN.sh echo "[OK]" iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f done echo "FIREWALL CARREGADO."
Agora que seus scripts já estão prontos, vamos carregá-los.
No diretório os os arquivos estão, execute o comando:
# ./FIREWALL.sh
Será exibido o progresso do carregamento.
Para fazer com que o script inicialize automaticamente durante a inicialização da máquina, insira dentro de /etc/rc.d/rc.local a seguinte linha:
sh /usr/local/bin/firewall/FIREWALL.sh
Se você utilizou outro diretório, informe o caminho correto.
Sei que não é o lugar apropriado, mas gostaria de saber sse alguém aí saberia resolver o meu problema:
Possuo um computador que está atrás de um roteador. E eu preciso mesmo acessar esse computador, mas o roteador "não deixa".
É assim:
O meu modem 'e um siemens 4200, e está roteado, como disse.
Acontece que eu preciso acessar a máquina sob o roteador (na verdade é só uma porta dela). Essa porta é a do ssh.
Normalme nte o ssh usa a 22, mas eu o configurei pra usar uma bem alta (9999), por causa dessa frescura da BrasilTelecom.
Bem, esse não é o problema.
É assim: O modem não atribui IPs por dhcp ,pois eu configurei um IP fixo pra minha máquina. Isso pra usar redirecionamento de portas. Mas mesmo redirecionando, não deu em nada (depois eu comento o problema).
Então eu pesquisei um pouco sobre esse negócio de nat, e pensei eu usar isso pra fazer com que o meu pc ficasse visível na rede externa, mas não conseguir configurar esse nat para o meu modem.
O que eu quero é o seguinte: Alguém aí sabe se existe uma solução para este problema? pode ser usando NAT, redirecionamento de portas, atualizar o firmware desse modem, sei lá.
Como foi possível verificar, eu sou um completo leigo nesse assunto de redes, então espero que compreendam meus prováveis erros conceituais.
Falow.