Dimanche 5 Septembre 2010

Securite serveur

Un article de Aide Hebergeur.

Version du 26 juillet 2010 à 13:57 par Admin (Discuter | Contributions)
(diff) ← Version précédente | voir la version courante (diff) | Version suivante → (diff)

FAIL2BAN

Installation

Un programme existe, il permet de bloquer des attaques brutes SSH, Apache, Mail, FTP, pendant un certain temps.

Pour cela vous devez vous connecter sur votre serveur dédié virtuel en ligne de commande (SSH via Putty) et tapez cela :

 cd /root
 wget ftp://ftp.ispfr.net/fail2ban/install_fail2ban.sh
 sh install_fail2ban.sh

Configuration

Par défaut, Fail2Ban est configuré pour bloquer les attaques SSH.

Vous avez juste à modifier le fichier "jail.conf" , par défaut une IP est bloquée au bout de 5 tentatives non réussites, vous pouvez aussi changer le temps de blocage d'un Ban dans  :

 nano /etc/fail2ban/jail.conf

Pour activer les protocoles Apache, Mail, FTp vous avez juste à changé la valeur :

  enable = false 

Et la mettre en :

 enable = true
  • Remplacez la partie [ssh-iptables] par :
[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/logauth.log
maxretry = 3

Au bout de trois mauvais mot de passe SSH, l'adresse IP est bannie pour $bantime (600 secondes par défaut)

  • Pour surveiller PROFTPD et les identifications mail, ajoutez dans le même fichier (jail.conf) :
[proftpd-iptables]

enabled  = true
filter   = proftpd
action   = iptables[name=ProFTPD, port=ftp, protocol=tcp]
           sendmail-whois[name=ProFTPD, dest=you@mail.com]
logpath  = /var/log/proftpd.log
maxretry = 3

[courierpop3]

enabled = true
port = pop3
filter = courierlogin
action = iptables[name=%(__name__)s, port=%(port)s]
logpath = /var/log/mail.info
maxretry = 3
bantime  = 1000
findtime = 900
  • Créez/Editez ensuite les fichiers (toujours pour le FTP et les mails):

/etc/fail2ban/filter.d/proftpd.conf

# Fail2Ban configuration file
#
# Author: Yaroslav Halchenko
#
# $Revision: 728 $
#

[Definition]

# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values: TEXT
#
failregex = \(\S+\[<HOST>\]\)[: -]+ USER \S+: no such user found from \S+ \[\S+\] to \S+:\S+$
            \(\S+\[<HOST>\]\)[: -]+ USER \S+ \(Login failed\): Incorrect password\.$
            \(\S+\[<HOST>\]\)[: -]+ SECURITY VIOLATION: \S+ login attempted\.$
            \(\S+\[<HOST>\]\)[: -]+ Maximum login attempts \(\d+\) exceeded$

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =


/etc/fail2ban/filter.d/courierlogin.conf

# Fail2Ban configuration file
#
# Author: Christoph Haas
# Modified by: Cyril Jaquier
#
# $Revision: 728 $
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values:  TEXT
#
failregex = LOGIN FAILED, .*, ip=\[<HOST>\]$
failregex = LOGIN FAILED, ip=\[<HOST>\]$
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Editez le fichier /etc/proftpd.conf pour générer les logs de connexions

# Primary log file mest be outside of system logrotate province

TransferLog /opt/psa/var/log/xferlog
SystemLog /var/log/proftpd.log
  • Tapez :
/etc/init.d/fail2ban stop
/etc/init.d/fail2ban start