SELinux에서 정책을 검토하는 방법은 무엇인가요?
_____A1: 현재 로드된 SELinux 정책은 `sestatus` 명령어로 상태를 확인할 수 있고, 정책 파일은 일반적으로 `/etc/selinux/` 디렉토리에 위치합니다. 정책 소스는 `/usr/share/selinux/` 아래에 저장됩니다.
---
Q2: 특정 프로세스의 SELinux 컨텍스트를 어떻게 확인하나요?
A2: `ps -eZ` 명령어를 사용하면 모든 프로세스의 SELinux 보안 컨텍스트를 볼 수 있습니다. 특정 PID의 경우 `ps -Z -p
---
Q3: SELinux 감사 로그를 어떻게 확인하나요?
A3: SELinux 관련 이벤트는 보통 `/var/log/audit/audit.log`에 저장됩니다. `ausearch -m avc` 명령어를 통해 SELinux 거부(denial) 메시지를 검색할 수 있습니다.
---
Q4: 어떤 SELinux 정책가 적용되어 있는지 어떻게 파악하나요?
A4: `semodule -l` 명령어를 사용하면 현재 로드된 SELinux 정책 모듈 목록과 이름을 확인할 수 있습니다.
Q5: 특정 도메인이나 타입의 정책 내용을 어떻게 볼 수 있나요?
A5: `sesearch` 도구를 이용해 정책 내에서 특정 도메인(domain), 타입(type), 또는 권한(permission) 관련 룰을 검색할 수 있습니다. 예: `sesearch -s httpd_t -t httpd_sys_content_t -c file -p read`는 httpd 프로세스가 파일 읽기 권한 여부를 검색합니다.
---
Q6: SELinux 정책 소스 코드를 어떻게 검토하나요?
A6: RHEL/CentOS 기준으로 정책 소스는 `selinux-policy` 패키지 내에 있으며, `/usr/share/selinux/targeted/src/policy` 경로에서 볼 수 있습니다. 모듈별로 `.te` (type enforcement) 파일을 열어 구체적인 룰을 확인할 수 있습니다.
---
Q7: 정책 수정 후 어떻게 적용하고 검토할 수 있나요?
A7: 정책 소스를 수정한 후 `make` 명령어로 컴파일하고, `semodule -i <모듈파일>`로 설치합니다. 이후 `seinfo`와 `sesearch` 도구로 변경 사항을 검토합니다.
---
Q8: SELinux 정책 관련 문서를 어디서 확인할 수 있나요?
A8: `man selinux`, `man semanage`, `man audit2allow` 등 관련 매뉴얼과 `/usr/share/doc/selinux-policy/` 아래 문서를 참고하거나, Red Hat 공식 문서를 이용하면 됩니다.
SELinux 정책은 시스템의 보안 요구 사항을 정의하며, 이를 검토하는 것은 시스템의 보안 상태를 이해하고 필요한 조치를 취하는 데 중요합니다.
SELinux 정책을 검토하는 방법에 대해 자세히 설명하겠습니다.
1. SELinux 상태 확인 SELinux 정책을 검토하기 전에, 먼저 SELinux가 활성화되어 있는지 확인해야 합니다.
이를 위해 다음 명령어를 사용할 수 있습니다: ```bash sestatus ``` 이 명령어는 SELinux의 현재 상태(활성화, 비활성화, 허용 모드 등)를 보여줍니다.
2. 현재 정책 확인 SELinux의 현재 정책을 확인하려면 다음 명령어를 사용할 수 있습니다: ```bash sepolicy current ``` 이 명령어는 현재 로드된 SELinux 정책의 정보를 제공합니다.
여기에는 정책의 버전, 모드, 정책 파일의 경로 등이 포함됩니다.
3. 정책 파일 검토 SELinux 정책은 일반적으로 `/etc/selinux/targeted/policy/` 디렉토리에 위치합니다.
이 디렉토리에서 정책 파일을 검토할 수 있습니다.
정책 파일은 `.pp` 확장자를 가지며, 이 파일들은 바이너리 형식으로 되어 있습니다.
이를 읽기 쉽게 변환하려면 `sepolicy` 도구를 사용할 수 있습니다.
```bash sepolicy ptype -a ``` 이 명령어는 시스템에서 사용되는 모든 타입을 나열합니다.
4. 로그 파일 검토 SELinux는 접근 거부와 같은 보안 이벤트를 `/var/log/audit/audit.log` 또는 `/var/log/messages`에 기록합니다.
이 로그 파일을 검토하여 SELinux가 차단한 이벤트를 확인할 수 있습니다.
다음 명령어를 사용하여 SELinux 관련 로그를 필터링할 수 있습니다: ```bash grep "avc: denied" /var/log/audit/audit.log ``` 이 명령어는 SELinux가 접근을 거부한 모든 이벤트를 나열합니다.
이를 통해 어떤 프로세스가 어떤 리소스에 접근하려고 했는지, 그리고 왜 거부되었는지를 파악할 수 있습니다.
5. 정책 모듈 검토 SELinux 정책은 여러 모듈로 구성되어 있으며, 각 모듈은 특정 서비스나 애플리케이션에 대한 규칙을 정의합니다.
현재 로드된 정책 모듈을 확인하려면 다음 명령어를 사용할 수 있습니다: ```bash semodule -l ``` 이 명령어는 시스템에 로드된 모든 SELinux 모듈의 목록을 보여줍니다.
각 모듈의 이름과 버전 정보를 확인할 수 있습니다.
6. 정책 수정 및 테스트 정책을 검토한 후, 필요에 따라 정책을 수정할 수 있습니다.
SELinux 정책을 수정하려면 `audit2allow` 도구를 사용할 수 있습니다.
이 도구는 로그 파일에서 수집한 정보를 바탕으로 새로운 정책 모듈을 생성합니다.
```bash cat /var/log/audit/audit.log | audit2allow -M mypol semodule -i mypol.pp ``` 이 명령어는 `audit.log`에서 수집한 정보를 기반으로 `mypol`이라는 이름의 정책 모듈을 생성하고 이를 로드합니다.
7. 정책 검증 정책을 수정한 후에는 시스템의 보안 상태를 검증해야 합니다.
이를 위해 `secheck` 도구를 사용할 수 있습니다.
이 도구는 시스템의 SELinux 정책이 올바르게 작동하는지 확인합니다.
```bash secheck ``` 이 명령어는 시스템의 SELinux 정책을 검증하고, 문제가 있는 경우 경고 메시지를 출력합니다.
결론 SELinux 정책을 검토하는 것은 시스템 보안을 유지하는 데 필수적입니다.
위에서 설명한 방법들을 통해 SELinux의 상태를 확인하고, 현재 정책을 검토하며, 로그 파일을 분석하고, 필요에 따라 정책을 수정할 수 있습니다.
SELinux의 복잡성을 이해하고 적절한 정책을 설정함으로써 시스템의 보안을 강화할 수 있습니다.
작성자:
정하린 [비회원]
| 작성일자: 1년 전
2024-12-28 07:21:48
조회수: 211 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 211 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.