Website-Suche

So erkunden Sie die Shorewall-Firewall-Konfiguration 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 gehen wir auf häufige Fehler im Zusammenhang mit Shorewall ein, stellen Lösungen bereit und stellen die Befehlszeilenoptionen vor.

Shorewall bietet eine breite Palette von Befehlen, die auf der Befehlszeile ausgeführt werden können. Ein Blick auf die Man Shorewall sollte Ihnen viel zu sehen geben, 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 so 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 Zeile unten, die lautet: „Shorewall-Konfiguration überprüft“. Wenn Sie Fehlermeldungen erhalten, sind diese höchstwahrscheinlich auf fehlende Module in Ihrer Kernel-Konfiguration zurückzuführen.

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

Der erste und häufigste Fehler ist der Fehler bezüglich 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 NAT kompiliert ist. Dies ist bei den meisten Standardkerneln üblich. Bitte lesen Sie mein Tutorial zum Thema „So kompilieren Sie einen Debian-Kernel“, um Ihnen den Einstieg zu erleichtern.

Ein weiterer häufiger Fehler, der bei der Prüfung auftritt, ist der Fehler bezüglich 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 festzulegen, müssen Sie in allen Ihren Konfigurationsdateien in /etc/shorewall jede Instanz von „info“ in „ULOG“ ändern . Der folgende Befehl kann das für Sie erledigen.

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

Bearbeiten Sie anschließend die Datei /etc/shorewall/shorewall.conf und legen Sie die Zeile fest.

LOGFILE=

Dorthin, wo Ihr Protokoll gespeichert werden soll. Meins befindet sich in /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

Wenn Sie den folgenden Befehl erneut ausführen, sollten Sie ein einwandfreies Gesundheitszeugnis 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 einen Rollback durchführen können.

Die Syntax hierfür ist einfach.

sudo shorewall save <filename>

Das Zurückrollen ist genauso einfach:

sudo shorewall restore <filename>

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

sudo shorewall check <config-directory>

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

sudo shorewall try <config-directory> [  ]

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

Dies ist nur ein kleiner Anfang, der Sie auf den Weg bringen kann, ohne sich zu sehr mit Netzwerkkonzepten zu befassen. Bitte recherchieren Sie wie immer und schauen Sie sich die Manpages und andere Ressourcen an. Die Mailingliste von Shorewall ist ein toller Ort, sie ist aktuell und gut gepflegt.