Linux Scripts
Script
Démarrage et arret du pare-feu Iptables



Pour : Linux


Voici un script de démarrage et d'arret pour le firewall Iptables.
Il vous faudra l'adapter suivant les besoins de votre machine.


#!/bin/sh FW_start() { echo "[Démarrage du pare-feu]" ### EFFACE TOUT LES PARAMETRES iptables -F iptables -t filter -F iptables -t nat -F iptables -t mangle -F echo "Vidages [OK]" ### REGLES DE FILTRAGE # Autoriser le Loopback iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Ne pas casser les connexions déjà établies iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t filter -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # PING (ICMP) iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT # SSH iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT # Serveur web (HTTP) iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT # Serveur web (HTTPS) iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT # Serveur FTP iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT # Serveur MAIL SMTP:25 iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT # Serveur MAIL POP3:110 iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT # Serveur MAIL IMAP:143 iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT # Serveur MAIL POP3S:995 iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT # DNS In/Out iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT # NTP iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT # Rejeter tout le reste iptables -A INPUT -j DROP echo "Filtrages [OK]" ### POLITIQUES # Trafic entrants bloqués iptables -P INPUT DROP # Trafic forwardés bloqués iptables -P FORWARD DROP # Trafic sortants bloqués iptables -P OUTPUT DROP echo "Politiques [OK]" } FW_stop() { echo "[Arret du pare-feu]" # Supprime tous les filtres iptables -F iptables -t filter -F iptables -t nat -F iptables -t mangle -F # Attribut une politiques "ACCEPT" aux tables iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -t filter -P INPUT ACCEPT iptables -t filter -P FORWARD ACCEPT iptables -t filter -P OUTPUT ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P POSTROUTING ACCEPT } FW_restart() { FW_stop; sleep 2; FW_start; } case "$1" in 'start') FW_start ;; 'stop') FW_stop ;; 'restart') FW_restart ;; 'status') iptables -L iptables -t nat -L iptables -t mangle -L ;; *) echo "Usage: firewall {start|stop|restart|status}" ;; esac





L'exécution du script nécessite les droits "root".

Editer votre script:

# nano firewall



Copier, collez le script ci-dessus et enregistrez votre fichier "firewall".

Donner le droit d'exécution au script:

# chmod u+x firewall



On vérifie que le script fonctionne au lancement (start):

# sh firewall start


Puis:

# iptables -L



Et que le script fonctionne a l'arret (stop):

# sh firewall stop


Puis:

# iptables -L




Maintenant on ajoute le script iptables au démarrage du système:

# update-rc.d firewall defaults



PS: Pour le retirer du démarrage :

# update-rc.d -f firewall remove



Et on créer un lien vers le répertoire des scripts système.

# ln -s /home/cedric/firewall /etc/init.d/firewall



On redémarre pour tester le script:

# reboot



Puis au redémarrage on affiche les régles de Iptables pour voir si elles sont présentes:

# iptables -L





Liens qui peuvent vous aidez:
Iptables - Configuration des tables et chaînes du pare-feu intégré
Iptables - Configurer la table NAT du pare-feu
Iptables - Sauvegarder et restaurer la configuration des tables du pare-feu



Par O.Cédric
Sur www.octetmalin.net

Article publié le:
20/12/2011 09:31





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.