Accès refusé ...

Publié le 17 septembre 2007 par Peck
La suite en direct sur http://linux-attitude.fr/post/Acces-refuse

Niveau :
Résumé : MaxStartups

Comment bloquer l'accès d'une personne à son serveur en une ligne ?

$ for i in $(seq 1 10) ; do nc ssh.youpi.net 22 & done

Pourquoi ? Parce qu'il existe une directive dans ssh pour protéger le serveur contre les attaques. Il s'agit de MaxStartups qui indique le maximum de connexions non authentifiées autorisées, par défaut il vaut 10. Au delà, il faudra attendre que l'une de ces connexions tcp se termine, ce qui peut prendre beaucoup de temps. Un petit malin peut donc vous bloquer indéfiniment l'accès à votre serveur.

Attention, augmenter cette valeur ne vous protège pas pour autant car le malin peut faire de même avec ses clients. Un moindre mal est d'utiliser la forme 1:2:3

Exemple :
# À partir de 10 connexions le client à 20% de chances de s'en voir refuser une nouvelle
# Cette probabilité augmente linéairement jusqu'a 30 connexions
# À partir de 30 connexions il ne pourra plus se connecter
MaxStartups 10:20:30

Cela vous donne une petite chance devant un ennemi impatient, mais c'est bien peu.

Une autre chance vous est donnée par l'option LoginGraceTime
# apres 10s sans tentative de login, la connexion est coupée (la valeur par défaut est 120)
LoginGraceTime 10


Vous pouvez aussi passer MaxStartups à une valeur extrêmement grande, mais cela ne vous protégerait plus des syn flood. Est-ce mieux ? À vous de voir où vous placez vos limites.