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

10 réponses

1 2 3 4
Avatar
aze
Je m'incruste un peu, désolé, parceque ce sujet m'interesse.

Le Wed, 08 Mar 2006 15:41:11 +0100, Sébastien Monbrun aka TiChou a écrit :

Dans le message <news:dumpj2$li0$,
*Nicolas George* tapota sur f.c.o.l.configuration :

Ce n'est pas clair. Si mes souvenirs sont bons, TCP RST est à comprendre
comme « port fermé ». ICMP port unreachable est une réponse tout à fait
valide pour indiquer explicitement que le port est interdit par un
firewall. D'ailleurs, nmap affiche des résultats différents : filtered ou
closed.


Oui, tu as raison. La question est alors de savoir si le firewall doit
présenter un port comme fermé ou comme interdit.


Je pense qu'il est plus prudent d'avoir "fermé", parceque tant que tu as
des couillons en script ce n'est de toutes façons pas génant mais si tu
as un vrai crackeur tu vas le sentir passé avec ton "interdit"... Ou
alors tu t'en sers comme moyen de diversion mais...

Tu as déjà vu un vrai à l'oeuvre ?
Moi j'ai vu le résultat de l'équipe de surveillance d'un endroit réputé
avec un backtraceur: 1 satellite de com, 2 backbone et 1 isp, "au
moins", le tout en 30minutes montre en main... on est plus avec du kiddies
là...

Moi je préferre "fermé"... ;)
... Et puis la meilleure sécurité c'est sans le cable, n'est-ce pas ? :)


Avatar
aze
Le Wed, 08 Mar 2006 10:20:07 +0100, Emmanuel Florac a écrit :

Le Tue, 07 Mar 2006 23:25:52 +0100, Sébastien Kirche a écrit :


...que DenyHosts, ou que la solution netfilter avec ipt_recent + rejet des
paquets ?


il interdit avec iptables les IP qui ont 3 tentatives de connexion
échouée. J'en ai 2 ou 3 par jour, en moyenne, et je supprime les
enregistrements de plus d'un mois :)


Dis-donc, dis-donc, est-ce que ton script pourrait être étendu avec les
403/404 d'apache ?

Cela te gênerait-il de le partager ?
(Par courriel je veux dire)


Avatar
aze
Le Wed, 08 Mar 2006 15:50:33 +0100, Sébastien Monbrun aka TiChou a
écrit :
[...]

Ouf TiChou quand tu vas sur un site, tu rigoles pas hein ! :)
21:06:22->21:07:08 t'as rien vu ? Si ? ;p

(Au fait tu reste avec la 1.0.7 ? La 1.5.0.1 est pas mal)

Alors cela donne quoi ?
Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:,
*aze* tapota sur f.c.o.l.configuration :

Ouf TiChou quand tu vas sur un site, tu rigoles pas hein ! :)
21:06:22->21:07:08 t'as rien vu ? Si ? ;p


Suffisamment. :-) Je surfe vite. ;-)

(Au fait tu reste avec la 1.0.7 ? La 1.5.0.1 est pas mal)


Oui, je reste à la 1.0.7 tant que toutes les extensions que j'utilise au
quotidien (et elles sont nombreuses), ne seront pas compatibles avec la
version 1.5.x.

--
Sébastien Monbrun aka TiChou

Avatar
aze
Le Wed, 08 Mar 2006 21:26:13 +0100, Sébastien Monbrun aka TiChou a
écrit :

Dans le message <news:,
*aze* tapota sur f.c.o.l.configuration :

Ouf TiChou quand tu vas sur un site, tu rigoles pas hein ! :)
21:06:22->21:07:08 t'as rien vu ? Si ? ;p


Suffisamment. :-) Je surfe vite. ;-)


Alors, pas d'anomalie ? J'ai même vu le serveur de nom donc t'as dû tout
vérifier. Si il y a un "truc" qui ne va pas te gênes pas pour me le dire.


