Shorewall est un excellent pare-feu simple à configurer. Pour être plus précis, cet outil permet de configurer facilement des règles iptables.
Installation
Linux général
Télécharger le source, et lancer une installation classique :
$ wget http://www.shorewall.net/pub/shorewall/4.4/shorewall-4.4.8/shorewall-4.4.8.2.tgz
$ tar –xvf shore*
$ ./install.sh
Fedora, Red Hat et CentOS
Encore une fois, des distributions récentes peuvent proposer shorewall. L’avantage est que la mise-à-jour est automatique, l’inconvénient est que vous n’avez pas toujours la dernière vesion. Dans ce cas, l’installation est cependant beaucoup plus simple :
yum install shorewall
Il ne reste plus qu’à configurer Shorewall, en comprenant un peu ce que l’on fait…
Ubuntu et Debian
C’est à peu près aussi simple que sur Red Hat like :
apt-get install shorewall
Par contre attention, pour que Shorewall démarre automatiquement, n’oubliez pas de mettre de modifier le fichier /etc/default/shorewall
et de mettre startup=1
.
Protections Linux
Il faut aussi penser à autoriser shorewall
avec AppArmor, SELinux, etc.
Pour AppArmor : http://doc.ubuntu-fr.org/apparmor.
Configuration en hôte simple
Définissez le fichier interfaces
#ZONE INTERFACE BROADCAST OPTIONS
net vmbr0 detect dhcp,routefilter,nosmurfs,logmartians,tcpflags
dmz venet0 detect tcpflags,routeback
Définissez le fichier zones
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
dmz ipv4
Définissez le fichier policy
A noter : on peut abaisser le niveau de log.
#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:
# LEVEL BURST MASK
#
#
à revoir
Définissez le fichier rules
Pour commencer, on met les règles de base pour permettre la connexion, ici dans le cadre d’une machine Proxmox.
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK CONNLIMIT TIME
# PORT PORT(S) DEST LIMIT GROUP
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW
#
Pour Plesk, ajouter :
ACCEPT net dmz:IP1,IP2,IP3... udp 8443
ACCEPT net dmz:IP1,IP2,IP3... tcp 8443,8447
Pour CPanel, ajouter :
ACCEPT net dmz:IP1,IP2,IP3... tcp 2077,2078,2082,2083,2086,2087,2089,2095,2096
ACCEPT net dmz:IP1,IP2,IP3... udp 2077,2078
Si vous utilisez un collecteur de logs (par exemple Ossec) :
ACCEPT net dmz:votre_ip udp 514,1514
Quelques bugs et anomalies
Le bug Ubuntu 15.04 et suivants
Sur Ubuntu 15, shorewall semble ne pas démarrer. On peut considérer cela comme très gênant. Peu d’informations sont disponibles sur le web, à part un bug ouvert1 chez Debian.
Une solution semble être l’installation d’un package supplémentaire, shorewall-init
. Dans mon cas, ça a marché.
Problème de redémarrage
Il m’est arrivé d’installer shorewall, de le lancer, mais qu’après un reboot, rien ne démarre. J’avais trouvé la solution au fin fond d’un forum (launchpad), mais cela venait d’un problème dans la gestion du démarrage des services. Pour le résoudre :
sudo systemctl enable /lib/systemd/system/shorewall.service