Seite anzeigenÄltere VersionenLinks hierherNach oben Diese Seite ist nicht editierbar. Sie können den Quelltext sehen, jedoch nicht verändern. Kontaktieren Sie den Administrator, wenn Sie glauben, dass hier ein Fehler vorliegt. ===== Fail2ban ===== Fail2ban ermöglicht uns, uns gegen Bruteforce Attacken auf z.B. unseren SSH Zugang zu schützen. Nach einer definierten Zeit und misslungenden Login Versuchen, erstellen Fail2ban eine Firewallregel um diese IP Adresse für einen gewissen Zeitraum zu sperren. === Installation === Fail2ban wird einfach mit nachfolgendem Paket installiert <code Bash>apt install fail2ban</code> \\ Danach sollte der fail2ban Daemon eingerichtet und automatisch gestartet werden. <code Bash>systemctl enable --now fail2ban</code> \\ === nftables oder iptables === Fail2ban erstellt automatisch Firewallregeln. Je nachdem welche Firewall genutzt werden soll muss diese Installiert sein und bei fail2ban hinterlegt werden. Ich nutze hier eine nftables Firewall. <code Bash>apt install nftables</code> \\ Firewall bei nftables hinterlegen <code Bash>nano /etc/fail2ban/jail.conf</code> <code Bash> ... banaction = nftables-multiport banaction_allports = nftables-allports ... </code> Für eine iptables Firewall müssten hier die Einträge mit iptables stehen. \\ === Default Konfiguation === In der Default Konfiguration legen wir fest wieviele Versuche gestattet sind, wie lange überprüft wird und wie lange der Zugang gesperrt wird. Um die Standart Konfiguraton festzulegen muss eine neue Datei angelegt werden, die /etc/fail2ban/jail.local. \\ <code Bash>nano /etc/fail2ban/jail.local</code> <code Bash> [DEFAULT] bantime = 60m # Wie lange wird gesperrt findtime = 10m # In welchem Zeitraum werden Fehlversuche überprüft maxretry = 3 # Nach wievielen Fehlversuchen wird gesperrt backend = auto ignoreip = 127.0.0.1/8 ::1 # Ip Adressbereiche für die nicht geprüft werden soll ... </code> === SSH Dienst === Fail2ban kann mehrere Dienste überwachen, aber der wichtigste hierbei ist wohl der ssh Dienst. Dazu überwacht fail2ban das entsprechende Logfile auf Fehler und schreitet bei Bedarf ein. Um den SSH Dienst zu überwachen bearbeiten wir die /etc/fail2ban/jail.local. \\ <code Bash>nano /etc/fail2ban/jail.local</code> <code Bash> ... [sshd] enabled = true # Einschalten oder ausschalten port = 22 # Auf welchem Port läuft der Dienst filter = sshd # Name der Filterdatei z.B. /etc/fail2ban/filter.d/sshd.conf logpath = /var/log/auth.log # Die Logdatei die überwacht werden soll ... </code> === Apache Dienst === Auch der Webserver kann abgesichert werden indem wir unsere jail.conf anpassen. <code Bash>nano /etc/fail2ban/jail.local<code> <code Bash> ... [apache] # Kümmert sich um grundlegende Authentifizierungsfehler enabled = true port = http,https filter = apache-auth logpath = /var/log/apache*/*error.log maxretry = 3 findtime = 600 [php-url-fopen] # Versucht böswillges PHP Verhalten zu stoppen enabled = true port = http,https filter = php-url-fopen logpath = /var/log/apache*/*access.log [apache-overflows] # Es wird der Versuch blockiert, ungewöhnlich lange und verdächtige URLs anzufordern. enabled = true port = http,https filter = apache-overflows logpath = /var/log/apache*/*error.log maxretry = 2 [apache-badbots] # Stopt einige bekannte Bot anfragen enabled = true port = http,https filter = apache-badbots logpath = /var/log/apache*/*error.log maxretry = 2 </code> \\ === Überprüfen === Liste auf welche und wieviele jails aktuell laufen <code Bash>fail2ban-client status</code> \\ Liste auf wieviele IPs derzeit in einer jail gesperrt sind <code Bash>fail2ban-client status sshd</code> \\ Erlaube einer gesperrten IP wieder den Zugriff <code Bash>sudo fail2ban-client set sshd unbanip 111.111.111.111</code>