Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1714 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°675870
the_fireba​ll
I have fucking failed
Posté le 11-05-2005 à 08:10:11  profilanswer
 

Reprise du message précédent :
il est vrai que la façon de parler de tron20 me rappel quelqu'un...


---------------
Two thousand years of misery, of torture in my name, hypocrisy made paramount, paranoia the law, my name is called religion, sadistic, sacred whore.
mood
Publicité
Posté le 11-05-2005 à 08:10:11  profilanswer
 

n°675897
Tomate
Posté le 11-05-2005 à 09:22:45  profilanswer
 


je ne sais plus si le -D (delete) fonctionne avec -I INPUT
je crois en fait que pour faire un -D il faut avoir un -A (add)


---------------
:: Light is Right ::
n°675936
multani
Dépressionnisé
Posté le 11-05-2005 à 10:04:47  profilanswer
 

Mjules a écrit :

si
 
j'ai une question très stupide à poser (que j'ai peut-être loupé d'ailleurs).
 
Quel est l'intérêt de mysql vs un truc - lourd comme sqlite ou même, vs un fichier teste tout simple ?
 
(pas en absolu, je sais que retourver une info est plus rapide dans une BDD, enfin je crois, mais pour ce cas particulier ?)


Je dirais, pouvoir être facilement manipulable via une interface comme celle de black_lord non ?

n°676147
Tomate
Posté le 11-05-2005 à 12:48:13  profilanswer
 

black : 1er post MAJ pour l'explication + tarball ;)


---------------
:: Light is Right ::
n°676163
Profil sup​primé
Posté le 11-05-2005 à 13:06:12  answer
 

moi j'ai fait u nscript pour bloquer les tentatives de flood sur le port 80... sur un serveur Apache...
 
Si ca interesse qq personnes... je comptes le distribuer prochainement...

n°676165
YupYup
Non.
Posté le 11-05-2005 à 13:06:41  profilanswer
 

Je serais curieux de voir ton script zegreg


---------------
"The marketing guys said the HP-35 would be a failure because it was too small, and then we couldn't make them fast enough to meet the demand. The marketing folks don't know everything." - Bill Hewlett
n°676169
Profil sup​primé
Posté le 11-05-2005 à 13:13:10  answer
 

YupYup a écrit :

Je serais curieux de voir ton script zegreg


 
En fait, j'utilises mod_throttle comme point de départ.
Il renvoie des erreurs 503 si il detecte une tentavie de FLOOD.
 
J'ai modifie la page 503... si une IP ce prend une 503 il est loggué, si il s'en prend trop, il est banni sur serveur pour 10min par IPTABLES.
 
Voila, je crois que je vais creer une page complete sur le truc, car l'installation necesitte pas mal de modifs un peu partout... mais bon ca marche...
 
Voila voila, en fait, j'aimerais avoir votre avis sur l'utilisation de SUDO, car pour dire a Apache de creer une regle IPTABLES, je suis obligé de donenr les droits IPTABLES a apache. C'est risqué ?
 
Apres je veux bien faire tourner le script.


Message édité par Profil supprimé le 11-05-2005 à 13:13:45
n°676170
YupYup
Non.
Posté le 11-05-2005 à 13:14:34  profilanswer
 

Oui sans hésiter, utilise sudo. Ton script a l'air très sympa et j'ai bien envie de le tester sur un serveur de prod.


---------------
"The marketing guys said the HP-35 would be a failure because it was too small, and then we couldn't make them fast enough to meet the demand. The marketing folks don't know everything." - Bill Hewlett
n°676178
Profil sup​primé
Posté le 11-05-2005 à 13:20:40  answer
 

YupYup a écrit :

Oui sans hésiter, utilise sudo. Ton script a l'air très sympa et j'ai bien envie de le tester sur un serveur de prod.


 
envoyé en PV...
 
Je sais pas si il y a des failles...
 
Te faut installer mod_throttle pour Apache
Te faudra mettre une tache CRON sur le fichier purge.php
Te faut inserer robot.php dans ta page 503
Mettre les droits d'ecriture sur /logs
 
euuuuuu je crois que c'est tout :D apres faut adapter a ton serveur, ette version n'est pas faite pour etre distribuer a l'origine mais je compte la developper pour cela..
 

