Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1619 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8  9  10
Auteur Sujet :

Marre des attaques Ssh & Co. : ban_ip.pl

n°700227
Tomate
Posté le 30-06-2005 à 10:31:27  profilanswer
 

Reprise du message précédent :
normal, car il faut être root pour toucher à iptables, donc pas possible depuis apache (en tout cas pas conseillé :D)
 
tu peux nous faire un patch entre ta version et la mienne ? [:cupra]


---------------
:: Light is Right ::
mood
Publicité
Posté le 30-06-2005 à 10:31:27  profilanswer
 

n°700233
DeraZ
Posté le 30-06-2005 à 10:48:53  profilanswer
 

nan je ne parlais pas de le faire depuis le apache mais plutot un truc du type :
 
Quand le script pl se lance, il verifie dans les iptables les ip qui sont en drop, il detecte dans la base leur presence, si elles ni sont pas il retire la regle iptable.
 
Mais ce que je ne trouve pas, c comment faire pour recuperer dans le script perl, en faisant appel a iptable, les ip que je drop :)
 
44pasteur.hd.free.fr/ban.rar
 
c un rar (compresser depuis windows) contenant la version a laquelle je suis de ton code
 
 

n°700236
DeraZ
Posté le 30-06-2005 à 10:53:02  profilanswer
 

Un petit mot pour dire que dans ma configuration le serveur mysql (apache) et le serveur linux sshd sont deux machines separe. Ce qui rend impossible lexecucation depuis le web de commande iptable directement.

n°700238
Tomate
Posté le 30-06-2005 à 10:57:46  profilanswer
 

:D


---------------
:: Light is Right ::
n°700239
DeraZ
Posté le 30-06-2005 à 11:00:46  profilanswer
 

tu as une idee de comment recuperer en iptable les ip en drop de la chain INPUT?

n°700242
Tomate
Posté le 30-06-2005 à 11:04:07  profilanswer
 

bah les ip tu les as dans la base ;)


---------------
:: Light is Right ::
n°700243
DeraZ
Posté le 30-06-2005 à 11:05:04  profilanswer
 

oui mais si tu les supprime depuis linterface web
tu les as pu justement lol

n°700244
DeraZ
Posté le 30-06-2005 à 11:05:24  profilanswer
 

Donc la comparaison doit etre faite dans lautre sens :)

n°700248
DeraZ
Posté le 30-06-2005 à 11:06:50  profilanswer
 

ou sinon plus tordu :
quand  le frontal web deban une ip il lecrit dans un fichier
se trouvant sur le partage samba du serveur ssh
 
et le script perl supprime des iptables les ip se trouvant dans se fichier :)

n°700249
Tomate
Posté le 30-06-2005 à 11:07:04  profilanswer
 

faut modifier l'interface web et rajouter un champ dans la table : TO_BE_DELETED


---------------
:: Light is Right ::
mood
Publicité
Posté le 30-06-2005 à 11:07:04  profilanswer
 

n°700250
DeraZ
Posté le 30-06-2005 à 11:09:19  profilanswer
 

pas bete
et c le script perl qui supprime et non plus le script php

n°700252
Profil sup​primé
Posté le 30-06-2005 à 11:10:39  answer
 

moi j'ai vais une version PHP de ton script TOMATE afin de me proteger des flood sur mon serveur WEB.
 
Si ca interesse des gens...

n°700253
DeraZ
Posté le 30-06-2005 à 11:13:23  profilanswer
 

je suis interesse :)

n°700258
Profil sup​primé
Posté le 30-06-2005 à 11:18:55  answer
 

DeraZ a écrit :

je suis interesse :)


 
C'est version a adapté, je les jamais distribué, car c'est presuq du cas par cas...
mais ce soir, je tenterais de t envoyer ca. Le code est a reprendre surement, il a y de nombreuses ameliorations possible.
 
En fait le principe :
 
A parti d'un mod d'apache, qui renvoie des erreurs 503 pour les IP ki font trop de requtes... j'ai inclu ds la page 503 un compteur. (par fichier txt)
et suivant le nombre de requetes... je banni par IPTABLES ou pas :D
 
Il y a une interface d'admin avec historique, possibilité de bannir/debannir les IP loggués
Par defaut, le script banni les IP pour 10min...
 
