Sichern Ihres Netzwerks mit Iptables - Proxy - NAT - IDS: TEIL 2

Bei der Previous post Wir haben die Konfiguration von IPTables als Firewall gesehen. Jetzt können wir sehen, wie diese Skripte erstellt werden, damit die Regeln beim Systemstart automatisch ausgeführt werden, und wie wir diese Regeln für einen Moment entfernen oder stoppen können.

Bevor wir das Skript erstellen und Ihnen zeigen, wie es aussieht, lassen Sie uns ein wenig über NAT und das Konzept sprechen, was wir mit diesem Gerät machen wollen.

NAT und Kontext des Beispiels.

Wenn wir über NAT sprechen, können wir dies mit Routing verwechseln, da beide dafür verantwortlich sind, zwei verschiedene Netzwerke miteinander zu verbinden. Der Unterschied besteht darin, dass das Routing angewendet wird, um von einem lokalen Netzwerk zu einem anderen zu wechseln, und dieses andere Netzwerk eine Verbindung zu einem Router herstellen und ins Internet gehen kann.

Wenn wir dagegen über NAT sprechen, sprechen wir über das Weiterleiten von Paketen von einem lokalen oder privaten Netzwerk an ein öffentliches Netzwerk oder das Internet. Dazu werden die Pakete maskiert, indem die öffentliche IP-Adresse, mit der sie ins Internet gehen, eingegeben wird. Mit anderen Worten, wir benötigen keinen Router, da die öffentliche IP direkt dem GNU / Linux-Computer gehört.

nat

Wir werden dies mit dem Slogan arbeiten, dass wir unser Linux als Router / Firewall verwenden, um von einem lokalen Netzwerk ins Internet zu gehen. Hier können jedoch zwei Szenarien auftreten.

  • Dass unser Linux zwischen dem Router des Dienstanbieters und dem lokalen Netzwerk liegt.

In diesem Fall würde es zwischen dem Router und unserem Linux ein Netzwerk geben, und zwischen dem Linux und dem lokalen Netzwerk würde es ein anderes Netzwerk geben. Dies bedeutet, dass unser Router NAT nicht als solches ausführen müsste, mit einem einfachen Verkehrsrouting, wie in erläutert Previous post Es wäre gut.

  • Dass unser Linux eine Schnittstelle hat, die mit dem lokalen Netzwerk verbunden ist, und über die andere Schnittstelle direkt eine öffentliche IP empfängt, mit der es navigiert.

Dies bedeutet, dass unser Linux NAT ausführen muss, damit die Pakete das Internet erreichen können.

Für die Zwecke dieses kleinen Labors werden wir dann sagen, dass unser Linux direkt eine öffentliche IP erhält und somit in der Lage ist, die Auswirkungen von NAT zu testen.

Um NAT zu machen, verwenden wir dann die Syntax

 iptables -t nat -A POSTROUTING -O eth1 -j MASKERADE

Wo eth1 die Schnittstelle ist, über die wir die öffentliche IP erhalten, gehen wir ins Internet.

MASQUERADE wird verwendet, wenn die IP öffentlich ist, sie kann jedoch im Laufe der Zeit variieren (dynamisch). Andernfalls können wir SNAT-to-Source-IP verwenden

Iptables-Skript erstellen

Nehmen wir dann an: 172.26.0.0 ist unser lokales Netzwerk und 81.2.3.4 ist die öffentliche IP, mit der wir ins Internet gehen. (Es ist eine statische IP). Ich habe die Schnittstellen eth0 (lokales Netzwerk)

eth1 (öffentliches Netzwerk).

Es besteht im Wesentlichen aus der Erstellung eines Skripts, das beispielsweise über /etc/init.d/firestop aufgerufen werden kann. Mit diesem Skript können wir den Status unserer Konfiguration starten, stoppen oder überprüfen, genau wie bei jedem Systemdämon.

Angenommen, meine IPTABLES-Regeln SIND:

#! / bin / bash # Firewall meines Hauses. # Dateiname / etc / firewall_on # Von Jlcmux Twitter: @Jlcmux # # Grundlegende Richtlinie. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT, um das Internet von eth0 nach eth1 zu teilen iptables -t nat -A POSTROUTING -O eth1 -j SNAT - zur Quelle 81.2.3.4
# # Eingehende Verbindungen zulassen, die von meinen iptables initiiert wurden -A FORWARD -m Status - Status ESTABLISHED, RELATED -j ACCEPT # # Autorisierte ausgehende Datenverkehrs-IPptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACEPPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Vergessen wir nicht, Ausführungsberechtigungen zu erteilen

Erläuterung:

Das Skript führt im Wesentlichen Folgendes aus:

  1. Beschränken Sie zunächst alle Navigation, Verbindungen und den Verkehr. (Grundlegende Firewall-Richtlinien)
  2. Erstellen Sie dann das NAT mit dem Ziel eth1. Dies zeigt an, dass wir eine statische öffentliche IP haben «81.2.3.4»
  3. Es öffnet die Ports, die zum Empfangen der von mir initiierten Verbindungspakete erforderlich sind.
  4. Akzeptiert ausgehenden HTTP-, HTTPS- und DNS-Verkehr.
Die Regeln sind für den FORWARD-Verkehr bestimmt, da wir unser Linux als Router verwenden. Die Richtlinien werden daher für den Verkehr verwendet, der über Linux geleitet wird, dh als Vermittler fungiert. Dies bedeutet, dass unser Linux nicht wirklich direkt navigieren oder Daten empfangen kann. Dies gilt nur für angeschlossene Computer, nicht jedoch für sich selbst

