리눅스 보안이 정보보안기사 핵심인 이유
서버 인프라의 대부분을 차지하는 리눅스 시스템 보안은 정보보안기사 실기·필기 모두에서 꾸준히 출제됩니다. setuid 권한, PAM 인증, SELinux, iptables 방화벽 설정이 핵심 주제입니다.
파일 권한과 특수 권한
- setuid(4000): 실행 시 파일 소유자 권한으로 실행. passwd 명령어가 대표적. 악용 시 권한 상승 취약점
- setgid(2000): 실행 시 파일 그룹 권한으로 실행. 디렉터리에 설정 시 내부 파일이 해당 그룹 소유
- sticky bit(1000): /tmp 디렉터리처럼 자신의 파일만 삭제 가능. 공유 디렉터리 보안
취약한 setuid 파일 탐색: find / -perm -4000 -type f 2>/dev/null
sudo와 PAM 인증
sudo는 /etc/sudoers 파일로 권한을 세밀하게 제어합니다. NOPASSWD 설정은 보안상 위험하며, 최소 권한 원칙에 따라 필요한 명령어만 허용해야 합니다.
PAM(Pluggable Authentication Modules)은 /etc/pam.d/ 디렉터리에서 관리하며 인증(auth), 계정(account), 세션(session), 패스워드(password) 4가지 유형의 모듈을 제공합니다. pam_tally2로 로그인 실패 횟수 제한이 가능합니다.
SELinux와 AppArmor
- SELinux(Security-Enhanced Linux): NSA가 개발한 MAC(Mandatory Access Control) 구현. 정책 기반으로 프로세스가 접근할 수 있는 파일·포트·프로세스를 엄격히 제한. Enforcing/Permissive/Disabled 모드
- AppArmor: Ubuntu/SUSE 기본 탑재. 프로파일 기반으로 애플리케이션 행동 제한. SELinux보다 설정이 단순
SELinux 컨텍스트: user:role:type:level 형식. Type Enforcement(TE)가 핵심 메커니즘
iptables와 방화벽 설정
iptables는 패킷 필터링, NAT, 패킷 조작을 담당하는 넷필터(netfilter) 프레임워크의 사용자 공간 도구입니다. 주요 체인은 INPUT, OUTPUT, FORWARD이며, ACCEPT/DROP/REJECT/LOG 타깃을 사용합니다.
- 상태 추적(Conntrack): ESTABLISHED, RELATED 패킷 허용으로 stateful 방화벽 구현
- nftables: iptables의 후속 도구. 단일 프레임워크로 IPv4/IPv6/ARP 통합 관리
감사와 로그 관리
auditd는 리눅스 커널 수준의 감사 시스템으로 파일 접근, 시스템 콜, 사용자 활동을 기록합니다. /etc/audit/audit.rules로 감사 규칙 설정. ausearch와 aureport로 분석합니다.
주요 로그 파일: /var/log/secure(인증), /var/log/messages(시스템), /var/log/audit/audit.log(감사)
정보보안기사 기출 핵심 정리
- setuid 악용 = 권한 상승 취약점, sticky bit = /tmp 보호
- SELinux 3가지 모드: Enforcing(강제), Permissive(허용+로그), Disabled
- PAM 4가지 타입: auth, account, session, password
- iptables 기본 정책: INPUT DROP → 명시적 허용 규칙 추가
- auditd: 커널 수준 감사, /var/log/audit/audit.log