Voila voila.
 
PS : si ce soir j'ai pas le temps, je vous fait ca demaine, je me fais chier actuellement a mon stage


Message édité par Profil supprimé le 30-06-2005 à 11:20:37
n°700259
Tomate
Posté le 30-06-2005 à 11:23:47  profilanswer
 

DeraZ a écrit :

pas bete
et c le script perl qui supprime et non plus le script php


 :jap:


---------------
:: Light is Right ::
n°700260
DeraZ
Posté le 30-06-2005 à 11:23:49  profilanswer
 

Je suis en train de rajouter le champs is_delete dans la base
et je modifie le script php :)
Normalement tout a lheure jaurais une versio 1.0 :)

n°700262
Tomate
Posté le 30-06-2005 à 11:28:17  profilanswer
 

:d


---------------
:: Light is Right ::
n°700263
DeraZ
Posté le 30-06-2005 à 11:31:13  profilanswer
 

C lavantage des stages
c que tu nas tellement rien a faire que tu peut faire trankillement tes trucs persos  lol

n°700265
Tomate
Posté le 30-06-2005 à 11:36:11  profilanswer
 

kler :lol:


---------------
:: Light is Right ::
n°700266
DeraZ
Posté le 30-06-2005 à 11:37:26  profilanswer
 

Je suis en fin de 3eme annee a Epitech sur Paris
et vous?

n°700267
Tomate
Posté le 30-06-2005 à 11:38:34  profilanswer
 

DeraZ a écrit :

Je suis en fin de 3eme annee a Epitech sur Paris
et vous?


j'ai finit epita il y a 2 ans [:god]


---------------
:: Light is Right ::
n°700270
DeraZ
Posté le 30-06-2005 à 11:47:41  profilanswer
 

et tu fait quoi maintenant?

n°700278
Tomate
Posté le 30-06-2005 à 11:53:56  profilanswer
 

admin sys :D


---------------
:: Light is Right ::
n°700294
Profil sup​primé
Posté le 30-06-2005 à 12:19:43  answer
 

Je suis en BTS Infos gestion a l'EPSI Montpellier, je apsse en 2eme année :D

n°700301
gee
Bon ben hon
Posté le 30-06-2005 à 12:43:24  profilanswer
 

drapal,
apres avoir vu ce tomic j'ai regardé mes logs, et wahou y'avait du monde dedans.
 
Pour l'instant j'ai pas trop envie de me prendre la tete donc j'ai juste changé le port, mais je regarderais votre script tres bientot je pense (et oui je suis en stage :D ).

n°700308
DeraZ
Posté le 30-06-2005 à 12:53:56  profilanswer
 

C bon 44pasteur.hd.free.fr/ban.rar
est operationnel.
 
L'interface php agit avec le script perl (suppression dip ban etc...)
Le script perl doit etre en crontab car c lui qui effectue les operations sur les iptables a partir des infos de la db.
G commenter les bout de linterface php qui ne sont pas pour le moment implemente :)

n°700309
Tomate
Posté le 30-06-2005 à 12:54:24  profilanswer
 

ok


---------------
:: Light is Right ::
n°700761
DeraZ
Posté le 01-07-2005 à 11:21:37  profilanswer
 

Je cherche une derniere chose,
je voudrais eviter de devoir lancer le script pl en cron toute les minutes, pour ca jaimerais pouvoir specifier au serveur sshd qu'au moment dune authentification il lance le script (il serait donc lancer qua chaque fois que necessaire)  
Si vous avez une idee :)

n°700764
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 01-07-2005 à 11:26:36  profilanswer
 

content de voir qu'une personne se sert de l'interface [:dawa]  
la GPL c'est le bien [:dawa]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°700767
DeraZ
Posté le 01-07-2005 à 11:31:16  profilanswer
 

je me suis permis quelque modif comme explike plus haut :)
le php ne fait plus de delete dans la bd, mais il positionne des variable pour prevenir le script perl des actions a faire au prochaine passage :)
Du coup pour le moment seul la suppresion dip (banner ou en voie detre banner) sont active, g commenter la possibilite de banner ou de debanner.
Si tu as le temps davancer dessus pour mettre toute les autres options en place (creation de variable dans la base, interaction du script perl avec...), ne te gene pas :):)

