Librox blog

À deux, c’est mieux

Accueil > Serveur > Fail2ban : bloquer les tentatives d’accès à Squirrelmail

Fail2ban : bloquer les tentatives d’accès à Squirrelmail

jeudi 14 juin 2012

Voici la méthode que j’ai utilisé pour bloquer les tentatives d’accès frauduleuses sur mon Squirrelmail.

Prérequis : Fail2ban et Squirrelmail doivent être installés et fonctionnels.

  1. Installer le plugin squirrel-logger :
    Pour les chanceux qui utilisent debian, il existe un paquet. Il suffit de l’installer :aptitude install squirrelmail-loggerPour les autres, rendez-vous ici.
  2. Créez le fichier de log squirrelmail.log dans /var/log/ :
    touch /var/log/squirrelmail.log
    Et donnez à Squirrelmail les droits :
    chown www-data:www-data /var/log/squirrelmail.log
    chmod 640 /var/log/squirrelmail.log
  3. Pour configurer le plugin, rendez-vous dans le fichier /usr/share/squirrelmail/plugins/squirrel_logger/config.php :
    On lui dit que notre serveur n’est pas en heure GMT :$sl_use_GMT = 0 ;On renseigne l’emplacement du fichier de log :$sl_logfile = ’/var/log/squirrelmail.log’ ;On met la date au format de Fail2ban :$sl_dateformat = ’M j H:i:s’ ;En commentant ou décommentant certaines lignes on désactive les log dans le syslog, les logs sql et les logs par mail, et on active les log dans le fichier de log :
    $sl_logs = array(
    // ’SYSTEM:LOG_INFO:LOG_MAIL:squirrelmail’ => array(
    // ’LOGIN’ => "Successful webmail login : by %2 (%3) at %4 on ...
    // ’LOGOUT’ => "Webmail logout : by %2 (%3) at %4 on %6 (%7)",
    // ’TIMEOUT’ => "Webmail session timed out : by %2 (%3) at %4 ...
    // ’OUTGOING_MAIL’ => "Message sent via webmail : by %2 (%3) at ...
    // ’MASS_MAILING’ => "Possible outgoing spam : by %2 (%3) at %4 on ...
    // ’LOGIN_ERROR’ => "Failed webmail login : by %2 (%3) at %4 on %6 ...
    // ’ERROR’ => "Webmail error : by %2 (%3) at %4 on %6 (%7)",
    // ’CAPTCHA’ => "Webmail CAPTCHA litmus : by %2 (%3) at %4 on ...
    // ’RESTRICT_SENDERS’ => "Failed recipient limit : by %2 (%3) at %4 ...
    // ),
    // ’SYSTEM:LOG_WARNING:LOG_MAIL:squirrelmail’ => array(
    // ’LOGIN_ERROR’ => "Failed webmail login : by %2 (%3) at %4 on %6 ...
    // ’ERROR’ => "Webmail error : by %2 (%3) at %4 on %6 (%7)",
    // ),
    // ’SYSTEM:LOG_ALERT:LOG_MAIL:squirrelmail’ => array(
    // ’MASS_MAILING’ => "Possible outgoing spam : by %2 (%3) at %4 on ...
    // ),
    ’FILE’ => array(
    ’LOGIN’ => "%6 [%1] %2 (%3) from %4 : %7\n",
    ’LOGOUT’ => "%6 [%1] %2 (%3) from %4 : %7\n",
    ’TIMEOUT’ => "%6 [%1] %2 (%3) from %4 : %7\n",
    ’MASS_MAILING’ => "%6 [%1] %2 (%3) from %4 : %7\n",
    ’LOGIN_ERROR’ => "%6 [%1] %2 (%3) from %4 : %7\n",
    // ’LOGIN_ERROR’ => "%6 [INVALID] %2 (%3) from %4 : %7\n",
    ’ERROR’ => "%6 [%1] %2 (%3) from %4 : %7\n",
    ),
    // ’SQL’ => array(
    // ’LOGIN’ => ’LOGIN’,
    // ’LOGOUT’ => ’LOGOUT’,
    // ’TIMEOUT’ => ’TIMEOUT’,
    // ’MASS_MAILING’ => ’MASS_MAILING’,
    // ’LOGIN_ERROR’ => ’INVALID’,
    // ’ERROR’ => ’ERROR’,
    // ),
    ) ;
  4. Il faut maintenant désactiver et réactiver le plugin afin que nos modifications soient prises en compte :
    squirrelmail-configure
    Tapez 8 pour sélectionner 8. Plugins, entrée.
    Tapez le nombre correspondant à la ligne squirrel_logger, entrée.
    S pour sauver. Entrée.
    Pour activer le plugin, tapez le nombre correspondant à la ligne squirrel_logger (normalement ce n’est plus le même nombre), entrée.
    S pour sauver. Entrée.
    Q pour quitter.
  5. Éditez votre fichier de jails /etc/fail2ban/jail.local pour ajouter ceci :
    [squirrelmail]

    enabled = true
    port = http,https
    filter = squirrelmail
    logpath = /var/log/squirrelmail.log
    bantime = 300
    maxretry = 4

  6. Créez le filtre squirrelmail /etc/fail2ban/filter.d/squirrelmail.conf et éditez le :
    # Fail2Ban configuration file
    # Author : Bill Landry ((email_protected))
    # $Revision : 510 $

    [Definition]

    failregex = [LOGIN_ERROR].*from : Utilisateur inconnu ou mot de passe incorrect

    ignoreregex =

  7. Redémarrez fail2ban :
    /etc/init.d/fail2ban restart
  8. Testez :
    Connectez-vous 4 fois à votre Squirrelmail avec de faux nom d’utilisateurs, vous devriez être bloqué.