Hintergrund: Ich habe einen Plesk CentOS 6.7 Server mit 30+ Domains. Ich erhalte sehr viel Spam von einer bestimmten TLD (in diesem Fall .top). Ich benutze SpamAssassin und verwende die RBL-Liste (xbl.spamhaus.org). SpamAssassin weist die meisten dieser Nachrichten als Spam aus, aber es wird durchgesetzt, dass mein Server von den Mail-Servern von Google eingeschränkt wird (da einige der E-Mail-Konten meines Benutzers an Google Mail weitergeleitet werden). Ich bekomme ZERO legal E-Mail von dieser Domain, und die Speicherauslastung ist in letzter Zeit um ein paar Prozent gestiegen, also versuche ich einige Overheads zu sparen und meine Server-Reputation zu verbessern, indem ich diese Nachrichten blockiere, bevor sie überhaupt Postfix erreichen.Regex für fail2ban zum Filtern von Mail von einer bestimmten Top-Level-Domain
Ich möchte einen Filter für fail2ban schreiben, die Verbindungen von dieser TLD entsprechen würde, und verbieten die entsprechenden IP-Adressen.
Hier sind beispielsweise Log-Einträge:
Mar 20 03:12:43 mydomain postfix/smtpd[6557]: connect from whatevermonkey.top[66.199.245.168]
Mar 20 05:07:38 mydomain postfix/smtpd[13299]: connect from someonecat.top[216.169.126.67]
So kann jedermann mit einem REGEX helfen, dass ich stecken könnte, dass fail2ban würde alles passen ‚aus verbinden‘, die die ‚.top‘ -Domäne enthalten?
Ich habe versucht, dies auf der Grundlage meiner Arbeit Postfix-Sasl-Filter (unten) zu arbeiten, aber meine Regex Chi ist nicht stark genug ... Hier ist mein funktionierender Filter für Postfix-Sasl, die fehlgeschlagen Login-Versuche :
failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/:]*={0,2})?\s*$
Auch hier möchte ich nur IP-Adressen übereinstimmen, die sehr geschätzt von ‚somespammyserver.top‘ Jede Hilfe vorangestellt.
Danke für die Antwort. Das Ausführen gegen meine Logs mit 'grep' schlägt fehl (keine Ergebnisse), aber 'grep -P' funktioniert einwandfrei. Ich bin nicht sicher, wie fail2ban die Übereinstimmung behandelt (ob es PCRE-kompatibel ist oder nicht?) Ich habe einen Filter mit dieser Regex erstellt, und ich bekomme den Fehler: "Keine 'Host' Gruppe in [Regex]". Also denke ich, dass fail2ban einige zusätzliche Anforderungen neben der einfachen Regex hat. Also habe ich noch etwas zu tun. Danke noch einmal! – cmpreshn
@cmpreshn: Sie könnten auch mit ['connect. +? \. Top \ [([. \ D] +) \]'] (https://regex101.com/r/yI2vC2/2) auskommen – Jan