Sichern Sie Ihr Netzwerk mit Iptables - Proxy - NAT - IDS: TEIL 1

In diesem Beitrag wird versucht, ein wenig zu klären, wie Netzwerke funktionieren und wie wir unsere Linux-Geräte in einen Router verwandeln können, der ein wenig mehr für unser Netzwerk sorgt, egal ob zu Hause oder sogar geschäftlich. Kommen wir also zur Sache:

Dieser Inhalt basiert auf dem Buch "Linux - Systemadministration und Betrieb von Netzwerkdiensten" - Sébastien BOBILLIER

Routing und Filterung

Um über Routing zu sprechen und es zu verstehen, können wir zunächst definieren, welche Rolle der Router spielt. Zu diesem Zweck können wir sagen, dass ein Router nicht nur ein Netzwerk erstellt und die Verbindung mit anderen Geräten ermöglicht (in dem Wissen, dass dies mit einem AP, Switch, Hub oder anderen möglich ist), sondern auch zwei verschiedene Netzwerke miteinander verbinden kann.

Router

Wie wir im Bild sehen können, gibt es ein lokales Netzwerk "10.0.1.0", das vom Router erstellt wird und eine seiner beiden Schnittstellen erreicht. Dann hat der Router auf seiner anderen Schnittstelle ein anderes Netzwerk mit seiner öffentlichen IP, mit der er eine Verbindung zum Internet herstellen kann. Die Routing-Funktion besteht im Wesentlichen darin, als Vermittler zwischen diesen beiden Netzwerken zu dienen, damit sie kommunizieren können.

Linux als Router.

Natürlich kann der Linux-Kernel bereits "weiterleiten", aber standardmäßig ist er deaktiviert. Wenn unser Linux diese Arbeit ausführen soll, müssen wir zur Datei gehen.

/proc/sys/net/ipv4/ip_forward

Dort werden wir feststellen, dass es sich um eine Datei handelt, die nur eine Null "0" enthält. Wir müssen sie lediglich in eine Eins "1" ändern, um dieses Verhalten zu aktivieren. Dies wird leider gelöscht, wenn wir den Computer neu starten. Um ihn standardmäßig aktiviert zu lassen, müssen wir den folgenden Befehl verwenden:

sysctl net.ipv4.ip_forward=1

Oder bearbeiten Sie es direkt in der Datei /etc/sysctl.conf. Abhängig von der Distribution kann sich diese Konfiguration auch in einer Datei in befinden  /etc/sysctl.d/.

Standardmäßig muss unser Linux über eine Routing-Tabelle verfügen, die im Allgemeinen die Konfiguration unseres LAN-Netzwerks und die Verbindung zum Router darstellt. Wenn wir dieses Routing sehen wollen, können wir zwei Befehle verwenden:

route -n

o

netstat -nr

Beide Befehle sollten gleich zurückgeben.

Screenshot vom 2014 09:30:18

Im Allgemeinen reicht diese Konfiguration aus, damit Ihr Linux als Gateway dient und andere Computer durch unseren Computer navigieren können. Wenn wir nun möchten, dass unser Linux zwei oder mehr Netzwerke verbindet, ob lokal oder nicht, können wir statische Routen verwenden.

Angenommen, mein Linux hat zwei Netzwerkschnittstellen, die erste hat eine Internetverbindung mit dem Netzwerk 172.26.0.0 und die zweite (10.0.0.0) hat einige Computer aus einem anderen lokalen Netzwerk. Wenn wir Pakete an dieses andere Netzwerk weiterleiten möchten, können wir Folgendes verwenden:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8

Im Allgemeinen ist es:

route add -net REDDESTINO netmask MASCARA gw IPDELLINUX

wenn wir geben Route -n Unabhängig davon, ob dieses Netzwerk vorhanden ist oder nicht, wird dieses Routing in unserer Tabelle festgelegt.

Screenshot vom 2014 09:30:18

Wenn wir dieses Routing eliminieren wollen, können wir es verwenden

route del -net 10.0.0.0 netmask 255.0.0.0

iptables.

