Ich möchte das Gehirn der Community in Bezug auf die Sicherheit von Linux-Servern herausgreifen, insbesondere in Bezug auf Brute-Force-Angriffe und die Verwendung von fail2ban im Vergleich zu benutzerdefinierten iptables .
Es gibt einige ähnliche Fragen, aber keine davon befasst sich zu meiner Zufriedenheit mit dem Thema. Kurz gesagt, ich versuche, die beste Lösung zu finden, um Linux-Server, die dem Internet ausgesetzt sind (mit den üblichen Diensten SSH, Web, Mail), vor Brute-Force-Angriffen zu schützen.
Ich habe einen guten Überblick über die Serversicherheit, dh das Sperren von ssh, indem keine Root- oder Kennwortanmeldungen zugelassen werden, der Standardport geändert wird, sichergestellt wird, dass die Software auf dem neuesten Stand ist, Protokolldateien überprüft werden, nur bestimmten Hosts der Zugriff auf den Server ermöglicht wird und die Sicherheit genutzt wird Auditing-Tools wie Lynis ( https://cisofy.com/lynis/ ) zur allgemeinen Einhaltung der Sicherheitsbestimmungen. Diese Frage bezieht sich daher nicht unbedingt darauf, obwohl Eingaben und Ratschläge immer willkommen sind .
Meine Frage ist, welche Lösung ich verwenden soll (fail2ban oder iptables) und wie ich sie konfigurieren soll oder ob ich eine Kombination aus beiden verwenden soll, um mich vor Brute-Force-Angriffen zu schützen.
Es gibt eine interessante Antwort zum Thema ( Denyhosts vs fail2ban vs iptables - beste Möglichkeit, Brute-Force-Anmeldungen zu verhindern? ). Die für mich persönlich interessanteste Antwort war ( /server//a/128964 ), und das Routing von iptables erfolgt im Kernel im Gegensatz zu fail2ban, bei dem Benutzermodus-Tools zum Parsen von Protokolldateien verwendet werden. Fail2ban verwendet natürlich iptables, muss jedoch noch Protokolldateien analysieren und einem Muster entsprechen, bis eine Aktion ausgeführt wird.
Ist es dann sinnvoll, iptables zu verwenden und die Ratenbegrenzung ( https://www.rackaid.com/blog/how-to-block-ssh-brute-force-attacks/ ) zu verwenden, um Anforderungen von einer IP für einen bestimmten Zeitraum zu löschen? Zeit, die zu viele Verbindungsversuche während eines bestimmten Zeitraums unternimmt, unabhängig davon, zu welchem Protokoll versucht wurde, eine Verbindung herzustellen? Wenn ja, dann gibt es hier einige interessante Gedanken zur Verwendung von Drop vs Reject für diese Pakete ( http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject ), irgendwelche Gedanken dazu?
Fail2ban ermöglicht eine benutzerdefinierte Konfiguration in Form der Möglichkeit, benutzerdefinierte ' Regeln ' für Dienste zu schreiben , die in der Standardkonfiguration möglicherweise nicht behandelt werden. Es ist einfach zu installieren und einzurichten und leistungsstark, aber es könnte ein Overkill sein, wenn ich nur versuche , eine IP vom Server zu blockieren , wenn zwei fehlgeschlagene Zugriffsversuche auf einen Dienst / ein Protokoll über einen x- Betrag durchgeführt werden von Zeit?
Ziel ist es, tägliche Logwatch-Berichte zu öffnen und nicht durch Seiten mit versuchten fehlgeschlagenen Verbindungen zum Server zu scrollen.
Vielen Dank, dass Sie sich die Zeit genommen haben.