Gentoo Logo

[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


3. Problème de connexion distante

Table des matières :

3.a. Sommaire

Vous devez être dans sysadm_r pour effectuer ces actions.

Lancez sestatus -v et cliquez sur le premier contexte qui ne correspond pas :

Processus Contexte
Init context system_u:system_r:init_t
/usr/sbin/sshd system_u:system_r:sshd_t
File Context
/sbin/unix_chkpwd system_u:object_r:chkpwd_exec_t
/etc/passwd system_u:object_r:etc_t
/etc/shadow system_u:object_r:shadow_t
/bin/bash system_u:object_r:shell_exec_t

3.b. Le contexte d'init est incorrect

Vérifier l'étiquette d'init

Plusieurs raisons peuvent être à l'origine d'un mauvais contexte pour init. Tout d'abord, vérifiez qu'init est correctement étiqueté en vous référant au résultat de sestatus concernant /sbin/init. Si ce n'est pas system_u:object_r:init_exec_t, ré-étiquetez sysvinit.

Exemple de code 2.1 : Réparer le contexte d'init

# rlpkg sysvinit

Vérifier la disponibilité de la politique

Vous devez être dans sysadm_r pour effectuer cette action.

Une politique binaire doit être disponible dans /etc/selinux/{strict,targeted}/policy. Si ce n'est pas le cas, installez la politique.

Exemple de code 2.2 : Installer la politique

# semodule -n -B

Vérifier qu'init peut charger la politique

La dernière vérification consiste à s'assurer qu'init puisse charger la politique. Exécutez ldd sur /sbin/init et, si libselinux ne fait pas partie des bibliothèques listées, réinstallez sysvinit.

Exemple de code 2.3 : Vérifier la liaison d'init à libselinux

# ldd /sbin/init
  linux-gate.so.1 =>  (0xffffe000)
  libselinux.so.1 => /lib/libselinux.so.1 (0x40025000)
  libc.so.6 => /lib/libc.so.6 (0x40035000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Maintenant, redémarrez afin qu'init obtienne le bon contexte et puisse charger la politique.

3.c. Le contexte de Sshd est incorrect

Une autre possibilité est que sshd ne soit pas étiqueté correctement et qu'il ne tourne donc pas dans le bon domaine. Ré-étiquetez openssh, puis relancez sshd.

Exemple de code 3.1 : Réparer le contexte de sshd

# rlpkg openssh
# /etc/init.d/sshd restart

3.d. Le contexte de PAM est incorrect

Sshd doit pouvoir utiliser PAM pour authentifier les utilisateurs. Le programme de PAM qui vérifie le mot de passe (/sbin/unix_chkpwd) doit être étiqueté correctement afin que Sshd puisse transiter vers le contexte de vérification du mot de passe. Ré-étiquetez PAM.

Exemple de code 4.1 : Réparer le contexte d'unix_chkpwd

# rlpkg pam

Le contexte du programme de vérification de mot de passe devrait maintenant être system_u:object_r:chkpwd_exec_t. Essayez de vous reconnecter à nouveau.

3.e. Les contextes des fichiers de mots de passes sont incorrects

Le fichier passwd (/etc/passwd) et shadow (/etc/shadow) doivent être correctement étiquetés sinon PAM ne pourra pas authentifier les utilisateurs. Ré-étiquetez les fichiers.

Exemple de code 5.1 : Réparer les contextes des fichiers de mots de passes

# restorecon /etc/passwd /etc/shadow

Leur contexte devraient maintenant être respectivement system_u:object_r:etc_t et system_u:object_r:shadow_t. Essayez de vous reconnecter à nouveau.

3.f. Le contexte de Bash est incorrect

Bash doit être correctement étiqueté afin que l'utilisateur puisse transiter vers son domaine lors de la connexion. Ré-étiquetez bash.

Exemple de code 6.1 : Réparer le contexte de bash

# rlpkg bash

Bash (/bin/bash) doit maintenant avoir le contexte system_u:object_r:shell_exec_t. Essayez de vous reconnecter à nouveau.

3.g. Autres problèmes avec sshd

Validité du shell

Premièrement, assurez-vous que le shell de l'utilisateur est valide.

Exemple de code 7.1 : Validité du shell

# grep utilisateur /etc/passwd | cut -d: -f7
/bin/bash (Doit renvoyer le shell de l'utilisateur.)

Si la commande précédente ne renvoie rien ou renvoie un shell incorrect, redéfinissez le shell de cet utilisateur.

Exemple de code 7.2 : Définir le shell de l'utilisateur

# usermod -s /bin/bash utilisateur

PAM activé

PAM doit être activé dans sshd. Vérifiez que cette ligne soit bien décommentée dans le fichier /etc/ssh/sshd_config :

Exemple de code 7.3 : Sshd doit utiliser PAM

UsePAM yes

SELinux ne permet actuellement qu'à PAM et à quelques rares autres programmes d'accéder directement au fichier /etc/shadow. Openssh doit donc utiliser PAM pour la vérification des mots de passes (cela ne concerne donc pas l'accès par clé publique).


[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


Imprimer

Voir tout

Dernière mise à jour le 15 octobre 2006

Résumé : Ce chapitre vous aidera si vous n'arrivez pas à vous connecter en ssh.

Chris PeBenito
Author

Camille Huot
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.