IP-Sets sind gespeicherte Sammlungen von IP-Adressen, Netzwerkbereichen, MAC-Adressen, Portnummern und Netzwerkschnittstellennamen. Das iptables-Tool kann IP-Sets für einen effizienteren Regelabgleich nutzen. Nehmen wir beispielsweise an, Sie möchten Datenverkehr verwerfen, der aus einem von mehreren IP-Adressbereichen stammt, von denen Sie wissen, dass sie bösartig sind. Anstatt Regeln für jeden Bereich direkt in iptables zu konfigurieren, können Sie ein IP-Set erstellen und dann in einer iptables-Regel auf dieses Set verweisen. Dadurch werden Ihre Regelsätze dynamischer und damit einfacher zu konfigurieren; Wann immer Sie Netzwerkkennungen hinzufügen oder austauschen müssen, die von der Firewall verarbeitet werden, ändern Sie einfach das IP-Set.
Mit dem Befehl ipset können Sie IP-Sets erstellen und ändern. Zuerst müssen Sie einen Namen, eine Speichermethode und einen Datentyp für Ihr Set festlegen, wie zum Beispiel:
# ipset create range_set hash:net
In diesem Fall ist range_set der Name, hash die Speichermethode und net der Datentyp. Dann können Sie die Bereiche zum Satz hinzufügen:
# ipset add range_set 178.137.87.0/24 # ipset add range_set 46.148.22.0/24
Dann verwenden Sie iptables, um eine Regel zu konfigurieren, um Datenverkehr zu verwerfen, dessen Quelle mit den Bereichen in diesem Satz übereinstimmt:
# iptables -I INPUT -m set --match-set range_set src -j DROP
Alternativ, um Datenverkehr zu verwerfen, dessen Ziel dem Satz entspricht:
iptables -I OUTPUT -m set --match-set range_set dst -j DROP
SYNTAX
Die Syntax des ipset-Befehls lautet:
# ipset [options] {command}
Blockieren einer Netzwerkliste
1. Erstellen Sie zunächst einen neuen „Satz“ von Netzwerkadressen. Dadurch wird ein neuer „Hash“-Satz von „Netz“-Netzwerkadressen mit dem Namen „myset“ erstellt.
# ipset create myset hash:net
oder
# ipset -N myset nethash
2. Fügen Sie dem Set eine beliebige IP-Adresse hinzu, die Sie blockieren möchten.
# ipset add myset 14.144.0.0/12 # ipset add myset 27.8.0.0/13 # ipset add myset 58.16.0.0/15 # ipset add myset 1.1.1.0/24
3. Schließlich konfigurieren Sie iptables so, dass jede Adresse in diesem Satz blockiert wird. Dieser Befehl fügt eine Regel am Anfang der „INPUT“-Kette hinzu, um „-m“ mit dem Satz namens „myset“ von ipset (–match-set) abzugleichen, wenn es sich um ein „src“-Paket und „DROP“ oder Block handelt. es.
# iptables -I INPUT -m set --match-set myset src -j DROP
Blockieren einer Liste von IP-Adressen
1. Beginnen Sie damit, einen neuen „Satz“ von IP-Adressen zu erstellen. Dadurch wird ein neuer „Hash“-Satz von „IP“-Adressen mit dem Namen „myset-ip“ erstellt.
# ipset create myset-ip hash:ip
oder
# ipset -N myset-ip iphash
2. Fügen Sie dem Set eine beliebige IP-Adresse hinzu, die Sie blockieren möchten.
# ipset add myset-ip 1.1.1.1 # ipset add myset-ip 2.2.2.2
3. Schließlich konfigurieren Sie iptables so, dass jede Adresse in diesem Satz blockiert wird.
# iptables -I INPUT -m set --match-set myset-ip src -j DROP
Ipset persistent machen
Das von Ihnen erstellte ipset wird im Speicher gespeichert und ist nach dem Neustart verschwunden. Um das ipset dauerhaft zu machen, müssen Sie Folgendes tun:
1. Speichern Sie zuerst das ipset unter /etc/ipset.conf :
# ipset save > /etc/ipset.conf
2. Aktivieren Sie dann ipset.service, das ähnlich wie iptables.service zum Wiederherstellen von iptables-Regeln funktioniert.
Andere Befehle
1. So zeigen Sie die Sets an:
# ipset list
oder
# ipset -L
2. So löschen Sie ein Set mit dem Namen „myset“:
# ipset destroy myset
oder
# ipset -X myset
3. So löschen Sie alle Sets:
# ipset destroy