Configuration de Shorewall (Firewall)
Shorewall : Présentation
Shorewall (Shoreline Firewall) est un outil de gestion de pare-feu basé sur iptables, conçu pour simplifier la configuration et la gestion de pare-feu sous Linux. Shorewall permet de créer des règles de sécurité réseau complexes en définissant des zones, des interfaces, et des politiques de sécurité, rendant la configuration plus accessible que décrire directement des règles iptables.
Fonctionnalités principales
Shorewall permet aux administrateurs de :
- Gérer les politiques de filtrage entre les zones de réseau (par exemple, LAN, Internet, DMZ).
- Contrôler les interfaces réseau et restreindre le trafic entrant et sortant.
- Configurer le NAT (Network Address Translation) et le masquerading pour permettre aux machines d’un réseau local de communiquer avec lextérieur.
- Définir des règles spécifiques pour des services ou applications, comme le SSH, HTTP, ou dautres ports personnalisés.
- Effectuer des redirections de ports (DNAT) pour accéder aux services internes depuis l’extérieur.
Structure de configuration
Shorewall utilise plusieurs fichiers de configuration pour organiser les paramètres du pare-feu :
- /etc/shorewall/zones : Définit les zones de réseau (par exemple, fw pour le firewall, net pour le réseau externe).
- /etc/shorewall/interfaces : Associe les interfaces réseau aux zones.
- /etc/shorewall/policy : Définit les politiques de filtrage par défaut entre les zones.
- /etc/shorewall/rules : Spécifie les règles spécifiques pour le trafic réseau (par exemple, autoriser SSH ou HTTP).
- /etc/shorewall/snat : Configure le masquerading ou le NAT pour masquer les adresses IP locales derrière une IP publique.
Ces fichiers permettent une séparation logique des paramètres, rendant la gestion et la maintenance du pare-feu plus claires et modulaires.
Installation des paquets
Sur la machine virtuelle vmlb, installez les paquets suivants :
# apt install shorewall tcpdump nmap
Configuration des fichiers de Shorewall
Les fichiers de configuration de Shorewall sont modifiés pour définir les zones, les interfaces, les politiques, le SNAT, les variables de paramètres et les règles daccès.
Fichier des zones
Définissez les zones dans /etc/shorewall/zones :
# cat /etc/shorewall/zones
fw firewall
net ipv4
lan ipv4
- fw : Zone représentant le firewall lui-même.
- net : Zone pour le réseau externe (Internet).
- lan : Zone pour le réseau local (LAN).
Fichier des interfaces
Associez les interfaces réseau aux zones dans /etc/shorewall/interfaces :
# cat /etc/shorewall/interfaces
?FORMAT 2
net enp0s3 dhcp,tcpflags,nosmurfs,sourceroute=0
lan enp0s8 tcpflags,nosmurfs,sourceroute=0
- enp0s3 : Interface pour le réseau externe avec des options de sécurité activées.
- enp0s8 : Interface pour le réseau local, également avec options de sécurité.
Fichier des politiques
Définissez les politiques de filtrage de Shorewall dans /etc/shorewall/policy :
# cat /etc/shorewall/policy
lan net ACCEPT
lan $FW ACCEPT
$FW net ACCEPT
$FW lan ACCEPT
net all DROP info
all all REJECT info
- ACCEPT : Autorise le trafic entre lan vers net et le firewall ($FW).
- DROP : Bloque tout trafic entrant du réseau net par défaut, avec enregistrement.
- REJECT : Rejette tout autre trafic, avec enregistrement.
Fichier SNAT
Pour effectuer du masquerading, configurez le fichier /etc/shorewall/snat :
# cat /etc/shorewall/snat
MASQUERADE 192.168.72.0/24 enp0s3
- MASQUERADE : Applique le NAT source (SNAT) pour masquer les adresses du réseau local 192.168.72.0/24 à travers linterface externe enp0s3.
Fichier des paramètres (params)
Définissez une variable de paramètres dans /etc/shorewall/params :
# cat /etc/shorewall/params
IP_GCH=192.168.1.18
- IP_GCH : Définit l’adresse IP externe spécifique utilisée dans certaines règles.
Fichier des règles
Définissez les règles de filtrage spécifiques dans /etc/shorewall/rules :
# cat /etc/shorewall/rules
ACCEPT all all icmp 8
ACCEPT net:$IP_GCH $FW tcp 22
ACCEPT net $FW tcp 80
ACCEPT net:$IP_GCH $FW tcp 8282
# DNAT
DNAT net:$IP_GCH lan:192.168.72.11:22 tcp 2221
DNAT net:$IP_GCH lan:192.168.72.12:22 tcp 2222
- ACCEPT :
* Autorise les paquets ICMP de type 8 (ping) de nimporte quelle source vers nimporte quelle destination. * Permet laccès SSH (port 22), HTTP (port 80), et 8282 à partir de lIP définie par IP_GCH vers le firewall.
- DNAT :
* Redirige le trafic externe vers l’IP 192.168.1.18 sur les ports 2221 et 2222 vers les adresses locales 192.168.72.11:22 et 192.168.72.12:22 respectivement (pour le SSH).
Validation et démarrage de Shorewall
Exécutez les commandes suivantes pour vérifier et démarrer Shorewall :
# shorewall check
# shorewall safe-start
# systemctl enable shorewall
Test de configuration avec nmap
Depuis une machine externe, testez la configuration du pare-feu avec nmap en scannant les ports autorisés :
$ nmap -p 22,80,8282,2221,2222 IP_FIREWALL
Le test doit vérifier que les ports 22, 80, 8282, 2221, et 2222 sont ouverts sur IP_FIREWALL, conformément aux règles de Shorewall définies dans la configuration.