 |
Forum technique developpement, GNU Linux et logiciels, de l'ours Forum d'echange et d'entre aide sur le developpement, GNU Linux
|
| Forum developpement logiciel et Internet - Support informatique |
| |
Bienvenue sur le forum informatique et internet. N'hésitez pas à poser vos questions, à vous inscrire pour participer. Ce forum a pour but de partager une base de connaissance ouverte à tous couvrant l'informatique et les réseaux, antivirus et anti spywares. On a pas de pognon, de moins en moins même, mais on a des idées ! Dans l'esprit du logiciel libre, et de l'accès pour tous à la connaissance, vous pouvez copier les informations présentes dans ce forum. Il sera cool de votre part de placer un lien en retour vers ce forum, mais ça n'est pas obligatoire. |
|
|
| |
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
ronours Site Admin

Inscrit le: 25 Fév 2007 Messages: 1159
|
Posté le: Jeu Nov 29, 2007 11:54 pm Sujet du message: Installer fail2ban sur serveur dedie ovh release 1 |
|
|
Marre de voir dans vos logs (/var/log/messages) des machines qui tentent tous les logins possibles et chargent votre serveur ?
Un solution : Fail2ban. ça analyse les logs, et au bout de X mauvais login/pass ça banni l'ip de la machine !
Le top pour degager les parasites ! Voici comment procéder :
Installer fail2ban sur dedié ovh release 1
Il nous faut python2.4.4 , car la version 1.xx d'origine est trop vieille :
| Code: | wget http://www.python.org/ftp/python/2.4.4/Python-2.4.4.tar.bz2
bunzip2 Python-2.4.4.tar.bz2
tar -xvf Python-2.4.4.tar |
on rentre dans python 2.4.4
| Code: | ./configure
make
make install |
//On va changer le python par defaut du systeme :
| Code: | | mv /usr/bin/python /usr/bin/python_old |
//on fait un lien vers le nouveau
| Code: | | ln -s /usr/local/bin/python2.4 /usr/bin/python |
On download fail2ban :
| Code: | wget http://ovh.dl.sourceforge.net/sourceforge/fail2ban/fail2ban-0.8.1.tar.bz2
bunzip2 fail2ban-0.8.1.tar.bz2
tar -xvf fail2ban-0.8.1.tar
|
Edit du 11/08/2009 : Il y a une version plus récente de fail2ban avec des corrections de bug, utilisez la dernière version (à la date de la correction) :
http://downloads.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.3/fail2ban-0.8.3.tar.bz2
De manière générale il convient de toujours vérifier si une version plus récente n'est pas disponible, car les versions plus à jour contiennent des corrections de bugs et de failles de sécurité.
on va dans le dossier, la doc demande de faire un ./setup.py install, on tape :
| Code: | | python setup.py install |
Et la tout se passe sans soucis.
//par defaut c'est installé dans le mauvais dossier (lié a la disrtib), pour que fail2ban ne soit pas perdu on fait 3 liens :
| Code: | ln -s /usr/local/bin/fail2ban-client /usr/bin/
ln -s /usr/local/bin/fail2ban-regex /usr/bin/
ln -s /usr/local/bin/fail2ban-server /usr/bin/
|
On va dans le dossier files (sous dossier de la ou on est actuellement) pour recuperer le script de controle de fail2ban. On va copier la version pour notre systeme au bon endroit :
| Code: | | cp redhat-initd /etc/rc.d/init.d/fail2ban |
On place un lien vers le script de lancement dans le dossier qui va bien pour que ça demarre avec le systeme :
| Code: | | ln -s /etc/rc.d/init.d/fail2ban /etc/rc2.d/S20fail2ban |
On va creer le fichier de rotation des logs ici :
/etc/logrotate.d/fail2ban (touch /etc/logrotate.d/fail2ban)
et dedans on met :
| Code: | /var/log/fail2ban.log {
weekly
rotate 7
missingok
compress
postrotate
/usr/local/bin/fail2ban-client reload 1>/dev/null || true
endscript
} |
Modifier /etc/fail2ban/jail.conf pour ce qu'on veut (ssh)
Decommenter ssh-tcpwrapper et choisir les options :
exemple :
| Code: |
[ssh-tcpwrapper]
enabled = true
filter = sshd
action = hostsdeny
sendmail-whois[name=SSH, dest=votre_mail@domaine.com]
#ignoreregex = for myuser from
logpath = /var/log/messages |
puis lancer fail2ban-client -d, ça affiche la config si tout est ok :
Puis, on lance le service :
| Code: | | /etc/rc.d/init.d/fail2ban start |
lister les client bloqués en ssh par exemple :
| Code: | | fail2ban-client status ssh-tcpwrapper |
et c'est ok !
Attention, dans ce mode, fail2ban va ajouter l'ip dans /etc/hosts.deny et donc condamner l'ip source. Si vous le testez, garder un ssh ouvert car vous ne pourrez plus vous reloguer.
En travaillant sur hosts.deny, il semble que fail2ban ne parvienne pas a debannir. Donc pour debannir a la main, ouvrir le fichier /etc/hosts.deny, et effacer votre ip !
Les log de fail2ban sont dans /var/log/fail2ban.log
Si vous avez bloqué votre ip, passez par un proxy, ou une autre machine sur internet pour aller virer votre ip de la liste.
Vous pouvez egalement mettre un cron hourly qui contiendrai | Code: | | echo "">/etc/hosts.deny | et qui du coup annulerai les ban toutes les heures
Voila! En esperant que ça aide!
Dernière édition par ronours le Mar Aoû 11, 2009 10:32 pm; édité 3 fois |
|
| Revenir en haut de page |
|
 |
