Migrieren von Iptables-Firewallregeln auf einen neuen Server

Einführung

Bei der Migration von einem Server auf einen anderen ist es häufig wünschenswert, die iptables-Firewallregeln als Teil des Prozesses zu migrieren. Dieses Tutorial zeigt Ihnen, wie Sie Ihren aktiven iptables-Regelsatz einfach von einem Server auf einen anderen kopieren können.

Voraussetzungen

Für dieses Lernprogramm sind zwei Server erforderlich. Wir bezeichnen den Quellserver, auf dem die iptables-Regeln existieren, als * Server A *. Der Zielserver, auf den die Regeln migriert werden, wird als * Server B * bezeichnet.

Sie müssen auch Superuser- oder "+ sudo +" - Zugriff auf beide Server haben.

Bestehende Iptables-Regeln anzeigen

Sehen wir uns vor der Migration Ihrer iptables-Regeln an, auf welche Werte sie festgelegt sind. Sie können dies mit diesem Befehl auf * Server A * tun:

sudo iptables -S
Example output:-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 15.15.15.51/32 -j DROP

Die obigen Beispielregeln werden verwendet, um den Firewall-Migrationsprozess zu veranschaulichen.

Iptables-Regeln exportieren

Der Befehl "+ iptables-save" schreibt die aktuellen iptables-Regeln in "+ stdout" (Standardausgabe). Dies gibt uns eine einfache Möglichkeit, die Firewall-Regeln in eine Datei zu exportieren, indem wir + stdout + in eine Datei umleiten.

Verwenden Sie auf dem * Server A *, der die zu migrierenden iptables-Regeln enthält, das + iptables-save +, um die aktuellen Regeln in eine Datei mit dem Namen "iptables-export" zu exportieren:

cd ~
sudo iptables-save >

Dadurch wird die Datei "+ iptables-export" in Ihrem Ausgangsverzeichnis erstellt. Diese Datei kann auf einem anderen Server verwendet werden, um die Firewall-Regeln in iptables zu laden.

Dateiinhalt anzeigen (optional)

Werfen wir einen kurzen Blick auf den Inhalt der Datei. Wir werden den Befehl "+ cat" verwenden, um ihn auf dem Terminal auszudrucken:

cat iptables-export
iptables-export contents:# Generated by iptables-save v1.4.21 on Tue Sep  1 17:32:29 2015
*filter
:INPUT ACCEPT [135:10578]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8364:1557108]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 15.15.15.51/32 -j DROP
COMMIT
# Completed on Tue Sep  1 17:32:29 2015

Wie Sie sehen, enthält die Datei die Konfiguration der aktiven iptables-Regeln. Jetzt können wir diese Datei auf unseren Zielserver * Server B * kopieren.

Exportierte Regeln auf den Zielserver kopieren

Wir müssen die Regeldatei auf unseren Zielserver * Server B * kopieren. Der einfachste Weg, dies zu tun, ist die Verwendung von "+ scp " oder das Kopieren und Einfügen des Dateiinhalts in eine neue Datei auf * Server B *. Wir werden demonstrieren, wie man mit ` scp ` die Datei über das Netzwerk in das Verzeichnis ` / tmp +` kopiert.

Führen Sie auf * Server A * diesen Befehl + scp + aus. Stellen Sie sicher, dass Sie die hervorgehobenen Teile durch den Anmeldenamen und die IP-Adresse Ihres Servers ersetzen:

scp iptables-export @:/tmp

Nach der ordnungsgemäßen Authentifizierung wird die Datei in das Verzeichnis "+ / tmp " auf Server B kopiert. Beachten Sie, dass der Inhalt von " / tmp +" nach einem Neustart gelöscht wird. Wenn Sie ihn beibehalten möchten, können Sie ihn an einer anderen Stelle ablegen.

Iptables-Regeln importieren

Mit den exportierten Regeln auf dem Zielserver können Sie sie in iptables laden. Abhängig von Ihrer Situation möchten Sie möglicherweise die Regeln in der Datei mit neuen IP-Adressen und Bereichen aktualisieren und möglicherweise die Schnittstellennamen aktualisieren. Wenn Sie die Regeln vor dem Laden ändern möchten, müssen Sie die Datei "+ / tmp / iptables-export +" jetzt bearbeiten.

Wenn Sie bereit sind, die Regeln aus der Datei "+ iptables-export" in "iptables" zu laden, verwenden Sie dazu den Befehl "+ iptables-restore".

Führen Sie auf * Server B *, dem Zielserver, diesen Befehl aus, um die Firewall-Regeln zu laden:

sudo iptables-restore < /tmp/iptables-export

Dadurch werden die Regeln in iptables geladen. Sie können dies mit dem Befehl + sudo iptables -S + überprüfen.

Regeln speichern

Iptables-Regeln sind kurzlebig, daher muss besonders darauf geachtet werden, dass sie nach einem Neustart bestehen bleiben. Es ist wahrscheinlich, dass Sie diesen Schritt auf * Server B * ausführen möchten. Wir zeigen Ihnen, wie Sie die Regeln auf Ubuntu und CentOS speichern.

Ubuntu

Unter Ubuntu ist die Verwendung des Pakets iptables-persistent der einfachste Weg, um iptables-Regeln zu speichern, damit sie einen Neustart überstehen. Installiere es mit apt-get wie folgt:

sudo apt-get install iptables-persistent

Während der Installation werden Sie gefragt, ob Sie Ihre aktuellen Firewall-Regeln speichern möchten. Antwort + yes +, wenn Sie den aktuellen Regelsatz speichern möchten.

Wenn Sie Ihre Firewall-Regeln in Zukunft aktualisieren und die Änderungen speichern möchten, führen Sie den folgenden Befehl aus:

sudo invoke-rc.d iptables-persistent save

CentOS 6 und älter

Unter CentOS 6 und älteren Versionen verwendet CentOS 7 standardmäßig FirewallD. Sie können das iptables-Init-Skript verwenden, um Ihre iptables-Regeln zu speichern:

sudo service iptables save

Dadurch werden Ihre aktuellen iptables-Regeln in der Datei "+ / etc / sysconfig / iptables +" gespeichert, die beim Booten von iptables geladen wird.

Fazit

Herzliche Glückwünsche! Ihre Firewall-Regeln wurden von Ihrem ursprünglichen Server auf Ihren neuen Server migriert.