A primeira coisa que precisamos fazer é liberar o repasse de pacotes entre as interfaces de rede, no kernel:
# vim /etc/sysctl.conf [...] net.ipv4.ip_forward=1 [...]
Releia:
# sysctl -p net.ipv4.ip_forward = 1
Adicione o cabeçalho para inicialização durante o boot:
# head /etc/init.d/ssh > /etc/init.d/firewall
Conceda a permissão de execução para o script:
# chmod +x /etc/init.d/firewall
Script de gerenciamento completo:
# cat /etc/init.d/firewall
#!/bin/bash ### BEGIN INIT INFO # Provides: firewall # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Firewal ### END INIT INFO case $1 in stop) # Definindo Politica ACCEPT - ACEITA TUDO iptables -t filter -P OUTPUT ACCEPT iptables -t filter -P INPUT ACCEPT iptables -t filter -P FORWARD ACCEPT # Limpar as Regras de todas as tableas iptables -t filter -F iptables -t nat -F iptables -t mangle -F iptables -t raw -F iptables -t security -F # Bloquear a passagem de pacotes pelo kernel echo 0 > /proc/sys/net/ipv4/ip_forward echo -e "[\033[0;32m ok\033[m ] Stopping Security Firewall" ;; start) $0 stop sleep 0.5 echo -e "[\033[0;32m ok\033[m ] Starting Security Firewall" # liberar a passagem de pacotes pelo kernel echo 1 > /proc/sys/net/ipv4/ip_forward # Iniciando as Regras bash /etc/firewall/rules ;; restart) $0 start ;; *) echo 'POR FAVOR USE "stop|start|restart"' ;; esac
Arquivo com as regras:
# cat /etc/firewall/rules
#!/bin/bash WAN=eth1 iptables -F iptables -t nat -F iptables -t mangle -F iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -P INPUT ACCEPT iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
Para que ele seja iniciado junto com sistema quando a máquina for ligada, podemos colocar o “script”nos níveis de execução:
# insserv -d firewall # ls -l /etc/rc2.d/