n°676199
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 11-05-2005 à 14:01:53  profilanswer
 


http://www.nuclearelephant.com/projects/dosevasive/ ;)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
mood
Publicité
Posté le 11-05-2005 à 14:01:53  profilanswer
 

n°676211
Tomate
Posté le 11-05-2005 à 14:22:24  profilanswer
 

black_lord : t'as vu mon blabla ? :p


---------------
:: Light is Right ::
n°676214
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 11-05-2005 à 14:23:34  profilanswer
 

voui, je vais attendre que tu passes la WL dans la BDD pour modifier l'interface :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°676219
Tomate
Posté le 11-05-2005 à 14:25:35  profilanswer
 

black_lord a écrit :

voui, je vais attendre que tu passes la WL dans la BDD pour modifier l'interface :o


ah ok [:ddr555]
 
par contre va falloir qu'on réfléchisse pour comment gérer le unban depuis l'interface car là ça modifie juste la base :D


---------------
:: Light is Right ::
n°676220
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 11-05-2005 à 14:26:21  profilanswer
 

pas possible sans utiliser une solution de goret a priori :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°676222
Tomate
Posté le 11-05-2005 à 14:29:02  profilanswer
 

black_lord a écrit :

pas possible sans utiliser une solution de goret a priori :o


oue donc soit on modifie la table actuelle et on modifie le script pour qu'il unabn/suppr/toussa à chaque fois qu'il tourne, ou alors rajouter une table, ou même créer un 2ème script
 
à définir


---------------
:: Light is Right ::
n°676299
Profil sup​primé
Posté le 11-05-2005 à 17:54:43  answer
 


 
je connais, j'ai testé avant ...
 
et le truc interessant, de ce mod s'etait de pouvoir lancé une commande system, or moi ca marchait pas...

n°679409
l0ky
Posté le 17-05-2005 à 23:39:16  profilanswer
 

Ya un thread sur la mailing list de netfilter qui ressemble. Il commence là  
https://lists.netfilter.org/piperma [...] 60299.html
C'est un pote à toi tomate [:opus dei]
https://lists.netfilter.org/piperma [...] 60304.html

n°679466
Tomate
Posté le 18-05-2005 à 09:24:37  profilanswer
 

nope [:dawa]


---------------
:: Light is Right ::
n°681806
ory
Posté le 23-05-2005 à 14:43:32  profilanswer
 

Il y a plus simple : changer le port ssh, ou utiliser le module recent de Netfilter, comme dans le lien cité par l0ky :
 
 
 
http://blog.andrew.net.au/2005/02/ [...] sh_attacks
 

Citation :

Mitigating against SSH brute force attacks using Netfilter and the recent module
 
As I mentioned previously, I recently discovered the wonders of Netfilter's recent module, and have decided to try and employ it to ward off the evil script kiddies and their brute force SSH scripts.
 
As I like to be able to SSH to my server from where ever I happen to be, and I won't necessarily have the infrastructure to use public key based authentication, I thought I'd see how a bit of selective packet filtering would go.
 
I'm using:
 
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefix "SSH_brute_force "
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
 
This will allow three port 22 connections from any given IP address within a 60 second period, and require 60 seconds of no subsequent connection attempts before it will resume allowing connections again. The --rttl option also takes into account the TTL of the datagram when matching packets, so as to endeavour to mitigate against spoofed source addresses.
 
As an additional nicety, I could refine this to use a custom chain and a whitelist that exited the chain for source IPs that were trusted.
 
I'm going to run this ruleset on my server for a while and see if I
 
   1. don't lock myself out
   2. make a dent in SSH brute force attacks  
 
Update
 
After much discussion with Juergen Kreileder, this ruleset would appear to be slightly better:
 
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
 
This has the (arguably) added benefit of not hosing any established SSH connections from the host that has made too many SSH connections in a short period of time, and allows for whitelisting.
 
Update
 
I've had a few people email me and ask about the whitelisting part, which I didn't do a terribly good job of explaining. I should have said that you need to create a custom chain first:
 
iptables -N SSH_WHITELIST
 
and then add whitelisted hosts to it in a manner like this:
 
iptables -A SSH_WHITELIST -s $TRUSTED_HOST -m recent --remove --name SSH -j ACCEPT
 
this clears the whitelisted host out of the recently seen table, and because is has an ACCEPT jump target, should stop further processing anyway.

n°681814
Tomate
Posté le 23-05-2005 à 14:54:46  profilanswer
 

:love:


---------------
:: Light is Right ::
n°681818
Tomate
Posté le 23-05-2005 à 14:56:49  profilanswer
 

en fait un -j DROP fera l'affaire :D


---------------
:: Light is Right ::
n°682011
Profil sup​primé
Posté le 23-05-2005 à 19:34:46  answer
 

ory a écrit :

Il y a plus simple : changer le port ssh, ou utiliser le module recent de Netfilter, comme dans le lien cité par l0ky :
 
 
 
http://blog.andrew.net.au/2005/02/ [...] sh_attacks
 

Citation :

Mitigating against SSH brute force attacks using Netfilter and the recent module
 
As I mentioned previously, I recently discovered the wonders of Netfilter's recent module, and have decided to try and employ it to ward off the evil script kiddies and their brute force SSH scripts.
 
As I like to be able to SSH to my server from where ever I happen to be, and I won't necessarily have the infrastructure to use public key based authentication, I thought I'd see how a bit of selective packet filtering would go.
 
I'm using:
 
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefix "SSH_brute_force "
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
 
This will allow three port 22 connections from any given IP address within a 60 second period, and require 60 seconds of no subsequent connection attempts before it will resume allowing connections again. The --rttl option also takes into account the TTL of the datagram when matching packets, so as to endeavour to mitigate against spoofed source addresses.
 
As an additional nicety, I could refine this to use a custom chain and a whitelist that exited the chain for source IPs that were trusted.
 
I'm going to run this ruleset on my server for a while and see if I
 
   1. don't lock myself out
   2. make a dent in SSH brute force attacks  
 
Update
 
After much discussion with Juergen Kreileder, this ruleset would appear to be slightly better:
 
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
 
This has the (arguably) added benefit of not hosing any established SSH connections from the host that has made too many SSH connections in a short period of time, and allows for whitelisting.
 
Update
 
I've had a few people email me and ask about the whitelisting part, which I didn't do a terribly good job of explaining. I should have said that you need to create a custom chain first:
 
iptables -N SSH_WHITELIST
 
and then add whitelisted hosts to it in a manner like this:
 
iptables -A SSH_WHITELIST -s $TRUSTED_HOST -m recent --remove --name SSH -j ACCEPT
 
this clears the whitelisted host out of the recently seen table, and because is has an ACCEPT jump target, should stop further processing anyway.



 
 
On peut changé le port en 80 pour limiter les requetes sur un serveur WEB par exemple ?

n°688321
M300A
Posté le 05-06-2005 à 13:43:56  profilanswer
 

Y'aurait il une méthode permettant de faire du brute force, pour vérifier que ca fonnctionne :??:
 
 
Ce truc m'interresse très fortement ! ;)

n°699430
DeraZ
Posté le 28-06-2005 à 15:18:47  profilanswer
 

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /var/www/ban_ip/cnxdb.php on line 8
 
arff  
ma base mysql 4.1 necessite php5 que je narrive pas a trouver en packet  pour ma debian...
Si quelqun a reussi :)

n°699432
Tomate
Posté le 28-06-2005 à 15:19:57  profilanswer
 

utilises mysql 4.0.x :D


---------------
:: Light is Right ::
n°699433
multani
Dépressionnisé
Posté le 28-06-2005 à 15:21:40  profilanswer
 

DeraZ a écrit :

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /var/www/ban_ip/cnxdb.php on line 8
 
arff  
ma base mysql 4.1 necessite php5 que je narrive pas a trouver en packet  pour ma debian...
Si quelqun a reussi :)


dotdeb.org ;)

n°699488
DeraZ
Posté le 28-06-2005 à 17:10:39  profilanswer
 

La base est helas en prod :p

n°699513
DeraZ
Posté le 28-06-2005 à 17:25:54  profilanswer
 

# PHP5 for sid
deb http://people.debian.org/~dexter php5 sid
deb-src http://people.debian.org/~dexter php5 sid
 
