SELinux 포트 레이블 관리

Red Hat Enterprise LinuxBeginner
지금 연습하기

소개

SELinux(Security-Enhanced Linux) 는 강제 액세스 제어 (MAC) 정책을 시행하는 Red Hat Enterprise Linux 의 핵심 보안 메커니즘입니다. 이 메커니즘의 중요한 측면 중 하나는 레이블 지정이며, 이는 네트워크 포트까지 확장됩니다. 포트에 특정 SELinux 레이블을 할당함으로써 어떤 서비스가 해당 포트를 사용할 수 있는지 제어할 수 있습니다.

이 챌린지에서는 SELinux 포트 레이블 관리 실습을 진행합니다. 기존 포트 정의를 확인하고, 비표준 포트에서 서비스가 작동할 수 있도록 새로운 레이블을 추가한 다음, 해당 정의를 삭제하여 원래 정책으로 복구하는 방법을 배우게 됩니다.

이 콘텐츠는 챌린지입니다. 가이드형 실습과 달리, 안내 단계를 따라가는 것이 아니라 스스로 과제를 완료해야 합니다. 챌린지는 보통 난이도가 있는 편입니다. 해결이 어렵다면 Labby 와 상의하거나 솔루션을 확인하세요. 통계에 따르면 이 챌린지는 초급 수준이며 100%의 통과율을 기록하고 있습니다. 학습자들로부터 100%의 긍정적인 평가를 받았습니다.

SELinux 포트 레이블 관리

시스템 관리자로서 웹 서버가 비표준 포트인 8081에서 실행되도록 구성해야 하는 상황을 가정해 보겠습니다. 기본적으로 SELinux 는 웹 서버 프로세스 (예: httpd) 가 이 포트에 바인딩되는 것을 차단합니다. 해당 포트에 올바른 SELinux 레이블이 지정되어 있지 않기 때문입니다. 여러분의 작업은 semanage 유틸리티를 사용하여 포트 8081에 올바른 레이블을 임시로 추가한 후 다시 제거하는 것입니다.

작업 내용

  • HTTP 서비스와 관련된 기존 SELinux 포트 레이블을 확인합니다.
  • 웹 서버가 사용할 수 있도록 TCP 포트 8081http_port_t 유형의 새 규칙을 추가합니다.
  • 새 규칙이 적용된 것을 확인한 후, 변경 사항을 되돌리기 위해 TCP 포트 8081에 대한 사용자 정의 규칙을 삭제합니다.

요구 사항

  • 모든 명령은 labex 사용자로 실행해야 합니다. 관리자 권한이 필요한 경우 sudo를 사용하세요.
  • 모든 작업은 /home/labex 디렉토리에서 수행해야 합니다.
  • SELinux 포트 레이블 관리를 위해 반드시 semanage 명령을 사용해야 합니다.

예시

새 포트 레이블을 추가하기 전, http_port_t를 조회하면 다음과 같이 기본 포트들이 표시됩니다.

## sudo semanage port -l | grep http_port_t
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988

포트 8081에 대한 규칙을 추가한 후에는 출력 결과에 새 포트가 포함되어야 합니다.

## sudo semanage port -l | grep http_port_t
http_port_t                    tcp      8081, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
✨ 솔루션 확인 및 연습

요약

이 챌린지에서는 SELinux 네트워크 포트 레이블을 관리하는 기본적인 조작법을 배웠습니다. semanage port 명령을 사용하여 기존 정책을 조회하고, semanage port -a로 새 포트 정의를 추가하며, semanage port -d로 이를 제거하는 실습을 진행했습니다. 포트에 올바른 레이블을 지정하는 것은 Red Hat Enterprise Linux 와 같이 SELinux 가 활성화된 시스템에서 네트워크 서비스를 안전하게 배포하기 위한 필수 기술입니다.