[ << ]
[ < ]
[ 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 :
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)
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 /etc/passwd | cut -d: -f7
/bin/bash
|
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
|
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 ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|