Website-Suche

So erkunden Sie die Konfiguration der Shorewall-Firewall unter Linux


In meinem vorherigen Artikel haben wir die Installation von Shorewall, die Einrichtung der Konfigurationsdatei und die Konfiguration der Portweiterleitung über NAT kennengelernt. In diesem Artikel werden wir uns mit häufigen Fehlern im Zusammenhang mit Shorewall befassen, Lösungen anbieten und die Befehlszeilenoptionen vorstellen.

Shorewall bietet eine breite Palette von Befehlen, die auf der Befehlszeile ausgeführt werden können. Wenn Sie einen Blick auf die Uferwand werfen, sollten Sie viel zu sehen bekommen, aber die erste Aufgabe, die wir durchführen werden, ist eine Überprüfung unserer Konfigurationsdateien.

sudo shorewall check

Shorewall druckt eine Überprüfung aller Ihrer Konfigurationsdateien und der darin enthaltenen Optionen aus.

Die Ausgabe sieht in etwa wie folgt aus.

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

Die magische Zeile, nach der wir suchen, ist die am unteren Rand, die lautet: "Shorewall-Konfiguration verifiziert". Wenn Sie Fehler erhalten, sind diese höchstwahrscheinlich auf fehlende Module in Ihrer Kernelkonfiguration zurückzuführen.

Ich zeige Ihnen, wie Sie zwei der häufigsten Fehler beheben können, aber es obliegt Ihnen, Ihren Kernel mit allen notwendigen Modulen neu zu kompilieren, wenn Sie vorhaben, Ihren Rechner als Firewall zu verwenden.

Der erste und häufigste Fehler ist der Fehler über 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)

Wenn Sie etwas Ähnliches sehen, besteht die Möglichkeit, dass Ihr aktueller Kernel nicht mit Unterstützung für NATT kompiliert ist. Dies ist bei den meisten sofort einsatzbereiten Kernels üblich. Bitte lesen Sie mein Tutorial zum Thema "Wie man einen Debian-Kernel kompiliert", um Ihnen den Einstieg zu erleichtern.

Ein weiterer häufiger Fehler, der durch die Prüfung erzeugt wird, ist der Fehler über iptables und 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

Dies ist auch etwas, das Sie in einen neuen Kernel kompilieren können, aber es gibt eine schnelle Lösung dafür, wenn Sie ULOG verwenden möchten. ULOG ist ein anderer Protokollierungsmechanismus als Syslog. Es ist ziemlich einfach zu bedienen.

Um dies zu setzen, müssen Sie jede Instanz von "info" in allen Ihren Konfigurationsdateien in /etc/shorewall auf "ULOG" ändern. Der folgende Befehl kann dies für Sie tun.

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

Bearbeiten Sie danach die Datei /etc/shorewall/shorewall.conf und setzen Sie die Zeile.

LOGFILE=

An den Ort, an dem Sie Ihr Protokoll speichern möchten. Meins befindet sich in /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

Wenn Sie den folgenden Befehl erneut ausführen, sollten Sie ein sauberes Zeugnis erhalten.

shorewall check

Die Befehlszeilenschnittstelle von Shorewall enthält viele praktische Einzeiler für Systemadministratoren. Ein häufig verwendeter Befehl, insbesondere wenn zahlreiche Änderungen an der Firewall vorgenommen werden, besteht darin, den aktuellen Konfigurationsstatus zu speichern, damit Sie bei Komplikationen ein Rollback durchführen können.

Die Syntax dafür ist einfach.

sudo shorewall save <filename>

Das Zurücksetzen ist genauso einfach:

sudo shorewall restore <filename>

Shorewall kann auch gestartet und so konfiguriert werden, dass ein alternatives Konfigurationsverzeichnis verwendet wird. Sie können angeben, dass dies der Startbefehl ist, aber Sie sollten ihn zuerst überprüfen.

sudo shorewall check <config-directory>

Wenn Sie die Konfiguration einfach ausprobieren möchten und wenn sie funktioniert, starten Sie sie, Sie können die Option "Testen" angeben.

sudo shorewall try <config-directory> [  ]

Shorewall ist nur eine von vielen robusten Firewall-Lösungen, die auf Linux-Systemen verfügbar sind. Unabhängig davon, an welchem Ende des Netzwerkspektrums Sie sich befinden, finden viele es einfach und nützlich.

Dies ist nur ein kleiner Anfang, der Sie auf den Weg bringen kann, ohne sich zu sehr mit Networking-Konzepten zu beschäftigen. Wie immer, bitte recherchieren Sie und werfen Sie einen Blick auf die Manpages und andere Ressourcen. Die Mailingliste von Shorewall ist ein großartiger Ort und ist aktuell und gut gepflegt.

Verwandte Artikel: