Linux:sowall

Un article de Djjnet.

Sommaire

Présentation

sowall permet de réaliser un firewall (pare-feu) facilement grâce à netfilter/iptables.

La version actuelle est la 2.2.

sowall est distribué sous licence GPL V2 : http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Installation

Package Debian

Ajouter la clef GPG, en root :

gpg --keyserver pgpkeys.mit.edu --recv-key FBECF2F742AE6156
gpg -a --export FBECF2F742AE6156 | apt-key add -

Modifier votre fichier /etc/apt/sources.list et ajouter :

deb http://debian.dj-j.net/ ./

Puis :

apt-get update

Enfin :

apt-get install sowall

Installation Manuelle

Les instructions suivantes permettre l'installation dans /usr/bin et /etc/. Par défaut, l'installation est dans /usr/local

tar -zxf sowall-2.2.tar.gz
cd sowall-2.2
make prefix=/usr sysconfdir=/etc all
make prefix=/usr sysconfdir=/etc install  

Faire un lien symbolique dans init.d :

ln -s /usr/bin/sowall /etc/init.d/sowall

Ajouter au démarrage après la configuration du réseau dans les /etc/rcX.d à l'aide de chkconfig ou update-rc.d selon la distribution.


Configuration

Pour la suite, nous considérons que l'installation a été réalisée dans /usr/bin et /etc/

Les fichiers de configuration se trouve dans /etc/sowall/.

Pour le fichier de configuration principal sowall.conf, il est nécessaire de modifier LOGULOGD=1 à LOGULOGD=0 dans le cadre d'une installation manuelle et sans ulogd.

De base, uniquement le traffic bloqué est inscrit dans les logs :

LOGLEVEL=1

Si vous avez besoin de modifier la valeur de /proc/sys/net/ipv4/ip_conntrack_max, il suffit de renseigner dans le fichier de configuration la variable CONNTRACKMAX.

Il faut vérifier les interfaces configurées dans le fichier de configuration zones.conf, par défaut :

#Nom="interface"
WAN="eth0"
INTRA="eth1"
DMZ="eth2"

Le mot clef qui sera utilisé pour identifier la machine (serveur ou poste de travail) où est configuré sowall est :

SERVER

Il est nécessaire de renseigner des "objets" dans le fichier de configuration objects.conf ainsi :

#NOMOBJET="IP"
#Ne pas mettre de - il faut mettre des _
TEST_OBJECT="123.1.2.3"
TEST_RESEAU="1.2.3.4/255.255.255.128

Ces objets sont utilisés dans les règles du firewall (fichier rules.conf)

#SOURCE-SPORT-DESTINATION-PROTO-DPORT
#ALL : Mot clef represant TOUT pour source, destination, protocol, port
#SERVER : Mot clef represantant le serveur
#WAN:OBJET-ALL-SERVER-UDP-53
#SERVER-ALL-WAN:OBJET-TCP-80
#
# 
WAN-ALL-SERVER-TCP-22
SERVER-ALL-WAN-TCP-53
SERVER-ALL-WAN-UDP-53
SERVER-ALL-WAN-TCP-25

Utilisation

Le script peut être appelé directement ainsi :

sowall commande

ou

/etc/init.d/sowall commande

Exemple d'utilisation, après modification d'une règle firewall

Il faut :

  • Supprimer les règles sauvegardées :
sowall purge
  • Lancer le chargement des nouvelles règles :
sowall start

Une autre solution est dans le cas de règles "risquée" de tester les nouvelles règles pendant X secondes :

sowall test 90

Après 90 secondes, les règles sont remises à ACCEPT par défaut et sans aucune règle. Si le test est concluant, vous pouvez les appliquer avec :

sowall start
  • Sauvegarder les règles, pour qu'elles soient relancées plus rapidement :
sowall save

Pour arrêter les règles firewall

Il suffit de lancer :

sowall stop

Logs

Dans les cas de l'utilisation de ulogd, les logs sont mis dans le fichier :

/var/log/ulog/syslogemu.log

Documentation

La syntaxe des fichiers de configuration est présente au début de ceux-ci.

Un man est disponible :

man sowall