设置 sshd SELinux 安全上下文

设置 sshd SELinux 安全上下文

我正在开发我的定制板和定制的类 UNIX 操作系统。当我使用 ssh 连接并且没有 root 用户时,会收到此 SELinux 错误:无法获取有效的上下文。其中用户不是 root 用户。在我的日志中我读到

pam_selinux(sshd:session): Unable to get valid context for user
ssh_selinux_getctxbyname: Failed to get default SELinux security
ssh_selinux_getctxbyname: Failed to get default SELinux security
ssh_selinux_setup_pty: security_compute_relabel: Invalid argument 

在我的外壳上我读到了Unable to get valid context for user.

所以:我认为这是一个/usr/sbin/sshdSELinux 上下文,而且它的标签是错误的。sestatus -v从无 root 用户运行 我读到:


SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              disabled
Policy deny_unknown status:     denied
Memory protection checking:     actual (secure)
Max kernel policy version:      31

Process contexts:
Current context:                system_u:system_r:initrc_t
Init context:                   system_u:system_r:init_t

File contexts:
Controlling terminal:           system_u:object_r:initrc_devpts_t
/etc/passwd                     system_u:object_r:etc_t
/etc/shadow                     system_u:object_r:shadow_t
/bin/login                      system_u:object_r:login_exec_t
/bin/sh                         system_u:object_r:bin_t
/sbin/init                      system_u:object_r:init_exec_t
/usr/sbin/sshd                  system_u:object_r:root_t
/lib/libc.so.6                  system_u:object_r:lib_t -> system_u:object_r:lib_t

运行id -Z我得到 /usr/sbin/sshd system_u:system_r:kernel_tsystem_u:system_r:initrc_t。我尝试使用restorecon -v -r /*/usr/sbin/sshd 进程重新标记为 system_u:system_r:kernel_t,而/usr/sbin/sshd 文件上下文变为 system_u:system_r:bin_t

我认为 sshd 的一个很好的上下文可能是system_u:object_r:sshd_exec_t。我尝试使用 root 用户的 chcon 设置它,但是当我id -Z从无 root 用户运行时,上下文不会重新标记,并且重新启动后,没有 root 用户 sshd 上下文变得未标记。

在我的系统上,我无法使用 semange 程序,并且没有要设置的“登录布尔值”。我的 getsebool -a 列表非常短。

在我的/etc/pam.d/sshd配置中,我有以下几行:

session    optional     /lib/security/pam_selinux.so close 
session    optional     /lib/security/pam_selinux.so multiple open

通过删除上面 pam 配置文件中的第二行,我只得到日志错误,但没有控制台错误。另外删除这两行我会收到日志和控制台错误。为什么?

有人能帮我吗?谢谢

相关内容