Firewall mit iptables

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
PvC
Beiträge: 2
Registriert: 15.05.2013 08:02:03

Firewall mit iptables

Beitrag von PvC » 15.05.2013 09:37:36

Hallo Zusammen!

Ich bräuchte mal etwas Nachhilfe was iptables angeht. Wir haben einen Proxy-Server (Debian 6.0.6 Squeeze) mit Squid 2.7 am laufen. Unsere Firewall ist mit iptables geregelt. Da wir durch die Firewall nicht wirklich durchblicken (die Person die die Firewall konfiguriert hat ist leider verstorben), wollen wir uns eine neue eigene konfigurieren. Die Firewall soll folgendes Regeln:

Zunächst alle Ports blocken, sodass wir mir einem Zweizeiller den oder die Port(s) freischalten können
Prerouting / Redirect der Ports 80 & 443 auf unseren Squid
Und von überall soll man natürlich per ssh auf den Proxy-Server kommen

Eigentlich recht simpel, aber leider habe ich noch nie mit iptables zutun gehabt.

Danke!

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Firewall mit iptables

Beitrag von Saxman » 15.05.2013 09:54:21

Hallo und Willkommen im Forum,

ich bin ja ein Fan von Debianshorewall. Ist für eine Konfiguration von iptables ziemlich hilfreich. Evtl. auch für euch einen Blick wert?
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: Firewall mit iptables

Beitrag von gbotti » 15.05.2013 10:04:49

Hallo.

Vielleicht hilft euch auch Debianfwbuilder

Ansonsten kursieren viele Howtos im Internet.

Auf jeden Fall sollten die Original-Konfigurationen gesichert werden, bevor da herum geschraubt wird. Dann braucht Ihr noch einen direkten Konsolenzugang, wenn iptables (aus Versehen) falsch konfiguriert wurde und man über das Netzwerk nicht mehr drauf kommt.

Falls es irgendwie möglich ist und es euere Sicherheitsrichtlinie zulässt könntest du ja mal das Script für die Firewall posten. Evtl. kann dir dann jemand besser weiterhelfen.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

PvC
Beiträge: 2
Registriert: 15.05.2013 08:02:03

Re: Firewall mit iptables

Beitrag von PvC » 15.05.2013 10:26:34

Hier das Script: NoPaste-Eintrag37155

Da soll mal einer durchsteigen...
Zuletzt geändert von Saxman am 15.05.2013 10:28:57, insgesamt 1-mal geändert.
Grund: Nach NoPaste verschoben

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: Firewall mit iptables

Beitrag von gbotti » 15.05.2013 11:16:52

Naja. So kompliziert ist das garnicht aufgebaut.
Im Prinzip muss hier dieser Teil bearbeitet werden.

Code: Alles auswählen

##################Einstellungen transparenter Proxy###############
 
# Proxy wird Router fuer das ganze System
$IPTABLES --table nat --append POSTROUTING --out-interface $IFACE_EXT -j MASQUERADE
$IPTABLES -A FORWARD --in-interface $IFACE_INT -j ACCEPT
 
# ungehinderter Zugriff fuers LAN
$IPTABLES -A INPUT -i $IFACE_INT -j ACCEPT
$IPTABLES -A OUTPUT -o $IFACE_INT -j ACCEPT
 
#Umleitung aller Web Anfragen auf Squid
$IPTABLES -t nat -A PREROUTING -i $IFACE_INT -p tcp --dport 80 -j REDIRECT --to-port 3128
$IPTABLES -t nat -A PREROUTING -i $IFACE_INT -p tcp --dport 443 -j REDIRECT --to-port 3128
Mit folgendem wird der Zugriff auf den Router / Proxy aus dem Internen LAN (eth0) zugelassen:

Code: Alles auswählen

# ungehinderter Zugriff fuers LAN
$IPTABLES -A INPUT -i $IFACE_INT -j ACCEPT
$IPTABLES -A OUTPUT -o $IFACE_INT -j ACCEPT
Wenn ich das richtig verstanden habe, dann möchtest du den Internetzugang per Script an und abschalten können. SSH wird schon weiter oben definiert:

Code: Alles auswählen

$IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
Ich würde dann für den Proxy-Zugriff eine neue Chain für eigene INPUT und OUTPUT-Regeln erstellen und da drin die Regeln für den Proxy hinzufügen oder entfernen. Der Vorteil an der Vorgehensweise ist, dass die Regeln immer an der selben Stelle sind und man somit die Firewall nicht (so leicht) durch falsche Parameter schrotten kann.

Beispiel:

Code: Alles auswählen

# ungehinderter Zugriff fuers LAN
#   DIESE ZWEI ZEILEN AUSKOMMENTIEREN
#   $IPTABLES -A INPUT -i $IFACE_INT -j ACCEPT
#   $IPTABLES -A OUTPUT -o $IFACE_INT -j ACCEPT
$IPTABLES -N MY_INPUT
$IPTABLES -N MY_OUTPUT
$IPTABLES -A INPUT -j MY_INPUT
$IPTABLES -A OUTPUT -j MY_OUTPUT
Nun kannst du in diesen Chains deine Regeln mit nem Zweizeiler definieren / entfernen.
Beispiel:

Code: Alles auswählen

$IPTABLES -A MY_INPUT -i $IFACE_INT -j ACCEPT
$IPTABLES -A MY_OUTPUT -o $IFACE_INT -j ACCEPT
edit: Natürlich müssen die Regeln dann für die entsprechenden Ports angepasst werden. Ich habe gerade noch gesehen, dass weiter oben in dem Script auch der Proxy-Zugriff geregelt ist. Das muss auch auskommentiert werden, wenn das neue Konstrukt funktionieren soll.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

Antworten