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.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Bedrohungen in Europa: Schwachstellen in der Lieferkette dominieren

Hinter 84 Prozent der Zwischenfälle bei Herstellern stecken Schwachstellen in der Lieferkette. Auf dem Vormarsch…

5 Tagen ago

Bericht: Apple arbeitet an faltbarem iPad

Es kommt angeblich 2028 auf den Markt. Das aufgeklappte Gerät soll die Displayfläche von zwei…

6 Tagen ago

HPE baut Supercomputer am Leibniz-Rechenzentrum

Das System basiert auf Hardware von HPE-Cray und Nvidia. Die Inbetriebnahme erfolgt 2027.

6 Tagen ago

Bund meldet Fortschritte in der Netzversorgung

Die Bundesnetzagentur hat ihr Gigabit-Grundbuch aktualisiert. Drei von vier Haushalten sollen jetzt Zugang zu Breitbandanschlüssen…

6 Tagen ago

Vorinstallierte Schadsoftware auf IoT-Geräten

Mit dem Internet verbundene Digitale Bilderrahmen oder Mediaplayer können mit Schadsoftware infiziert werden und sind…

1 Woche ago

iOS und iPadOS 18.2 beseitigen 21 Sicherheitslücken

Schädliche Apps können unter Umständen einen Systemabsturz auslösen. Mindestens eine Anfälligkeit erlaubt eine Remotecodeausführung.

1 Woche ago