Я пытаюсь настроить ssh-сервер с openssh исходниками hardened-gentoo (с openssh-lpk, который, я думаю, является флагом ldap на gentoo) и включен selinux.
На Ldap-сервере я добавил пользователя ldapuser с открытым ключом. Логин работает безупречно, когда selinux полностью отключен.
/ и т.д. / selinux / config
SELINUX=disabled
Однако, когда я устанавливаю selinux в разрешающий или принудительный режим, на клиенте происходит следующее:
ssh -v ldapuser@server
debug1: Entering interactive session.
Write failed: Broken pipe
Я вижу, что открытый ключ был принят.
На сервере я нашел единственную интересную запись в журнале:
server sshd[]: error: ssh_selinux_getctxbyname: Failed to get default SELinux security context for ldapuser
Это имеет смысл, поскольку этот пользователь находится на сервере LDAP (но pam_ldap и nsswitch.conf правильно настроены для использования сервера ldap).
Все отчеты, которые я нашел для этой ошибки, https://bugzilla.mindrot.org/show_bug.cgi?id=1325 например, кажется закрытым или не связанным с моей проблемой.
Я использую Openssh 5.9_p1-r4 с включенными флагами использования bindist, hpn, ldap, pam, selinux и tcpd.
Linux server 3.7.4-hardened-r1 #2 SMP Fri Feb 8 13:26:25 CET 2013 x86_64 AMD A4-3300 APU with Radeon(tm) HD Graphics AuthenticAMD GNU/Linux
Теперь вопрос: это ошибка, и я должен отправить отчет об ошибке, или это неправильная конфигурация с моей стороны? (Я хотел медленно войти в selinux с разрешающим режимом)
Редактировать:
mediaserv-gentoo ~ # ps -eZ | grep sshd
kernel 17017 ? 00:00:01 sshd
kernel 25179 ? 00:00:00 sshd
Вы можете показать результат
ps -eZ | grep sshd
?
Тогда есть два пути решения проблемы:
Если его контекст отличается от системного - его просто нужно запускать из правильного контекста.
В качестве альтернативы вам просто нужно создать правильный контекст для вашего пользователя.