Wenn wir mit unserer Ausrüstung navigieren möchten, sollten wir die Zeilen wiederholen und FORWARD in INPUT oder OUTPUT ändern.

Skript abbrechen.

Jetzt werden wir ein Skript erstellen, das alle oben genannten Punkte überschreibt und den Computer von all dem frei lässt. (Zu Testzwecken oder wir möchten nur die Firewall ausschalten).

#! / bin / bash # Firewall meines Hauses. # Dateiname / etc / firewall_off # Von Jlcmux Twitter: @Jlcmux # # Löschen von iptables-Regeln -F # # Anwenden von Standardrichtlinien (der gesamte Datenverkehr wird akzeptiert) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatisieren.

Jetzt müssen wir das Skript im Inneren erstellen /etc/init.d/ und der Dienst startet automatisch und wir können ihn komfortabler verwalten.

#! / bin / bash # Firewall meines Hauses. # Dateiname /etc/init.d/ firewall # Von Jlcmux Twitter: @Jlcmux case $ 1 in start) / etc / firewall_on ;; stop) / etc / firewall_off ;; Status) iptables -L ;; *) echo "Falsche Syntax. Valid = /etc/init.d/ Firewall start | stop | status ;; esac

Erläuterung:

Dieses letzte Skript haben wir eingefügt /etc/init.d/ mit dem Namen Firewall. Wenn wir also die Firewall verwalten möchten, können wir den Befehl verwenden /etc/init.d/ Firewall starten. Auf die gleiche Weise können wir es stoppen oder den Zustand sehen.

Jetzt werden wir die Datei bearbeiten /etc/rc.local und wir setzen so etwas wie: /etc/init.d/ Firewall starten um mit dem System zu beginnen.

Auch. Dies ist der zweite Teil. Ich hoffe, es bringt euch allen etwas. Im nächsten sehen wir Proxy und IDS.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Dhunter sagte

    Wenn Sie Debian verwenden, gibt es im Repo ein Paket (iptables-persistent), das genau das tut. Es gibt die aktuellen Regeln in /etc/iptables/rules.v4 oder v6 aus, je nachdem, was Sie verwenden, und wendet sie dann auf Sie an wenn Sie das System anheben.

  2.   OCZ sagte

    In der Praxis würde in den meisten Fällen eine Regelbereinigung und das Zurücksetzen der Standardrichtlinien auf ACCEPT ausreichen, um die Konfiguration einer herkömmlichen iptables-Firewall zu bereinigen (und die Verwendung von NAT wäre aus meiner Sicht nicht der Fall).
    Aber theoretisch und soweit ich weiß, müssen Sie darüber hinaus auch die nicht standardmäßigen Zeichenfolgen löschen und die Zähler zurücksetzen. Durchzuführende Aktionen unter Berücksichtigung, dass es neben "Filter" noch weitere Tabellen gibt (dazu muss unbedingt die Datei "/ proc / net / ip_tables_names" gelesen werden).

    Die Orthodoxie sagt übrigens, dass eine Firewall bereits vorhanden sein muss, bevor das Netzwerk eingerichtet ist. Ich weiß nicht, wie es in den anderen Linux-Systemen erreicht wird, aber in den Debian-Systemen könnte das Skript angepasst und im Verzeichnis "/etc/network/if-pre-up.d/" eingestellt werden.

    Gute Firewall für alle. 😉

  3.   Nautilus sagte

    Hallo, der Beitrag ist sehr gut. Ich habe die gesamten 2 Bände gelesen.

    Warten auf das nächste 🙂

  4.   anonym sagte

    Eine Frage aus meiner Unwissenheit, wir fahren mit iptables fort, aber für einige Kernel-Versionen haben wir nftables, ich teste bereits, die Fragen sind, ist nftables etwas Beta in Bezug auf iptables? Werden iptables noch viel länger verwendet?

    Danke.

    1.    yukiteru sagte

      nftables umfasst alle Funktionen von iptables, ip6tables, arptables und ebtables, die alle eine neue Infrastruktur sowohl im Kernelspace als auch im Userspace verwenden, was eine bessere Leistung und verbesserte Funktionalität gewährleistet. nftables wird iptables und alle anderen genannten Tools ersetzen, jedoch vorerst nicht, zumindest nicht, bis nftables als solche weiter verbreitet sind.

  5.   Alejandro sagte

    Sehr guter Beitrag, ich wollte mehr lesen, da er sehr gut erklärt ist. Grüße danke großer Beitrag

  6.   Awrah sagte

    Hallo! Sehr gut beide Post.
    Als Beitrag könnten Sie am Ende in diesem Teil hinzufügen:

    "Jetzt werden wir die Datei /etc/rc.local bearbeiten und so etwas wie: /etc/init.d/ Firewall starten, damit es mit dem System beginnt."

    Fügen Sie dies zu rc.local hinzu.

    if [-x /etc/init.d/ firewall]; dann
    /etc/init.d/ Firewall starten
    fi

    Das heißt, wenn "Firewall" Ausführungsberechtigungen hat, führen Sie diese aus, wenn nicht.
    Wenn die "Firewall" nicht gestartet werden soll, müssen Sie nur die Berechtigungen entfernen.

    Zum Beispiel: chmod + x /etc/init.d/ firewall
    damit es bei jedem Start läuft oder ...
    chmod -x /etc/init.d/ Firewall
    um es vollständig zu deaktivieren.

    Viele Grüße!