Codeschnipsel

IP-Adressen sperren mit iptables

Brute-Force-Angriffe, Spam-Bots oder auffällige IPs lassen sich mit iptables schnell und dauerhaft blockieren – direkt auf dem Server ohne externe Firewall.

Helmut Weber 22.08.2014

Wer einen Linux-Server betreibt, begegnet früher oder später auffälligen IP-Adressen: Brute-Force-Versuche auf SSH, massenhafte Formularanfragen oder Crawler, die den Server belasten. Mit iptables lassen sich solche IPs schnell und direkt auf Betriebssystemebene blockieren.

Eine IP-Adresse sperren

iptables -A INPUT -s 1.2.3.4 -j DROP

Der Schalter -A INPUT hängt die Regel an die INPUT-Chain an. Alle eingehenden Pakete von der IP 1.2.3.4 werden verworfen (DROP) – ohne Antwort an den Absender.

Eine IP-Adresse wieder freigeben

iptables -D INPUT -s 1.2.3.4 -j DROP

-D löscht die Regel. Die IP-Adresse ist danach wieder erreichbar.

Ganzes Subnetz sperren

iptables -A INPUT -s 1.2.3.0/24 -j DROP

Nützlich bei Angriffen aus einem zusammenhängenden IP-Bereich. /24 sperrt alle 256 Adressen im Subnetz.

Aktuelle Regeln anzeigen

iptables -L -n -v

-n verhindert DNS-Auflösung (schneller), -v zeigt Paketzähler.

Regeln dauerhaft speichern

iptables-Regeln sind nach einem Neustart weg, wenn sie nicht gespeichert werden:

# Debian/Ubuntu
iptables-save > /etc/iptables/rules.v4

# Beim nächsten Boot laden
iptables-restore < /etc/iptables/rules.v4

Alternativ: Das Paket iptables-persistent übernimmt das automatisch.

REJECT statt DROP

iptables -A INPUT -s 1.2.3.4 -j REJECT

Mit REJECT erhält der Absender eine explizite Ablehnung zurück; mit DROP läuft die Verbindung ins Leere (Timeout). Für Sicherheitszwecke ist DROP meist vorzuziehen, da weniger Information nach außen gegeben wird.

Artikel teilen

LinkedIn X WhatsApp