Grundsätzlich wird iptables zum Filtern von ausgehenden, eingehenden oder anderen Paketen verwendet. Dies macht es zu einem großartigen Tool zur Verwaltung unseres Netzwerkverkehrs. Nun, iptables, so wie wir den Datenverkehr desselben Computers filtern können, können wir auch den Datenverkehr filtern, der durch ihn fließt. (Weiterleitung). Iptables können in Tabellen, Zeichenfolgen und Aktionen unterteilt werden.

  • Boards:  Grundsätzlich kann es zwei Tabellen geben, Filter, Pakete zu filtern und  nat Adressen zu übersetzen, dh von einem Netzwerk in ein anderes zu wechseln.
  • Ketten: Die Kette bezieht sich auf die Art des Verkehrs, den wir filtern oder schwimmen möchten, dh auf welchen Verkehr werden wir die Tabellen anwenden? und sie können sein:  SPEISUNG: Eingehender Verkehr, AUSGABE: ausgehender Verkehr oder NACH VORNE: Verkehr, der durch ihn geht, aber es ist keine eigene Verbindung.
  • Es kann auch erscheinen Nachbestellen, Hiermit wird das Paket nach dem Weiterleiten auf bestimmte Weise behandelt.
  • Acciones: Aktionen sind im Grunde die Aktionen, die mit der Kette ausgeführt werden sollen. Diese Aktion kann sein Dropp das zerstört nur diesen Verkehr oder ACCEPT. Dadurch kann der Verkehr eine solche Aktion ausführen.

IPTABLES-Regeln werden in der Reihenfolge gespeichert und ausgeführt, in der sie erstellt wurden. Wenn eine Regel eine vorherige Regel löscht, wird immer die letzte Regel in der Reihenfolge angewendet.

Firewall-Richtlinien.

Im Allgemeinen funktionieren Firewalls auf zwei Arten:

  1. Erlaube allen Verkehr außer oder
  2. Erlaube keinen Verkehr außer ...

Verwenden Sie zum Anwenden von Richtlinien IPTABLES - P AKTIONSKETTE

Dabei steht die Zeichenfolge für die Art des Datenverkehrs (INPUT, OUTPUT, FORWARD, POSTROUTING ...) und die Aktion ist DROP OR ACCEPT.

Schauen wir uns ein Beispiel an.

Screenshot vom 2014 09:30:18

Hier sehen wir, dass ich zuerst pingen konnte, dann sagte ich IPTABLES, dass der gesamte OUTPUT-Verkehr DROP war oder nicht erlaubt war. Dann sagte ich IPTABLES, es zu akzeptieren.

Wenn wir eine Firewall von Grund auf neu erstellen wollen, müssen wir immer die Regeln anwenden von (Erlaube keinen Datenverkehr außer ... Dazu wenden wir die Regeln an

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Wenn diese Richtlinien gelten, haben sie keine Verbindung
.

Um zurückzukehren, schreiben wir dasselbe und ersetzen DROP durch ACCEPT.

An diesem Punkt, da der gesamte Datenverkehr verweigert wird, beginnen wir unseren IPTABLES mitzuteilen, welchen Datenverkehr er haben kann.

Die Syntax lautet:

iptables -A cadena -s ip_orgigen -d ip_destino -p protocolo --dport puerto -j acción

Wo:

String = EINGANG, AUSGANG oder VORWÄRTS

origin_ip = Ursprung der Pakete, dies kann eine einzelne IP oder ein Netzwerk sein und in diesem Fall müssen wir die Maske angeben).

Ziel-IP = wohin die Pakete gehen. Dies kann eine einzelne IP oder ein Netzwerk sein. In diesem Fall müssen wir die Maske angeben.

Protokoll = gibt das von den Paketen verwendete Protokoll an (icmp, tcp, udp ...)

port = Zielhafen des Verkehrs.

Aktion = TROPFEN oder AKZEPTIEREN.

Beispiel:

Screenshot vom 2014 09:30:19

Es gelten ALLE eingeschränkten Richtlinien.

Screenshot vom 2014 09:30:19

Anschließend fügen wir die Regeln hinzu, um Datenverkehr über Port 80 HTTP und 443 HTTPS mit dem TCP-Protokoll zu ermöglichen. Dann Port 53 Es wird angewendet, dass der DNS-Client die Domänen auflöst, andernfalls werden Sie nicht navigieren. Dies funktioniert mit dem udp-Protokoll.

Die Linie:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Dies hat folgende Gründe: Wenn Sie beispielsweise eine HTTP-Anforderung stellen, stellen Sie eine Verbindung zu Port 80 des Servers her, aber der Server, der die Informationen zurückgibt, muss über einen beliebigen Port eine Verbindung zu Ihnen herstellen. (Im Allgemeinen größer als 1024).

Da alle unsere Ports geschlossen sind, wird dies nur erreicht, wenn wir alle Ports höher als 1024 öffnen (schlechte Idee). Dies besagt, dass der gesamte eingehende Datenverkehr, der von einer von mir selbst hergestellten Verbindung stammt, akzeptiert wird. Ich meine, eine Verbindung, die ich im Prinzip begonnen habe.

