Accès ssh local/distant bloqué tout les 3/4 jours ... ?

Saluts,

Avec ce titre tous les premiers de la classe auront compris de quoi il en retourne, pour les autres et moi même, je développe ce qui suit.

Le souci :

Accès ssh (local > distant) interrompue tout les 3/4 jours.

Les raisons :

Mon ip local (dynamique/statique, je sais même pas) est bloqué par denyhosts et portsentry et le hosts distant.

La seule solution trouvé pour l’heure :

Rebooter le serveur distant en mode rescue-pro, d’ou un accès ssh fournit par ovh, et de là nettoyage.

Ce qui donne :

Viré mon ancienne ip (local) du serveur distant à savoir les services concernés: denyhosts, portsentry, hosts.allow hosts.deny etc … etc … :mrgreen:

Puis inclure la nouvelle ip (local) dans les “ignorés où plutôt les ip autorisés” sur ces mêmes services distants.

Ce que je sais :

En local, j’ai un nom de domaine qui pointe chez dyndns, ddclient installé.

Chez ovh :

_ deux noms de domaine (site non fonctionnel à cette heure)

_ un mutualisé et un dédié, mutualisé que je ne retiendrais pas, je crois.

C’est sur le dédié que je vais installé mon site pointant sur deux noms de domaine.

En résumé, je galère la dessus depuis plus d’un mois et demi, et je n’est toujours pas trouvé comment régler ce problème.

Au fil de mes recherches je me suis égaré, à cette heure je ne sais pas trop/plus sur quoi inter-réagir, hosts, resol.conf, ddclient, dyndns, etc … ??? et je ne sais quoi encore.

Bref, je ne sais plus à quoi j’en suis. Si tenté que j’ai pu approcher la solution à un moment où un autre dans la direction de mes recherches.

Voilà, avis aux premiers de la classe, et tous les autres, en dehors de moi … :blush:

Merci.

Salut,

Je te l’ai déjà dit “le mieux est l’ennemi du bien”: trop de sécurité (et mal configurée) va tuer ton serveur…
Un serveur pour un usage professionnel inaccessible tous les 2/3 jours, ça fait pas trop “pro”.

[quote]Mon ip local (dynamique/statique, je sais même pas)[/quote]Ce serait tout de même bien de le savoir…

Je ne comprend pas pourquoi tu es bloqué…
Tu scan ton serveur ? Tu rate tes authentification plusieurs fois de suite ?

A mon avis tes “protections” sont tout simplement mal configurées…

Mal configuré, je ne pense pas … :wink:

Le problème vient du fait que mon ip local change invariablement tous les trois quatre jours, de ce fait la nouvelle ip attribué n’étant pas déclaré dans les divers services cités, je m’en retrouve bloqué en ssh.

Pas de scan, pas d’erreur de mdp.

Mes connexions se font par clés d’authentification pour mon user.

Hé bé si!
Si l’administrateur ne peux plus accéder à sa machine, c’est que la configuration est merdique!

Pourquoi laisser seulement une IP accéder au SSH:

Si tu changes d’IP tous les jours;
Si tu n’accèdes au SSH qu’avec des clefs;
Si tu as fail2ban;
Si root n’a pas le droit de se connecter au SSH;
Si tu n’es pas sur le port 22;
Si tu empêche le scan de ports;
J’en oublie surement beaucoup…

Ça fait pas un peu beaucoup tout ça ?
Un tel niveau de parano est parfaitement inutile.
J’ai trois fois moins de protections, et je dors tranquille…

Après ne viens pas t’étonner que tu n’arrive pas à accéder à ton serveur… :005

lol, toi tu ne peut rencontré ce problème dans la mesure ou tu as une ip local fixe ! (de mémoire … lu sur je ne sais plus quel fil ! )

Il t’est donc facile de déclaré ton ip (fixe) au services tels que denyhosts, portsentry, fail2ban … etc … etc …

Je ne suis pas dans cette situation !

Mon pc maison n’a pas d’ip fixe, (et je n’en veux pas !) cette ip est renouvelé par mon FAI (orange) à raison de tout les trois où quatre jours (voir moins, voir plus).

L’ip d’ovh est fixe.

Hier jusqu’au environ de 12h30, mon ip local était 2.5.46.117


Durant les quatre jours précédent je n’avais aucun souci de connexion ssh !!!

Hier vers 12h31 mon ip local à était renouvelé par mon FAI, 2.5.XXX.XXX et là ssh >> Hors Service !

Cette nouvelle ip 2.5.XXX.XXX qui au basculement (renouvellement FAI) se retrouve bannit par denyhosts et portsentry etc … tout à fait normal … non ?

Dans l’état actuel des choses, ma connexion ssh peut s’établir lorsque j’ai fait le nécessaire sur mon dédié ovh.

A savoir déclaré ma nouvelle ip renouvelé par mon FAI : 2.5.XXX.XXX

Pour rétablir la situation (connexion ssh) il me faut sur le dédié (ovh) rebooter en mode rescue-pro, puis :

  • Viré l’ancienne ip (local) 2.5.46.117 de denyhosts, portsentry, etc … etc …

  • Inclure la nouvelle ip local (renouvelé par mon FAI) 2.5.xxx.xxx dans les fichiers suivants :

/etc/hosts.allow
/etc/hosts
/etc/portsentry/portsentry.ignore

etc … etc …

Si l’administrateur ne peux plus accéder à sa machine, c’est : ip local renouvelé par mon FAI

Pourquoi laisser seulement une IP accéder au SSH: je n’ai pas besoin d’un autre point d’accès, connexions ssh uniquement : maison > dédié

Si tu changes d’IP tous les jours; ip local renouvelé par mon FAI

Si tu n’accèdes au SSH qu’avec des clefs; Oui ! uniquement.

Si tu as fail2ban; ou est le problème ?

Si root n’a pas le droit de se connecter au SSH; Uniquement par clés d’authentification seulement pour des sauvegardes (rsync) ponctuels (distante/local) sitôt fait, ces clés sont supprimés sur le dédié !!!

Si tu n’es pas sur le port 22; Que importe le port attribué … non ?

Si tu empêche le scan de ports; un Max Oui !

J’en oublie surement beaucoup… Oui !

Ça fait pas un peu beaucoup tout ça ?:shhh:

Un tel niveau de parano est parfaitement inutile. Ô grand dame non !!!

Site pro en construction, offre de services aux entreprises, parano est encore trop faible …

J’ai trois fois moins de protections, et je dors tranquille… Plus je serai parano, mieux je dormirai !!!

Après ne viens pas t’étonner que tu n’arrive pas à accéder à ton serveur… : ip local renouvelé par mon FAI

ip local renouvelé par mon FAI : 2.5.XXX.XXX >>> SSH Hors Service !

Ceci est tout à fait normal, dans la mesure ou ces services ne sont pas automatiquement informés du changement de mon ip local 2.5.XXX.XXX !

Informé mon dédié (ovh) automatiquement du changement de mon IP local … C’est ça le problème !!!

Vu que ton IP est dynamique, tu ne peux pas te permettre de la filtrer dans denyhosts etc, point final.

Tu voudrais faire quoi ? Mettre à jour automatiquement l’IP autorisée à partir de ton nom de domaine dynamique ? Tu ne ferais que déplacer le problème, et vers un service mal sécurisé qui plus est (puisque ton compte DynDNS ou équivalent n’est protégé que par un bête mot de passe).

Tout ça pour quoi ? Pour qu’un éventuel attaquant ne puisse pas se connecter à ton SSH qui n’accepte de toutes façons que des clés asymétriques ? Sois sérieux deux minutes… :wink:

Si tu veux te la jouer parano, augmente la taille de tes clés ! En pratique, 16kbit est le maximum que j’aie eu la patience de générer, mais quand on sait que 2kbit est considéré comme sûr et que la complexité augmente exponentiellement avec la taille, ça devrait aller non ?
Comme le dit lol, tu rajoutes un fail2ban là-dessus et un éventuel attaquant aurait 3 (tu peux même être généreux et augmenter à 10 si ça t’amuse) essais pour deviner une clé de 16kbit. C’est plus que largement assez sécurisé.
Et si ça te paraît pas encore assez parano, au lieu de faire un blocage par IP, installe un système de port-knocking.

Tout ça pour dire (je me répète) que tu prends le problème par le mauvais bout : ton IP change régulièrement, donc tu ne peux pas baser ta sécurité là-dessus, point barre.

[quote=“loreleil”]Il t’est donc facile de déclaré
ton ip (fixe) au services tels que denyhosts, portsentry, fail2ban … etc … etc …[/quote]

NON! Je change parfois de connexion (à la maison j’ai une IP qui change), et IL FAUT que je puisse me connecter.

Donc mon SSH est ouvert à toutes les IP, même les Russes; Qu’ils viennent!
Ça ne me pose pas de problèmes!

Ton port ssh n’est pas ouvert à une connexion par mot de passe, tu filtres les scans de ports, ton ssh n’est pas sur le port 22…
Et fail2ban, et j’en passe…

Que risques tu ? RIEN!

Et tu t’amuse à changer ton ip variable dans hosts.allow… ??? :005 :005 :005

Je jette l’éponge, tu es étanche! :075

PS: Merci Syam… :laughing:

@ syam

Vu que ton IP est dynamique, tu ne peux pas te permettre de la filtrer dans denyhosts etc, point final.

Tout ça pour dire (je me répète) que tu prends le problème par le mauvais bout : ton IP change régulièrement, donc tu ne peux pas baser ta sécurité là-dessus, point barre.

@ lol

Ton port ssh n’est pas ouvert à une connexion par mot de passe, tu filtres les scans de ports, ton ssh n’est pas sur le port 22…
Et fail2ban, et j’en passe…

Et tu t’amuse à changer ton ip variable dans hosts.allow… ???

Que dois je faire alors pour ne pas me retrouver à la rue lors du renouvellement de l’ip local ???

Comment ne pas être bannit (sur le dédié) par denyhosts, portsentry etc …

Comment informé automatiquement le dédié du changement de l’ip local ???

Quel est le bon bout du problème ???

[quote=“loreleil”]Que dois je faire alors pour ne pas me retrouver à la rue lors du renouvellement de l’ip local ???

Comment ne pas être bannit (sur le dédié) par denyhosts, portsentry etc …

Comment informé automatiquement le dédié du changement de l’ip local ???

Quel est le bon bout du problème ???[/quote]
Tu n’informes PAS le dédié du changement de l’IP locale, tout simplement parce que tu autorises TOUTES les IP sans distinction pour ton port SSH. C’est aussi simple que ça.
Le problème n’est pas « comment mettre à jour l’IP locale sur le dédié » mais « comment ne pas avoir besoin de mettre à jour l’IP locale sur le dédié ». Et ça y’a pas 36000 solutions, faut autoriser tout le monde à se connecter à ton SSH (ce qui ne pose AUCUN problème de sécurité si tu appliques les autres conseils donnés dans ce fil).

Quant à la config précise de denyhosts/portsentry pour faire ça, je ne sais pas je ne les ai jamais utilisés, mais toi tu dois savoir car je me doute que ton serveur web n’a pas de restriction d’IPs, lui.

Je “crois” comprendre un peu mieux … :smiley:

Vu sous cette angle … :wink:

L’embrouille ne se situe tel pas dans mes règles iptables actuels ???

Sur le dédié ovh :

[code]######################## Règles d’autorisations ##################################

SSH modifier par moi le 24/09/2011

iptables -A INPUT -p tcp --dport 666 -m limit --limit 5/hour -j ACCEPT
echo "- Autoriser 5 connexions/heure SSH entrant port 22 : [OK]"
iptables -A INPUT -p tcp --dport 32 -j ACCEPT
echo “- Autoriser SSH entrant : [OK]”
[/code]
Ceci ne serait il pas mieux ??? (N’ayant qu’une interface)

Autoriser (sur le dédié ovh) tout le trafic entrant sur le port 22 (port 22 pour exemple)

[code]root@kxxxxxx:~# ifconfig
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet adr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Masque:255.255.255.0
adr inet6: xxx::xxx:xxxx:xxxx:xx/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10682 errors:0 dropped:1 overruns:0 frame:0
TX packets:8445 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:1228327 (1.1 MiB) TX bytes:2243655 (2.1 MiB)
Interruption:23 Adresse de base:0x2400

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:449 errors:0 dropped:0 overruns:0 frame:0
TX packets:449 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:53701 (52.4 KiB) TX bytes:53701 (52.4 KiB)

root@kxxxxxx:~#
[/code]
Cinq doigts … :wink:

Ugh… la limite de 5 connexions/heure est une TRÈS mauvaise idée, même s’il n’y avait que toi qui pouvais accéder à SSH : tu fais comment si tu veux ouvrir plusieurs terminaux simultanément, plus quelques SSHFS, etc ?
Et bien évidemment, si n’importe qui peut accéder au port SSH l’idée est encore plus mauvaise : il suffit de 5 connexions par heure pour t’interdire complètement l’accès à SSH… Joli DoS. :smiley:

La solution est effectivement de laisser l’accès au port SSH totalement libre (aussi bien dans iptables que denyhosts/portsentry) et faire confiance à la double sécurité des clés asymétriques et du filtrage fail2ban.

Merci syam !!!

Clair, propre, tout bien quoi:wink: !

Concernant les clés, je “crois” avoir compris les principes fondamentaux que tu as rappelé un peu plus haut.

Pour ce qui est de la règle iptables autorisant tout les accès extérieur en ssh, celle ci (peut tu confirmé) te paraît elle approprié ?

[quote=“syam”]Ugh… la limite de 5 connexions/heure est une TRÈS mauvaise idée, même s’il n’y avait que toi qui pouvais accéder à SSH :

(…)[/quote]
Dois je comprendre (si j’ai perçu, un tant soit peu) que le nombre de connexions/heure étaient insuffisantes … est ce bien cela ?

denyhosts, portsentry et autre … je m’y attelle … :wink:

[quote=“loreleil”]Pour ce qui est de la règle iptables autorisant tout les accès extérieur en ssh, celle ci (peut tu confirmé) te paraît elle approprié ?

iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT

Ça semble correct, sauf que le --dport ssh pointe vers le port 22 (cf. grep ssh /etc/services). Utilise à la place le vrai numéro de port que tu as configuré.

[quote=“loreleil”][quote=“syam”]Ugh… la limite de 5 connexions/heure est une TRÈS mauvaise idée, même s’il n’y avait que toi qui pouvais accéder à SSH :

(…)[/quote]
Dois je comprendre (si j’ai perçu, un tant soit peu) que le nombre de connexions/heure étaient insuffisantes … est ce bien cela ?[/quote]
Bah ça dépend de la manière dont tu travailles… En ce qui me concerne, je sais que j’ouvre souvent plusieurs terminaux à la fois, plus des points de montage SSHFS. Et ça m’arrive souvent de refermer un terminal en pensant ne plus en avoir besoin, tout ça pour m’apercevoir quelques minutes plus tard que j’aurais mieux fait de le garder ouvert. :mrgreen: Et je ne parle même pas des différents tunnels SSH que je peux utiliser (MySQL, rsync, …).
J’ai jamais fait de stats là-dessus mais ça m’étonnerait pas que je monte à 10 voire parfois 20 connexions par heure à moi tout seul, sans forcer. Donc oui, 5 connexions par heure pour moi ça serait largement insuffisant. :wink:
Étant donné que de toutes façons ça ne protège pas grand chose, autant supprimer la limite complètement. D’autant que c’est X connexions toutes IP confondues ce qui fait que, comme je l’ai déjà expliqué, il suffit que des attaquants se connectent X fois de suite à ton port SSH pour que TU te retrouves bloqué pendant une heure… pas cool.
La sécurité c’est fait pour sécuriser, pas pour te tirer dans le pied… :mrgreen:

syam … :text-bravo: !

ssh = port 22, pour exemple. (ce qui n’est pas le cas pour /etc/ssh/sshd_config … :wink: ) mais bon … celui ci ou un autre, hein …

[quote=“syam”]

Bah ça dépend de la manière dont tu travailles… En ce qui me concerne, je sais que j’ouvre souvent plusieurs terminaux à la fois, plus des points de montage SSHFS. Et ça m’arrive souvent de refermer un terminal en pensant ne plus en avoir besoin, tout ça pour m’apercevoir quelques minutes plus tard que j’aurais mieux fait de le garder ouvert. :mrgreen: Et je ne parle même pas des différents tunnels SSH que je peux utiliser (MySQL, rsync, …).
J’ai jamais fait de stats là-dessus mais ça m’étonnerait pas que je monte à 10 voire parfois 20 connexions par heure à moi tout seul, sans forcer. Donc oui, 5 connexions par heure pour moi ça serait largement insuffisant. :wink:
Étant donné que de toutes façons ça ne protège pas grand chose, autant supprimer la limite complètement. D’autant que c’est X connexions toutes IP confondues ce qui fait que, comme je l’ai déjà expliqué, il suffit que des attaquants se connectent X fois de suite à ton port SSH pour que TU te retrouves bloqué pendant une heure… pas cool.
La sécurité c’est fait pour sécuriser, pas pour te tirer dans le pied… :mrgreen:[/quote]

Merci pour tout !!! J’en prend bonne note (comme dab)

Je laisse coulé trois jours avant la coche verte !!! … d’autant plus que j’ai quelques config à retouchées, ce qui sera fait dans les heures qui suivent !

Toujours un grand plaisir de te lire de ci delà … (y a toujours des notes à prendre … :smiley: )

Syam, je t’en serre cinq, Merci :023 l’ami … :wink: !!!

Euh merci, mais je n’ai pas dit grand chose de plus que ce qu’avait dit lol, juste expliqué différemment… :083

Certes, c’est bien le différemment que je saisi à peu près, je “crois” …

Sur le dédié !

Règles iptables modifiées par (iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT)

Denyhosts aucune modif à porté !

Fail2ban, ça roule.

/etc/allow & /etc/hosts corrigés.

Et autres … c’est fait !!!

J’espère ne pas en avoir oublier …

ps: Ce qui me posera probablement problème c’est portsentry pour un nmap local/distant (si besoin, pour vérification des “éventuels” ports ouverts) mais bon … c’est un détail.

Reboot du serveur (délai d’environ 5 minutes avant une nouvelle connexion, selon ovh)

Pause cleup.

[code]root@kxxxxx:~# /sbin/reboot

The system is going down for reboot NOW!ufi.com (pts/0) (Fri Nov 25 22:14:23
root@kxxxxxxx:~# Connection to xxx.xxx.xxx.xxx closed by remote host.
Connection to xxx.xxx.xxx.xxx closed.
loreleil@machine1:~$ [/code]

Nouvelle connexion 22h28 (user) par clés d’authentification.

loreleil@machine1:~$ ssh -l <user> xxx.xxx.xxx.xxx ssh_exchange_identification: Connection closed by remote host loreleil@machine1:~$

L’horreur !

Je vais devoir repasser par rescue-pro …

[quote=“loreleil”]loreleil@machine1:~$ ssh -l <user> xxx.xxx.xxx.xxx ssh_exchange_identification: Connection closed by remote host loreleil@machine1:~$ [/quote]
Bon déjà ça passe le firewall, c’est déjà ça (pour que la connexion puisse être fermée faut qu’elle ait été ouverte, donc ça exclut les DROP iptables).
Après, vu que tu as denyhosts + portsentry, je sais pas trop ce qui peut foutre le bordel (mais à vue de nez je pencherais plus pour denyhosts). Le mieux c’est probablement de les désactiver un par un pour trouver la cause.

Loreleil à la tête dure et je manque de patience… :wink:

Saluts,

Je rebondis sur les posts précédents …

quote=“syam” Et si ça te paraît pas encore assez parano, au lieu de faire un blocage par IP, installe un système de port-knocking. (…)
[/quote]
Très intéressant ce paquet knockd !!!
Hormis la doc ubuntu, voici ce que j’ai trouvé sur le sujet spamcleaner.org : blinder les ports de son serveur Excellent site qui plus est !

Dans quel cas, (tu n’utilises pas ces paquets) quelles sont tes recettes ?

[quote=“lol”]

Loreleil à la tête dure et je manque de patience… :wink:[/quote]

Nan nan, il y a simplement des tas de sujets ou je n’y connais rien, je cherche à apprendre, avec des explications plus détaillées c’est beaucoup plus simple de compréhension pour moi, et non des généralités que seul les premiers de la classe comprennent … :wink:

Salut,
Petite mise au point, ça m’agace de laisser passer.

Sauf que je n’ai pas énoncé de généralités, et sauf qu’il n’y a pas besoin d’être premiers de la classe pour comprendre que si tu n’autorise l’accès qu’a une seule IP et que tu perd cette IP, tu perd aussi l’accès…
Et que du coup, par simple déduction, tu aurais du comprendre qu’il n’est pas possible d’aller changer les autorisations sur le serveur.

Et tu donnes toi même la réponse dans ton premier message:

C’est faire preuve de mauvaise foi de dire que mes explication ne sont pas bonnes;

Tu t’es opposé à chacune de mes affirmations…

Donc, oui, tu as bien la tête dure… :wink: