logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


SSH - TP

Installation

On supposera ici que vous avez déjà suivi le tuto ssh et que vous savez donc les bases.

Connexion par clés asymétriques

RSA ou DSA ?

Peu importe.

Générer une clé

Exemple avec une clé DSA.

Pourquoi ne pas autoriser les connexions uniquement par clefs privés/public et interdire les connections standards où les mots de passes passent en clair.

Création de la cle

Le but est de se passer du mot de passe qui au niveau sécurité est trop faible, nous allons généré une clée cryptée unique pour votre PC.

ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa): /home/user/.ssh/nom_fichier
Enter passphrase (empty for no passphrase): (mettre une passphrase qui sera demandée à chaque connexion - ou rien si c'est pas nécessaire pour vous)

Vous validez 2 fois et vous obtiendrez le résultat en détail de la création de votre cle dsa.

Exportation de la cle

Votre clé sera générée en 1024 bits dans votre dossier /home/votre_user/.ssh/ pour la mettre en place il vous suffit de l'exporter sur votre pc distant.

Vérifiez que la clef dans le fichier se termine bien par votre adresse ip ( Ip Internet ) et non par le nom de votre poste. Si ce n'est pas le cas, remplacer le nom par votre adresse ip.

ssh-copy-id -i /home/user/.ssh/id_dsa.pub user@192.168.x.x
mot_de_passe (serveur distant)

Voilà votre clé est en place, maintenant passons à la sécurité de votre système.

Restreindre les connexions à SSH

Il suffit d'éditer le fichier sshd_config en root sur le PC distant. Le fichier se trouve dans le dossier /etc/ssh/

nano /etc/ssh/sshd_config

Puis de modifier les arguments suivant «le cas est pris pour une connection uniquement par clé» :

PermitRootLogin no # évite la connexion root « plus que recommandé »
RSAAuthentication yes # active la reconnaissance RSA
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys # va uniquement chercher la clé sur ce fichier
PasswordAuthentication no # désactive la connexion par mot de passe
PermitEmptyPasswords no # désactive les mots de passe vide
UsePAM no # désactive la connection par mot de passe
AllowUsers votrelogin secondlogin # restreint l'accès à votre login uniquement
DenyUsers test guest admin root snort apache nobody # interdire l'accès à certains users, pour les paranos...
MaxStartups 1 # limite la connexion, normalement 6 par défaut

Restreindre la connexion à un utilisateur

Moins de monde autorisé à se connecter via ssh, moins de risques il y aura…

  AllowUsers **monuserquipeutseconnecter**

Il est possible de spécifier plusieurs utilisateurs ou un masque d'expression régulière, je vous laisse lire la doc pour un paramétrage plus fin

Restreindre la connexion à un groupe

dans le même esprit que le paramètre ci-dessus on peut autoriser directement tous les utilisateurs d'un groupe.

  AllowGroups **mongroupadmin**

Les options qu'il est conseillé de changer dans un premier temps sont :

Le port

  • Le port 22 # C'est le port par défaut du service SSH

Nous allons le mettre ici à 10010

  Port **10010**

Une fois configuré il vous suffit de relancer SSH, à faire en root :

service ssh restart

Pour voir les fichiers avec konqueror et Nautilus rien de plus simple

Konqueror

fish://user@192.168.x.x

Nautilus

ssh://user@192.168.x.x:22

Terminal

Pour te connecter sur un serveur ssh qui n'a pas le port 22 par défaut.

ssh mattux@mon.serveur.org -p 10010

-p 10010 bien sûr à adapter au port ouvert, son numéro !

Avec la configuration de base le mot de passe de la session vous sera demandé, avec la clé rien ne vous sera demandé.

Tunnel chiffré en SSH

Il se peut que vous vouliez établir une connexion distante pour transiter des données de manière 100% transparente et sécurisée, nous allons donc établir un tunnel ssh.

ssh -L 5901:localhost:5900 user@80.80.80.80

Cette technique est très utile pour relier en local un bon nombre d'utilisation, comme sur kde distant, un serveur smtp personnel, une boite mail ( pop ou imap ) personnelle, un bon nombre d'utilisations ont recours à cette technique.

Détail sur la ligne de commande SSH

  • ssh : invoque le protocole
  • -L invoque de la création d'un tunnel crypté
  • 5901 : port coté local
  • localhost : indique que l'accès se fera en local de manière transparente
  • 5900 : port du service distant
  • user@80.80.80.80 : indique avec quelle user et sur quelle ip on va établir la connection.

Commandes annexes

  • Pour COPIER un fichier sécurisé vous devez vous servir de : scp
  • Pour MONTER les fichiers servez-vous de : sshfs
1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/reseau/ssh.1382789465.txt.gz · Dernière modification: 26/10/2013 14:11 par smolski

Pied de page des forums

Propulsé par FluxBB