Wenn OUTPUT in die Regeln aufgenommen wird, gilt dies nur für die betreffenden Geräte. Wenn wir unsere Geräte als Router verwenden, um diese Verbindungen zuzulassen, müssen wir OUTPUT in FORWARD ändern. Da der Verkehr durch den Computer geht, aber nicht von ihm initiiert wird
Alle diese Regeln werden nach dem Neustart gelöscht, sodass Sie Skripts erstellen müssen, damit sie standardmäßig gestartet werden. Aber wir werden das im nächsten sehen

Ich hoffe, Ihnen haben diese Informationen gefallen. Im nächsten werde ich über NAT, Proxy und Skripte für Firewal sprechen.


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.   Rogelio pinto sagte

    Dies ist die Grundlage, auf der viele Unternehmer ihre eigenen Firewalls herstellen. Deshalb gibt es so viele Marken von Firewalls mit eingebettetem Linux auf dem Markt, einige gute und andere weniger.

  2.   Heber sagte

    Hervorragender Artikel. Ich freue mich auf den zweiten Teil.

  3.   Milton sagte

    Sehr gute Erklärung, es hat mir geholfen, den Proxy meiner Arbeit zu verstehen. Vielen Dank

  4.   Faustod sagte

    Hallo Jlcmux,

    Ausgezeichnet, es hat mir sehr gut gefallen, wann wird die andere Partei verfügbar sein?

    Grüße und danke fürs Teilen

    1.    @ Jlcmux sagte

      Danke für den Kommentar.

      Ich habe den anderen Teil gestern gesendet, im Laufe des Tages denke ich, dass sie ihn veröffentlichen werden.

      Grüße.

  5.   Israel sagte

    Sehr guter Artikelfreund @ Jlcmux, ich habe wirklich mit ihm gelernt, da er einige Zweifel geklärt hat, die ich seit einiger Zeit hatte, übrigens würde es Ihnen nichts ausmachen, das Buch der Quelle des Artikels, das von Sébastien BOBILLIER, gut slau2s und jetzt zu teilen siehe den 2. Teil, salu2s.

    1.    @ Jlcmux sagte

      Hallo, danke, dass du Israel kommentiert hast.

      Es stellt sich heraus, dass ich das Buch in physischer Form habe. Aber ich habe diesen Link in Google Books gefunden. http://books.google.com.co/books?id=zxASM3ii4GYC&pg=PA356&lpg=PA356&dq=S%C3%A9bastien+BOBILLIER+Linux+%E2%80%93+Administraci%C3%B3n+del+sistema+y+explotaci%C3%B3n+de+los+servicios+de+red#v=onepage&q=

      Ich denke es ist komplett.

  6.   Ariel sagte

    Sehr guter Artikel, ich füge eine Abfrage hinzu: Was wäre der Vorteil der Verwendung von Linux als Router, falls vorhanden, in Bezug auf eine dafür vorgesehene Hardware? Oder ist es nur zum Sport? Ich weiß, dass es dedizierte Distributionen gibt, aber ich weiß nicht, ob sie alte PCs retten oder mehr Flexibilität bei der Konfiguration bieten sollen.

    1.    @ Jlcmux sagte

      Ich denke, die Vor- und Nachteile hängen von dem Szenario ab, in dem Sie dies implementieren werden. Warum werden Sie sicher keine UTM oder ähnliches für Ihr Haus kaufen? Und vielleicht für ein kleines Unternehmen, das es sich auch nicht leisten kann. Es eignet sich auch gut als Übung, da es Ihnen hilft, die gesamte Logik zu verstehen und eine dedizierte FWall besser zu konfigurieren. Außerdem haben fast alle diese Geräte wirklich Embedded Linux.

      Grüße.

  7.   Ariel sagte

    Hallo, eine Frage, können Sie unter Linux eine "künstliche" Schnittstelle für ein ähnliches Routing zwischen Netzwerken generieren? (Packet Tracer Style) um mit virtuellen Maschinen zu arbeiten? Beispiel: Wenn ich eth0 habe (weil ich natürlich eine einzelne Karte habe), kann ich eth1 erstellen, um ein anderes Netzwerk zu erstellen? Sehr guter Tutor!

    1.    lebhaft sagte

      Unter Linux können Sie natürlich virtuelle Schnittstellen erstellen. Wenn Sie eth0 haben, können Sie eth0: 0, eth0: 1, eth0: 2 ... usw. Haben

  8.   Chinoloco sagte

    Also gut, danke fürs Teilen