
Iptables kann Pakete per Zeichenfolge abgleichen.
Beispiel für DNS:
iptables -A INPUT -i eth0 -p udp --dport 53 -m string --hex-string "|09|proxypipe|03|net" --algo bm -j DROP
Wie führt man ein solches Matching in Nftables durch?
Antwort1
Mit nftables können Sie die Raw Payload Expression-Syntax verwenden (dokumentiertHier), um ein Paket basierend auf dem Inhalt eines Bitblocks abzugleichen.
Eine Regel zum Blockieren von Abfragen würde also proxypipe.net
folgendermaßen aussehen:
meta l4proto udp udp dport 53 @th,160,120 0x0970726f787970697065036e657400 counter drop comment "block queries for proxypipe.net"
Das obige würde 120 Bit an Daten erfassen, beginnend mit Bit 160 des Transportheaders ( @th
), und sie mit dem Hex-Äquivalent von vergleichen|09|proxypipe|03|net
Beachten Sie, dass im Gegensatz zur iptables-Version das Obige nur proxypipe.net
an einer festen Position im Paket übereinstimmt. Dies bedeutet, dass es keine foobar.proxypipe.net
anderen Unterdomänen blockiert.