PostHeaderIcon Tutoriel | Installer et configurer le firewall Shorewall

Article publié le 23 Juin 2016

Un petit tuto sur le firewall Shorewall qui simplifie grandement la configuration d'IPTABLES. En effet avec Shorewall vous pouvez configurer de manière très efficace IPTABLE juste avec une  petite poignée de fichiers de configuration (très utile pour de nombreux  serveurs dédiés piratés...)

 

1) Installation

Sous Debian/ Ubuntu:

apt-get install shorewall shorewall-core

(sans oublier shorewall6 si vous avez une interface réseau avec une adresse IPV6)

 

Sous RedHat/Centos

Shorewall n'est pas dans les dépots officiels de ces distributions. Pour cela il est nécessaire de rajouter les dépôts de shorewall:

Créez le fichier /etc/yum.repos.d/shorewall.repo et rajouter les lignes suivantes:

[shorewall]
name = RHEL $releasever - Shorewall - sysadminguide.net
baseurl = http://mirror.sysadminguide.net/shorewall
enabled = 1
protect = 0
gpgcheck = 0

Puis installez shorewall:

yum install shorewall, shorewall-core

(Sans oublier shorewall6 si vous avez une interface réseau avec une adresse IPV6;-))

 

2) Configuration

2.1) Sous Debian:

Copiez les fichiers de configurations depuis le répertoire /usr/share/doc/shorewall/examples/one-interface vers  /etc/shorewall

cd /usr/share/doc/shorewall/examples/one-interface && cp {interfaces, policy, shorewall.conf.gz, zones} /etc/shorewall && gunzip /etc/shorewall/shorewall.conf.gz

cd /usr/share/doc/shorewall6/examples/one-interface && cp {interfaces, policy, shorewall.conf.gz, zones} /etc/shorewall6 && gunzip /etc/shorewall6/shorewall.cong.gz (si vous avez une adresse IPv6)

Créez le fichier /etc/shorewall/rules  (également pour /etc/shorewall6/rules le cas échéant) et ajoutez y les lignes suivantes:

?SECTION NEW
SHELL cat /etc/shorewall/rules.d/*.rules 2> /dev/null || true

Puis créez le répertoire /etc/shorewall/rules

mkdir /etc/shorewall/rules.d

(mkdir /etc/shorewall6/rules.d)

 

2.2) RedHat

La procédure est presque identique à celle de Debian.

Copier les fichiers disponibles ICI  dans le répertoire /etc/shorewall/ et /etc/shorewall6 (si vous avec une adresse IPv6).

Créer les répertoire /etc/shorewall/rules.d et /etc/shorewall6/rules.d

mkdir /etc/shorewall/rules.d   (mkdir /etc/shorewall6/rules.d).

 

3) Paramétrage du Firewall

La politique appliquée ici (étant une best practice) est de tout bloquer et d'ouvrir uniquement les ports utilisés.

Pour cela il suffit de créer des fichiers contenant les règles dans le répertoires /etc/shorewall/rules.d

Exemple pour rendre accessible le port SSH que pour certaines IP:

vi /etc/shorewall/rules.d/ssh.rules

ACCEPT net:<ip autorisée> $FW tcp 22
ACCEPT net:<deuxième ip autorisée> $FW tcp 22

Il est également possible d'autoriser une plage d'IP:

vi /etc/shorewall/rules.d/votreservice.rules

ACCEPT net:<ip autorisée> $FW tcp 7896,9800:9809
ACCEPT net:<deuxième ip autorisée> $FW tcp 7896,9800:9809

# UDP

ACCEPT net:<ip autorisée> $FW udp 7896,9800:9809
ACCEPT net:<deuxième ip autorisée> $FW udp 7896,9800:9809

 

Une fois votre configuration effectuée nous allons activer shorewall.

  • Editez le fichier /etc/shorewall/shorewall.conf et modifier la ligne "STARTUP_ENABLED=No" par "STARTUP_ENABLED=Yes"
  • Editez le fichier /etc/default/shorewall et remplacez "startup=0" par "startup=1"
  • Lancez shorewall avec la commande service shorewall start

Il ne reste plus qu'à vérifier que votre firewall contient toutes les règles que vous avez paramétré avec la commande iptables -L

 

Certains serveurs dédiés (notamment chez OVH) possèdent une adresse IPv4 et IPv6 sur 2 interfaces. Je tiens à souligner l'importance du paramétrage du firewall sur l'interface IPv6 avec shorewall6 (répertoire de configuration /etc/shorewall6). Un oubli pourrait transformer votre machine en passoire.

image_print

Laisser un commentaire