Você pode criar seu próprio script de inicialização e adicioná-lo aos seus serviços existentes com o chkconfig.
Aqui está um modelo que eu uso com frequência.
Ele libera todas as regras e as substitui por um conjunto personalizado que permite ssh, http e https in.
#!/bin/bash
#
# firewall firewall script
# description: a firewall script
# chkconfig: 2345 91 09
#
IPTABLES=/sbin/iptables
start() {
ret=0
# input chain
$IPTABLES -A INPUT -m state --state INVALID -j DROP || ret=1
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT || ret=1
$IPTABLES -A INPUT -i lo -j ACCEPT || ret=1
$IPTABLES -A INPUT -p tcp --dport 22 --syn -m state --state NEW -j ACCEPT || ret=1
$IPTABLES -A INPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT || ret=1
$IPTABLES -A INPUT -p tcp --dport 443 --syn -m state --state NEW -j ACCEPT || ret=1
# output chain
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP || ret=1
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT || ret=1
$IPTABLES -A OUTPUT -o lo -j ACCEPT || ret=1
return $ret
}
stop() {
ret=0
$IPTABLES -F || ret=1
$IPTABLES -F -t nat || ret=1
$IPTABLES -X || ret=1
$IPTABLES -P INPUT ACCEPT || ret=1
$IPTABLES -P OUTPUT ACCEPT || ret=1
$IPTABLES -P FORWARD ACCEPT || ret=1
return $ret
}
panic() {
ret=0
$IPTABLES -F || ret=1
$IPTABLES -F -t nat || ret=1
$IPTABLES -X || ret=1
$IPTABLES -P INPUT DROP || ret=1
$IPTABLES -P OUTPUT DROP || ret=1
$IPTABLES -P FORWARD DROP || ret=1
$IPTABLES -Z || ret=1
$IPTABLES -t nat -Z || ret=1
return $ret
}
status() {
$IPTABLES -t filter -L -v --line-numbers
$IPTABLES -t nat -L -v --line-numbers
return 0
}
restart() {
stop
start
}
case "$1" in
start)
stop
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
restart
RETVAL=$?
;;
status)
status
RETVAL=$?
;;
panic)
panic
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|status|panic}"
exit 1
;;
esac
exit $RETVAL
Você pode colocar esse script em /etc/init.d/
, torná-lo executável e executar chkconfig firewall --add && chkconfig firewall on
.
Agora você pode habilitar o firewall com service firewall start
, service firewall panic
interrompe todo o tráfego de rede e service firewall stop
desabilita o firewall.
Eu acho que você entendeu a ideia.
A principal vantagem deste sistema é que você tem um script que pode ser strongmente customizado e escrito nos comentários, sem tocar em nenhuma das configurações existentes do iptables do sistema operacional.