Ich möchte addrtype
in Kombination mit -src
in der Regel in einer meiner Filterketten verwenden, um ein paar falsche IPs fallen zu lassen:
-A INPUT -p tcp --dport 80 -m addrtype --src-type UNICAST ! -s 127.0.0.0/8 -j WEB
Die Manpage sagt Folgendes
addrtype
Dieses Modul vergleicht Pakete basierend auf ihrem Adresstyp . Adresstypen werden im Kernel-Netzwerkstapel verwendet und kategorisieren Adressen in verschiedene Gruppen. Die genaue Definition dieser Gruppe hängt vom spezifischen Layer-3-Protokoll ab.Folgende Adresstypen sind möglich:
- UNSPEC eine nicht spezifizierte Adresse (dh 0.0.0.0)
- UNICAST eine Unicast-Adresse
- LOKAL eine lokale Adresse
- BROADCAST eine Broadcast-Adresse
- ANYCAST ein Anycast-Paket
- MULTICAST eine Multicast-Adresse
- BLACKHOLE eine Blackhole-Adresse
- UNREACHABLE eine nicht erreichbare Adresse
- VERBOTEN Sie eine verbotene Adresse
- FIXME WERFEN
- NAT FIXME
- XRESOLVE
Es ist nicht klar, was die genauen Definitionen sind und sagt, dass es vom spezifischen Schicht-3-Protokoll abhängt. Das ist was ich denke:
- UNICAST (! BROADCAST ,! MULTICAST ,! ANYCAST)
- LOKAL (
127.0.0.0/8
) - SENDUNG (
*.*.*.255
) - ANYCAST (
*.*.*.*
) - MULTICAST (
224.0.0.0/4
)
Hat jemand eine klare Vorstellung davon, was das bedeutet und wie es von iptables implementiert wird (zum Beispiel, woher es weiß, wo zum Teufel BLACKHOLE ist)?
LOCAL
ist ganz sicher nicht127.0.0.0/8
. Ich habe es auf die harte127.0.0.0/8
ist es speziell für Loopback reserviert, LOCAL ist jedoch nicht nur auf diesen Bereich beschränkt.Antworten:
Ich denke, es hängt von Ihnen ab, ob der Kernel weiß, welcher Blackhole-Adresstyp ist.
In der Datei xt_addrtype.h im Quellcode von iptables können Sie Folgendes sehen:
Und in sehen
rtnetlink.h
Sie die gleiche Definition:Sie können sehen,
iptables
dass die gleiche Definition des Adresstyps mit dem Kernel-TCP-Netzwerkstapel verwendet wird.Dann von
man ip
:Wenn Sie also eine Route zu einem Netzwerk per
ip
Befehl definieren und als Blackhole-Route markieren, erstellt der Kernel jetzt den Blackhole-Typ für diese Netzwerkadresse:quelle
blackhole
Adresstyp, nicht alle Adresstypen. Ich zeige, dass dieiptables
addrtype
Erweiterung dieselbe Definition addrtype mit dem Kernel verwendet. Und die Kernel-Definition des Adresstyps kann in sehenman ip
.ip route list type local
aber alle Typen erzeugen leere Zeichenfolgen mit Ausnahme von Unicast, das gibtdefault via 192.168.1.1 dev eth0 proto static metric 1024 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
. Können Sie weitere Informationen zur Interpretation dieser Informationen bereitstellen? Vielen Dank.ip route add blackhole
gegenüber der Verwendung der Firewall zum Blockieren dieses bestimmten Subnetzes? Gibt es einen Funktions- / Leistungsunterschied oder einen anderen Weg, um dasselbe Ziel zu erreichen?