Configurer shorewall sous debian

Le tuto fonctionne aussi sous Ubuntu 12.04 (oui c’est article qui date)

Le pare-feu « Shoreline Firewall », plus communément appelé « Shorewall« , est un outil qui permet de configurer plus facilement Netfilter (IpTable).

Shorewall est un outil qui permet de configurer Netfilter, son travail est fini.

L’avantage de Shorewall est qu’il est très flexible, une fois que l’on a compris la syntaxe.

Si vous avez d’autres firewalls il faut les désinstaller avant de commencer (ex: firestarter)

Installation de shorewall
apt-get install shorewall shorewall-doc
# on va dans le HOME
cd ~
# Copie de la doc one-interface
cp -r /usr/share/doc/shorewall/examples/one-interface ~
#on va dans la doc one-interface
cd one-interface/
# on met en place les configs de base
cp interfaces policy zones rules /etc/shorewall/
# retour au home
cd ~
# suppression de la doc du home
rm -r one-interface/
view raw shorewall apt hosted with ❤ by GitHub

Maintenant que les fichiers de configuration de base sont placés aux bons endroits nous allons pouvoir commencer à configurer Shorewall selon nos besoins.Par défaut les connexions entrantes sont refusées mais les connexions sortantes sont autorisées. Selon vos besoins vous pouvez changer la politique en éditant le fichier `/etc/shorewall/policy`. Dans la suite de l’article on partira du principe que la politique utilisée est la politique par défaut.

Mise en place des règles du firewall

Ouvrir le fichier qui contient les règles:

nano /etc/shorewall/rules
view raw edit shorewall rules hosted with ❤ by GitHub

On a deux zones le « net » et le « $FW » (firewall).

Trois actions:

  • ACCEPT = accepter
  • REJECT = refuser
  • DROP = ignorer (préferez-le à reject)

Voici un exemple de fichier de configuration:

#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ $
# PORT PORT(S) DEST LIMIT GROUP
#SECTION ALL
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW
# Drop Ping from the "bad" net zone.. and prevent your log from being flooded..
Ping(DROP) net $FW
# Open 123 for ntpd service on startup
ACCEPT fw net udp 123
# Allow standard services in and out of the box
ACCEPT fw net udp 53 # DNS
ACCEPT fw net tcp 53 # DNS
ACCEPT net fw tcp 22 # SSH
ACCEPT net fw tcp 80 # HTTP
ACCEPT net fw tcp 443 # HTTPS
ACCEPT net fw tcp 21 # FTP
view raw shorewall config hosted with ❤ by GitHub

Avant de continuer pensez à vérifier que vous avez bien ajouté une règle pour autoriser votre connexion SSH. Par défaut c’est le port 22 mais il a pu être changé. Vérifiez que Port est bien à 22 dans : `etc/ssh/sshd_config`. Si ce n’est pas le cas il faudra modifier la règle correspondant au SSH

Maintenant que nous avons correctement configuré la bête reste à lui dire qu’elle peut être lancée.

nano /etc/shorewall/rules
view raw edit shorewall rules hosted with ❤ by GitHub

Mettre la variable startup à 1 au lieu de 0.

Lancement de Shorewall

Allez il est temps de le lancer:

shorewall start
view raw shorewall start hosted with ❤ by GitHub

La sortie devrait plus ou moins ressembler à ça :

Compiling…
Processing /etc/shorewall/params …
Processing /etc/shorewall/shorewall.conf…
Compiling /etc/shorewall/zones…
Compiling /etc/shorewall/interfaces…
Determining Hosts in Zones…
Locating Action Files…
Compiling /usr/share/shorewall/action.Drop for chain Drop…
Compiling /usr/share/shorewall/action.Broadcast for chain Broadcast…
Compiling /usr/share/shorewall/action.Invalid for chain Invalid…
Compiling /usr/share/shorewall/action.NotSyn for chain NotSyn…
Compiling /usr/share/shorewall/action.Reject for chain Reject…
Compiling /etc/shorewall/policy…
Adding Anti-smurf Rules
Adding rules for DHCP
Compiling TCP Flags filtering…
Compiling Kernel Route Filtering…
Compiling Martian Logging…
Compiling Accept Source Routing…
Compiling MAC Filtration — Phase 1…
Compiling /etc/shorewall/rules…
Compiling MAC Filtration — Phase 2…
Applying Policies…
Generating Rule Matrix…
Creating iptables-restore input…
Shorewall configuration compiled to /var/lib/shorewall/.start
Starting Shorewall….
Initializing…
Setting up Route Filtering…
Setting up Martian Logging…
Setting up Accept Source Routing…
Setting up Traffic Control…
Preparing iptables-restore input…
Running /sbin/iptables-restore…
done.
view raw shorewall logs hosted with ❤ by GitHub

Si ce n’est pas le cas et qu’une erreur apparait c’est que vous avez un problème de configuration.