> 패키지 및 시스템 관리 > semanage

semanage: SELinux 정책 관리

semanage는 SELinux(Security-Enhanced Linux) 정책을 관리하는 데 사용되는 명령줄 도구입니다. 파일 컨텍스트, 네트워크 포트, 불리언, 사용자 매핑 등 다양한 SELinux 정책 요소를 추가, 수정, 삭제 및 나열할 수 있습니다. 시스템의 보안 정책을 세밀하게 제어하여 애플리케이션과 서비스가 안전하게 동작하도록 돕습니다.

개요

semanage는 SELinux 정책을 영구적으로 변경하는 데 사용됩니다. `chcon`이나 `restorecon`이 임시 또는 기존 정책을 적용하는 반면, `semanage`는 새로운 정책 규칙을 정의하고 시스템 재부팅 후에도 유지되도록 합니다.

주요 관리 대상

semanage를 통해 관리할 수 있는 주요 SELinux 정책 요소들입니다.

  • 파일 컨텍스트 (File Contexts): 특정 경로의 파일 및 디렉토리에 대한 SELinux 타입 지정
  • 네트워크 포트 (Network Ports): 특정 포트에 대한 SELinux 타입 지정
  • SELinux 불리언 (Booleans): SELinux 정책의 특정 동작을 켜거나 끄는 스위치
  • SELinux 사용자 매핑 (User Mappings): 리눅스 사용자를 SELinux 사용자에 매핑

주요 옵션

semanage는 다양한 SELinux 객체 유형에 대해 정책을 관리합니다. 각 객체 유형과 함께 사용되는 일반적인 옵션들을 설명합니다.

일반 관리 옵션

객체 유형

생성된 명령어:

명령어를 조합해 보세요.

설명:

`semanage` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

semanage 명령어를 사용하여 SELinux 정책을 관리하는 다양한 시나리오를 보여줍니다.

모든 파일 컨텍스트 규칙 나열

sudo semanage fcontext -l

현재 시스템에 정의된 모든 파일 컨텍스트 매핑 규칙을 확인합니다.

특정 포트 규칙 나열

sudo semanage port -l | grep http

HTTP 서비스에 사용되는 포트 규칙을 나열합니다.

사용자 정의 파일 컨텍스트 추가

sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/my_app(/.*)?"

/var/www/html/my_app 디렉토리와 그 하위 파일들을 httpd_sys_content_t 타입으로 지정하는 규칙을 추가합니다. (추가 후 restorecon 필요)

사용자 정의 포트 추가

sudo semanage port -a -t http_port_t -p tcp 8080

TCP 8080 포트를 http_port_t 타입으로 추가하여 웹 서비스에서 사용할 수 있도록 합니다.

SELinux 불리언 활성화

sudo semanage boolean -m --on httpd_can_network_connect

httpd_can_network_connect 불리언을 활성화하여 Apache 웹 서버가 네트워크 연결을 시작할 수 있도록 허용합니다.

설치

semanage는 대부분의 SELinux를 사용하는 리눅스 배포판에서 'policycoreutils' 또는 유사한 패키지의 일부로 제공됩니다. 다음은 주요 배포판에서의 설치 방법입니다.

RHEL/CentOS/Fedora

sudo dnf install policycoreutils-python-utils

DNF 또는 YUM 패키지 관리자를 사용하여 'policycoreutils-python-utils' 패키지를 설치합니다.

Debian/Ubuntu

sudo apt install selinux-utils

APT 패키지 관리자를 사용하여 'selinux-utils' 패키지를 설치합니다.

팁 & 주의사항

semanage를 사용하여 SELinux 정책을 관리할 때 유용한 팁과 주의해야 할 사항들입니다.

변경 사항 적용

파일 컨텍스트 규칙을 변경한 후에는 반드시 'restorecon' 명령어를 사용하여 변경된 컨텍스트를 파일 시스템에 적용해야 합니다.

  • `sudo restorecon -Rv /path/to/directory`

문제 진단 및 정책 생성

SELinux 관련 문제가 발생하면 `/var/log/audit/audit.log` 파일을 확인하여 거부된 작업을 파악하고, `audit2allow` 도구를 사용하여 필요한 정책 규칙을 생성할 수 있습니다.

  • `sudo tail -f /var/log/audit/audit.log` (실시간 로그 확인)
  • `sudo audit2allow -a -M mypolicy` (정책 위반 로그를 기반으로 'mypolicy.te' 및 'mypolicy.pp' 파일 생성)
  • `sudo semodule -i mypolicy.pp` (생성된 정책 모듈 로드)

주의사항

SELinux 정책을 잘못 변경하면 시스템의 특정 서비스나 전체 시스템에 대한 접근이 차단될 수 있습니다. 변경 전에 현재 정책을 백업하거나 신중하게 테스트하는 것이 중요합니다.


동일 카테고리 명령어