Dans notre exemple on suppose qu’on travaille sur une machine Debian 7 fraîchement installée.
Pour commencer, on met à jour et on installe tout les paquets utiles :
apt-get update && apt-get install fail2ban rkhunter denyhosts apticron
Voyons quels sont les paquets fraichement installés
fail2ban : permet de bannir automatiquement au bout d’un certains nombres d’essais ratés. Permets d’éviter le bruteforce.
Rkhunter : permets d’être averti en cas de modification de fichiers sensibles.
Denyhosts : logiciel qui scan les logs et ban en fonction des dits-logs. Permet une synchronisation de la liste de ban avec d’autres servir.
Apticron : permet de savoir quand le serveur a besoin de mises à jour, lesquels, et avoir le changelog. Et oui, la sécurité passe aussi par les mises à jour.
nano/etc/apticron/apticron.conf
Remplacer EMAIL= » root » par EMAIL= » utilisateur@domaine.com ».
Facile non ? =)
Par sécurité on commence par copier le fichier de configuration et le renommer, en cas de problème on garde un fichier propre et le fichier jail.local sera chargé en priorité.
cp/etc/fail2ban/jail.conf/etc/fail2ban/jail.local
Puis on commence à la modifier :
nano/etc/fail2ban/jail.local
On obtient :
[DEFAULT]
ignoreip = 127.0.0.1
findtime =
bantime =
ignoreip contient la liste des adresses IP a ignoré. 127.0.0.1 est l’adresse localhost. Si vous travaillez sur un réseau internet vous pouvez ajouter les adresses IP de vos collègues autorisés à administrer le serveur.
Findtime : est le temps de blocage en cas de plusieurs échecs. Plus c’est grand plus c’est sur, par contre en cas d’échec vous êtes aussi bloqué.
Bantime : est le temps que sera banni quelqu’un qui s’est trop souvent trompé. Là on peut mettre le paquet !
/!les temps sont en secondes/!
Ainsi que d’autres blocs comme :
[ssh]
enabled = true
port = ssh,sftp
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
Ce qui veut dire dans l’ordre d’apparition :
On s’occupe de la partie ssh, on active cette configuration, on scan les ports ssh/sftp, le nom du fichier filtre est sshd, le fichier de log est dans/var/log/auth.log avec un nombre max d’essais de 6.µ
Typiquement je mets toujours 3 retry max. et j’active tout (enabled = true) ; même les services non utilisés par le serveur ; dans le cas ou quelqu’un tenterait quand même d’y accéder.
Et enfin modifier la ligne comme suis :
destemail = utilisateur@domaine.com
Voilà vous avez une configuration basique de votre fail2ban, que vous pourrez agrémentez d’autre règle plus tard.
nano /etc/default/rkhunter
On vérifie que l’adresse « report_email » est la bonne, et la ligne « cron_daily_run » soit bien à yes.
Finish.
Il y a plusieurs fichiers à connaitres.
Denyhosts.conf : c’est le fichier de configuration global du serveur.
Hosts.deny : la blacklist.
Hosts.allow : la whitelist. Si vous avez des utilisateurs Tux manchots, vous pouvezl es rajouter à cette liste. Attention toute fois, si un pite à accès a son poste toute la sécurité du fichier denyhosts.conf ne servira à rien.
Auth.log : fichier log de connexion ssh analysé par le service.
Pour commencer, on va voir les conditions de bannissements.
nano/etc/denyhosts/denyhosts.conf
Autoriser ou non la réception d’informations concernant les hôtes refusés détectés par d’autres serveurs afin de compléter le fichier hosts_deny local.
SYNC_DOWNLOAD_THRESHOLD = 3
Nombre de fois qu’un hôte doit être bloqué pour qu’il soit synchronisé dans la base locale
PURGE_DENY = 15dOn purge les blocages tous les 15 jours
PURGE_THRESHOLD = 3
Nombre de fois qu’un hôte peut être purgé du fichier « hosts.deny ». Une fois la limite dépassée l’hôte ne sera plus purgé du fichier. La valeur « 0 » indique illimité.
DAEMON_PURGE = 1 h
Temps entre chaque exécution de la tâche de purge des anciennes entrées dans le fichier hosts.deny
Voilou, vous avez sécurisé un minimum votre machine, alors pitié, arrêtez les XAMPP !