PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Tutorial] iptables Regelwerk dauerhaft auf einem Debian basierten System speichern



syrius
30.12.2015, 13:33
iptables Regeln sind grundsätzlich nur temporär und werden nach einem Reboot wieder gelöscht. Um die Regeln dauerhaft zu speichern, sodass sie über den Neustart hinaus bestehen bleiben gibt es mehrere Möglichkeiten. Eine sehr komfortable und vorallem einfache ist die Verwendung des Programms iptables-persistent


Mit iptables-persistent werden die Firewallregeln in Konfigurationsdateien unter /etc/iptables/ abgelegt. Diese werden beim Serverstart wieder geladen und sind somit erneut aktiviert.



Installation von iptables-persistent via apt-get:



apt-get install iptables-persistent


iptables Regeln können nun wie gewohnt einfach hinzugefügt werden (z.B.: sperren der IP Adresse 5.12.93.54):



iptables -A INPUT -s 5.12.93.54 -j DROP


Vorhandenen iptables Regeln anzeigen:



iptables -L

Als Ausgabe erhalten wir alle aktiven Regeln:



Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 5.12.93.54 anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination



Neu hinzugefügte iptables Regeln dauerhaft speichern:


Alle Regeln die nun gelistet werden können mit folgendem Befehl in die Konfigurationsdatei (Unterscheidung zwischen IPv4 und IPv6) übertragen werden und sind somit vor einem Reboot geschützt. Hinweis für ältere Linux Versionen: Hier gibt es nur die Konfigurationsdatei /etc/iptables/rules



iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6


Quelle: sysadminslife.com, modified by szenebox.org

syrius
07.01.2016, 13:10
Hinzufügen von Freigaben auf gewisse Ports für gewisse IP-Adressen - als Beispiel hier MySQL (3306) für die IP (10.1.1.0)

iptables -A INPUT -p tcp --dport 3306 -s 10.1.1.0 -j ACCEPT

Restliche Anfragen werden mit einem REJECT abgewiesen/beendet.
Warum wählen wir hier REJECT und nicht DROP... ganz einfach, weil ein REJECT die Anfrage deutlich schneller beendet als ein DROP. Bei einem DROP wird die Verbindung abgewiesen und der Client muss auf einem Timeout warten.

iptables -A INPUT -p tcp --dport 3306 -j REJECT --reject-with icmp-port-unreachable

In der Summe haben wir dann folgende beiden Zeilen um für die IP 10.1.1.0 den Port 3306 von außen zu öffnen.
Wichtig ist die Reihenfolge zu beachten. Ein DROP bzw. REJECT sollte immer die letzte Regel vor allen Freigaben sein - andernfalls sperrt man sich ggfs. selbst aus bzw. die darunterliegenden Regeln zeigen keine Wirkung.

iptables -A INPUT -p tcp --dport 3306 -s 10.1.1.0 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j REJECT --reject-with icmp-port-unreachable