n°700768
DeraZ
Posté le 01-07-2005 à 11:32:05  profilanswer
 

mais au moins quand tu supprime dans linterface php, ca supprime de la base, et surtout ca retire la regle iptable :)

n°700789
BiBi Max
Posté le 01-07-2005 à 12:13:55  profilanswer
 

Plutot que de faire un cron et lancer ton script pl, tu pourrais peut etre faire un truc du style : tail -f /var/log/auth.log => oh des Illegal user => je les bannis. et un autre script qui s'occupe de la mise a jour de la bd.
 
Ou alors tu fais un daemon en C
Voici une premiere version (merci a Trakto pour son aide) :
 
http://www.bibimax.homedns.org/banipssh-1.0.tar.bz2
 
(Bon tout n'est pas fini mais c'est fonctionnel)

Code :
  1. ./configure localhost root user_bd_banipssh pwd_user_bd_banipssh nom_table_ban_ip_ssh
  2. make
  3. ./ban_ip_ssh_ctrl  (Interface de controle)
  4. ./ban_ip_ssh [fichier de conf] (daemon)


 
Pour plus d'info, voir le README (Je sais, il est pas fini)
Nous sommes ouverts a toutes suggestions.
 
 
BiBi Max & Trakto
 
(PS, si quelqu'un a un bon tuto sur "comment faire un paquet debian", je suis preneur  :) )


Message édité par BiBi Max le 01-07-2005 à 12:39:59

---------------
BiBi Max
n°700792
DeraZ
Posté le 01-07-2005 à 12:16:08  profilanswer
 

le script pl fait un logtail -f /var/log/auth.log
et si il trouve un truc il met a jour la db et il bann
 
A chaque tour il verifie si des gens ont ete debanner depuis linterface web, et si oui il retire la regle iptable

n°711679
sff
Posté le 26-07-2005 à 22:16:36  profilanswer
 

Bonjour, je post sous le compte d'un ami car mon inscription n'a pas encore été validé...
 
Chez moi, le script ne génére aucune erreur, le taillog est fonctionnel, mais mon log doit être un peu différent. Déjà au niveau de la date, et même en faisant en sorte que ca passe, il ne stocke rien en Sql, ni même en Iptables.
 
Voici un bout de mon log lors de mes essais :
 
Jul 26 22:12:37 ns sshd[1580]: Failed password for root from 192.168.0.2 port 1069 ssh2
Jul 26 22:12:37 ns sshd[1580]: Failed password for root from 192.168.0.2 port 1069 ssh2
Jul 26 22:12:44 ns sshd[1584]: Failed password for root from 192.168.0.2 port 1070 ssh2
Jul 26 22:12:44 ns sshd[1584]: Failed password for root from 192.168.0.2 port 1070 ssh2
Jul 26 22:12:53 ns sshd[1588]: Failed password for root from 192.168.0.2 port 1071 ssh2
Jul 26 22:12:53 ns sshd[1588]: Failed password for root from 192.168.0.2 port 1071 ssh2
Jul 26 22:13:19 ns sshd[1594]: Failed password for root from 192.168.0.2 port 1072 ssh2
Jul 26 22:13:20 ns sshd[1594]: Failed password for root from 192.168.0.2 port 1072 ssh2
Jul 26 22:13:26 ns sshd[1598]: Failed password for root from 192.168.0.2 port 1073 ssh2
 
etc...
 
Lorsque j'éxécute le fichier perl, rien ne se produit, pas d'erreur, mais pas non plus de banissement, pourquoi s'il vous plait ?
 
Merci d'avance...
 
Posté par XanderFS (sous le compte de sff)

n°712156
XanderFS
Posté le 27-07-2005 à 19:23:39  profilanswer
 

Me revoilà sous mon pseudo :D  
Donc si on pouvais me dire comment je dois faire pour que ca fonctionne, ce serai très aimable à vous.
 
Je pense que ca viens du fichier log,
car le format de la date du fichier perl est : /bin/date -u +"%Y-%m-%d %H:%M:%S"
alors que la date de mon fichier log est de format : /bin/date -u +"%b %d %H:%M:%S"
 
et même en faisant cette modification, ca ne change pas grand chose ...
 
Donc je pense que il reste encore des modifications à faire, mais je ne sais pas lequels.
Quelqu'un sous Debian pourrait me montrer la structure de son fichier log svp ? Pour info, je fonctionne sous Slackware
 
Merci d'avance ...

n°712178
Tomate
Posté le 27-07-2005 à 21:04:45  profilanswer
 

je crois que c'est parce que tu as "port 1071 ssh2" à la fin des lignes
il faut modifier le parsing pour qu'il soit plus générique et qu'il trouve l'ip où qu'elle soit dans la ligne


---------------
:: Light is Right ::
n°712213
XanderFS
Posté le 27-07-2005 à 22:59:47  profilanswer
 

D'accord, merci.
 
Cependant, je ne connais pas du tout le langage perl. Je pense que c'est cette fonction qu'il faut donc modifier, mais je ne sais pas du tout comment m'y prendre.
 

Code :
  1. sub ParseLogFile
  2. {
  3.     my (@lines) = @_;
  4.     my %IpsList;
  5.     foreach my $line (@lines) {
  6.         if ($line =~ m/Illegal\suser/ig) {
  7.             my @part = split(" ", $line);
  8.             my $ip = $part[scalar(@part) - 1];
  9.             if (!defined(%WhiteListIP->{$ip})) {
  10.                 if (!%IpsList->{$ip}) {
  11.                     %IpsList->{$ip} = 0;
  12.                 }
  13.                 %IpsList->{$ip} = %IpsList->{$ip} + 1;
  14.             }
  15.         }
  16.     }
  17.     return %IpsList;
  18. }


 
Si quelqu'un pouvais avec l'exemple de mon log au dessus, me le personnaliser, ca serai très sympa.
Ou sinon, si il y as possibilité de modifier une options dans le syslog.conf ou le sshd_config pour qu'il ne mette pas les infos en fin de ligne.
 
Merci ;)

