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?
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 fail2ban
wird diese Bedingung nicht erfüllt, aber nach 3 Versuchen in 10 Minuten blockiert. Sie können eine jail.local
Datei erstellen, um die Anzahl der Fehlschläge anzupassen, die erforderlich sind, um gesperrt zu werden, fail2ban
oder die Sperrzeit zu verlängern. fail2ban-client
ermöglicht Ihnen auch, die Konfiguration anzupassen, während der Server läuft. Möglicherweise müssen Sie eine exim.local
Datei erstellen, filter.d
die 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 =