[netfilter] limiter les attaques SSH par dictionnaire
35 réponses
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...
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 ? :)
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$2@biggoron.nerim.net>,
*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 ? :)
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 ? :)
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)
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)
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)
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 ?
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)
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 ?
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
Dans le message <news:pan.2006.03.08.20.15.03.540172@aze.aze>,
*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.
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
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.
Le Wed, 08 Mar 2006 21:26:13 +0100, Sébastien Monbrun aka TiChou a
écrit :
Dans le message <news:pan.2006.03.08.20.15.03.540172@aze.aze>,
*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.
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.
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
Dans le message <news:pan.2006.03.08.20.34.28.741608@aze.aze>,
*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:.
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
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.
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.
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.
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... :-
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... :-
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... :-
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
Dans le message <news:dunh7j$vdk$1@biggoron.nerim.net>,
*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. :-)
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
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 ! :)
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 ! :)
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 ! :)