Munin est une surveillance du système informatique gratuit et open-source, une application de surveillance réseau et de surveillance des infrastructures.
Il permet de générer des graphiques pour suivre l’activité du système.
Grâce à ces plugins, on peut grapher à peut près tout et n’importe quoi.
Dans ce tutoriel, je vous propose de grapher des informations autour d’iptables, ipset et fail2ban.
Par exemple pour suivre le nombre de paquets bloqués par iptables ou le nombre d’hosts bloqués dans ipset ou fail2ban.
Table des matières
Munin : Comment grapher iptables, ipset, fail2ban
Le tutoriel pour installer et configurer Munin :
Grapher les paquets qui passent par le firewall (fw_packets)
- Ce dernier est disponible dans le paquet munin-plugins-core de debian. On peut donc l’installer avec APT :
sudo apt install munin-plugins-core
- Pour les autres distributions Linux, il est possible de le télécharger directement :
wget https://raw.githubusercontent.com/munin-monitoring/munin/master/plugins/node.d.linux/fw_packets
- Puis on le copie dans le dossier des plugins de munin :
sudo mv fw_packets /usr/share/munin/plugins/
- Ensuite on créé un lien symbolique avec ln dans le répertoire /etc/munin/plugins :
ln -s /usr/share/munin/plugins/fw_packets /etc/munin/plugins/fw_packets
chmod +x /etc/munin/plugins/fw_packets
- Puis on autorise son exécution en root dans la configuration de /etc/munin-node :
sudo vim vim /etc/munin/plugin-conf.d/munin-node
- Ajoutez la configuration suivante :
[fw_*]
user root
- Enfin testez son exécution avec munin-run :
munin-run fw_packets
received.value 1857590057
forwarded.value 0
- Si tout va bien, il ne reste plus qu’à relancer munin-node pour prendre en compte la nouvelle configuration
systemctl restart munin-node
Grapher les paquets rejetés par iptables (fw_reject)
Ce plugin permet de grapher les paquets entrants et sortants rejetés par iptables.
- Tout d’abord, on créé le fichier du plugin dans le répertoire de munin :
vim /usr/share/munin/plugins/fw_reject
- Puis copiez/collez le contenu depuis ce lien
- Ensuite on créé le lien symbolique dans la configuration de munin pour activer ce dernier
ln -s /usr/share/munin/plugins/fw_reject /etc/munin/plugin-conf.d/fw_reject
chmod +x /etc/munin/plugins/fw_reject
- Editez le fichier de configuration de munin-node :
vim /etc/munin/plugin-conf.d/munin-node
- Puis ajoutez la configuration suivante :
[fw_reject]
user root
group adm
env.logtail /usr/sbin/logtail
env.logfile /var/log/kern.log
env.service IPTABLES
- Enfin testez son exécution avec munin-run :
munin-run fw_reject
- On relance le service munin-node :
systemctl restart munin-node
Grapher des règles iptables (accounting)
Accounting est un plugin pour munin qui permet de compter des règles iptables en fonction d’un commentaire spécifique dans la règles iptables.
Par exemple, je l’utilise pour grapher les blocages iptables par pays.
- Editez le fichier :
sudo vim /usr/share/munin/plugins/accounting_
- Puis récupérez et copier/coller le code source depuis ce lien
- Ensuite il faut ajouter un commentaire ACC- avec le nom aux règles iptables que l’on veut suivre. Cela grâce à l’option -m comment –comment ACCT-XXXX
iptables -I INPUT -d 192.168.0.1/24 -p icmp -m comment --comment ACCT-subnet1-icmp-in
iptables -I INPUT -d 192.168.0.1/24 -p udp -m comment --comment ACCT-subnet1-udp-in
iptables -I INPUT -d 192.168.0.1/24 -p tcp -m comment --comment ACCT-subnet1-tcp-in
iptables -I OUTPUT -s 192.168.0.1/24 -p icmp -m comment --comment ACCT-subnet1-icmp-out
iptables -I OUTPUT -s 192.168.0.1/24 -p udp -m comment --comment ACCT-subnet1-udp-out
iptables -I OUTPUT -s 192.168.0.1/24 -p tcp -m comment --comment ACCT-subnet1-tcp-out
Par exemples ci-dessous, des règles iptables de blocages par pays avec un commentaire ACC par pays pour les compter dans munin.
Chain INPUT (policy ACCEPT 124M packets, 410G bytes)
pkts bytes target prot opt in out source destination
12271 508K LOGIPS tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set ipv4-russia src /* ACC-Russie */
1606 82728 LOGIPS tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set ipv4-indonesia src /* ACC-Indonesie */
389 20196 LOGIPS tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set ipv4-thailand src /* ACC-Thailande */
12010 617K LOGIPS tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set ipv4-china src /* ACC-Chine */
- Ensuite on créé un lien symbolique pour chaque graphique que l’on veut compter en fonction du commentaire. Par exemple ci-dessous accounting_Chine qui pointe vers le script. Je répète l’opération pour Russie, Tahilande et Indonésie
ln -s /usr/share/munin/plugins/accounting_ /etc/munin/plugins/accounting_Chine
ln -s /usr/share/munin/plugins/accounting_ /etc/munin/plugins/accounting_Russie
ln -s /usr/share/munin/plugins/accounting_ /etc/munin/plugins/accounting_Thailande
ln -s /usr/share/munin/plugins/accounting_ /etc/munin/plugins/accounting_Indonesie
- Puis on édite le fichier de configuration
sudo vim /etc/munin/plugin-conf.d/munin-node
- Puis on ajoute ceci pour autoriser l’exécution en root :
[accounting_*]
user root
- Enfin testez le fonctionnement du plugin munin avec munin-run
munin-run fw_reject accounting_Chine
- Si cela fonctionne, on relance le service afin de commencer à grapher
systemctl restart munin-node
Grapher ipset
Ce plugin compatibilise et graphs le nombre d’éléments de chaque jeu ipset.
- On créé le fichier du plugin dans le répertoire de munin :
vim /usr/share/munin/plugins/ipset
- Puis copiez/collez le contenu depuis ce lien
- Ensuite on créé le lien symbolique dans la configuration de munin pour activer ce dernier
ln -s /usr/share/munin/plugins/ipset /etc/munin/plugin-conf.d/ipset
chmod +x /etc/munin/plugins/ipset
- Editez le fichier de configuration de munin-node :
vim /etc/munin/plugin-conf.d/munin-node
- Puis ajoutez la configuration suivante pour autoriser l’exécution en root
[ipset]
user root
- Enfin testez son exécution avec munin-run :
munin-run ipset
- On relance le service munin-node :
systemctl restart munin-node
Grapher fail2ban
Ce plugin compatibilise et graphs le nombre hosts bannis dans chaque jail Fail2ban.
- On créé le fichier du plugin dans le répertoire de munin :
vim /usr/share/munin/plugins/fail2ban
- Puis copiez/collez le contenu depuis ce lien
- Ensuite on créé le lien symbolique dans la configuration de munin pour activer ce dernier
ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugin-conf.d/fail2ban
chmod +x /etc/munin/plugins/fail2ban
- Editez le fichier de configuration de munin-node :
vim /etc/munin/plugin-conf.d/munin-node
- Puis ajoutez la configuration suivante pour autoriser l’exécution en root
[fail2ban]
user root
env.client /usr/bin/fail2ban-client
env.config_dir /etc/fail2ban
- Enfin testez son exécution avec munin-run :
munin-run fail2ban
- On relance le service munin-node :
systemctl restart munin-node