Administration

Soulager syslog des logs de Shorewall

Shorewall est un pare-feu simple, basé sur des fichiers de configuration. Une fois lancé, il « compilera » les règles en commandes iptables compréhensibles par le système.

Suivant votre configuration, vous pourrez être amené à loguer ce qui se passe, ce qui peut être utile lors de DROP ou REJECT. Attention tout de même, ces logs peuvent gonfler assez vite et c’est là le problème : Shorewall écrit ses logs dans syslog et messages (pour celui-ci, cela dépend du niveau de log configuré) présent dans /var/log. Ce qui a pour effet de noyer les autres messages, provenant du système par exemple, dans les logs de Shorewall.

Installation d’ulogd

On va donc utiliser ulogd2 qui va nous permettre de router les logs de Shorewall dans un autre fichier. Commençons par l’installer :

apt-get install ulogd2

Une fois installer, il faut éditer le fichier /etc/ulogd.conf. Puis ajouter à la fin les lignes suivantes :

[firewall]
file="/var/log/firewall"
sync=1

Puis trouvez la ligne suivante et ajouter à la fin

# this is a stack for logging packet send by system via LOGEMU
stack=log1:NFLOG,base1:BASE,ifi1:IFINDEX,ip2str1:IP2STR,print1:PRINTPKT,firewall:LOGEMU

On crée le fichier :

touch /var/log/firewall && chmod 644 /var/log/firewall

Puis on relance ulogd pour prendre en compte les modifications :

service ulogd restart

On va maintenant configurer shorewall pour qu’il route les logs vers ulogd, on commence par écrire dans le fichier « /etc/shorewall/params » cette ligne :

LOG=NFLOG

On va ensuite éditer le fichier policy, ou tout autre fichier qui contient l’information de log, et remplacer le niveau de log par « $LOG », par exemple :

net     all     DROP            $LOG
all     all     REJECT          $LOG

Une fois fait, relancez Shorewall et vérifiez que le fichier shorewall.log se rempli bien :

tail -f /var/log/shorewall.log
May  3 16:32:44 othala Shorewall:net2fw:DROP: IN=eth0 OUT= MAC=00:30:18:4c:c0:1a:00:24:d4:af:71:30:08:00  SRC=86.29.xxx.xxx DST=192.168.xxx.xxx LEN=52 TOS=00 PREC=0x00 TTL=110 ID=6017 DF PROTO=TCP SPT=55912 DPT=44609 SEQ=2879260085 ACK=0 WINDOW=8192 SYN URGP=0
May  3 16:32:47 othala Shorewall:net2fw:DROP: IN=eth0 OUT= MAC=00:30:18:4c:c0:1a:00:24:d4:af:71:30:08:00  SRC=86.29.xxx.xxx DST=192.168.xxx.xxx LEN=52 TOS=00 PREC=0x00 TTL=110 ID=6018 DF PROTO=TCP SPT=55912 DPT=44609 SEQ=2879260085 ACK=0 WINDOW=8192 SYN URGP=0

Faire tourner les logs avec logrotate

Pour plus de confort, on peut faire tourner les logs. Pour ce faire, on va utiliser logrotate. On va donc créer et éditer le fichier « /etc/logrotate.d/shorewall » comme suit :

/var/log/shorewall.log {
weekly
rotate 4
compress
missingok
create 0666 root adm
postrotate
invoke-rc.d ulogd2 reload > /dev/null
endscript
}

Pour tester, on peut lancer la commande suivante :

logrotate --force /etc/logrotate.d/shorewall

Ce qui donne :

-rw-rw-rw- 1 root adm 0 Mar 23 19:17 firewall
-rw-r--r-- 1 root root 3.4K Mar 23 18:59 firewall.1.gz

Amusez vous bien. 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.