Erstellen Sie mit diesem einfachen Skript Teil 2 Ihre eigene Firewall mit iptables

Firewall_ (Netzwerk)

Hallo allerseits, heute bringe ich Ihnen einen zweiten Teil dieser Reihe von Tutorials zur Firewall mit iptables, die sehr einfach sind, damit Sie sie kopieren und einfügen können. Ich denke, dass es am Ende des Tages das ist, wonach alle Anfänger suchen oder sogar die erfahrensten, warum wir müssen das rad 100 mal neu erfinden, oder?

Dieses Mal fordere ich sie auf, sich auf den sehr spezifischen Fall zu konzentrieren, ob unsere Firewall mit einer OUTPUT DROP-Richtlinie viel aggressiver sein soll. Dieser Beitrag ist auch auf Anfrage eines Lesers dieser Seiten und meiner Beiträge. (In meinem Kopf wiiiiiiiiiiiii)

Lassen Sie uns ein wenig über die "Vor- und Nachteile" der Einrichtung von Output Drop-Richtlinien sprechen. Ich kann Ihnen sagen, dass dies die Arbeit viel mühsamer und mühsamer macht. Der Vorteil ist jedoch, dass Sie auf Netzwerkebene Sicherheit haben, als wenn Sie sich hinsetzen Um die Richtlinien gut zu denken, zu entwerfen und zu planen, verfügen Sie über einen viel sichereren Server.

Um nicht vom Thema abzukommen, werde ich Ihnen anhand eines Beispiels schnell erklären, wie mehr oder weniger Ihre Regeln sein sollten

iptables -A AUSGABE -o eth0 -p tcp –sport 80 -m state –state ESTABLISHED -j ACCEPT
-A weil wir die Regel hinzugefügt haben
-o bezieht sich auf ausgehenden Verkehr, dann wird die Schnittstelle platziert, wenn sie nicht angegeben ist, weil sie mit allen übereinstimmt.
-Sport Ursprungshafen spielt eine wichtige Rolle, da wir in den meisten Fällen nicht wissen, von welchem ​​Hafen aus sie die Anfrage stellen werden, wenn ja, könnten wir dport verwenden
–Dport Zielport, wenn wir im Voraus genau wissen, dass die ausgehende Verbindung nur zu einem bestimmten Port führen darf. Es muss für etwas sehr Spezifisches sein, wie zum Beispiel einen Remote-MySQL-Server.
-m Zustand –Zustand GEGRÜNDET Dies ist bereits ein Schmuckstück für die Aufrechterhaltung der bereits bestehenden Verbindungen, wir könnten es in einem zukünftigen Beitrag vertiefen
-d um vom Ziel zu sprechen, wenn es angegeben werden könnte, zum Beispiel ssh zu einem bestimmten Computer durch seine IP

#!/bin/bash

# Wir bereinigen iptables-Tabellen -F iptables -X # Wir bereinigen NAT iptables -t nat -F iptables -t nat -X # Mangeltabelle für Dinge wie PPPoE-, PPP- und ATM-iptables -t mangle -F iptables -t mangle -X # Richtlinien Ich denke, dies ist der beste Weg für Anfänger und # immer noch nicht schlecht, ich erkläre die Ausgabe aller, weil es sich um ausgehende Verbindungen handelt #, Eingaben verwerfen wir alles und kein Server sollte weiterleiten. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #Intranet LAN-Intranet = eth0 #Extranet wan extranet = eth1 # Status beibehalten. Alles, was bereits verbunden (eingerichtet) ist, belassen wir wie folgt: I INPUT -m Zustand - Zustand ESTABLISHED, RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
# Gerät schleifen. iptables -A INPUT -i lo -j ACCEPT
# Iptables Loopback-Ausgang -A OUTPUT -o lo -j ACCEPT

# http, https, wir geben die Schnittstelle nicht an, weil # wir möchten, dass es sich um alle iptables handelt - A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Abfahrt
# http, https, wir geben die Schnittstelle nicht an, weil
# Wir möchten, dass es für alle gilt, aber wenn wir den Ausgabeport angeben
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

# ssh nur intern und aus diesem Bereich der IP-Iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ Intranet --dport 7659 -j ACCEPT
# output # ssh nur intern und aus diesem Bereich von IPs
iptables -A OUTPUT -p tcp -d 192.168.xx / 24 -o $ Intranet --sport 7659 -j ACCEPT
# Überwachung zum Beispiel, wenn sie über zabbix oder einen anderen snmp-Dienst verfügen. iptables -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j ACCEPT
# Abfahrt
# Überwachung zum Beispiel, wenn sie zabbix oder einen anderen snmp-Dienst haben
iptables -A OUTPUT -p tcp -d 192.168.1.1 -o $ Intranet --dport 10050 -j ACCEPT

# icmp, ping gut ist deine Entscheidung iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j ACCEPT
# Abfahrt
# icmp, ping gut ist deine entscheidung
iptables -A OUTPUT -p icmp -d 192.168.xx / 24 -o $ intranet -j ACCEPT

#mysql mit postgres ist Port 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT
# output - Frage, die auch von einem Benutzer gestellt wird, um einen sehr spezifischen # Regelserver zu erstellen: 192.168.1.2 mysql: 192.168.1.3
#mysql mit postgres ist Port 5432
iptables -A OUTPUT -p tcp -s 192.168.1.2 -d 192.168.1.3 --dport 3306 -o $ intranet -j ACCEPT

#sendmail bueeeh, wenn Sie einige E-Mails senden möchten #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # Server-IP - die echte WAN-IP Ihrer server LAN_RANGE = "192.168.xx / 21" # LAN-Bereich Ihres Netzwerks oder Ihrer vlan # IPs, die niemals in das Extranet gelangen sollten. Wenn wir eine reine WAN-Schnittstelle haben, sollte ein bisschen # Logik verwendet werden, es sollte niemals # Verkehr eintreten LAN-Typ über diese Schnittstelle SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16" # Standardaktion - Wird ausgeführt, wenn eine Regel mit ACTION = "übereinstimmt. DROP "# Pakete mit der gleichen IP wie mein Server über die wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION

# Pakete mit dem LAN-Bereich für das WAN, ich sage es so, falls Sie ein bestimmtes Netzwerk haben, aber dies ist redundant mit der folgenden # Regel innerhalb der "for" -Schleife iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION

## Alle SPOOF-Netzwerke, die vom WAN für IP in $ SPOOF_IPS nicht zugelassen werden, führen iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION aus
iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION
erledigt

In der nächsten Überprüfung werden wir die Portreichweite durchführen und unter anderem auch nach Namen geordnete Richtlinien festlegen ... Ich erwarte Ihre Kommentare und Anfragen.


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.