salut,
c’est pas mal, je te mets ci dessous un exemple de script que j’utilise pour configurer mes serveurs. Ce script, tu peux le mettre dans init.d et l’ajouter avec update-rc.d aux process qui se lancent au demarrage. Il permet aussi d’arréter le script, de relancer une partie ou tout le script en passant des paramètres. Il n’est peut être pas tout à fait fonctionnel car j’ai dut retirer des données un peux sensibles. Aucune interface réseau n’y est définie car il n’y en a qu’une sur le serveur en question.
J’espère que ce script te donnera des idées.
Je précise, je ne suis pas un pro d’iptables, donc sivous avez des idées, des commentaires, n’hésitez pas et faites vous plaisir, j’adore les critiques constructives
on peut toujours s’améliorer 
[code]#!/bin/bash
############################## declaration des variables ######
#interface de $IFLOopback
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
echo "Done !"
}
############################## Autorisation entrante sur le relais ######
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 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
# Autorise entree ntp
iptables -A INPUT -p udp --dport ntp -j ACCEPT
iptables -A OUTPUT -p udp --sport ntp -j ACCEPT
# Autorise entree requete DNS
iptables -A INPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Done !"
}
############################## Autorisation sortante du relais ######
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 mise a jour de l'heure par internet
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
#autorise sortie ntp
iptables -A OUTPUT -p tcp --dport ntp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --sport ntp -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Done !"
}
############################## Autorisation traverser le relais ######
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
$PTABLES -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”[/code]