Benutzer-Werkzeuge

Webseiten-Werkzeuge


solutions:denyhosts

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
solutions:denyhosts [2017-10-14 09:00] andreassolutions:denyhosts [2017-11-04 09:48] (aktuell) – [fail2ban administrieren] andreas
Zeile 1: Zeile 1:
-====== Eindringversuche unterbinden mit denyhosts ======+====== Eindringversuche unterbinden mit denyhosts bzw. fail2ban ======
  
 Der Zugriff mittels //ssh// auf einen Server eröffnet Hackern viele Möglichkeiten. Daher wird speziell der Port 22 regelmäßig Ziel von Eindringversuchen. Das Tool //denyhosts// überwacht Zugriffsversuche und sperrt IP-Adressen, die zu häufig abgewiesen werden.  Der Zugriff mittels //ssh// auf einen Server eröffnet Hackern viele Möglichkeiten. Daher wird speziell der Port 22 regelmäßig Ziel von Eindringversuchen. Das Tool //denyhosts// überwacht Zugriffsversuche und sperrt IP-Adressen, die zu häufig abgewiesen werden. 
Zeile 15: Zeile 15:
 Die gesperrten IP Adressen werden in die Datei ''/etc/hosts.deny'' geschrieben. Die gesperrten IP Adressen werden in die Datei ''/etc/hosts.deny'' geschrieben.
 Informationen zu den gesperrten IP-Adressen können mit ''whois'' oder [[https://ip-info.org|IP Info]] ermittelt werden. Informationen zu den gesperrten IP-Adressen können mit ''whois'' oder [[https://ip-info.org|IP Info]] ermittelt werden.
 +
 +====== Oktober 2017: fail2ban ersetzt denyhosts ======
  
 Leider scheint //denyhosts// nicht weiter entwickelt zu werden. Künftig wird es ist daher notwendig, //fail2ban// näher zu betrachten. Gute Informationen sind in [[https://wiki.ubuntuusers.de/fail2ban/|Ubuntuuser]] und diesem [[https://www.chrissearle.org/2015/06/16/replacing-denyhosts-with-fail2ban-for-debian/|Blog]] zu finden.  Leider scheint //denyhosts// nicht weiter entwickelt zu werden. Künftig wird es ist daher notwendig, //fail2ban// näher zu betrachten. Gute Informationen sind in [[https://wiki.ubuntuusers.de/fail2ban/|Ubuntuuser]] und diesem [[https://www.chrissearle.org/2015/06/16/replacing-denyhosts-with-fail2ban-for-debian/|Blog]] zu finden. 
  
-Erste Gehversuche auf lion machen einen guten Eindruck von //fail2ban//. Typisches Linux-Tool, aber mit ordentlichen Voreinstellungen.+Erste Gehversuche auf lion machen einen guten Eindruck von //fail2ban//. Typisches Linux-Tool, aber mit vielen Voreinstellungen. 
 + 
 +===== Konfiguration von fail2ban ===== 
 + 
 +Die Konfiguration von fail2ban wird in ''/etc/fail2ban'' durchgeführt. Alle Dateien mit dem Suffix //.conf// sind vorgegeben und können bei Aktualisierung des Tools überschrieben werden. Eingene Anpassungen werden daher immer in Dateien mit dem Suffix //.local// durchgeführt. Dabei reicht es, nur die Änderungen gegenüber der //.conf// Dateien in den //.local// Dateien zu speichern.  
 + 
 +Inforamtionen hierzu sind z. B. in [[https://www.digitalocean.com/community/tutorials/how-to-protect-an-nginx-server-with-fail2ban-on-ubuntu-14-04|How to protect an NGINX Server with fail2ban]] 
 + 
 +==== Aktivieren / Erstellen von Jails ==== 
 + 
 +In fail2ban werden sogenannte Jails erstellt, die log-Files nach Angriffsmustern untersuchen und IP-Adressen sperren, wenn die Muster binnen vorgegebener Zeit n-mal angesprochen werden.  
 + 
 +Die Datei ''/etc/fail2ban/jail.conf'' enthält zahlreiche Jails, die allerdings für den jeweiligen Server angepasst freigeschaltet werden müssen. Hierzu dienen die Dateien ''/etc/fail2ban/jail.d/defaults-debian.(conf|local)'', in denen die Vorgaben aus Debian bzw. die eigenen Einstellungen enthalten sind. 
 + 
 +Beispiel: 
 +<code> 
 +$ cat /etc/fail2ban/jail.d/defaults-debian.local  
 +[sshd] 
 +enabled = true 
 +bantime = 86400 
 + 
 +[nginx-http-auth] 
 +enabled = true 
 + 
 +[nginx-botsearch] 
 +enabled = true 
 + 
 +[nginx-noscript] 
 +enabled  = true 
 +port     = http,https 
 +filter   = nginx-noscript 
 +logpath  = /var/log/nginx/access.log 
 +maxretry = 4 
 +</code> 
 + 
 +In dem Beispiel werden die vorgegebenen Jails [sshd], [nginx-http-auth] und [nginx-botsearch] aktiviert. Mit [nginx-noscript] wird ein eigenes Jail hinzugefügt.  
 + 
 +==== Filtereinstellungen ====  
 + 
 +Die Filter, nach denen die Log-Files untersucht werden befinden sich in ''/etc/fail2ban/filter.d''. Auch hier werden eigene Einstellungen in //.local// Dateien gespeichert. 
 + 
 +<code> 
 +$ cat nginx-noscript.local  
 +# fail2ban filter für nginx  
 + 
 +[Definition] 
 + 
 +failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\.scgi) 
 + 
 +ignoreregex = 
 + 
 +</code> 
 + 
 +Vorgegebene Filter können auch erweitert werden, wie z. B. nginx-http-auth 
 + 
 +<code> 
 +$ nl nginx-http-auth.local  
 +     1 # fail2ban filter configuration for nginx 
 +        
 +        
 +     2 [Definition] 
 +        
 +        
 +     3 failregex = ^ \[error\] \d+#\d+: \*\d+ user "\S+":? (password mismatch|was not found in ".*"), client: <HOST>, server: \S*, request: "\S+ \S+ HTTP/\d+\.\d+", host: "\S+"(, referrer: "\S+")?\s*$ 
 +     4 ^ \[error\] \d+#\d+: \*\d+ no user/password was provided for basic authentication, client: <HOST>, server: \S+, request: "\S+ \S+ HTTP/\d+\.\d+", host: "\S+"\s*$ 
 +        
 +     5 ignoreregex =  
 +        
 +     6 # DEV NOTES: 
 +     7 # Based on samples in https://github.com/fail2ban/fail2ban/pull/43/files 
 +     8 # Extensive search of all nginx auth failures not done yet. 
 +     9 #  
 +    10 # Author: Daniel Black 
 +</code> 
 + 
 +Hier wurde Zeile 4 ergänzt, damit auch Fehlversuche ohne Passwort Eingabe gefiltert werden. 
 + 
 +==== fail2ban administrieren ==== 
 + 
 +fail2ban läuft als Service, daher müssen alle Veränderungen durch einen Restart des Service aktiviert werden. 
 + 
 +<code> 
 +$ sudo systemctl restart fail2ban 
 +</code> 
 + 
 +Den Zustand von fail2ban und der Jails kann man mit fail2ban-client ansehen. 
 + 
 +<code> 
 +$ sudo fail2ban-client status 
 +Status 
 +|- Number of jail: 4 
 +`- Jail list: nginx-botsearch, nginx-http-auth, nginx-noscript, sshd 
 +$ sudo fail2ban-client status sshd 
 +Status for the jail: sshd 
 +|- Filter 
 +|  |- Currently failed: 0 
 +|  |- Total failed: 0 
 +|  `- File list: /var/log/auth.log 
 +`- Actions 
 +   |- Currently banned: 3 
 +   |- Total banned: 3 
 +   `- Banned IP list: 35.198.154.247 5.188.10.179 84.139.127.3 
 +$ sudo iptables --list 
 +Chain INPUT (policy ACCEPT) 
 +target     prot opt source               destination          
 +f2b-nginx-noscript  tcp  --  anywhere             anywhere             multiport dports http,https 
 +f2b-nginx-botsearch  tcp  --  anywhere             anywhere             multiport dports http,https 
 +f2b-nginx-http-auth  tcp  --  anywhere             anywhere             multiport dports http,https 
 +f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh 
 + 
 +Chain FORWARD (policy ACCEPT) 
 +target     prot opt source               destination          
 + 
 +Chain OUTPUT (policy ACCEPT) 
 +target     prot opt source               destination          
 + 
 +Chain f2b-nginx-botsearch (1 references) 
 +target     prot opt source               destination          
 +RETURN     all  --  anywhere             anywhere             
 + 
 +Chain f2b-nginx-http-auth (1 references) 
 +target     prot opt source               destination          
 +RETURN     all  --  anywhere             anywhere             
 + 
 +Chain f2b-nginx-noscript (1 references) 
 +target     prot opt source               destination          
 +RETURN     all  --  anywhere             anywhere             
 + 
 +Chain f2b-sshd (1 references) 
 +target     prot opt source               destination          
 +REJECT     all  --  p548B7F03.dip0.t-ipconnect.de  anywhere             reject-with icmp-port-unreachable 
 +REJECT     all  --  5.188.10.179         anywhere             reject-with icmp-port-unreachable 
 +REJECT     all  --  247.154.198.35.bc.googleusercontent.com  anywhere             reject-with icmp-port-unreachable 
 +RETURN     all  --  anywhere             anywhere 
 +</code> 
 + 
solutions/denyhosts.1507971607.txt.gz · Zuletzt geändert: 2017-10-14 09:00 von andreas