Firewall pour serveur dédié avec iptables
Ce script ce base sur iptables, il a pour but de bloquer tout le trafic entrant sur le serveur à part les service qui seront listé. Le trafic sortant n’est quand a lui n’est pas impacté.
Je créer un fichier firewall :
# nano /etc/init.d/firewall
#!/bin/bash
echo Setting firewall rules...
#
# config de base dedibox
# Florian Cristina
#v1.1
###### Debut Initialisation ######
# Vider les tables actuelles
iptables -t filter -F
iptables -t filter -X
echo - Vidage : [OK]
# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions établies : [OK]
###### Fin Inialisation ######
##### Debut Regles ######
# Autoriser SSH
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
echo - Autoriser SSH : [OK]
# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
echo - Autoriser loopback : [OK]
# Autoriser ping
iptables -t filter -A INPUT -p icmp -j ACCEPT
echo - Autoriser ping : [OK]
# HTTP et HTTPS
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT
echo - Autoriser HTTP et HTTPS : [OK]
# DNS
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
echo - Autoriser DNS : [OK]
# FTP
modprobe ip_conntrack_ftp
iptables -t filter -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
echo - Autoriser FTP : [OK]
# Mail : POP, SMTP, IMAP
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
echo - Autoriser Mail : [OK]
###### Fin Regles ######
###### Interdiction de tout entrant ######
# Interdire toute connexion entrante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
echo - Interdire toute connexion entrante : [OK]
echo Firewall mis a jour avec succes !
Je donne les droits d’exécution :
# chmod +x /etc/init.d/firewall
Une fois que vous l’avez tester et que cela fonctionne vous pouvez le mettre à chaque démarrage du serveur.
# update-rc.d firewall defaults 99
Merci à Rusty Russell et son How-To, il est la base de cette page. Et merci surtout pour son travail au sein de l’équipe de développement de Netfilter

hello,
pas encore spécialiste de Iptables, connais tu l’astuce pour faire deux type de regles avec 2 ips ? (je pense au VLAN ovh )
par exemple, garder le ping icmp sur l’ ip public pour assurer le monitoring et autoriser seulement certains port sur 192.168.1.1 par exemple.
merci merci