Marre des attaques Ssh & Co. : ban_ip.pl - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 28-04-2005 à 20:10:34
Interface de contrôle par PHP permettant de :
Archive dispo ici
Cette interface est sous licence GPL, les icônes ont été réalisées par Jakub Steiner
Marsh Posté le 28-04-2005 à 20:24:36
ca m'interesse aussi, car y en a marre de ces attaques, mes logs en sont pleins
Si je peu vous aider, n'hesitez pas à demander
Marsh Posté le 28-04-2005 à 20:31:59
bah il y a peut-être d'autres trucs que les "illegal user" qu'on pourrait prendre en compte, mais quoi ?
Marsh Posté le 28-04-2005 à 20:33:23
Très bien ca
Je pourrais vous faire un petit paquet debian (à l'arrache mais bon) si ca vous interresse
Marsh Posté le 28-04-2005 à 20:34:39
pourquoi pas, mais quand on aura une version un peu plus avancée
Marsh Posté le 28-04-2005 à 20:46:30
Par contre sql lite, ou plain text ca serait pas possible
C'est pas un chouilla lourd mysql pour ca ?
Marsh Posté le 28-04-2005 à 20:51:43
plain text bof
sqllite pourquoi pas, j'ai jamais utilisé
Marsh Posté le 28-04-2005 à 20:54:14
J'ai la phobie de base de données c'est pour ca, fait pas attention à mes messages
Marsh Posté le 28-04-2005 à 21:06:37
Ouais, ça peut être pas mal sqlite je pense ...
A voir (c'est peut-être pas le plus important pour l'instant)
Flagged au passage
Marsh Posté le 28-04-2005 à 22:16:39
Tu pourrais detailler l'installation pour les gens non-SQL compliant
Marsh Posté le 28-04-2005 à 23:42:48
Tres bonne idee, j'ai l'impression que ce genre d'attaque est en pleine expansion, 2-3 attaques quotidiennes.
Par contre, quelqu'un a une explication pourquoi les adresses ip appartiennent souvent a des boites qui ont pignon sur rue et qu'un mail a abuse ne donne pas de suite et que les attaques ne cessent pas ?
Marsh Posté le 28-04-2005 à 23:59:12
z'ont un pc vérolé sur leur rezo qui fait les attaques...
Marsh Posté le 29-04-2005 à 00:33:50
Y a pas deja ce genre d'option dans tcplogd ,portsentry ou
iplog ?
Je sais plus dans lequel mais j'avais vu un truc qui mettais automatiquement en blacklist dans le firewall.
Marsh Posté le 29-04-2005 à 01:03:17
Perso, j'ai mis sshd sur un autre port à 4 chiffres, et aucun problèmes
Marsh Posté le 29-04-2005 à 08:33:18
BiBi Max a écrit : Tres bonne idee, j'ai l'impression que ce genre d'attaque est en pleine expansion, 2-3 attaques quotidiennes. |
Marsh Posté le 29-04-2005 à 09:17:09
M300A a écrit : Tu pourrais detailler l'installation pour les gens non-SQL compliant |
heu c'est à dire ?
mysql [-u user] [-p] < create_ban_ip_database.txt
Marsh Posté le 29-04-2005 à 09:46:33
C'est vrai que pour ma part je suis incapable d'utiliser ce script (sa tombe bien j'en ai pas besoin ) mais une petite explication sur la mise en place et l'utilisation sa serais simpas pour ceux qui en ont besoins.
Marsh Posté le 29-04-2005 à 09:48:15
qui est souvent un PC zombie par ailleurs
Marsh Posté le 29-04-2005 à 10:02:36
l'utilité que je vois à ce script c'est que l'IP est bannie un certain temps (24h c'est bien) et qu'elle ne pourrit plus tes logs.
Marsh Posté le 29-04-2005 à 10:04:39
j'ai mis 48h dans le script mais vous pouvez le modifier
bon je vais faire une mini doc install/comment ça marche
Marsh Posté le 29-04-2005 à 10:28:12
petite MAJ du script dans la focntion UnBanIP
Marsh Posté le 29-04-2005 à 10:28:43
vous pensez qu'on peut aussi prendre en compte les erreurs de ce type : "Did not receive identification string from"
?
Marsh Posté le 29-04-2005 à 10:53:59
dans 5000 chaînes ??
Marsh Posté le 29-04-2005 à 11:05:20
bien vu
Marsh Posté le 29-04-2005 à 11:06:34
dites, vous parlez de ca ?
Citation : Apr 27 22:17:58 routeur sshd[13917]: Illegal user richer from ::ffff:193.254.184.185 |
Marsh Posté le 29-04-2005 à 11:07:00
certes, mais bon on en a pas tant que ça des ip différentes
et sinon une idée pour optimiser ça avec iptables ?
Marsh Posté le 29-04-2005 à 11:07:50
dam1330 a écrit : dites, vous parlez de ca ?
|
Marsh Posté le 29-04-2005 à 11:10:21
tain, j'en ai 30 pas jour, j'avais pas fait attention.
mais sans le bon nom de login ni mdp, ils ne peuvent rien faire ?
le niveau de dangerosité est élevé ?
Marsh Posté le 29-04-2005 à 11:12:37
pourquoi pas
mais bon, pour une connexion@home, je pense pas qu'on soit saturé
Marsh Posté le 29-04-2005 à 11:13:22
dam1330 a écrit : tain, j'en ai 30 pas jour, j'avais pas fait attention. |
certes, mais en bannissant l'IP, il y aura plus du tout de chance qu'il trouve le bon user
Marsh Posté le 29-04-2005 à 11:17:09
quand je regarde les règles avec iptables -L FORWARD, ces règles sont à la fin justement
Marsh Posté le 29-04-2005 à 11:17:53
mais alors comment font les admins qui ont des grosses connexions ?
car les mails à abuse ne donnent rien
Marsh Posté le 29-04-2005 à 11:21:27
si je crois mais spa super pratique je crois
Marsh Posté le 29-04-2005 à 11:21:44
Salut
Sur une becane au taf.
Distribution Debian Woody.
Jai un blem au lancement de ton script Perl.
Jai crée la base de donnée ban_ip.
Jai remplacé le mot de passe dans le script ban_ip.pl, et changer le chemin pour le fichier log.
Jai remplacé aussi linterface réseau ppp0 par eth0.
my $INTERFACE="eth0";
my $tail = `logtail -f /home/bris/log/ssh.log`;
Petit problème lor de lexécution du script
bris@enux:~/ban_ip$ perl ban_ip.pl
Can't locate Date/Manip.pm in @INC (@INC contains: /usr/local/lib/perl/5.6.1 /usr/local/share/perl/5.6.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.6.1 /usr/share/perl/5.6.1 /usr/local/lib/site_perl .) at ban_ip.pl line 5.
BEGIN failed--compilation aborted at ban_ip.pl line 5.
Merci
Marsh Posté le 29-04-2005 à 11:25:15
gwadboy a écrit : Salut |
il faut que tu installes le module perl Date-Manip
Marsh Posté le 29-04-2005 à 11:26:30
ok
mais bon j'ai surtout fait ça pour le fun, je me doute bien qu'il y a des mécanismes un peu plus efficaces qu'un bête script perl
Marsh Posté le 29-04-2005 à 11:32:37
bris@enux:~/ban_ip$ apt-cache search date-ma
libdate-manip-perl - a perl library for manipulating dates
libdate-manip-perl ?
Marsh Posté le 28-04-2005 à 20:08:31
salut,
j'en ai eu marre des illegal user à la con sur mon ssh, et plutôt que de changer le port du service je me suis mis à dev ce petit script pour bannir au moyen d'iptables les petits rigolos
il fonctionne en perl et s'interface avec mysql pour avoir un historique des attaques
j'en suis qu'au début, mais pour l'instant le script fait ceci :
- parse le fichier de log pour repérer les "illegal user" (on peut même envisager de ne pas se limiter à cette chaîne) et récupère l'IP et le nb de tentative (j'utilise logtail pour ne pas parser 50 fois les mêmes lignes)
- ensuite, si l'ip existe déjà on regarde si le nb d'attaques dépasse un certain nb, si c'est le cas : BAN !
- si l'ip n'est pas dans la base on l'ajoute
- une date de déban est aussi présente, et le script déban une ip au bout d'un temps définit
voila pour l'instant
notre ami black_lord est en train de faire une interface PHP pour voir très simplement qui est ban, qui ne l'est pas encore/plus
on pourra même bannir/débannir en direct une IP
toute contribution/critique/remarque sont les bien venues
le tarball :
www.blablaosa.info/ban_ip.tgz
dans le fichier create_ban_ip_database.txt, il faudra changer le mot de passe pour la base
dans le fichier ban_ip.pl, pareil, changer le passe, mais aussi le nom du fichier de log
les principales étapes de fonctionnement du script :
- on commence par récupérer dans le fichier "/etc/ban_ip_whitelist" la liste des IP à ne jamais bannir (et donc à ne jamais rentrer dans la base). Comme le dit black_lord, il serait intéressant de mettre dans dans la base (dans une nouvelle table)
Ces IP sont mises dans une hashtab (pour avoir un acc_s simple et rapide)
- Ensuite, le fichier de logs est parsé pour récupérer dans une autre hashtab les IP suspectes. Pour l'instant une chaîne est matchée, je pense qu'il serait intéressant d'en mettre d'autres, dans une variable
- Ensuite on récupère les IP en base qui ne sont pas bannies (encore dans une hashtab)
- la fonction UnBanIP est appelée, et déban si le ban est intervenu il y a plus de $Delay (2 jours actuellement)
- Enfin, on boucle sur les IP trouvées dans les logs, on vérifie qu'elles ne sont pas dans la WhiteList, et suivant le nombre de fois vues, on les ajoute (ou modifie si l'IP est déjà en base) et ban le cas échéant
EDIT :
bon voici à mon avis la parade ultime pour laisser sshd sur le port 22 sans être emmerdé par des bots
vu sur http://www.debian-administration.org/
rajoutez simplement ces 2 lignes :
/sbin/iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
/sbin/iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 -j DROP
et voila, si 3 tentatives échoues depuis la même IP en 300 secondes, iptables ban l'ip (pour 300 secondes apparement)
ultime !
Message édité par Tomate le 27-11-2005 à 13:05:42
---------------
:: Light is Right ::