Alors le script ca donne ca
#
echo -e "\n [ Mise en place de regles Iptables ]"
#
# On vide les regles actuellement en place
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
#
# On met en place un firewall, alors le but est de tout bloquer
# On place les politiques par defaut a DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#
# Et on ajoute explicitement ce qu'on autorise
#
# Tout d'abord on autorise le traffic sur la boucle local
# pour le bon fonctionnement de la machine en elle meme.
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#
# On autorise le ping vers l'exterieur
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -p icmp --icmp-type 0 -j ACCEPT
#
# On autorise le ping vers le reseau local
iptables -A OUTPUT -o eth1 -d x.x.x.x/24 -m state --state NEW,ESTABLISHED,RELATED -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -p icmp --icmp-type 0 -j ACCEPT
#
# On autorise le ping depuis l'exterieur
# iptables -A INPUT -i eth0 -s x.x.x.x/24 -m state --state NEW,ESTABLISHED,RELATED -p icmp --icmp-type 8 -j ACCEPT
# iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED,RELATED -p icmp --icmp-type 0 -j ACCEPT
#
# On autorise la resolution de noms
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -p udp --sport 53 -j ACCEPT
#
# On autorise la consultation de pages web
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport www -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -p tcp --sport www -j ACCEPT
#
# On autorise la consultation de pages web securisees
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport https -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -p tcp --sport https -j ACCEPT
#
# On autorise les connections ssh depuis l'exterieur
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Partie concernant le LAN
#
#
# Partage de connexion
#
#
# On active la translation d'adresse
echo 1 > /proc/sys/net/ipv4/ip_forward
#
# On cache le LAN derriere l'adresse IP public du serveur
# Sinon les machines communiqueraient vers l'exterieur avec
# leur adresse privee
iptables -t nat -A POSTROUTING -s x.x.x.x/24 -j MASQUERADE
#
# Fin du partage de connexion
#
#
# On autorise les requetes DNS provenant du LAN
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT
# On autorise les machines du LAN a consulter les pages web
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# On met en place un proxy transparent pour les utilisateur du LAN
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.26.0.1:3128
#
# On autorise les machines du LAN a consulter les pages web securisees
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport https -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --sport https -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# On autorise les machines du LAN a acceder aux sites ftp ( mode actif )
# iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --dports ftp,ftp-data -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# iptables -A FORWARD -i eth0 -o eth1 -p tcp -m multiport --sports ftp,ftp-data -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# On autorise le ping depuis le reseau local
iptables -A INPUT -i eth1 -d x.x.x.x -m state --state NEW,ESTABLISHED,RELATED -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -o eth1 -m state --state ESTABLISHED,RELATED -p icmp --icmp-type 0 -j ACCEPT
#
# On autorise les connections ssh depuis le LAN
iptables -A INPUT -i eth1 -p tcp --dport 22 -s x.x.x.x/24 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# On prepare iptables pour l'utilisation de logs
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP : ] ' --log-level warn
iptables -A LOG_DROP -j DROP
#
# On log ce qui a ete droppé
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
iptables -A FORWARD -j LOG_DROP
echo -e " [ Terminé ]\n"
Je sais qu'il est pas parfait mais il a le merite de fonctionner et je le paufinerai quand j'aurai un peu plus de temps. Je suis preneur de toute remarques pour l'amliorer :)