# PHP5 for woody
deb http://www.backports.org/debian stable ucf
deb http://people.debian.org/~dexter php5 woody
deb-src http://people.debian.org/~dexter php5 woody
 
 
A priori ca semble marcher  
on verra ce soir :)

n°699524
DeraZ
Posté le 28-06-2005 à 17:35:14  profilanswer
 

Je vais peut etre poser une question qui a deja ete repondu :
 
Apres etude de tes .php je ne trouve pas lendroit ou tu parcours le log  
 de ssh a la recherche des connexions refuse pour remplir la tabe des ban.
 
Si tu peut me donner ces petites infos je suis preneur
 
merci davance

n°699529
DeraZ
Posté le 28-06-2005 à 17:38:41  profilanswer
 

Arf pardon, le php est seulement le frontal a la base
le pl est loutil de remplissage de la base

n°699828
DeraZ
Posté le 29-06-2005 à 12:25:09  profilanswer
 

Des petites remarques concernant le script perl (que jutilise) :
 
Pour les hash en perl mieux vaut latteindre en $Hash{key} plutot
que %Hash->{key} qui declenche un warning au niveau du compilo perl.
 
Pour la connexion a une base presente sur une autre machine du reseau  
il faut :
Modifier ds la table user de mysql la valeur host de lutilisateur ban_ip de localhost en %
Modifier legerement letape de connexion du script perl :
 
La ligne my $DB_DSN = "DBI:mysql:database=$DB_NAME";
en my $DB_DSN = "DBI:mysql:$DB_NAME:$DB_HOST";
 
Cette ligne dailleur fonctionne nikel meme en local host
 
 
voila voila
si ca deja etait resolu je men escuse
 
et je salue une fois de plus tomate :)

n°699830
Tomate
Posté le 29-06-2005 à 12:28:34  profilanswer
 

merci :)


---------------
:: Light is Right ::
n°699832
DeraZ
Posté le 29-06-2005 à 12:30:34  profilanswer
 

Je me met sur le frontal php  
SI g des petites sugestions je vous les fait suivre :)

n°699835
Tomate
Posté le 29-06-2005 à 12:35:36  profilanswer
 

mais de toute façon il serait préférable d'utiliser les fonctionnalités de SSH ou PF pour faire ça, car bien mieux géré ;)


---------------
:: Light is Right ::
n°699853
DeraZ
Posté le 29-06-2005 à 12:54:41  profilanswer
 

c dommage, je conptais rajouter dans ton parse du fichier de log
la ban au bout de X fois le mauvais mot de passe
pour eviter le brutforce

n°699860
Tomate
Posté le 29-06-2005 à 13:08:06  profilanswer
 

tu peux le faire ;)


---------------
:: Light is Right ::
n°699964
DeraZ
Posté le 29-06-2005 à 16:40:50  profilanswer
 

le seul probleme que g pour le moment est le suivant :
dans mes iptables g une regle :  
iptables -A INPUT -p tcp --dport ssh -i eth0 -j ACCEPT
pour autoriser le ssh depuis lexterieur
La relge par defaut pointe sur DROP
Lajout de la regle drop en -A pour lip banner na du coup plus dincidence car passant apres ma regle iptables -A INPUT -p tcp --dport ssh -i eth0 -j ACCEPT
Comment puisje regler le probleme?
 
Merci davance

n°700022
DeraZ
Posté le 29-06-2005 à 19:32:32  profilanswer
 

pour info c la regle -I 1 qui place en tete de la chaine

n°700091
Tomate
Posté le 29-06-2005 à 21:13:32  profilanswer
 

donc faut rajouter les nouvelles règles en tête


---------------
:: Light is Right ::
n°700225
DeraZ
Posté le 30-06-2005 à 10:26:44  profilanswer
 

vi :)
Jai modifie ton parselog
 if (($line =~ m/illegal\suser/) or ($line =~ m/Authentication\sfailure/)) {
Pour quil match sur les cas derreur de mot de passe et les cas derreur tutilisateur.
Mais g du rejouter un next if ($ip eq "ssh2" );
pour ne pas bannir ssh2 lol
 
Par contre je suis en train de voir les fonction de suppression dip banner depuis linterface php, c un peu le bordel car ca supprime de la base de donnee mais du cote iptable rien n'ai fait.

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

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   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