JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Guide d'administration système : Services de sécurité
search filter icon
search icon

Informations document

Préface

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.  Contrôle de l'accès aux périphériques (tâches)

5.  Utilisation de l'outil de génération de rapports d'audit de base (tâches)

6.  Contrôle de l'accès aux fichiers (tâches)

7.  Utilisation d'Automated Security Enhancement Tool (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.  Contrôle d'accès basé sur les rôles (référence)

11.  Privilèges (tâches)

12.  Privilèges (référence)

Partie IV Services cryptographiques

13.  Structure cryptographique Oracle Solaris (présentation)

14.  Structure cryptographique Oracle Solaris (tâches)

15.  Structure de gestion des clés Oracle Solaris

Partie V Services d'authentification et communication sécurisée

16.  Utilisation des services d'authentification (tâches)

17.  Utilisation de PAM

18.  Utilisation de SASL

19.  Utilisation d'Oracle Solaris Secure Shell (tâches)

Oracle Solaris Secure Shell (présentation)

Authentification Oracle Solaris Secure Shell

Secure Shell dans l'entreprise

Oracle Solaris Secure Shell et le projet OpenSSH

Oracle Solaris Secure Shell (liste des tâches)

Configuration d'Oracle Solaris Secure Shell (liste des tâches)

Configuration d'Oracle Solaris Secure Shell (tâches)

Configuration de l'authentification basée sur l'hôte pour Secure Shell

Activation de Secure Shell v1

Configuration du transfert de port dans Secure Shell

Utilisation d'Oracle Solaris Secure Shell (liste des tâches)

Utilisation d'Oracle Solaris Secure Shell (tâches)

Génération d'une paire de clés publiques ou privées à utiliser avec Secure Shell

Modification de la phrase de passe pour une clé privée Secure Shell

Connexion à un hôte distant avec Secure Shell

Réduction des invites de mot de passe dans Secure Shell

Configuration de la commande ssh-agent pour qu'elle s'exécute automatiquement dans le CDE

Utilisation du transfert de port dans Secure Shell

Copie de fichiers avec Secure Shell

Définition des connexions aux hôtes en dehors du pare-feu

20.  Oracle Solaris Secure Shell (référence)

Partie VI Service Kerberos

21.  Introduction au service Kerberos

22.  Planification du service Kerberos

23.  Configuration du service Kerberos (tâches)

24.  Messages d'erreur et dépannage de Kerberos

25.  Administration des principaux et des stratégies Kerberos (tâches)

26.  Utilisation des applications Kerberos (tâches)

27.  Service Kerberos (référence)

Partie VII Audit Oracle Solaris

28.  Audit Oracle Solaris (présentation)

29.  Planification de l'audit Oracle Solaris

30.  Gestion de l'audit Oracle Solaris (tâches)

31.  Audit Oracle Solaris (référence)

Glossaire

Index

Utilisation d'Oracle Solaris Secure Shell (tâches)

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).

Génération d'une paire de clés publiques ou privées à utiliser avec Secure Shell

Les utilisateurs doivent générer une paire de clés publiques ou privées lorsque leur site met en œuvre 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.

  1. Démarrez le programme de génération de clés.
    myLocalHost% ssh-keygen -t rsa
    Generating public/private rsa key pair.
    …

    -t est le type d'algorithme, rsa, dsa, ou rsa1.

  2. Spécifiez le chemin vers le fichier qui contiendra la clé.

    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.

  3. Entrez une phrase de passe pour utiliser votre clé.

    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>
  4. Entrez de nouveau la phrase de passe pour la confirmer.
    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
  5. Vérifiez les résultats.

    Vérifiez que le chemin d'accès au fichier de la clé est correct.

    % ls ~/.ssh
    id_rsa
    id_rsa.pub

    À ce stade, vous avez créé une paire de clés publiques ou privées.

  6. Choisissez l'option appropriée :
    • Si votre administrateur a configuré l'authentification basée sur l'hôte, vous pouvez être amené à copier la clé publique de l'hôte local sur l'hôte distant.

      Vous pouvez maintenant vous connecter à l'hôte distant. Pour plus de détails, reportez-vous à la section Connexion à un hôte distant avec Secure Shell .

      1. Saisissez la commande sur une seule ligne, sans barre oblique inverse.
        % cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \
        'cat >> ~./ssh/known_hosts && echo "Host key copied"'
      2. Lorsque vous y êtes invité, indiquez votre mot de passe de connexion.
        Enter password: <Type password>
        Host key copied
        %
    • Si votre site utilise l'authentification de l'utilisateur avec les clés publiques, remplissez votre fichier authorized_keys sur l'hôte distant.
      1. Copiez votre clé publique sur l'hôte distant.

        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"'
      2. Lorsque vous y êtes invité, indiquez votre mot de passe de connexion.

        Lorsque le fichier est copié, le message "Key copied" (Clé copiée) s'affiche.

        Enter password: Type login password
        Key copied
        myLocalHost%
  7. (Facultatif) Réduisez le nombre d'invites de phrases de passe.

    Pour connaître la procédure, reportez-vous à la section 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).

Exemple 19-2 Définition d'une clé RSA v1 pour un utilisateur

Dans l'exemple ci-dessous, l'utilisateur peut contacter les hôtes qui exécutent la version 1 du protocole Secure Shell. Afin d'être authentifié par les hôtes v1, l'utilisateur crée une clé v1 et copie la portion de clé publique sur l'hôte distant.

myLocalHost% ssh-keygen -t rsa1 -f /home/jdoe/.ssh/identity
Generating public/private rsa key pair.
…
Enter passphrase (empty for no passphrase): <Type passphrase>
Enter same passphrase again: <Type passphrase>
Your identification has been saved in /home/jdoe/.ssh/identity.
Your public key has been saved in /home/jdoe/.ssh/identity.pub.
The key fingerprint is:
…
myLocalHost% ls ~/.ssh
id_rsa
id_rsa.pub
identity
identity.pub
myLocalHost% cat $HOME/.ssh/identity.pub | ssh myRemoteHost \
'cat >> .ssh/authorized_keys && echo "Key copied"'

Modification de la phrase de passe pour une clé privée Secure Shell

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).

Connexion à un hôte distant avec Secure Shell

  1. Démarrez une session Secure Shell.

    Tapez la commande ssh et spécifiez le nom de l'hôte distant.

    myLocalHost% ssh myRemoteHost

    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.

  2. À l'invite, vérifiez l'authenticité de la clé de l'hôte distant.
    • Si vous ne pouvez pas confirmer l'authenticité de l'hôte distant, saisissez no et contactez votre administrateur système.
      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.

    • Si vous confirmez l'authenticité de l'hôte distant, répondez à l'invite et passez à l'étape suivante.
      Are you sure you want to continue connecting(yes/no)? yes
  3. Authentifiez-vous sur Secure Shell.
    1. Lorsque vous y êtes invité, saisissez votre phrase de passe.
      Enter passphrase for key '/home/jdoe/.ssh/id_rsa': <Type passphrase>
    2. Lorsque vous y êtes invité, saisissez votre mot de passe de compte.
      jdoe@myRemoteHost's password: <Type password>
      Last login: Fri Jul 20 14:24:10 2001 from myLocalHost
      myRemoteHost%
  4. Effectuez des transactions sur l'hôte distant.

    Les commandes que vous envoyez sont chiffrées. Les réponses que vous recevez sont chiffrées.

  5. Arrêtez la connexion Secure Shell.

    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%

Réduction des invites de mot de passe dans Secure Shell

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. Ou bien, vous pouvez définir le démon de l'agent pour qu'il s'exécute automatiquement au début de chaque session comme décrit dans la section Configuration de la commande ssh-agent pour qu'elle s'exécute automatiquement dans le CDE .

  1. Démarrez le démon de l'agent.
    myLocalHost% eval `ssh-agent`
    Agent pid 9892
  2. Vérifiez que le démon de l'agent a été démarré.
    myLocalHost% pgrep ssh-agent
    9892
  3. Ajoutez votre clé privée au démon de l'agent.

    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%
  4. Démarrez une session Secure Shell.
    myLocalHost% ssh myRemoteHost

    Vous n'êtes pas invité à saisir une phrase de passe.

