OVH Cloud OVH Cloud

[netfilter] limiter les attaques SSH par dictionnaire

35 réponses
Avatar
Sébastien Kirche
Bonsoir,

sur la pauvre passerelle de mon pauvre petit domaine, je retrouve dans
les logs plusieurs centaines de fois par jour les traces de scripts
kiddies qui tentent d'accéder à mon système en utilisant un dictionnaire
de logins SSH.

Niveau sécurité c'est sans importance puisque que j'ai supprimé la
possibilité d'accès SSH par mot de passe en ne conservant que
l'utilisation de clé privée.

Seulement sshd trace quand même chaque tentative dans /var/log/auth.log.

Pour le seul problème de log j'aurais pu diminuer le LogLevel mais vu
que ma passerelle est motorisée par une SparcStation20 bi-75MHz (ouaouh
la puissance !) je souhaite également limiter le gaspillage de cpu
qu'occasionne chaque tentative de login surtout quand c'est en rafale.

J'ai trouvé DenyHosts qui trace la fréquence des logins SSH et en cas
d'abus ajoute l'émetteur dans /etc/hosts.deny, seulement je n'aime pas
trop l'idée d'une modification automatique d'un fichier système.

J'ai pensé que Netfilter devait pouvoir suffire et j'ai rajouté les
règles suivantes à ma config existante (extrait d'iptables-save) :

-A tcp_packets -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource

-A tcp_packets -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 2 --name DEFAULT --rsource -j REJECT --reject-with icmp-port-unreachable

Pour beaucoup de mes règles netfilter, quand je refuse un paquet en fait
j'utilise la target DROP mais dans le cas présent j'ai utilisé REJECT
qui permet de ne pas devoir attendre un timeout pour la négociation SSH...

Que pensez-vous de tout ça ?
--
Sébastien Kirche

5 réponses

1 2 3 4
Avatar
Sébastien Kirche
Le 8 March 2006 à 23:53, aze vraute :

Je ne comprends pas ton raisonnement, pour moi j'ai l'impression que
tu fait plutôt du social (pour ainsi dire) alors qu'il essaye de se
proteger.


Un peu tard, je rebondis sur cette remarque... Je m'estime protégé au
niveau de SSH par mon choix d'interdire les logins par mot de passe au
profit de l'utilisation des clés.

Simplement le fonctionnement de SSH fait qu'une attaque par dictionnaire
même sans effet au niveau sécurité engendre 2 effets :
1) une augmentation massive des logs. Inconvénient mineur grâce à
logrotate
2) une consommation inutile du cpu sur ce système, ce qui m'embête déjà
plus. Certes la charge est très faible mais je rajoute des services
au fur et à mesure et par principe je n'aime pas gaspiller les
ressources.

Ceci dit je m'efforce autant que possible de respecter les normes et je
trouve la remarque de Tichou concernant le rejet à préférer au drop tout
à fait recevable. Dans le même genre, je réponds aux echos ICMP même si
ça peut permettre une analyse de mon système...

--
Sébastien Kirche

Avatar
Sébastien Kirche
Le 10 March 2006 à 00:23, Sébastien Monbrun aka TiChou a formulé :

Pour une meilleure gestion des logs, as-tu déjà songé à utiliser
syslog-ng au lieu du traditionnel sysklogd ?


Absolument pas. Faut dire qu'en mauvais sysadmin je ne gère pas
tellement les logs ;)

Je me contente souvent d'y chercher des infos sur des problèmes
matériels. le seul que je «monitore» un peu est mail.info et de temps en
temps auth.log. Pour le reste... Faut dire que je suis mon seul client
en dehors de la messagerie de Madame.

À une époque j'ai utilisé logcheck sur mon poste perso mais je ne l'ai
pas installé sur le serveur.

Que t'apporte un baril de syslog-ng que tu n'échangerais pas contre deux
de sysklogd ?
--
Sébastien Kirche

Avatar
Sébastien Kirche
Le 10 March 2006 à 01:17, Sébastien Monbrun aka TiChou a formulé :

Que t'apporte un baril de syslog-ng que tu n'échangerais pas contre
deux de sysklogd ?


Que je n'échangerai même pas contre ma mère, pour dire. :-P


J'espère qu'elle ne lit pas les news, elle pourrait être peinée... ;)

Plus sérieusement, tout ce qu'on a toujours souhaité d'un gestionnaire
de log.
[snip la description]


Pas mal à première vue, en effet. Trop tard pour que je me plonge dans
la doc à cette heure, mais je vais regarder ça de plus près demain.

Et voilà, tu m'as *encore* appris un truc de plus ;)
--
Sébastien Kirche


Avatar
aze
Le Thu, 09 Mar 2006 16:00:04 +0000, Sebastien Monbrun aka TiChou a
écrit :

[...]
La discussion se portant essentiellement sur une politique de sécurité, je
vous invite à poursuivre la discussion sur le groupe fr.comp.securite vers
lequel je place un fu2.

xpost+fu fc.securite


J'ai répondu là-bas, mais je trouve cela un peu dommage car cette petite
digression concerne de fait un paramétrage de Linux.
Mais soit...

Avatar
Pascal Hambourg
Euh, je vois mal comment on peut espérer établir une connexion TCP et à
plus forte raison SSH avec une adresse source invalide, forgée ou
privée, c'est-à-dire en aveugle... :-


http://www.gulker.com/ra/hack/tsattack.html


Il me semblait que la prédiction des numéros de séquence TCP était
impossible avec Linux.


1 2 3 4