
Beispiel
sagen wir, ich bin mit iptables oder nftables
Ich möchte einen bestimmten Datenverkehr wie den folgenden zulassen:
iptables -A OUTPUT -d 192.168.1.1 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -s 192.168.1.1 -p udp --sport 53 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Die erste Regel kann erweitert werden, indem auch das Paket mit der DNS-Abfrage geprüft wird und nur das Paket mit * zugelassen wird..wetransfer.comwie abgefragt sonst löschen?
Ich denke, das sollte in das fallen, was manTiefe Paketinspektion, aber wie kann das in Bezug auf iptables/nftables gemacht werden?
Antwort1
iptables versteht DNS nicht nativ, aber mit string
match sollte es möglich sein:
-p udp --dport 53 -m string --algo kmp --hex-string "|0A|wetransfer|03|com|00|" --icase
Beachten Sie, dass DNS-Namen in der Leitung keine Punkte verwenden – sie werden als Reihe von Komponenten mit Längenpräfix gesendet; beispielsweise wird „.com“ als gesendet 0x03 c o m
.
Sie müssen eine Groß-/Kleinschreibung ignorierende Übereinstimmung ( --icase
) verwenden, da Clients die Abfrage (manchmal absichtlich) in gemischter Groß-/Kleinschreibung senden könnten.