Blockieren Sie Brute-Force-Angriffe auf exim2

Blockieren Sie Brute-Force-Angriffe auf exim2

Plötzlich versuchen einige Personen oder Computer, sich bei meinem Linux-Directadmin-Server anzumelden.

In den letzten Tagen habe ich viele Nachrichten über Brute-Force-Angriffe für Exim2 in Direct Admin erhalten.

Ich habe Fail2Ban bereits installiert und Block_IP.SH befindet sich auf dem Server.

Wenn sich der Benutzer also 15 Mal nicht anmelden kann, wird die IP-Adresse gesperrt.

Wie kann ich weitere Angriffe verhindern, sodass die Computer keine weiteren Anmeldeversuche unternehmen?

Bildbeschreibung hier eingeben

Antwort1

Dies ist ein schlecht geschriebener verteilter Bot. Soweit ich das beurteilen kann, versuchen diese Hosts, sich über eine unverschlüsselte Verbindung zu authentifizieren. Wenn Sie zur Authentifizierung eine sichere Verbindung benötigen, schlägt dies sogar fehl. Es scheint jedoch, dass Sie die Authentifizierung über unverschlüsselte Verbindungen zulassen.

Standardmäßig fail2banwird diese Bedingung nicht erfüllt, aber nach 3 Versuchen in 10 Minuten blockiert. Sie können eine jail.localDatei erstellen, um die Anzahl der Fehlschläge anzupassen, die erforderlich sind, um gesperrt zu werden, fail2banoder die Sperrzeit zu verlängern. fail2ban-clientermöglicht Ihnen auch, die Konfiguration anzupassen, während der Server läuft. Möglicherweise müssen Sie eine exim.localDatei erstellen, filter.ddie den generierten Zeilen entspricht. Ich habe den Inhalt von beigefügt exim.local. Sie können verwenden fail2ban-regex, um reguläre Ausdrücke zu testen (Sie müssen Python-Includes in den regulären Ausdrücken ersetzen).

[Definition]

host_info = H=([\w.-]+ )?(\(\S+\) )?\[<HOST>\](:\d+)? ?(I=\[\S+\]:\d+ )?(U=\S+ )?(P=e?smtp )?

failregex = ^%(pid)s %(host_info)s [^:]+: Sender host address is listed in zen.spamhaus.org
        ^%(pid)s %(host_info)s sender verify fail for <\S+>: (?:Unknown user|Unrouteable address|all relevant MX records point to non-existent hosts)\s*$
        ^%(pid)s (plain|login) authenticator failed for (\S+ )?\(\S+\) \[<HOST>\]: 535 Incorrect authentication data( \(set_id=.*\)|: \d+ Time\(s\))?\s*$
        ^%(pid)s %(host_info)s F=(<>|[^@]+@\S+) rejected RCPT [^@]+@\S+: (relay not permitted|Sender verify failed|Unknown user)\s*$
        ^%(pid)s SMTP protocol synchronization error \([^)]*\): rejected (connection from|"\S+") %(host_info)s(next )?input=".*"\s*$
        ^%(pid)s SMTP call from \S+ \[<HOST>\](:\d+)? (I=\[\S+\]:\d+ )?dropped: too many nonmail commands \(last was "\S+"\)\s*$
        \[<HOST>\]: 535 Incorrect authentication data
        ^%(pid)s %(host_info)s Warning: smtp used a hostname$
        ^%(pid)s no MAIL in SMTP connection from (\([^)]+\) )?\[<HOST>\] D=\d+(m\d+)?s( C=.*)?$
        ^%(pid)s SMTP protocol synchronization error \(input sent without waiting for greeting\): rejected connection from %(host_info)s

ignoreregex =

verwandte Informationen