Einstieg in iptables: zehn vordefinierte Regeln für ein sicheres Linux

6. iptables -A INPUT -p tcp — syn — dport 25 -j ACCEPT

Das ist der Anfang einer Regel, die vor SYN-Flood schützt. Dieser Teil der Regel blockiert DoS-Attacken auf einem E-Mail-Server-Port (anpassbar an die eigenen E-Mail-Server-Anforderungen). Dieser Regelsatz hat noch drei weitere Teile. Der erste besteht darin, dieselbe Regel hinzuzufügen, aber den Port an seine offenen Ports anzupassen. Der nächste Teil lautet iptables -A INPUT -p tcp — syn -m limit — limit 1/s — limit-burst 4 -j ACCEPT, was der eigentlich Schutz vor SYN-Flood ist. Und schließlich sorgt iptables -A INPUT -p tcp — syn -j DROP dafür, dass alle SYN-Flood-Pakete ignoriert werden.

7. iptables -A INPUT -p tcp -m tcp -s MALICIOUS_ADDRESS -j DROP

An dieser Stelle kann man sich um bösartige IP-Adressen kümmern. Damit dies ordnungsgemäß funktioniert, muss man die gefahrbringenden IP-Adressen kennen und wissen, dass man sie tatsächlich unterdrücken will. Das größte Problem stellt dabei eine verschleierte gefährliche Adresse dar. Wenn dies der Fall ist, kann es passieren, dass man legitimen Traffic von seinem Netzwerk abblockt. Daher sollte genau bekannt sein, mit welchen Adressen man es zu tun hat.

8. iptables -N port-scan

Dies ist der Anfang einer Regel zur Unterdrückung von Portscans nach verborgenen Ports. Ein Scan nach verborgenen Ports ist ein Scan, der geschlossene Ports aufspürt, um dadurch herauszufinden, welche Ports offen sind. Zwei weitere Zeilen sind erforderlich, um diese Regel zu vervollständigen:


iptables -A port-scan -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j RETURN

und


iptables -A port-scan -j DROP

Man beachte, dass der obige Satz von Regeln eine neue Kette namens „port-scan“ hinzufügt. Der Name ist dabei im Prinzip beliebig, aber der Überblick ist leichter zu behalten. Der obigen Satz von Regeln lässt sich auch um Timeouts ergänzen:


iptables -A specific-rule-set -p tcp –syn -j syn-flood

und


iptables -A specific-rule-set -p tcp –tcp-flags SYN,ACK,FIN,RST RST -j port-scan

9. iptables -A INPUT -i eth0 -p tcp -m state — state NEW -m multiport — dports ssh,smtp,http,https -j ACCEPT

Diese Kette nutzt das Argument multiport, das ermöglicht, mehrere Ports anzugeben. Mit Hilfe des multiport-Arguments braucht man statt mehrerer nur eine Kette zu schreiben. Sie spart einem also das Schreiben von vier separaten Regeln, jeweils eine für ssh, SMTP, HTTP und HTTPS. Natürlich kann dies auch auf ACCEPT, DENY, REJECT angewandt werden.

10. iptables -A PREROUTING -i eth0 -p tcp — dport 80 -m state — state NEW -m nth — counter 0 — every 4 — packet 0 -j DNAT — to-destination 192.168.1.10:80

Wer für Load Balance zwischen mehreren gespiegelten Servern sorgen möchte (hier für einen Webserver unter 192.168.1.10), braucht diese Regel. Ihr Kern ist die Erweiterung nth, die iptables mitteilt, jedes nth-Paket zu berücksichtigen. Im Beispiel verwendet iptables counter 0 und reagiert auf jedes vierte Paket. Auch für das Load Balancing gespiegelter Sites lässt sich die Regel anpassen. Angenommen, man hat vier gespiegelte Server und möchte die Last gleichmäßig auf diese verteilen. Dazu müsste für jeden Server wie folgt eine Zeile eingerichtet werden:


iptables -A PREROUTING -i eth0 -p tcp –dport 80 -m state –state NEW -m nth –counter 0 –every 4 –packet 0 -j DNAT –to-destination 192.168.1.10:80


iptables -A PREROUTING -i eth0 -p tcp –dport 80 -m state –state NEW -m nth –counter 0 –every 4 –packet 1 -j DNAT –to-destination 192.168.1.20:80


iptables -A PREROUTING -i eth0 -p tcp –dport 80 -m state –state NEW -m nth –counter 0 –every 4 –packet 2 -j DNAT –to-destination 192.168.1.30:80


iptables -A PREROUTING -i eth0 -p tcp –dport 80 -m state –state NEW -m nth –counter 0 –every 4 –packet 3 -j DNAT –to-destination 192.168.1.40:80

Wie oben ersichtlich, erhält der Server auf .10 jedes Paket mit 0, der Server auf .20 jedes Paket mit 1, der Server auf .30 jedes Paket mit 2 und der Server auf .40 jedes Paket mit 3.

Weitere Optionen?

Diese zehn iptables-Regeln erleichtern das Absichern eines Linux-Servers. Natürlich gibt es wie immer bei Linux mehrere Möglichkeiten, zum selben Ergebnis zu gelangen. Aber diese Regeln sollten als gute Grundlage für die Sicherheit eines Linux-Servers dienen – und auch für die Diskussion über die Sicherheit von Linux.

Themenseiten: Anwendungsentwicklung, Linux, Open Source, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Einstieg in iptables: zehn vordefinierte Regeln für ein sicheres Linux

Kommentar hinzufügen

Schreibe einen Kommentar

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