Iptables
Sous Centos 7 le firewall par default est firewalld, mais j’ai plus mes habitudes avec Iptables. Voici donc comment le mettre en place.
Arret de firewalld
systemctl stop firewalld
Installation des scripts de services Iptables
yum install iptables-services systemctl start iptables
Création des règles
Les règles seront les suivantes:
- Limitation du localhost à partir des IP localhost
- Autorisation des ports web 80,443
- Autorisation du port ssh 22
- Autorisation du ping
- Login des denied
- Deny all
vi /etc/iptables.raw.rules
*filter :INPUT ACCEPT [3:152] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [2:100] -A INPUT -i lo -j ACCEPT -A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A INPUT -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -j ACCEPT COMMIT
Application des règles
iptables-restore < /etc/iptables.raw.rules
On peut vérifier les règles en cours avec :
iptables -L
Si après vos tests d’accessibilité tout est bon, on peut sauvegarder les règles.
iptables-save > /etc/iptables.up.rules
Prise en compte des règles au démarrage
Pour démarrer automatiquement iptables j’ai choisi de l’insérer dans le post du montage des interfaces réseaux.
vi /etc/sysconfig/network-scripts/ifup-post
iptables-restore < /etc/iptables.raw.rules
En plus de la protection réseau, je vous conseille vivement de rajouter la brique fail2ban pour vous prémunir des attaques de force brute.