$USER
인증된 사용자 파일이 있는 시스템 사용자 계정인 사용자가 있습니다 . SELinux를 활성화하면 공개 키를 사용하여 서버에 SSH로 연결할 수 없습니다. setenabled 0
지금 로그인할 수 있다면 $USER
.
SELinux를 완전히 비활성화하지 않고 이 동작을 수정하려면 어떤 SELinux 부울/정책을 변경해야 합니까?
이 기본 SELinux 구성에서 비밀번호를 사용하여 로그인할 수 있다는 점은 주목할 가치가 있습니다. $USER
여기서 무슨 일이 일어나고 있으며 SELinux가 이를 방지하지 않는 이유를 이해하고 싶습니다. (이 문제를 해결한 후 비밀번호 인증을 완전히 비활성화할 예정이므로 이 문제에 대해 알게 되어 더욱 기쁩니다)
답변1
~/.ssh/*에 대한 파일 시스템 권한이 정확하다고 가정하고 출력을 확인하십시오.
sealert -a /var/log/audit/audit.log
AVC 항목에 단서가 있어야 합니다. 솔루션은 다음을 실행하는 것으로 요약됩니다.
restorecon -R -v ~/.ssh
답변2
sealert
최근에 만난 시스템에서처럼 파일이 시스템에서 누락된 경우 다음과 같은 경우도 가능합니다 audit2allow
.
$ sudo audit2allow -w -a
type=AVC msg=audit(1548909218.552:1037): avc: denied { read } for pid=13996 comm="sshd" name="authorized_keys" dev="dm-0" ino=4663556 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:admin_home_t:s0 tclass=file
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
AVC 분석:
avc: denied { read } for pid=13996 comm="sshd" name="authorized_keys" dev="dm-0" ino=4663556
"sshd" was denied read on a file resource named "authorized_keys".
scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023
SELinux context of the sshd process that attempted the denied action.
tcontext=system_u:object_r:admin_home_t:s0 tclass=file
SELinux context of the authorized_keys file.
scontext
audit2allow는 문제 해결 방법을 간결하게 알려주지 않지만 및 을 살펴보면 값 tcontext
이 만족스럽지 않은 "authorized_keys" 파일 컨텍스트를 표시 scontext
하면서 필요한 컨텍스트를 나타냅니다 .tcontext
이 경우 restorecon -R -v ~/.ssh
자체적으로는 작동하지 않지만 필수 컨텍스트를 적용하면 다음이 수행됩니다.
$ sudo semanage fcontext --add -t ssh_home_t "/path/to/my/.ssh(/.*)?"; \
$ sudo restorecon -FRv /path/to/my/.ssh
필요한 경우 AVC에 표시되는 내용에 따라 리소스 이름 및/또는 컨텍스트를 변경합니다. 이 답변의 정확한 세부 정보는 "authorized_keys"와 관련된 문제를 해결하기 위해 구축되었지만 sealert
생성된 AVC에 다른 파일이나 컨텍스트가 표시되더라도 솔루션은 이 모델을 따를 수 있습니다 audit2allow
.