Wie kann ich eine iptables-Regel festlegen (z. B. in der Eingabekette), die den Inhalt des HTTP-Pakets überprüft und blockiert, das meinen HTML-, CSS- oder JavaScript-Code enthält? Beispiel: Blockieren Sie Websites, die in ihrer Antwort Folgendes zurückgeben
<div id="helloworld"></div>
Antwort1
Verwenden Sie das String-Match-Modul zB
iptables -I INPUT -m string --string '<div id="helloworld"></div>' -j DROP
Antwort2
iptables (Userspace-Tool) oder netfilter (Linux-Firewall) sind nicht dafür ausgelegt, HTTP-Inhalte zu filtern. Sie können jedoch string
ein Modul verwenden, um einen bestimmten Wert in der Paketnutzlast abzugleichen.
Ein besserer Ansatz besteht darin, den HTTP-Verkehr auf einen Proxyserver umzuleiten, wieTintenfischund führen Sie die Filterung/Caching und was auch immer Sie wollen durch. Bitte beachten Sie, dass Squid selbst keine Inhaltsfilterung mit ACL unterstützt. Sie müssen eine andere Software verwenden, die Filterung unterstützt, wie z. B.Abonnieren.