Exemple 19-3 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. À 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)

Configuration de la commande ssh-agent pour qu'elle s'exécute automatiquement dans le CDE

Avec le CDE, vous pouvez éviter d'avoir à fournir votre phrase de passe et votre mot de passe à chaque utilisation de Secure Shell en démarrant automatiquement un démon d'agent, ssh-agent. Vous pouvez démarrer le démon de l'agent du script .dtprofile. Pour ajouter la phrase de passe et un mot de passe au démon de l'agent, reportez-vous à l'Exemple 19-3.


Attention

Attention - Si vous utilisez Sun Java Desktop System (Java DS), ne configurez pas la commande ssh-agent pour qu'elle s'exécute automatiquement. Étant donné que l'interruption forcée du processus ssh-agent est contrôlée par une interface CDE, lorsque vous quittez le Java DS, le démon continue de s'exécuter. Par exemple, si vous lancez le démon dans une session CDE, passez à une session Java DS, puis déconnectez-vous, le démon continue de s'exécuter.

Un démon en cours d'exécution utilise les ressources système. Le fait que le démon ssh-agent continue de s'exécuter ne pose pas de problème en soi, par contre, son mot de passe vous expose à un risque de sécurité.


  1. Démarrez le démon de l'agent automatiquement dans un script de démarrage utilisateur.

    Ajoutez les lignes suivantes à la fin du script $HOME/.dtprofile :

    if [ "$SSH_AUTH_SOCK" = "" -a -x /usr/bin/ssh-agent ]; then
                    eval `/usr/bin/ssh-agent`
    fi
  2. Arrêtez le démon de l'agent lorsque vous quittez la session CDE.

    Ajoutez les lignes suivantes au script $HOME/.dt/sessions/sessionexit :

    if [ "$SSH_AGENT_PID" != "" -a -x /usr/bin/ssh-agent ]; then
                    /usr/bin/ssh-agent -k
    fi

    Cette entrée garantit que personne ne peut utiliser l'agent Secure Shell après la fermeture d'une session CDE. Étant donné que le script utilise une interface spécifique à CDE, sessionexit, cette procédure n'interrompt pas le démon de l'agent dans une session Sun Java Desktop System.

Utilisation du transfert de port dans Secure Shell

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 Configuration du transfert de port dans Secure Shell .

Exemple 19-4 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, comme indiqué dans la boîte de dialogue suivante.

image:Boîte de dialogue intitulée Mailer - Login. Le champ IMAP Server (serveur IMAP) indique le nom de serveur suivi de deux-points et du numéro de port.

Il ne faut pas confondre localhost, dans cette boîte de dialogue, avec myLocalHost. myLocalHost est un nom d'hôte hypothétique. localhost est un mot-clé qui identifie votre système local.

Exemple 19-5 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%

Copie de fichiers avec Secure Shell

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. Cette commande fonctionne de manière similaire à la commande rcp, à l'exception près que scp invite à s'authentifier. Pour plus d'informations, reportez-vous à la page de manuel scp(1).

Vous pouvez également utiliser la commande sftp, une forme plus sécurisée de la commande ftp. Pour plus d'informations, reportez-vous à la page de manuel sftp(1). Voir l'Exemple 19-6.

  1. Démarrez le programme de copie sécurisée.

    Spécifier 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:~
  2. Indiquez votre phrase de passe lorsque vous y êtes invité.
    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 19-6 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

Définition des connexions aux hôtes en dehors du pare-feu

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 19-7.

En général, vous pouvez personnaliser vos interactions ssh par le biais d'un fichier de configuration.

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).

  1. Spécifiez les commandes proxy et les hôtes dans un fichier de configuration.

    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
    Hôte outside-host

    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.

    proxy-command

    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

    -h proxy-server et -p proxy-port

    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).

    outside-host

    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.

    outside-port

    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.

  2. Exécutez Secure Shell en indiquant l'hôte externe.

    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 19-7 Connexion à des hôtes en dehors du pare-feu à partir de la ligne de commande

La section Définition des connexions aux 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 :