n°712981
XanderFS
Posté le 29-07-2005 à 15:46:23  profilanswer
 

Voilà, je viens de faire mon maximum pour y réussir, maintenant, le script fonctionne presque.
J'ai modifié "if ($line =~ m/Illegal\suser/ig) {" en "if ($line =~ m/Failed\spassword/ig) {".
 
C'est presque fonctionnel, car dès qu'il trouve un Failed password, il récupère la dernière valeur en tant que IP, cependant, la dernière valeur n'est pas mon IP, mais le protocol de mon Ssh.
 
Voilà ce que ça donne :
IP=ssh2 NOT in database, total=1
InsertDBIP ssh2, Jul 29 13:40:54
 
car mon log est :
Jul 29 15:35:40 ns sshd[16111]: Failed password for user from 192.168.0.2 port 1989 ssh2
 
Il y as t'il une personne qui peut m'aider pour résoudre ce soucis ? Car je suis presque arrivé au bout.
 
Merci... :bounce:


Message édité par XanderFS le 29-07-2005 à 15:49:11
n°713047
Tomate
Posté le 29-07-2005 à 18:46:25  profilanswer
 

il faut faire une autre regexp qui récupère l'IP
un truc qui extrait tout bloque XXX.XXX.XXX.XXX (avec 1,2 ou 3 X) de la ligne
 
:D


---------------
:: Light is Right ::
n°713052
XanderFS
Posté le 29-07-2005 à 18:59:08  profilanswer
 

et ca se traduit comment dans la fonction ParseLogFile stp ?

n°713053
Tomate
Posté le 29-07-2005 à 18:59:49  profilanswer
 

XanderFS a écrit :

et ca se traduit comment dans la fonction ParseLogFile stp ?


justement la regexp n'existe pas d'où le pb
 
il faut la faire et le rajouter dans la fonction ParseLog


---------------
:: Light is Right ::
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8  9  10

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Recherche] PDA ou smartphone avec SSH (& VPN)Script lors d'une connexion SSH
heu....une fois en connexion SSH, je copie comment ?SSH: authentification sans pwd
Probleme lecture cd-rom (je debute jen ai marre des probs ....)[Gentoo] interdire l'accès SSH à un utilisateur donné?
detection d'attaques[Resolu][SSH] interdire les connexions user/pass (sans cle)
Attaques DDos super fréquentes..[mdk 10.1] Probleme avec SSH.
Plus de sujets relatifs à : Marre des attaques Ssh & Co. : ban_ip.pl


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR