Iptables

Résumé Support

Par défaut notre serveur peut communiquer librement avec internet. Si un service est mal configuré il pourrait alors être accessible depuis l'extérieur, ce qui n'est évidemment pas une bonne chose. La solution pour remédier au problème est d'utiliser un parefeu afin de ne laisser ouvert qu'un nombre limité de port. Heureusement pour nous linux dispose d'un système de pare feu intégré : IpTables.

Pour ajouter des règles à IpTables il suffit de taper la commande iptables suivie de ce qu'on veut lui faire faire. Nous allons créer un fichier de script afin de regrouper toutes les règles pour ne pas avoir à les retaper à chaque fois. Ce fichier va dépendre de votre configuration mais voici un exemple (si vous avez besoin de plus de détails sur ce que font ces règles, utilisez explainshell.com).

#!/bin/sh # On vide les règles déjà existantes iptables -t filter -F iptables -t filter -X # On refuse toutes les connexions iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP echo "On interdit tout" # On autorise les connexions déjà établie iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # On autorise le loop-back (localhost) iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT # On autorise le ping iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT # On autorise le SSH (à adapter suivant votre cas) iptables -t filter -A INPUT -p tcp --dport 5896 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 5896 -j ACCEPT # Si on a un serveur 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 # NTP (pour avoir un serveur à l'heure) iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT # HTTP iptables -t filter -A OUTPUT -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 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 # FTP iptables -t filter -A OUTPUT -p tcp --dport 21 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 20 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 20 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # MAIL ## SMTP iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT ## POP3 iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT ## IMAP iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT echo "trafic IMAP sur le port 143 autorisé" ## POP3S iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

On va placer ce fichier dans le dossier contenant les scripts de démarrage /etc/init.d/parefeu. On va ensuite le rendre éxécutable et demander à notre machine de l'éxécuter au démarrage (Si vous n'êtes pas sûr de vos règles, vous pouvez éxécuter le fichier une fois, si vous vous enfermez dehors vour pourrez redémarrer la machine pour "oublier" les règles)

sudo chmod +x /etc/init.d/parefeu sudo update-rc.d parefeu defaults

Et voila le tour est joué !