Mettre en place un firewall simplement
Pour plus d’info sur iptables, consultez notre page iptables
Créer un fichier /etc/init.d/firewall
### BEGIN INIT INFO # Provides: firewall # Source : http://webadonf.net # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Demarrage du script lors de la sequence de boot # Description: Ajout des regles de parefeu ### END INIT INFO #!/bin/sh case "$1" in start|restart) echo - Initialisation du firewall : # Vidage des tables et des regles personnelles iptables -t filter -F iptables -t filter -X echo - Vidage des regles et des tables : [OK] # Interdire toutes connexions entrantes et sortantes iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP echo - Interdire toutes les connexions entrantes et sortantes : [OK] # Ne pas casser les connexions etablies iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT echo - Ne pas casser les connexions établies : [OK] ########## Regles ########## # Autoriser loopback iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT # Autoriser le ping iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT # Autoriser SSH iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT # Autoriser DNS iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT # Autoriser NTP iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT # Autoriser FTP modprobe ip_conntrack_ftp iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Autoriser HTTP et HTTPS iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT # Autoriser POP3 iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT # Autoriser SMTP iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT # Autoriser IMAP iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT # Autoriser POP3S iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT echo - Initialisation des regles : [OK] ;; status) echo - Liste des regles : iptables -n -L ;; stop) # Vidage des tables et des regles personnelles iptables -t filter -F iptables -t filter -X echo - Vidage des regles et des tables : [OK] iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT echo - Autoriser toutes les connexions entrantes et sortantes : [OK] ;; esac exit 0
Rendre le fichier exécutable
chmod +x /etc/init.d/firewall
Pour lancer le script au démarrage de la machine
update-rc.d firewall defaults
Pour ne plus le lancer au démarrage
update-rc.d firewall remove
Assurez-vous que les règles que vous avez mis n’ont pas l’effet de couper la branche sur laquelle vous êtes.
Lancer le firewall
/etc/init.d/firewall start
Consulter les règles du firewall
/etc/init.d/firewall status
Arrêter le firewall
/etc/init.d/firewall stop