SSHD SELinux 보안 컨텍스트 설정

SSHD SELinux 보안 컨텍스트 설정

저는 맞춤형 보드와 UNIX 계열 운영 체제를 개발 중입니다. SSH를 사용하여 연결할 때 루트가 없으면 다음 SELinux 오류가 발생합니다: 유효한 컨텍스트를 얻을 수 없습니다. 사용자가 루트 사용자가 아닙니다. 내 일지에서 나는 읽었다.

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루트 없이 실행하면 다음과 같습니다.


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_t또는 system_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. 루트의 chcon을 사용하여 설정을 시도했지만 id -Z루트 없이 실행하면 컨텍스트에 레이블이 다시 지정되지 않으며 재부팅 후 루트 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 구성 파일에서 두 번째 줄을 제거하면 로그 오류만 발생하고 콘솔 오류는 발생하지 않습니다. 또한 이 두 줄을 제거하면 로그 및 콘솔 오류가 발생합니다. 왜?

누구든지 나를 도와줄 수 있나요? 감사해요

관련 정보