SSH avec IPCOP : Authentification par clé
Sommaire
I. Présentation
La distribution IPCOP permet l’administration à distance via le protocole SSH en se connectant par mot de passe. Il est également possible de mettre en place une connexion SSH sécurisée par l’utilisation d’une paire de clés asymétriques.
La clé publique restera toujours sur le serveur IPCOP, tandis que le poste utilisé pour la connexion à distance devra disposer de la clé privée. Une clé privée qui devra être au préalable converti avec l’utilitaire « PuttyGEN » afin d’être compatible et utilisable avec Putty.
Dans le principe, dans un premier temps, la paire de clés doit être générées sur le serveur IPCOP grâce à la commande adéquate. Ensuite, on autorisera la clé publique auprès du serveur IPCOP pour qu’il ait confiance en cette clé.
Dans un deuxième temps, la clé privée doit être transférée sur le poste client pour être utilisée lors d’une connexion. Il est important de préciser que cette clé privée doit être conservée précieusement puisque c’est la seule et unique clé qui permet de se connecter à notre serveur IPCOP.
Pour finir, on désactivera l’authentification SSH par mot de passe sur le serveur IPCOP dans le but de pouvoir se connecter uniquement si l’on détient la clé privée. Puis, on effectuera une tentative de connexion.
Avant de commencer, vérifiez que l’accès SSH par mot de passe est activé. Il est utile de l’activer pour le transfert de la clé privée vers le poste client.
II. Générer la paire de clés
La première étape consiste à générer la paire de clés dans le but d’obtenir une clé publique et une clé privée. Dans notre cas, les clés seront chiffrées avec l’algorithme RSA et elles feront 2048 bits.
La commande « ssh-keygen » permet de générer les clés, vous pouvez donc saisir la commande suivante sur votre serveur IPCOP :
ssh-keygen -t rsa -b 2048
Une fois la commande exécutée, deux questions vous sont posées :
- Nom des clés et éventuellement l’arborescence où elles doivent être stockées. Par défaut, la clé privée se nomme « id_rsa » et la clé publique « id_rsa.pub », et elles sont stockées dans le répertoire caché « ssh » situé dans « /root ».
- Une passphrase c’est-à-dire un mot de passe qui servira à utiliser la clé, ce qui signifie que si quelqu’un récupère votre clé privée, il lui faut qu’il connaisse la passphrase pour l’utiliser.
III. Autoriser la clé publique
Un fichier nommé « authorized_keys » et stocké dans « /root/.ssh » doit être créé pour indiquer qu’on autoriser la clé publique qu’on vient de créer. Sans ça, le serveur n’acceptera pas de communiquer avec le poste client.
Pour se faire, on utilise la commande cat pour copier le contenu du fichier de clé publique « id_rsa.pub » dans le fichier « authorized_keys » situé dans le répertoire caché « ssh » de « root ».
cd /root/.ssh cat id_dsa.pub >> authorized_keys
Ensuite, vérifiez que le contenu a bien était ajouté dans le fichier « authorized_keys » :
cat authorized_keys
IV. Transfert de la clé privée
La clé privée doit être transférée sur le poste client pour qu’on l’utilise avec Putty lors de la connexion. A l’aide de WinSCP, connectez-vous sur votre serveur IPCOP afin de transférer la clé privée grâce au protocole SCP, qui permet de copier des fichiers de manière sécurisées grâce au SSH.
Note : Le port SSH d’IPCOP 1.4.20 est 222 et pour IPCOP 2.0.3 c’est 8022.
Naviguez dans l’arborescence jusqu’à « /root/.ssh » et transférez sur le poste client le fichier « id_rsa ».
V. Conversion de la clé privée
Comme je le disais dans la présentation, le format de clé par défaut n’est pas utilisable avec Putty. Grâce à l’utilitaire « PuttyGen » téléchargeable gratuitement sur internet, nous allons pouvoir convertir la clé privée dans une clé au format « .ppk » (Putty Private Key) et ainsi l’utiliser avec Putty.
Exécutez l’utilitaire et cliquez sur le menu « Conversions » puis « Import key » et allez chercher votre clé privée sur votre PC.
Lorsque vous confirmez l’importation, on vous demande la passphrase que vous avez définit pour pouvoir utiliser la clé. Saisissez-la.
Cliquez ensuite sur « Save private key » et nommez-la « id_rsa.ppk » puis cliquez sur « Enregistrer ».
VI. Configuration du SSH
Avant d’effectuer une tentative de connexion SSH grâce à notre clé, nous allons désactiver l’authentification SSH par mot de passe afin qu’elle se fasse uniquement par clé.
Sur l’interface d’administration de votre serveur IPCOP, allez dans le menu « Système » puis « Accès SSH ».
Indiquez la configuration suivante puis validez :
VII. Tentative de connexion
Pour finir, établissez une tentative de connexion entre votre PC client et votre serveur IPCOP grâce à Putty. Indiquez l’adresse IP de votre serveur et le port SSH correspondant (222 ou 8022 selon la version d’IPCOP).
Puis, dans le menu de configuration de Putty, allez dans « Connection », « SSH » et cliquez sur « Auth » puis ensuite sur « Browse » et indiquez le chemin vers votre clé privée au format PPK. Pour finir, cliquez sur « Open ».
Connectez-vous avec le compte « Root », on vous demandera de saisir votre passphrase afin de pouvoir utiliser la clé.
Professionnellement expliqué , je vous tire mon chapeau !