Tor Exit Relay: WordPress Kommentar-Spam mit iptables blockieren

Achtung! Dieser Artikel ist älter als ein Jahr. Der Inhalt ist möglicherweise nicht mehr aktuell!

Aktuell beschäftige ich mich wieder mit meinem Dilemma. Anhand von Traces sehe ich, dass mein Tor Exit Relay von Spammern missbraucht wird. Eigentlich ist es die Aufgabe des Seitenbetreibers seine Kommentar-Funktion anständig abzusichern. Ich möchte aber zumindest ein bisschen Helfen, in dem ich keine WordPress Kommentare über mein Relay erlaube.

Zuerst dachte ich an einen vorgeschalteten Proxy Server. Bei meiner Recherche fand ich aber heraus, dass iptables für mein Vorhaben völlig ausreicht.

Analyse

Seit Freitag gegen 9 Uhr verbiete ich sämtliche ausgehende POST Anfragen an meinem Tor Exit Relay, die an einen HTTP Server gehen. Dazu habe ich diese iptables Regel eingefügt:

iptables -I OUTPUT -s 31.220.45.6 -p tcp --dport 80 -m string --string 'POST /' --algo bm -j REJECT --reject-with tcp-reset -m comment --comment "Tor POST block"

Diese Regel ist seitdem ca. 616.000 mal zur Geltung gekommen und hat 380 MB an Traffic geblockt.

Diese Regel ist natürlich nicht sinnvoll, da sie nicht nur WordPress Kommentare blockiert, sondern auch Captchas usw.

Wichtig: HTTPS Verbindungen sind von dieser Regel nicht betroffen, da iptables oder ein Proxy nicht das SSL/TLS aufmachen kann, ohne dass der Nutzer davon etwas mitbekommt. Zum Glück :-)

Lösung

Die Lösung ist eine einfache Erweiterung des Suchbegriffs:

iptables -I OUTPUT -s 31.220.45.6 -p tcp --dport 80 -m string --string 'POST /wp-comments-post.php' --algo bm -j REJECT --reject-with tcp-reset -m comment --comment "Tor POST to wordpress block"

Nun können keine WordPress Kommentare mehr abgegeben werden. Meinen Test zur Folge gibt es keine Einschränkung beim normalen Surfen. Captchas funktionieren auch einwandfrei. Ich werde diesen Artikel in den Kommenden Tagen aktualisieren und die Statistiken ergänzen.

 


Du hast einen Kommentar, einen Wunsch oder eine Verbeserung? Schreib mir doch eine E-Mail! Die Infos dazu stehen hier.

🖇️ = Link zu anderer Webseite
🔐 = Webseite nutzt HTTPS (verschlüsselter Transportweg)
Zurück