Tu peux aérer un peu ton script, ce serait un peu plus simple à maintenir.
Perso, je faisais avant un script que je mettais dans /etc/init.d du style de ci-dessous, cela me permettait d’arréter ou de redémarrer ma config, si cela peut t’aider :
#!/bin/bash
############################## declaration des variables ######
#interface de loopback
IFLO="lo"
# fonctions a executer pour le parametre start
#DEFAULTRULES="FWD NatIt INPT OUPT"
DEFAULTRULES="INPT OUPT"
############################## Debut Initialisation ######
function DefaultPolicy()
{
# Strategie par defaut ( c'est ce q'on fait pour stopper le firewall )
echo -n "Application de la strategie par defaut: .... "
# Vider les tables actuelles
iptables -F
iptables -F -t nat
iptables -X
#definition des polices par defaut
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# Autoriser loopback
iptables -A INPUT -i $IFLO -j ACCEPT
iptables -A OUTPUT -o $IFLO -j ACCEPT
echo "Done !"
}
############################## Autorisation entrante sur le serveur #######
function INPT()
{
echo -n "Application des regles pour les connections entrantes: .... "
#definition des polices par defaut
iptables -P INPUT DROP
# Autorise entree icmp
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
# Autorise entree SAMBA
# EPMAP => définit toutes les RPC
iptables -A INPUT -p tcp --dport 135 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 135 -j ACCEPT
iptables -A INPUT -p udp --dport 135 -j ACCEPT
iptables -A OUTPUT -p udp --sport 135 -j ACCEPT
# NetBios-NS
iptables -A INPUT -p tcp --dport 137 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A OUTPUT -p udp --sport 137 -j ACCEPT
# NetBios-DGM => exploration du réseau (basse sur SMB browser service)
iptables -A INPUT -p tcp --dport 138 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 138 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
iptables -A OUTPUT -p udp --sport 138 -j ACCEPT
#NetBios-SSN => partage fichiers, imprimantes par Microsoft
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 139 -j ACCEPT
iptables -A INPUT -p udp --dport 139 -j ACCEPT
iptables -A OUTPUT -p udp --sport 139 -j ACCEPT
# SMB/IP => partage fichiers, imprimantes par SaMBa
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 445 -j ACCEPT
iptables -A INPUT -p udp --dport 445 -j ACCEPT
iptables -A OUTPUT -p udp --sport 445 -j ACCEPT
# Autorise entree postgres
iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 5432 -j ACCEPT
# Autorise entree ssh
iptables -A INPUT -p tcp --dport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport ssh -m state --state ESTABLISHED,RELATED -j ACCEPT
#autorisation de se connecter a cacti
iptables -A INPUT -p udp --dport 161 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --sport 161 -m state --state ESTABLISHED,RELATED -j ACCEPT
#autoriser entree sur webmin
iptables -A INPUT -p tcp --dport 10000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 10000 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Done !"
}
############################## Autorisation sortante du serveur ######
function OUPT()
{
echo -n "Application des regles pour les connections sortantes : .... "
#definition des polices par defaut
iptables -P OUTPUT DROP
#autorise la sortie pour les connexion deja etablies
# iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
#autorise requetes DNS
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
#autorise ntp
iptables -A OUTPUT -p tcp --dport ntp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport ntp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --dport ntp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --sport ntp -m state --state ESTABLISHED,RELATED -j ACCEPT
#autorise http a sortir
iptables -A OUTPUT -p tcp --dport http -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport http -m state --state ESTABLISHED,RELATED -j ACCEPT
#autorise https a sortir
iptables -A OUTPUT -p tcp --dport https -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport https -m state --state ESTABLISHED,RELATED -j ACCEPT
#autorise ssh a sortir
iptables -A OUTPUT -p tcp --dport ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport ssh -m state --state ESTABLISHED,RELATED -j ACCEPT
#autorise sortie SMTP
iptables -A OUTPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport 25 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Done !"
}
############################## Autorisation traverser le serveur ######
function FWD()
{
echo -n "Applications des regles pour les paquets a router: ... "
#definition des polices par defaut
iptables -P FORWARD DROP
## Accepter les paquets entrant relatifs au connection deja etablies
#iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Done !"
}
function NatIt()
{
echo -n "Applications des regles de tranlation d'addresse: ... "
#~ autorisation du forwarding
#~ echo "1" > /proc/sys/net/ipv4/ip_forward
#~ activation du natage
#~ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Regles entrantes
# Emule prerouting
#~ $IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 --dport 4662 -j DNAT --to 192.168.0.2:4662
#~ $IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 --dport 6881:6999 -j DNAT --to 192.168.0.2
echo "Done !"
}
############################## log ######
############## Script options init
case $1 in
start|reload)
DefaultPolicy
for i in $DEFAULTRULES
do
$i
done
;;
stop)
DefaultPolicy
echo "Arret du Firewall"
;;
status)
iptables -L
;;
full-status)
iptables -L -v
;;
forward)
#rexecuter la strategie par defaut pour cette chaine
iptables -P FORWARD DROP
iptables -F FORWARD
# puis relancer la este
FWD
;;
nat)
#rexecuter la strategie par defaut pour cette chaine
iptables -t nat -F
NatIt
;;
output)
#rexecuter la strategie par defaut pour cette chaine
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
OUPT
;;
input)
#rexecuter la strategie par defaut pour cette chaine
iptables -P INPUT ACCEPT
iptables -F INPUT
INPT
;;
*)
echo "usage $0 start | stop | reload | status | full-status | forward | output | input | nat "
;;
esac
### Fin du script
#echo "$0 : End of script"