IVIedia
Inscrit le: 06 Déc 2007 Messages: 7
|
Posté le: Sam Déc 08, 2007 3:54 pm Sujet du message: |
|
|
Merci ce topic m'interesse, quelle est la commande pour voir le fichier log message , ce tuto est la même pour la release 2.0 ?
donc le but du soft c'est apres qque tentative d'intrusion il banni cette personne ... ?
Mais cette personne peux reprendre , mais il sera toujours banni ?
Merci bcp |
|
| Revenir en haut de page |
|
 |
ronours Site Admin

Inscrit le: 25 Fév 2007 Messages: 1159
|
Posté le: Sam Déc 08, 2007 7:06 pm Sujet du message: |
|
|
Alors
| Citation: | | Merci ce topic m'interesse, quelle est la commande pour voir le fichier log message , ce tuto est la même pour la release 2.0 ? |
A priori sur la release 2, python devrait déjà etre à jour, donc seule la partie install fail2ban devrait etre a suivre je pense.
| Citation: | | donc le but du soft c'est apres qque tentative d'intrusion il banni cette personne ... ? |
Ce soft en effet, apres 3 tentatives de connection (sur la config représentée), il va ajouter l'ip du vilain pirate dans le fichier hosts.deny, en interdisant ainsi au pirate l'acces à la machine pour une période donnée (voir les parametres)
| Citation: | | Mais cette personne peux reprendre , mais il sera toujours banni ? |
Alors, la personne est bannie pour 10 minutes par défaut je crois. Et il ne peut plus rien tenter pendant ce temps, car l'acces integral à la machine est refusé. Donc ça bloquera les tentatives de login par fichiers de mots de passe.[/quote] |
|
| Revenir en haut de page |
|
 |
IVIedia
Inscrit le: 06 Déc 2007 Messages: 7
|
Posté le: Dim Déc 09, 2007 12:53 am Sujet du message: |
|
|
Ah ok je comprend mieux, j'attend ma nouvelle machine et une fois mis la release 2.0 je commencerai a teste ça
merci pour l'info |
|
| Revenir en haut de page |
|
 |
ronours Site Admin

Inscrit le: 25 Fév 2007 Messages: 1159
|
Posté le: Dim Déc 09, 2007 4:28 pm Sujet du message: |
|
|
Note : Sous une autre distrib, comme Fedora 7 ou 8, il faut les paquets python 2.5 et pyton 2.5 Devel
Voila, au cas ou vous avez une erreur du style :
| Code: | running install
error: invalid Python installation: unable to open /usr/lib/python2.5/config/Makefile (No such file or directory) |
Note pour plus tard  |
|
| Revenir en haut de page |
|
 |
ronours Site Admin

