Blockieren Sie mit einer Firewall eine DNS-Anfrage, die eine bestimmte Abfrage enthält

Blockieren Sie mit einer Firewall eine DNS-Anfrage, die eine bestimmte Abfrage enthält

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 stringmatch 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.

verwandte Informationen