Recherche de site Web

Comment explorer la configuration du pare-feu Shorewall sous Linux


Dans mon article précédent, nous avons appris l'installation de Shorewall, la configuration du fichier de configuration et la configuration de la redirection de port sur NAT. Dans cet article, nous examinerons les erreurs courantes associées à Shorewall, proposerons des solutions et présenterons ses options de ligne de commande.

Shorewall propose un large éventail de commandes pouvant être exécutées sur la ligne de commande. Jetez un œil au man Shorewall devrait vous donner beaucoup de choses à voir, mais la première tâche que nous allons effectuer est une vérification de nos fichiers de configuration.

sudo shorewall check

Shorewall imprimera une vérification de tous vos fichiers de configuration et des options qu'ils contiennent.

La sortie ressemblera à ceci.

Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking MAC Filtration -- Phase 1...
Checking /etc/shorewall/rules...
Checking /usr/share/shorewall/action.Invalid for chain %Invalid...
Checking MAC Filtration -- Phase 2...
Applying Policies...
Checking /etc/shorewall/routestopped...
Shorewall configuration verified

La ligne magique que nous recherchons est celle du bas qui dit : « Configuration Shorewall vérifiée ». Si vous recevez des erreurs, elles sont probablement dues à des modules manquants dans la configuration de votre noyau.

Je vais vous montrer comment résoudre deux des erreurs les plus courantes, mais il vous incombe de recompiler votre noyau avec tous les modules nécessaires si vous envisagez d'utiliser votre machine comme pare-feu.

La première erreur, et la plus courante, est l'erreur concernant le NAT.

Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Checking /etc/shorewall/zones...
Checking /etc/shorewall/interfaces...
Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking /etc/shorewall/masq...
    ERROR: a non-empty masq file requires NAT in your kernel and iptables /etc/shorewall/masq (line 15)

Si vous voyez quelque chose qui ressemble à ceci, il est probable que votre noyau actuel n'est pas compilé avec la prise en charge du NAT. Ceci est courant avec la plupart des noyaux prêts à l'emploi. Veuillez lire mon tutoriel sur « Comment compiler un noyau Debian » pour commencer.

Une autre erreur courante produite par la vérification est l'erreur concernant iptables et la logging.

shorewall check
Checking...
Processing /etc/shorewall/params...
Processing /etc/shorewall/shorewall.conf
Loading Modules..
   ERROR: Log level INFO requires LOG Target in your kernel and iptables

C'est également quelque chose que vous pouvez compiler dans un nouveau noyau, mais il existe une solution rapide si vous souhaitez utiliser ULOG. ULOG est un mécanisme de journalisation différent de Syslog. C’est assez simple à utiliser.

Pour définir cela, vous devez remplacer chaque instance de « info » par « ULOG » dans tous vos fichiers de configuration dans /etc/shorewall . La commande suivante peut le faire pour vous.

cd /etc/shorewall
sudo sed –i ‘s/info/ULOG/g’ *

Après cela, éditez le fichier /etc/shorewall/shorewall.conf et définissez la ligne.

LOGFILE=

À l'endroit où vous souhaitez que votre journal soit stocké. Le mien est dans /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

Exécuter à nouveau la commande suivante devrait vous donner un bon état de santé.

shorewall check

L'interface de ligne de commande de Shorewall est livrée avec de nombreuses lignes directrices pratiques pour les administrateurs système. Une commande fréquemment utilisée, en particulier lorsque de nombreuses modifications sont apportées au pare-feu, consiste à enregistrer l'état de configuration actuel afin de pouvoir revenir en arrière en cas de complications.

La syntaxe pour cela est simple.

sudo shorewall save <filename>

Le retour en arrière est tout aussi simple :

sudo shorewall restore <filename>

Shorewall peut également être démarré et configuré pour utiliser un autre répertoire de configuration. Vous pouvez spécifier qu'il s'agit de la commande de démarrage, mais vous souhaiterez d'abord la vérifier.

sudo shorewall check <config-directory>

Si vous souhaitez simplement tester la configuration, et si elle fonctionne, démarrez-la, vous pouvez spécifier l'option try.

sudo shorewall try <config-directory> [  ]

Shorewall n'est que l'une des nombreuses solutions de pare-feu robustes disponibles sur les systèmes Linux. Quelle que soit l’extrémité du spectre des réseaux dans laquelle vous vous trouvez, nombreux sont ceux qui trouvent cela simple et utile.

Ce n’est qu’un petit début, et qui peut vous mettre sur la bonne voie sans trop vous lancer dans les concepts de réseautage. Comme toujours, veuillez rechercher et consulter les pages de manuel et autres ressources. La liste de diffusion de Shorewall est un endroit génial, à jour et bien entretenu.