SELinux(Enforcing=1)가 기본적으로 낮은(또는 모든) 포트에 대한 바인딩을 허용하는 이유는 무엇입니까?

SELinux(Enforcing=1)가 기본적으로 낮은(또는 모든) 포트에 대한 바인딩을 허용하는 이유는 무엇입니까?

문서에 따르면 Selinux에서는 기본적으로 모든 포트 작업이 차단되고 AVC로 기록되도록 요구한다고 가정합니다.

SELinux 적용이 활성화되고 Centos7로 생성된 가상 머신이 있는데 즉시 작동합니다.

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             mls
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

그러나 웹 서버를 시작하고 이를 포트 1에 바인딩할 수 있습니다.

[vagrant@localhost ~]$ sudo python -m SimpleHTTPServer 1
Serving HTTP on 0.0.0.0 port 1 ...

나는 SElinux가 새로운 운영 체제에 적용되고 다른 수정 사항이 실제로 이러한 유형의 작업에 대한 액세스를 제한하지 않을 것이라고 가정합니다. (저는 단지 보안 위반이 얼마나 심각한지 보여주는 예로 포트 1을 사용하고 있습니다. 왜냐하면 일반적으로 나는 생각하다적어도기본적으로 selinux를 통해 소수의 포트가 차단됩니다.

답변1

SELinux 구성(참조 정책)에는 무제한 유형이 포함되어 있으며 기본적으로 사용자는 무제한 도메인( unconfined_t)에 있습니다. 무제한 프로세스(및 무제한 프로세스를 시작할 수 있는 사용자)에는 거의 제한이 없습니다. 제한되지 않은 도메인에서 실행되는 프로세스는 SELinux가 아닌 시스템의 프로세스와 거의 동일한 권한을 갖습니다.

또 다른 유형의 도메인은 제한된 도메인으로, 해당 도메인에서 실행되는 프로세스에 대해 엄격한 규칙이 적용됩니다.

Red Hat 문서제한된 SELinux 사용자로 시스템을 구성하려는 경우 여기에 몇 가지 세부 정보와 예가 있습니다.

관련 정보