(Au fait tu reste avec la 1.0.7 ? La 1.5.0.1 est pas mal)


Oui, je reste à la 1.0.7 tant que toutes les extensions que j'utilise au
quotidien (et elles sont nombreuses), ne seront pas compatibles avec la
version 1.5.x.


Oui, c'est le problème, et il ne va pas se résoudre de si tôt je pense,
j'ai eu le même dilemne.


Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:,
*aze* tapota sur f.c.o.l.configuration :

Alors, pas d'anomalie ? J'ai même vu le serveur de nom donc t'as dû tout
vérifier. Si il y a un "truc" qui ne va pas te gênes pas pour me le dire.


J'ai parcouru vite fait 2 ou 3 pages du site, juste par curiosité, intrigué
par le nom de domaine dans le champ Organization:.

--
Sébastien Monbrun aka TiChou

Avatar
Emmanuel Florac
Le Wed, 08 Mar 2006 14:54:04 +0100, Sébastien Monbrun aka TiChou a
écrit :


- Ne devraient être bloqués/ignorés (DROP) que les paquets dont
l'état est INVALID, dont l'adresse est usurpée ou dont le type est
suspicieux.


Dans le cas en question, ça s'applique parfaitement aux tentatives de
connexions SSH automatisées, qui arrivent le plus souvent avec des
adresses invalides ou forgées (j'ai même eu des tentatives avec des
adresses en 10.x.x.x !!!!) Le DROP s'impose donc, un REJECT c'est faire
bien trop d'honneur aux script kiddies.


--
Il y a toujours un bug de plus.
Loi de Lubarsky.

Avatar
Pascal Hambourg
Salut,

Le Wed, 08 Mar 2006 14:54:04 +0100, Sébastien Monbrun aka TiChou a

- Ne devraient être bloqués/ignorés (DROP) que les paquets dont
l'état est INVALID, dont l'adresse est usurpée ou dont le type est
suspicieux.



[Sébastien, est-ce que tu me permets de réutiliser cette excellente
tirade pour l'édification des écervelés adeptes du DROP ?]

Dans le cas en question, ça s'applique parfaitement aux tentatives de
connexions SSH automatisées, qui arrivent le plus souvent avec des
adresses invalides ou forgées (j'ai même eu des tentatives avec des
adresses en 10.x.x.x !!!!)


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


Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:dunh7j$vdk$,
*Pascal Hambourg* tapota sur f.c.o.l.configuration :

Salut Pascal,

- Ne devraient être bloqués/ignorés (DROP) que les paquets dont
l'état est INVALID, dont l'adresse est usurpée ou dont le type est
suspicieux.



[Sébastien, est-ce que tu me permets de réutiliser cette excellente tirade
pour l'édification des écervelés adeptes du DROP ?]


Tu me fais trop d'honneur là. ;-) Mais je t'en prie, réutilise autant que tu
le souhaites. :-)

--
Sébastien Monbrun aka TiChou



Avatar
aze
Le Wed, 08 Mar 2006 21:43:28 +0100, Sébastien Monbrun aka TiChou a
écrit :

J'ai parcouru vite fait 2 ou 3 pages du site, juste par curiosité, intrigué
par le nom de domaine dans le champ Organization:.


Ha, oui, c'est de l'automatique, il me suffirait de mettre un serveur de
plus en place mais... Bof.

(Je viens de faire un essai sur ce champ pour voir si avec trois foi rien...)

Pour en revenir à netfilter.
Il y a donc une manière avec iptables pour se débarasser des
récidivistes...
Mais peut-on faire la même avec du ponctuel sur plusieurs port ? Un peu
comme le stealth de nmap (je crois, de mémoire).
Comme cela Sébastien se débarasse aussi des attaques générique de tests.
Si tu dis "oui" tu m'interesses ! :)

1 2 3 4