Mise en place de règles IPtables sur une distribution Debian
Vous venez de mettre en place votre serveur Web sur une distribution Debian et vous souhaitez à présent sécuriser votre serveur ? Ce tutoriel informatique va vous expliquer comment faire.
Pour ma part, j’ai choisi d’installer un firewall sur Debian (serveur VPS) car j’ai installé un site Web WordPress et pour le moment aucun filtrage ne se fait en entrée sur mon système. Afin d’améliorer la sécurité et de se prémunir de probables intrusions sur notre serveur, nous allons installer un firewall sur Debian. Sous Linux, l’outil permettant de faire ça se nomme « IPtables ».
Tout d’abord, voici quelques lignes de commande IPtables importantes :
Pour lister les règles déjà appliquées :
Pour effacer toutes les règles présentes :
A présent, nous allons créer un fichier nommé « firewall » dans le répertoire « /etc/init.d » (demande les droits root)
Dans ce nouveau fichier, renseignez les lignes suivantes :
### 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) 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
Le fichier est commenté pour mieux comprendre le rôle de chaque ligne. Vous pourrez facilement adaptez le fichier et les règles en fonction de votre besoin. Le blocage du ping peut par exemple être une sécurité supplémentaire. Si vous souhaitez bloquer le ping entrant et sortant, commentez les deux lignes dans la section « ping ».
Nous devons ensuite rendre le fichier exécutable grâce à la commande suivante :
Choisissez alors de démarrer le service créé afin de tester le bon fonctionnement des règles de filtrage :
Si les règles créées ne conviennent pas et qu’elles bloquent l’accès au serveur, il vous suffira de redémarrer le serveur depuis l’interface de gestion de votre hébergeur et les règles seront effacées. Pourquoi les règles seront-elles effacées ? Car nous n’avons pas configuré le service en démarrage automatique. Si vous êtes certains que vos règles ne sont pas bloquantes pour l’accès à votre serveur, alors nous allons pouvoir passer à l’étape suivante.
Pour lancer le service de manière automatique au démarrage de Debian, entrez la ligne suivante (droits root requis) :
Redémarrez votre distribution afin de tester le bon fonctionnement de votre firewall :
Lorsque le système a redémarré, affichez vos règles IPtables en entrant la commande suivante :
Vous devriez retrouver vos règles affichées dans le terminal. Si ce n’est pas le cas, je vous conseille de reprendre point par point les étapes de ce tutoriel.
Vous savez à présent installer un firewall sur Debian et votre serveur est protégé des menaces du Web grâce à un filtrage IPtables effectué sur mesure.
Retrouvez d’avantages de tutoriels informatique sur notre site.
ça date mais efficace :super le seul qui ne me bloque pas l’accès web
je te remercie …en plus le réinitialisation des tables au stop nickel salut.