Se connecter / S'enregistrer
Votre question

Sécuriser un peu plus SSH et pourrir la vie des brutes force !

Tags :
  • Ssh
  • Système d'exploitation
Dernière réponse : dans Systèmes d'exploitation
1 Mars 2007 23:11:49

Bonjour,

Vous connaissez peut-être SSH ?
http://www.commentcamarche.net/crypto/ssh.php3
http://fr.wikipedia.org/wiki/Secure_shell

Bon et bien, le problème avec "ssh" c'est qu'il est susceptible d'être attaqué par "brute force"...
http://fr.wikipedia.org/wiki/Attaque_par_force_brute

La logique veut que cela arrive fréquemment, et que cela est réalisé par des automates. Il passe en revu toutes les combinaisons... Bref ils sont rapides.

Des solutions existent :
Changement de port 22 à celui qu'on désire (peu efficace devant un scanner)
Port Knocking :
http://fr.wikipedia.org/wiki/Port_knocking
Efficace mais lourd, car il faut avoir le client de knocking adéquat !
Analyse temps réel des log, et action sur le firewall rejetant les IP faisant brute de force.

Une solution peu envisagé est de ralentir le login !? :heink: 
OpenSSH est open source (http://www.openssh.org/fr/index.html), donc nous allons programmer le SSHD pourqu'il attende avant de demander le mot de passe !

On télécharge les sources de openssh : ftp://ftp.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/o...

On le dé compacte et entre dans le répertoire....
On édite le fichier "auth-passwd.c" (Ecrit en C)
On cherche "auth_password(Authctxt *authctxt, const char *password)"

La partie qui nous interresse est :
/*
* Tries to authenticate the user using password. Returns true if
* authentication succeeds.
*/
int
auth_password(Authctxt *authctxt, const char *password)
{
struct passwd * pw = authctxt->pw;
int result, ok = authctxt->valid;
#if defined(USE_SHADOW) && defined(HAS_SHADOW_EXPIRE)
static int expire_checked = 0;
#endif


Aprés le dernier "#endif" on ajoute :
/* Password authentication delay */
sleep(10);


On le compile :
$ ./configure --prefix=/usr --sysconfdir=/etc/ssh
$ make
$ su
.....
# make install


On relance le serveur SSH : /etc/init.d/sshd restart

On test :
ssh -l user 82.xx.yy.zz[ENTER]
...... là on attend.... (les robots ne vont pas aimer)
password : xxxxxxxx
...... là on attend de nouveau....(les robots ne vont vraiment pas aimer)
$


Astuce trouvée sur : http://www.aerospacesoftware.com/ssh-kiddies.html
L'adresse a changé : http://www.aerospacesoftware.com/howtos/ssh-kiddies.htm...

Autres pages sur : securiser ssh pourrir vie brutes force

7 Juillet 2007 00:06:34

Personne ne sécurise son SSH ?
17 Mai 2008 21:59:24

Je fait remonter, c'est bien interessant, même si Fail2ban+Denyhosts+PermitRootlogin no suffit, ça peut toujours servir.

Puis bon, me connectant plus de 10 fois par jour sur un serveur SSH, je me vois pas attendre tout ce temps à chaque fois.
18 Mai 2008 00:27:21

C'est vrai que c'est un peu chiant ! :) 
Mais je n'ai plus aucun : auth failed from..... (Sauf quand c'est moi ;)  )
18 Mai 2008 01:32:00

Drapal.
18 Mai 2008 02:28:01

Quoi ?
J'ai bookmarqué le lien, mais on ne sait jamais, il peut y avoir des développement intéressants.
L'année prochaine.
20 Mai 2008 20:22:06

Intéressant.....
Perso je suis plus sur : changement du port + PermitRootlogin no + IPtables pour la limitation du nombre de tentatives.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS