SSH - Choix du port utilisé par le client SSH

Forum sur la sécurité des réseaux, la configuration des firewalls, la mise en place de protections contre les attaques, de DMZ, de systèmes anti-intrusion ...

Modérateur: modos Ixus

SSH - Choix du port utilisé par le client SSH

Messagepar La_Binocle » 12 Oct 2008 09:46

Bonjour.
Je cherche à optimiser la sécurité de mon serveur, sur lequel tourne un serveur SSH.


Présentation de la situation
Un ordinateur sous GNU/Linux héberge un serveur SSH. Ce serveur écoute sur le port 51874, plutôt que sur le port 22. En effet, cela complique le travail des pirates qui scannent les ports habituellement utilisés par les logiciels serveurs.

En conséquence, Netfilter autorise les connexions vers ce port :
iptables -t filter -A INPUT -p tcp --destination-port 51874 -j ACCEPT

Lorsqu'un client SSH souhaite se connecter à ce serveur, il précise le port destination :
ssh login@IP_DU_SERVEUR -p 51874

Et cela fonctionne parfaitement ! :D




Amélioration envisagée
Pour améliorer la sécurité du serveur, je souhaiterais autoriser uniquement les connections provenant du port source 37880. Netfilter est donc paramétré de la façon suivante :
iptables -t filter -A INPUT -p tcp --source-port 37880 --destination-port 51874 -j ACCEPT

De cette façon, seuls les clients SSH utilisant le port source 37880 pourront se connecter au serveur. C'est une sécurité supplémentaire.

À présent, pour connecter un client SSH au serveur, il faut choisir « manuellement » le port source utilisé par le client. Le client SSH doit utiliser le port source 37880, et pas un autre !

C'est sur ce point que je sollicite votre aide :
Comment paramétrer mes clients SSH afin qu'ils utilisent le port source 37880 ?
Les clients SSH sont sur des ordinateurs équipés de GNU/Linux.

Merci. :)
La_Binocle
Matelot
Matelot
 
Messages: 5
Inscrit le: 11 Août 2008 12:28

Messagepar jdh » 12 Oct 2008 10:03

On ne trouve pas la réponse dans man ssh. Je ne suis pas sur que ce soit possible. Et puis il faudrait trouver quelque chose qui fonctionne sous Linux et sous Windows. Me parait pas simple ...

D'autant que le port source peut être changé dans un routeur NAT ! (On appelle parfois "masquerade" le PAT "port address translation). Enfin je peux me tromper ...


Il y a plusieurs autres façons d'améliorer la sécurité :

* la limitation du nombre de "new"
Pour chaque connexion, à l'initialisation, il y a un "new". Or iptables sait limiter le nombre de "new" par secondes, minutes, ... (-m limit)

A raison d'une limite de 2 "new" par minute, casser par force brute le mot de passe ssh d'un utilisateur connu (je suppose que PermitRootLogin est à false !) risque de prendre pas mal de temps ...

* le port knocking
Il y a un très intéressant article dans Gnu Linux Magazine de ce mois sur ce sujet (que je connaissais déjà).
Le principe est de permettre d'ouvrir le port seulement après avoir "toqué à la porte" avec un code de reconnaissance (3 coups brefs, 1 coup long !). C'est assez simple et sûrement efficace. (NB : un package est prévu dans la prochaine version de pfSense avec "doorman").
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar arapaho » 12 Oct 2008 11:52

Et la limitation des adresses IP sources autorisées à parler avec le daemon SSH, si tant est qu'il est possible de les lister (adresses IP fixes).
Avatar de l’utilisateur
arapaho
Amiral
Amiral
 
Messages: 1119
Inscrit le: 18 Avr 2002 00:00
Localisation: Genève

Messagepar La_Binocle » 13 Oct 2008 11:49

Merci Jdh et Arapaho pour vos réponses.

jdh a écrit:D'autant que le port source peut être changé dans un routeur NAT !

Cela semble possible.
Si un utilisateur se connecte depuis un réseau local, le port 37880 du routeur peut être utilisé par un autre utilisateur du réseau local. Dans ce cas, le port 37880 du routeur n'est pas « libre » pour le client SSH, et le routeur utilisera certainement un autre port. Ainsi, le port source utilisé ne sera pas le bon, et la connexion SSH ne s'établira pas. :(
Hum ... Je laisse tomber mon idée de filtrage par le port source du client SSH.


Le port knocking est intéressant, mais nécessite la configuration d'un nouveau logiciel.


arapaho a écrit:Et la limitation des adresses IP sources autorisées à parler avec le daemon SSH, si tant est qu'il est possible de les lister (adresses IP fixes).
Impossible dans ce cas, les utilisateurs des clients SSH ne disposant pas d'IP fixe pour se connecter au serveur SSH.


J'oriente donc mes recherches vers la limitation du nombre de « new » par Netfilter/Iptables. Des informations sont disponibles ici. :P

Image Merci pour votre aide !
La_Binocle
Matelot
Matelot
 
Messages: 5
Inscrit le: 11 Août 2008 12:28

Messagepar Muzo » 13 Oct 2008 13:11

Bonjour,

Si tu parles de port knocking, j'espère que tu es tombé sur ce magasine : http://www.ed-diamond.com/produit.php?produit=597

/Muzo
/Muzo
"La vie n'est pas un combat, mais une passion à défendre!" MASS HYSTERIA - Knowledge is power
Avatar de l’utilisateur
Muzo
Amiral
Amiral
 
Messages: 5236
Inscrit le: 07 Mai 2003 00:00
Localisation: BNF! Je me culturise.


Retour vers Sécurité et réseaux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité