SELinux와 AppArmor 같은 강제적 접근 제어(MAC) 시스템이 기존 DAC(Discretionary Access Control) 방식과 어떻게 다르며, 실제 운영 환경에서 이들을 효과적으로 적용하고 관리하기 위한 전략과 트러블슈팅 기법에 대해 설명해주세요.
힌트 · MAC는 정책 기반으로 프로세스의 리소스 접근을 강제하며, DAC는 사용자/그룹 기반으로 접근 권한을 관리합니다. auditd 로그를 활용하고 `semanage`, `aa-status` 등의 도구로 정책을 관리합니다.
모범답안
SELinux나 AppArmor 같은 MAC(Mandatory Access Control) 시스템은 기존 DAC(Discretionary Access Control) 방식과 접근 제어 방식에서 근본적인 차이가 있습니다. DAC는 사용자나 그룹에게 권한을 부여하여 접근을 제어하는 반면, MAC은 시스템 관리자가 정의한 정책에 따라 프로세스의 리소스 접근을 강제합니다. 즉, DAC는 사용자의 재량에 따라 권한이 변경될 수 있지만, MAC은 정책에 의해 엄격하게 통제됩니다.
실제 운영 환경에서 MAC을 효과적으로 적용하려면, 먼저 시스템의 역할과 필요한 보안 수준을 명확히 정의해야 합니다. 그 후, 각 역할에 맞는 정책을 설계하고 적용해야 합니다. 정책 관리는 semanage (SELinux)나 aa-status (AppArmor) 같은 도구를 사용하여 수행할 수 있습니다. 트러블슈팅 시에는 auditd 로그를 분석하여 접근 거부 상황을 파악하고, 정책을 수정하거나 예외 규칙을 추가하여 문제를 해결할 수 있습니다. 예를 들어, 특정 프로세스가 필요한 파일에 접근하지 못하는 경우, audit 로그를 확인하고 해당 프로세스에 필요한 권한을 부여하는 정책을 추가합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Linux 면접 질문
- 고성능 웹 서버 환경에서 TCP/IP 스택을 튜닝하여 네트워크 지연 시간을 줄이고 처리량을 극대화하기 위한 커널 파라미터(sysctl) 설정과 그 효과에 대해 구체적으로 설명해주세요. 주요 파라미터 3가지 이상을 예시로 들어 설명하십시오.
- Linux 커널에서 시스템 호출(syscall)의 성능 병목 현상을 진단하고 최적화하기 위한 고급 도구와 기법(예: eBPF, perf, ftrace)에 대해 설명하고, 실제 시나리오에서 어떻게 활용할지 예를 들어주세요.
- 시스템 메모리가 부족해지는 상황에서 Linux 커널의 OOM Killer가 동작하는 방식과 OOM Score의 의미, 그리고 스와핑(swapping) 메커니즘이 시스템 성능에 미치는 영향 및 최적화 방안에 대해 설명해주세요.
- systemd의 복잡한 서비스 의존성 관리 및 부팅 프로세스 최적화를 위해 .target 파일과 .service 파일의 관계를 설명하고, 사용자 정의 서비스 유닛을 작성할 때 고려해야 할 고급 옵션과 시나리오를 제시해주세요.