Ignorer les liens de navigation | |
Quitter l'aperu | |
Administration d'Oracle Solaris : services de sécurité Oracle Solaris 11 Information Library (Français) |
Partie I Présentation de la sécurité
1. Services de sécurité (présentation)
Partie II Sécurité du système, des fichiers et des périphériques
2. Gestion de la sécurité de la machine (présentation)
3. Contrôle de l'accès aux systèmes (tâches)
4. Service d'analyse antivirus (tâches)
5. Contrôle de l'accès aux périphériques (tâches)
6. Utilisation de l'outil de génération de rapports d'audit de base (tâches)
7. Contrôle de l'accès aux fichiers (tâches)
Partie III Rôles, profils de droits et privilèges
8. Utilisation des rôles et des privilèges (présentation)
9. Utilisation du contrôle d'accès basé sur les rôles (tâches)
10. Attributs de sécurité dans Oracle Solaris (référence)
Partie IV Services cryptographiques
11. Structure cryptographique (présentation)
12. Structure cryptographique (tâches)
13. Structure de gestion des clés
Partie V Services d'authentification et communication sécurisée
14. Authentification des services réseau (tâches)
17. Utilisation de Secure Shell (tâches)
Secure Shell dans l'entreprise
Secure Shell et le projet OpenSSH
Secure Shell et prise en charge FIPS-140
Secure Shell (liste des tâches)
Configuration de Secure Shell (tâches)
Configuration de Secure Shell (liste des tâches)
Procédure de configuration de l'authentification basée sur l'hôte pour Secure Shell
Procédure de configuration du transfert de port dans Secure Shell
Procédure de création d'exceptions d'utilisateur et d'hôte SSH aux valeurs par défaut du système
Utilisation de Secure Shell (tâches)
Utilisation de Secure Shell (liste des tâches)
Procédure de génération d'une paire de clés publiques ou privées à utiliser avec Secure Shell
Procédure de modification de la phrase de passe pour une clé privée Secure Shell
Procédure de connexion à un hôte distant avec Secure Shell
Procédure de réduction des invites de mot de passe dans Secure Shell
Procédure d'utilisation du transfert de port dans Secure Shell
Procédure de copie de fichiers avec Secure Shell
Procédure de configuration de connexions par défaut à des hôtes en dehors du pare-feu
19. Introduction au service Kerberos
20. Planification du service Kerberos
21. Configuration du service Kerberos (tâches)
22. Messages d'erreur et dépannage de Kerberos
23. Administration des principaux et des stratégies Kerberos (tâches)
24. Utilisation des applications Kerberos (tâches)
25. Service Kerberos (référence)
Partie VII Audit dans Oracle Solaris
Secure Shell fournit un accès sécurisé entre un shell local et un shell distant. Pour plus d'informations, reportez-vous aux pages de manuel ssh_config(4) et ssh(1).
La liste des tâches suivante présente les procédures d'utilisation de Secure Shell.
|
Les utilisateurs doivent générer une paire de clés publiques ou privées lorsque leur site met en oeuvre l'authentification basée sur l'hôte ou l'authentification avec clé publique de l'utilisateur. Pour plus d'options, reportez-vous à la page de manuel ssh-keygen(1).
Avant de commencer
Vérifiez auprès de votre administrateur système si l'authentification basée sur l'hôte est configurée.
myLocalHost% ssh-keygen -t rsa Generating public/private rsa key pair. …
Où -t est le type d'algorithme, rsa, dsa, ou rsa1.
Par défaut, le nom de fichier id_rsa, qui représente une clé RSA v2, s'affiche entre parenthèses. Vous pouvez sélectionner ce fichier en appuyant sur la touche Retour. Ou bien, vous pouvez taper un autre nom de fichier.
Enter file in which to save the key (/home/jdoe/.ssh/id_rsa):<Press Return>
Le nom de fichier de la clé publique est créé automatiquement par l'ajout de la chaîne .pub au nom du fichier de clés privées.
Cette phrase de passe est utilisée pour chiffrer votre clé privée. Une entrée nulle est fortement déconseillée. Notez que la phrase de passe ne s'affiche pas lorsque vous la saisissez.
Enter passphrase (empty for no passphrase): <Type passphrase>
Enter same passphrase again: <Type passphrase> Your identification has been saved in /home/jdoe/.ssh/id_rsa. Your public key has been saved in /home/jdoe/.ssh/id_rsa.pub. The key fingerprint is: 0e:fb:3d:57:71:73:bf:58:b8:eb:f3:a3:aa:df:e0:d1 jdoe@myLocalHost
Vérifiez que le chemin d'accès au fichier de la clé est correct.
% ls ~/.ssh id_rsa id_rsa.pub
A ce stade, vous avez créé une paire de clés publiques ou privées.
Vous pouvez maintenant vous connecter à l'hôte distant. Pour plus de détails, reportez-vous à la section Procédure de connexion à un hôte distant avec Secure Shell.
% cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \ 'cat >> ~./ssh/known_hosts && echo "Host key copied"'
Enter password: <Type password> Host key copied %
Saisissez la commande sur une seule ligne, sans barre oblique inverse.
myLocalHost% cat $HOME/.ssh/id_rsa.pub | ssh myRemoteHost \ 'cat >> .ssh/authorized_keys && echo "Key copied"'
Lorsque le fichier est copié, le message "Key copied" (Clé copiée) s'affiche.
Enter password: Type login password Key copied myLocalHost%
Pour connaître la procédure, reportez-vous à la section Procédure de réduction des invites de mot de passe dans Secure Shell. Pour plus d'informations, reportez-vous aux pages de manuel ssh-agent(1) et ssh-add(1).
La procédure suivante ne change pas la clé privée. La procédure modifie le mécanisme d'authentification pour la clé privée, la phrase de passe. Pour plus d'informations, reportez-vous à la page de manuel ssh-keygen(1).
Tapez la commande ssh-keygen avec l'option -p, et répondez aux invites.
myLocalHost% ssh-keygen -p Enter file which contains the private key (/home/jdoe/.ssh/id_rsa):<Press Return> Enter passphrase (empty for no passphrase): <Type passphrase> Enter same passphrase again: <Type passphrase>
Où -p demande la modification de la phrase de passe d'un fichier de clés privées.
Tapez la commande ssh et spécifiez le nom de l'hôte distant et votre identifiant de connexion.
myLocalHost% ssh myRemoteHost -l username
Une invite met en doute l'authenticité de l'hôte distant :
The authenticity of host 'myRemoteHost' can't be established. RSA key fingerprint in md5 is: 04:9f:bd:fc:3d:3e:d2:e7:49:fd:6e:18:4f:9c:26 Are you sure you want to continue connecting(yes/no)?
Cette invite est normale pour les connexions initiales sur des hôtes distants.
Are you sure you want to continue connecting(yes/no)? no
L'administrateur est responsable de la mise à jour du fichier /etc/ssh/ssh_known_hosts global. Un fichier ssh_known_hosts mis à jour empêche l'affichage de cette invite.
Are you sure you want to continue connecting(yes/no)? yes
Enter passphrase for key '/home/jdoe/.ssh/id_rsa': <Type passphrase>
jdoe@myRemoteHost's password: <Type password> Last login: Wed Sep 7 09:07:49 2011 from myLocalHost Oracle Corporation SunOS 5.11 September 2011 myRemoteHost%
Les commandes que vous envoyez sont chiffrées. Les réponses que vous recevez sont chiffrées.
Lorsque vous avez terminé, saisissez exit ou utilisez votre méthode habituelle pour quitter votre shell.
myRemoteHost% exit myRemoteHost% logout Connection to myRemoteHost closed myLocalHost%
Si vous ne voulez pas saisir votre phrase de passe et votre mot de passe pour utiliser Secure Shell, vous pouvez utiliser le démon de l'agent. Démarrez ce démon au début de la session. Ensuite, stockez vos clés privées avec le démon de l'agent à l'aide de la commande ssh-add. Si vous avez des comptes différents sur différents hôtes, ajoutez les clés dont vous avez besoin pour la session.
Vous pouvez démarrer le démon de l'agent manuellement lorsque vous en avez besoin, comme décrit dans la procédure suivante.
myLocalHost% eval `ssh-agent` Agent pid 9892
myLocalHost% pgrep ssh-agent 9892
Saisissez la commande ssh-add.
myLocalHost% ssh-add Enter passphrase for /home/jdoe/.ssh/id_rsa: <Type passphrase> Identity added: /home/jdoe/.ssh/id_rsa(/home/jdoe/.ssh/id_rsa) myLocalHost%
myLocalHost% ssh myRemoteHost -l jdoe
Vous n'êtes pas invité à saisir une phrase de passe.
Exemple 17-2 Utilisation des options ssh-add
Dans cet exemple, jdoe ajoute deux clés pour le démon de l'agent. L'option -l sert à répertorier toutes les clés stockées dans le démon. A la fin de la session, l'option -D sert à supprimer toutes les clés du démon de l'agent.
myLocalHost% ssh-agent myLocalHost% ssh-add Enter passphrase for /home/jdoe/.ssh/id_rsa: <Type passphrase> Identity added: /home/jdoe/.ssh/id_rsa(/home/jdoe/.ssh/id_rsa) myLocalHost% ssh-add /home/jdoe/.ssh/id_dsa Enter passphrase for /home/jdoe/.ssh/id_dsa: <Type passphrase> Identity added: /home/jdoe/.ssh/id_dsa(/home/jdoe/.ssh/id_dsa) myLocalHost% ssh-add -l md5 1024 0e:fb:3d:53:71:77:bf:57:b8:eb:f7:a7:aa:df:e0:d1 /home/jdoe/.ssh/id_rsa(RSA) md5 1024 c1:d3:21:5e:40:60:c5:73:d8:87:09:3a:fa:5f:32:53 /home/jdoe/.ssh/id_dsa(DSA) User conducts Oracle Solaris Secure Shell transactions
myLocalHost% ssh-add -D Identity removed: /home/jdoe/.ssh/id_rsa(/home/jdoe/.ssh/id_rsa.pub) /home/jdoe/.ssh/id_dsa(DSA)
Vous pouvez spécifier qu'un port local est transmis à un hôte distant. En réalité, un socket est alloué pour écouter le port côté local. La connexion sur l'hôte distant à partir de ce port est effectuée par le biais d'un canal sécurisé. Par exemple, vous pouvez spécifier un port 143 afin de recevoir votre courrier à distance avec IMAP4. De la même façon, un port peut être spécifié côté distant.
Avant de commencer
Pour utiliser le transfert de port, l'administrateur doit avoir activé le transfert de port sur le serveur Secure Shell distant. Pour plus de détails, reportez-vous à la section Procédure de configuration du transfert de port dans Secure Shell.
Spécifiez le port local à l'écoute de la communication à distance. De même, indiquez l'hôte distant et le port distant qui transfèrent la communication.
myLocalHost% ssh -L localPort:remoteHost:remotePort
Spécifiez le port distant à l'écoute de la communication à distance. De même, indiquez l'hôte local et le port local qui transfèrent la communication.
myLocalHost% ssh -R remotePort:localhost:localPort
Exemple 17-3 Utilisation du transfert de port local pour recevoir du courrier
L'exemple suivant illustre l'utilisation du transfert du port local pour recevoir du courrier en toute sécurité à partir d'un serveur distant.
myLocalHost% ssh -L 9143:myRemoteHost:143 myRemoteHost
Cette commande transmet les connexions à partir du port 9143 sur myLocalHost au port 143. Port 143 est le port du serveur IMAP v2 sur myRemoteHost. Lorsque l'utilisateur lance une application de messagerie, celui-ci doit spécifier le numéro de port local pour le serveur IMAP, comme dans localhost:9143.
Il ne faut pas confondre localhost avec myLocalHost. myLocalHost est un nom d'hôte hypothétique. localhost est un mot-clé qui identifie votre système local.
Exemple 17-4 Utilisation du transfert de port distant pour communiquer à l'extérieur d'un pare-feu
Cet exemple montre comment l'utilisateur, dans un environnement d'entreprise, peut transférer vers un hôte à l'intérieur d'un pare-feu d'entreprise des connexions d'un hôte sur un réseau externe.
myLocalHost% ssh -R 9022:myLocalHost:22 myOutsideHost
Cette commande transmet les connexions à partir du port 9022 sur myOutsideHost au port 22, le serveur sshd, sur l'hôte local.
myOutsideHost% ssh -p 9022 localhost myLocalHost%
La procédure suivante décrit la façon dont la commande scp copie les fichiers chiffrés entre les hôtes. Vous pouvez copier les fichiers chiffrés entre un hôte local et un hôte distant, ou entre deux hôtes distants. La commande scp invite à s'authentifier. Pour plus d'informations, reportez-vous à la page de manuel scp(1).
Vous pouvez également utiliser le programme de transfert de fichiers sécurisé sftp. Pour plus d'informations, reportez-vous à la page de manuel sftp(1). Pour un exemple, reportez-vous à l'Exemple 17-5.
Remarque - Le service d'audit permet d'auditer les transactions sftp via la classe d'audit ft. Pour scp, le service d'audit peut auditer l'accès et la sortie pour la session ssh.
Spécifiez le fichier source, le nom d'utilisateur au niveau de la destination distante et le répertoire de destination.
myLocalHost% scp myfile.1 jdoe@myRemoteHost:~
Enter passphrase for key '/home/jdoe/.ssh/id_rsa': <Type passphrase> myfile.1 25% |******* | 640 KB 0:20 ETA myfile.1
Une fois que vous avez saisi la phrase de passe, un indicateur de progression s'affiche. Reportez-vous à la seconde ligne de la sortie ci-dessus. L'indicateur de progression affiche les données suivantes :
Le nom de fichier
Le pourcentage du fichier qui a été transféré
Une série d'astérisques qui indiquent le pourcentage du fichier qui a été transmis
La quantité de données transférées
L'heure d'arrivée prévue de la totalité du fichier (c'est-à-dire, le temps restant)
Exemple 17-5 Spécification d'un port à l'aide de la commande sftp
Dans cet exemple, l'utilisateur souhaite que la commande sftp utilise un port spécifique. L'utilisateur utilise l'option -o pour spécifier le port.
% sftp -o port=2222 guest@RemoteFileServer
Vous pouvez utiliser Secure Shell pour établir une connexion entre un hôte à l'intérieur d'un pare-feu et un hôte à l'extérieur du pare-feu. Cette tâche s'effectue en spécifiant une commande proxy pour ssh dans un fichier de configuration ou sous forme d'option dans la ligne de commande. Pour l'option de ligne de commande, reportez-vous à l'Exemple 17-6.
En général, vous pouvez personnaliser vos interactions ssh par le biais d'un fichier de configuration.
Vous pouvez personnaliser votre propre fichier personnel dans ~/.ssh/config.
Ou bien, vous pouvez utiliser les paramètres dans le fichier de configuration administrative, /etc/ssh/ssh_config.
Les fichiers peuvent être personnalisés avec deux types de commandes proxy. Une commande proxy sert aux connexions HTTP. L'autre commande proxy sert aux connexions SOCKS5. Pour plus d'informations, reportez-vous à la page de manuel ssh_config(4).
Utilisez la syntaxe suivante pour ajouter autant de lignes qu'il est nécessaire :
[Host outside-host] ProxyCommand proxy-command [-h proxy-server] \ [-p proxy-port] outside-host|%h outside-port|%p
Limite la spécification de la commande proxy aux instances lorsqu'un nom d'hôte distant est spécifié dans la ligne de commande. Si vous utilisez un caractère générique pour outside-host, vous appliquez la spécification de la commande proxy à un ensemble d'hôtes.
Spécifie la commande proxy.
La commande peut avoir l'une des formes suivantes :
/usr/lib/ssh/ssh-http-proxy-connect pour les connexions HTTP
/usr/lib/ssh/ssh-socks5-proxy-connect pour les connexions SOCKS5
Ces options spécifient respectivement un serveur proxy et un port proxy. Si des proxys sont présents, ils remplacent toutes les variables d'environnement qui spécifient les serveurs et ports proxy, tel que HTTPPROXY, HTTPPROXYPORT, SOCKS5_PORT, SOCKS5_SERVER et http_proxy. La variable http_proxy spécifie une adresse URL. Si ces options ne sont pas utilisées, les variables d'environnement doivent être définies. Pour plus d'informations, reportez-vous aux pages de manuel ssh-socks5-proxy-connect(1) et ssh-http-proxy-connect(1).
Désigne un hôte spécifique pour la connexion. Utilisez l'argument de substitution %h pour spécifier l'hôte sur la ligne de commande.
Désigne un port spécifique pour la connexion. Utilisez l'argument de substitution %p pour spécifier le port sur la ligne de commande. En spécifiant %h et %p sans utiliser l'option Host outside-host, la commande proxy est appliquée à l'argument de l'hôte chaque fois que la commande ssh est appelée.
Par exemple, tapez la commande suivante :
myLocalHost% ssh myOutsideHost
Cette commande recherche une spécification de commande proxy pour myOutsideHost dans votre fichier de configuration. Si la spécification est introuvable, la commande recherche dans le fichier de configuration du système, /etc/ssh/ssh_config. La commande proxy remplace la commande ssh.
Exemple 17-6 Connexion à des hôtes en dehors du pare-feu à partir de la ligne de commande
La section Procédure de configuration de connexions par défaut à des hôtes en dehors du pare-feu décrit la procédure de spécification d'une commande proxy dans un fichier de configuration. Dans cet exemple, une commande proxy est spécifiée sur la ligne de commande ssh.
% ssh -o'Proxycommand=/usr/lib/ssh/ssh-http-proxy-connect \ -h myProxyServer -p 8080 myOutsideHost 22' myOutsideHost
L'option -o de la commande ssh fournit une méthode de ligne de commande pour spécifier une commande proxy. Cet exemple de commande effectue les opérations suivantes :
La commande proxy HTTP remplace ssh
Le port 8080 est utilisé et myProxyServer défini en tant que serveur proxy
La connexion a lieu sur le port 22 de myOutsideHost