Accès refusé ...

Publié le 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.

Publié dans admin

Commenter cet article

Gabriel 19/09/2007 22:57

Il suffit d'installer fail2ban : au bout de l'expiration de 6 sessions (soldées par un échec), l'IP source sera bloquée pour 2 ou 3 heures (par défaut). Naturellemen,t ça ne protège pas contre une attaque distribuée mais c'est déjà ça.

Peck 20/09/2007 15:37

C'est vrai, mais dans ce cas, il faut ajouter une règle à fail2ban qui par défaut ne prend pas en compte les timeout.Une règle de la forme : Did not receive identification string from

Schmurtz 18/09/2007 08:33

Il faudrait pouvoir limiter le nombre de connexions non encore authentifiées par IP source.

Peck 18/09/2007 09:25

Je n'ai pas trouvé ce genre de fonctionnalité dans ssh.Par contre on peut faire ce genre de chose avec iptables.