« Installation et configuration de OpenSSH » : différence entre les versions

Aller à la navigation Aller à la recherche
 
(8 versions intermédiaires par le même utilisateur non affichées)
Ligne 11 : Ligne 11 :
=Installation=
=Installation=


Utilisez aptitude pour installer le serveur openssh :
Utilisez apt pour installer le serveur openssh :
<pre>aptitude install openssh-server</pre>
<pre>apt install openssh-server</pre>


=Modification du fichier sshd_config=
=Modification du fichier sshd_config=
Ligne 56 : Ligne 56 :
* <code>/etc/ssh/sshd_config</code> : contient la configuration pour le serveur sshd.
* <code>/etc/ssh/sshd_config</code> : contient la configuration pour le serveur sshd.
* <code>/etc/ssh/ssh_config</code> : contient la configuration globale pour le client ssh.
* <code>/etc/ssh/ssh_config</code> : contient la configuration globale pour le client ssh.
* <code>/etc/ssh/ssh_host_key</code>, <code>/etc/ssh/ssh_host_dsa_key</code>, <code>/etc/ssh/ssh_host_rsa_key</code> : ces fichiers contiennent les clés privés de la machine. Ils ne doivent appartenir que à root, et n'avoir des droits que pour root, sinon sshd ne démarre pas.
* <code>/etc/ssh/ssh_host_*_key</code>: ces fichiers contiennent les clés privés de la machine. Ils ne doivent appartenir que à root, et n'avoir des droits que pour root, sinon sshd ne démarre pas.
* <code>/etc/ssh/ssh_host_key.pub</code>, <code>/etc/ssh/ssh_host_dsa_key.pub</code>, <code>/etc/ssh/ssh_host_rsa_key.pub</code> : ces fichiers contiennent les clés publiques de la machine. Ils ne doivent être accessible en écriture que par root, mais doivent être lisible par tous. Ces fichiers sont crées avec ssh-keygen.
* <code>/etc/ssh/ssh_host_*_key.pub</code> : ces fichiers contiennent les clés publiques de la machine. Ils ne doivent être accessible en écriture que par root, mais doivent être lisible par tous. Ces fichiers sont crées avec ssh-keygen.
* <code>$HOME/.ssh/authorized_keys</code> : Ce fichier contient la liste des clés publiques (RSA, DSA) qui peuvent être utilisés pour se connecter avec le compte correspondant à $HOME.
* <code>$HOME/.ssh/authorized_keys</code> : Ce fichier contient la liste des clés publiques (RSA, DSA) qui peuvent être utilisés pour se connecter avec le compte correspondant à $HOME.
* <code>/etc/ssh/ssh_known_hosts</code> et <code>$HOME/.ssh/known_hosts</code> : Ces fichiers définissent les clés des machines distantes auxquels on se connecte. Cela permet de savoir si on se connecte bien à la bonne machine distante. Lorsque vous établissez pour la première fois une connexion ssh vers une machine, ssh vous demandera s'il doit ajouter la clé à la liste. <code>/etc/ssh/ssh_known_hosts</code> doit être lisible par tous le monde, et writable uniquement pas root.
* <code>/etc/ssh/ssh_known_hosts</code> et <code>$HOME/.ssh/known_hosts</code> : Ces fichiers définissent les clés des machines distantes auxquels on se connecte. Cela permet de savoir si on se connecte bien à la bonne machine distante. Lorsque vous établissez pour la première fois une connexion ssh vers une machine, ssh vous demandera s'il doit ajouter la clé à la liste. <code>/etc/ssh/ssh_known_hosts</code> doit être lisible par tous le monde, et writable uniquement pas root.
* <code>/etc/nologin</code> : Lorsque ce fichier existe, personne ne peut se connecter en ssh à l'exception de root. Le contenu de ce fichier est renvoyé aux personnes essayant de se connecter. Généralement, ce fichier est créé pendant que la machine boot pour éviter que des utilisateurs ne se connectent trop tôt. Si vous avez interdit le login root, ce système peut poser de sérieux problème. Pour le désactiver, il faut commenter la ligne <code>account required pam_nologin.so</code> du fichier <code>/etc/pam.d/ssh</code>.
* <code>/etc/nologin</code> : Lorsque ce fichier existe, personne ne peut se connecter en ssh à l'exception de root. Le contenu de ce fichier est renvoyé aux personnes essayant de se connecter. Généralement, ce fichier est créé pendant que la machine boot pour éviter que des utilisateurs ne se connectent trop tôt. Si vous avez interdit le login root, ce système peut poser de sérieux problème. Pour le désactiver, ce que je déconseil, il faut commenter la ligne <code>account required pam_nologin.so</code> du fichier <code>/etc/pam.d/ssh</code>.
* <code>/etc/hosts.allow</code>, <code>/etc/hosts.deny</code> : La liste des hosts ayant le droit/n'ayant pas le droit de se connecter. Ces fichiers ne concernent pas uniquement ssh, mais toutes les connexions ip.
* <code>/etc/hosts.allow</code>, <code>/etc/hosts.deny</code> : La liste des hosts ayant le droit/n'ayant pas le droit de se connecter. Ces fichiers ne concernent pas uniquement ssh, mais toutes les connexions ip.


Ligne 94 : Ligne 94 :
Si vous utilisez linux, il vous est possible d'installer une clé ssh sur le serveur afin de ne plus avoir à entrer votre mot de passe à chaque fois que vous souhaitez vous connecter au serveur.
Si vous utilisez linux, il vous est possible d'installer une clé ssh sur le serveur afin de ne plus avoir à entrer votre mot de passe à chaque fois que vous souhaitez vous connecter au serveur.
Pour commencer, il faut installer le client OpenSSH sur VOTRE ordinateur. Si vous utilisez debian ou ubuntu :
Pour commencer, il faut installer le client OpenSSH sur VOTRE ordinateur. Si vous utilisez debian ou ubuntu :
<pre>aptitude install openssh-client</pre>
<pre>apt install openssh-client</pre>


Il faut ensuite générer vos clés publique et privée :
Il faut ensuite générer vos clés publique et privée :
<pre>ssh-keygen -t rsa -b 4096</pre>
<pre>ssh-keygen -t rsa -b 4096</pre>
Ici je génère une clé rsa de 4096 bits. D'autres algorithmes sont disponibles.
Ici je génère une clé rsa de 4096 bits. D'autres algorithmes sont disponibles comme ecdsa et ed25519.<br />
 
Il vous sera posé deux questions. La première vous demandera d'indiquer le chemin où les clés doivent être installés. Vous pouvez laisser le chemin proposé par défaut si vous ne souhaitez utiliser qu'un seul couple de clé. La seconde question vous demande d'entrer la passphrase qui servira à protéger la clé privé. Vous pouvez entrer une passphrase ou non, mais il est recommandé d'en entrer une par mesure de sécurité.
Il vous sera posé deux questions. La première vous demandera d'indiquer le chemin où les clés doivent être installés. Vous pouvez laisser le chemin proposé par défaut si vous ne souhaitez utiliser qu'un seul couple de clé. La seconde question vous demande d'entrer la passphrase qui servira à protéger la clé privé. Vous pouvez entrer une passphrase ou non, mais il est recommandé d'en entrer une par mesure de sécurité.
Une fois les clés générées, il va falloir ajouter la clé publique à la liste des clés autorisées par votre serveur. Pour cela, on utilise la commande ssh-copy-id
Une fois les clés générées, il va falloir ajouter la clé publique à la liste des clés autorisées par votre serveur. Pour cela, on utilise la commande ssh-copy-id
Ligne 117 : Ligne 116 :
Désormais, si vous tapez ssh plouf@hostname, vous devrez entrer votre passphrase et non plus votre mot-de-passe.
Désormais, si vous tapez ssh plouf@hostname, vous devrez entrer votre passphrase et non plus votre mot-de-passe.
Si vous avez décidé de ne pas préciser de passphrase lors de la création de la clé, vous pourrez vous connecter à votre serveur sans avoir à préciser votre mot de passe ou votre passphrase. Vous pouvez sauter l'étape suivante.
Si vous avez décidé de ne pas préciser de passphrase lors de la création de la clé, vous pourrez vous connecter à votre serveur sans avoir à préciser votre mot de passe ou votre passphrase. Vous pouvez sauter l'étape suivante.
==Automatisation du login==
Si vous avez décidé de chiffrer votre clé avec une passphrase vous avez du remarquer que, pour l'instant, vous n'avez fait que troquer votre mot de passe pour un autre. Mais il est possible de faciliter réellement la connexion à votre serveur en utilisant ssh-agent. ssh-agent va vous permettre de ne plus avoir à ré-entrer votre passphrase à chaque fois que vous voudrez vous reloguez sur votre serveur.
<pre>
ssh-agent bash
ssh-add .ssh/id_rsa
</pre>
La passphrase vous sera redemandé ici. Ensuite, tant que vous ne fermerez pas votre terminal, vous pourrez vous reconnecter à votre serveur en tapant ssh login@host sans avoir à entrer votre mot de passe ou votre passphrase.
Notez que certains environnement graphique (Gnome, kde notamment) gèrent eux-même automatiquement le déblocage des clés privées. Vous n'aurez alors pas besoin de lancer ssh-agent vous même.


==Utiliser plusieurs clés==
==Utiliser plusieurs clés==
Ligne 172 : Ligne 159 :
* aient pour groupe primaire sftponly
* aient pour groupe primaire sftponly
* que leurs répertoires home appartiennent à root et ne puissent être écrit par aucun autre utilisateur ou groupe.
* que leurs répertoires home appartiennent à root et ne puissent être écrit par aucun autre utilisateur ou groupe.
Vous pouvez aussi, pour plus de sécurité, changer le shell de ces utilisateurs à <code>/bin/false</code> : <code>chsh -s /bin/false username</code>
Vous pouvez aussi, pour plus de sécurité, changer le shell de ces utilisateurs pour <code>/bin/false</code> ou <code>/usr/sbin/nologin</code> :  
<pre>
chsh -s /bin/false username
chsh -s /usr/sbin/nologin username
</pre>
 
=Forcer des utilisateurs aux commandes de transfert de fichiers=
Vous pouvez utiliser <code>rssh</code> qui est un shell restreint qui ne permet l'usage que des commandes scp, sftp, cvs, svnserve (Subversion) rdist et rsync.


=Renouveler les clés ssh du serveur=
=Renouveler les clés ssh du serveur=
Ligne 180 : Ligne 174 :
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ''
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ''
ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N ''
ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N ''
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -t ecdsa -N ''
ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -t ed25519 -N ''
</pre>
</pre>
4 231

modifications

Menu de navigation