Firewall à une interface pour son serveur
Par Minitux le vendredi, mai 22 2009, 21:55 - Sécurité - Lien permanent
Après un peu de théorie, voici la pratique ! Nous allons voir comment configurer votre firewall sur un serveur ne disposant que d'une seul interface et donc directement relié à Internet.
Ceci peut être très utile si vous possédez un serveur chez ovh, gandi par exemple ...
1 - Les débuts :
Commencons tout abord par tout supprimer
# iptables -F
2 - Le traffic sur l'interface lo
On va tout autoriser sinon cela ne sert à rien d'actier le réseau
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A OUTPUT -o lo -j ACCEPT
3 - Autorisation des services :
Le ssh (port 22 par défaut ) :
# iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
Le traffic web (port 80 et 443) :
# iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
Les requêtes dns ( port 53 tcp/udp) :
# iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT
# iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
4 - Le ping
Nous allons autoriser toutes les requêtes icmp en direction de notre serveur
# iptables -A INPUT -i eth0 -p icmp -j ACCEPT
5 - Politique sur les paquets :
Nous n'autorisons les paquets qui ont l'état established et related
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
6 - Politique par défaut :
On fixe la politique par défaut, si aucune règle ne correspond on prend celle ci :
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
Votre firewall est enfin prêt, vous pouvez le mettre dans un script sh et l'exécuter d'un seul coup.
7 - Enregistrer ces modifications en cas de reboot :
Une fois de plus c'est très simple il suffit d'exécuter cette commande :
# iptables-save
Pour lister vos règles :
# iptables -L
(l'option -n permet de ne pas faire la conversion des ports et adresses)
Si vous avez un serveur chez ovh allez consulter ceci pour ajouter leurs adresses ips pour leurs monitoring guide ovh