Inscrit le: 25 Fév 2007 Messages: 1159
|
Posté le: Ven Juil 31, 2009 4:20 pm Sujet du message: Fail2ban - gérer les abus sur vpopmail - vchkpw-pop3 |
|
|
Nous avons donc installé fail2ban pour les tentatives sur SSH, mais aujourd'hui, un vilain a tenté d'attaquer mes comptes pop sur une base de dictionnaire (bon visiblement c'est courrant), donc, en m'inspirant de ce qui est ici :
http://forum.ovh.com/showthread.php?t=32272&page=2
Donc, sur la release 1 d'ovh, dans mes logs /var/log/maillog j'avais ça :
| Code: | Jul 31 12:29:17 ns35209 vpopmail[27567]: vchkpw-pop3: vpopmail user not found david@:190.41.163.225
Jul 31 12:29:18 ns35209 vpopmail[27569]: vchkpw-pop3: vpopmail user not found web@:190.41.163.225
Jul 31 12:29:19 ns35209 vpopmail[27571]: vchkpw-pop3: vpopmail user not found apache@:190.41.163.225
Jul 31 12:29:20 ns35209 vpopmail[27573]: vchkpw-pop3: vpopmail user not found pgsql@:190.41.163.225
Jul 31 12:29:20 ns35209 vpopmail[27575]: vchkpw-pop3: vpopmail user not found mysql@:190.41.163.225
Jul 31 12:29:21 ns35209 vpopmail[27577]: vchkpw-pop3: vpopmail user not found info@:190.41.163.225
Jul 31 12:29:22 ns35209 vpopmail[27581]: vchkpw-pop3: vpopmail user not found tony@:190.41.163.225
Jul 31 12:29:23 ns35209 vpopmail[27583]: vchkpw-pop3: vpopmail user not found core@:190.41.163.225
Jul 31 12:29:24 ns35209 vpopmail[27586]: vchkpw-pop3: vpopmail user not found newsletter@:190.41.163.225
Jul 31 12:29:25 ns35209 vpopmail[27589]: vchkpw-pop3: vpopmail user not found named@:190.41.163.225
Jul 31 12:29:25 ns35209 vpopmail[27591]: vchkpw-pop3: vpopmail user not found visitor@:190.41.163.225
Jul 31 12:29:26 ns35209 vpopmail[27593]: vchkpw-pop3: vpopmail user not found ftpuser@:190.41.163.225
Jul 31 12:29:27 ns35209 vpopmail[27595]: vchkpw-pop3: vpopmail user not found username@:190.41.163.225
Jul 31 12:29:28 ns35209 vpopmail[27598]: vchkpw-pop3: vpopmail user not found administrator@:190.41.163.225 |
On voit clairement que le vilain 190.41.163.225 scanne ma machine pour trouver des comptes emails popables. Bref, coup de chance, je l'ai vu passer, et j'ai botté son ip en hosts.deny !
Mais on va automatiser ça avec fail2ban, qui fait déjà bien le travail sur ssh !
On va créer un fichier filtre ici : /etc/fail2ban/filter.d/vpopmail.conf
qui va contenir ça :
| Code: | # Fail2Ban configuration file
#
[Definition]
failregex = vchkpw-pop3: vpopmail user not found .*@*:<HOST>
ignoreregex = |
Ensuite, on va ajouter une section dans /etc/fail2ban/jail.conf
avec ceci (on l'ajoute entre les règles existantes) :
| Code: | #Par alex pour lutter contre les popeurs fou qui testent les passwords
[vpopmail-tcpwrapper]
enabled = true
filter = vpopmail
action = hostsdeny
sendmail-whois[name=POP, dest=votremail@votre_domaine.bof]
#ignoreregex = je sais pas
logpath = /var/log/maillog
|
Notez que j'utilise le hostsdeny qui va ajouter l'ip dans le fichier /etc/hosts.deny et pas de règle de firewall pour le coup (tcpwrapper).
Puis on redémarre fail2ban ! Et voilà c'est dans la poche !
Vous pouvez tester la regle comme ceci :
| Code: | | fail2ban-regex /var/log/maillog /etc/fail2ban/filter.d/vpopmail.conf |
et ça va vous faire un petit résumé des éléments trouvés, si vous avez correctement paramétré le truc et que vos logs contiennent des éléments à trouver (voir exemple du log plus haut). _________________ Soutenez le logiciel libre - Vous pouvez adhérer à l'april :
http://www.april.org/adherer?referent=Alexandre+BLANC+%28ablanc%29 - Soutenez le logiciel libre plus largement, adhérez à la FSF (Europe ou Monde) , voir lien en pied de page. |
|
| Revenir en haut de page |
|
 |
ronours Site Admin

Inscrit le: 25 Fév 2007 Messages: 1159
|
Posté le: Mar Aoû 04, 2009 10:11 am Sujet du message: Fail2ban - Gérer les abus sur ncftpd |
|
|
Comme nous avons appris à bloquer les vilaines tentatives sur SSH (premier post), les vilaines tentatives sur les comptes POP (vpopmail chez moi) juste au dessus, nous allons ajouter la gestion des vilains qui tentent les attaques par dictionnaire en FTP !!
Et oui, le net est un champs de bataille, tous les coup sont permis, voici comment je met en place :
Dans /var/log/messages, j'ai observé ça :
| Code: | Aug 4 03:05:04 ns35209 NcFTPd: Too many login failures from 150.214.142.233; usernames used were: oracle, informix.
Aug 4 03:05:16 ns35209 NcFTPd: Too many login failures from 150.214.142.233; usernames used were: postgres, root.
Aug 4 03:05:29 ns35209 NcFTPd: Too many login failures from 150.214.142.233; usernames used were: test, admin.
Aug 4 03:05:41 ns35209 NcFTPd: Too many login failures from 150.214.142.233; usernames used were: testuser, tester.
Aug 4 03:05:53 ns35209 NcFTPd: Too many login failures from 150.214.142.233; usernames used were: cvs, tester.
Aug 4 03:06:05 ns35209 NcFTPd: Too many login failures from 150.214.142.233; usernames used were: tmp, mysql. |
Et là je me dis, oh le vilain 150.214.142.233 !! Il faut faire quelque chose contre lui et tous les autres qui penseraient tenter la même chose !
Vite, j'enfourche mon VI favoris, et je vais créer le fichier /etc/fail2ban/filter.d/ncftpd.conf qui va contenir :
| Code: | # Fail2Ban configuration file
[Definition]
# Option: failregex
# Values: TEXT
failregex = NcFTPd: Too many login failures from <HOST>; usernames used were: *.
# fail2ban-regex FICHIER_LOG FICHIER_FILTRE
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex = |
Puis je le teste en tapant dans ma console :
| Code: | | fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/ncftpd.conf |
En effet, ça me liste bien l'IP qui a tenté l'attaque, cool, ça marche ! Y a plus qu'a activer ça !
Je vais donc ouvrir le fichier /etc/fail2ban/jail.conf et ajouter (genre en dessous de la règle pour vpopmail, les lignes suivantes :
| Code: | [ncftpd-tcpwrapper]
enabled = true
filter = ncftpd
action = hostsdeny
sendmail-whois[name=NCFTPD, dest=votremail@votredomaine.com]
#ignoreregex = je sais pas
logpath = /var/log/messages
|
Et voilà ! On relance fail2ban (/etc/rc.d/init.d/fail2ban restart) et notre modification est prise en compte.
J'utilise encore la methode (action) hostsdeny qui ajoute l'ip increminée dans /etc/hosts.deny.
Il semble y avoir un "bug", qui fait que les ip ne sont pas "débannies" automatiquement.
Mais ça n'est pas grave, ça me permet de faire un petit check régulier de /etc/hosts.deny et voir un peu ce qui se rempli. Et je fais le ménage à la main de temps en temps en effaçant les lignes.
Note : avec le "débannissement" qui ne fonctionne pas, si vous bannissez votre IP, il vous faudra vous connecter depuis une autre IP pour aller vous débannir !! Mais bon, on a tous, en gérant des serveurs, la possibilité de squater une autre IP de manière simple  _________________ Soutenez le logiciel libre - Vous pouvez adhérer à l'april :
http://www.april.org/adherer?referent=Alexandre+BLANC+%28ablanc%29 - Soutenez le logiciel libre plus largement, adhérez à la FSF (Europe ou Monde) , voir lien en pied de page. |
|
| Revenir en haut de page |
|
 |
|
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|