Journaliser les paquets rejetés par Iptables
Introduit dès Linux Fedora 15, Firewalld équipe désormais les distributions CentOS et Red Hat. Facile de prise en main pour des règles simples, je ne le trouve pas très pratique pour la sécurisation des environnements serveurs. C’est la raison pour laquelle j’ai une fâcheuse tendance à le désinstaller pour le remplacer par Iptables :
systemctl disable firewalld systemctl stop firewalld yum remove firewalld yum install iptables-services systemctl enable iptables systemctl enable ip6tables systemctl start iptables systemctl start ip6tables
Fichiers de configuration Iptables
Iptables dispose de deux fichiers de configuration pour IPv4 et IPv6 :
/etc/sysconfig/iptables /etc/sysconfig/ip6tables
Configuration type d’un serveur Web
J’utilise Webmin pour réaliser la configuration Iptables de base pour un serveur Web ! Pas de ping. Pas d’ICMP. N’oubliez pas de redémarrer le service après modification des fichiers par systemctl restart iptables.
*filter :FORWARD ACCEPT [0:0] :INPUT DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state -m tcp --dport 22 --state NEW -j ACCEPT -A INPUT -p tcp -m state -m tcp --dport 80 --state NEW -j ACCEPT -A INPUT -p tcp -m state -m tcp --dport 443 --state NEW -j ACCEPT COMMIT
Journaliser les paquets rejetés
Par défaut, Iptables envoie Il vous faudra faire au préalable une petite modification dans le fichier de configuration /etc/rsyslog/rsyslog.conf :
#Cas 1 :msg, startswith, "INPUT:DROP:" /var/log/iptables.log #Cas 2 local6.* /var/log/iptables.log
Les deux cas ne sont d’ailleurs pas exclusifs. Redémarrez votre démon syslog à l’aide de la commande systemctl restart rsyslog. Vous pouvez utiliser contains, regex ou ereregex à la place de startswith. Vous pouvez également filtrer sur le hostname, le syslogtag en plus du contenu du message (msg) !
Vous devez ensuite éditer votre fichier /etc/sysconfig/iptables en ajoutant devant le COMMIT :
#Cas 1 -A INPUT -p all -j LOG --log-prefix "INPUT:DROP:" #Cas 2 -A INPUT -p all -j LOG --log-level 6 #ou -A INPUT -p all -j LOG --log-level --log-prefix "INPUT:DROP:" COMMIT
Les trois possibilités proposées ci-dessus sont exclusives.