我正在尝试使用 hardened-gentoo 源 openssh(使用 openssh-lpk,我认为这是 gentoo 上的 ldap 标志)并启用 selinux 来设置一个 ssh 服务器。
在 Ldap-Server 上,我添加了一个带有公钥的用户“ldapuser”。当 selinux 完全禁用时,登录功能可以完美运行。
在/etc/selinux/配置
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
答案1
你能显示输出吗
ps -eZ | grep sshd
?
那么问题就有两种:
如果它的上下文与系统不同 - 它只需要从正确的上下文启动。
或者,您只需要为您的用户创建正确的上下文。