들어가며
보안 감사나 침해 사고 대응 시 가장 중요한 것이 로그입니다. 하지만 기본 설정만으로는 보안 사고 발생 시 충분한 증거를 확보하지 못할 수 있습니다. KISA(한국인터넷진흥원)에서는 리눅스 로그 설정 권장값을 배포하고 있는데, 이를 실제 운영 중인 Oracle Linux 9 서버에 적용해봤습니다.
KISA 로그 설정 가이드란?
KISA에서 배포한 **“한눈에 보는 로그설정 노트 (Linux)”**는 다음 9가지 로그 설정에 대한 권장값을 제공합니다:
- 명령 히스토리 - HISTFILE, HISTSIZE 설정
- 로그 로테이션 - 전역 주기 및 보관 정책
- 커널 로그 - rsyslog 설정
- utmp - 현재 로그인 사용자 정보
- wtmp - 로그인/로그아웃 이력
- btmp - 실패한 로그인 시도
- messages - 시스템 메시지
- secure - 인증 및 보안 이벤트
- dmesg - 커널 메시지
이 중에서 로그 로테이션 설정이 핵심입니다.
현재 시스템 상태 점검
1. 전역 로그 로테이션 설정
| |
기존 설정:
- 주기:
weekly(주간) - 보관:
rotate 4(4주) - 압축: 비활성화
2. 로그 파일 권한 확인
| |
기존 권한:
btmp: -rw-rw---- (0660) root:utmp
wtmp: -rw-rw-r-- (0664) root:utmp
messages: -rw------- (0600) root:root
secure: -rw------- (0600) root:root
3. 개별 로그 로테이션 설정
| |
기존 설정:
- btmp/wtmp:
rotate 1(1개월만 보관) - messages/secure: 전용 설정 없음
KISA 권장값과의 비교
| 항목 | 기존 설정 | KISA 권장 | 개선 필요 |
|---|---|---|---|
| 전역 주기 | weekly, rotate 4 | monthly, rotate 6 | ✅ 변경 |
| btmp 권한 | 0660 | 0640 | ✅ 강화 |
| btmp 보관 | 1개월 | 6개월 | ✅ 연장 |
| wtmp 권한 | 0664 | 0640 | ✅ 강화 |
| wtmp 보관 | 1개월 | 6개월 | ✅ 연장 |
| messages | 설정 없음 | 0640, 6개월 | ✅ 신규 |
| secure | 설정 없음 | 0640, 6개월 | ✅ 신규 |
주요 문제점:
- 보관 기간 부족 - 1개월만 보관하면 침해 사고 조사 시 증거 부족
- 권한 과다 - 그룹 쓰기 권한으로 로그 위변조 가능
- 개별 설정 부재 - 중요 로그에 대한 세밀한 관리 불가
적용 과정
1. 백업 먼저!
| |
안전 규칙: 시스템 설정 변경 전 반드시 백업!
2. 전역 설정 변경
| |
변경 내용:
| |
3. btmp 로그 설정
Oracle Linux 9는 btmp 그룹이 없고 utmp 그룹을 사용합니다.
| |
설정 설명:
monthly- 매월 1일 로테이션create 0640 root utmp- 새 파일 권한 및 소유자rotate 6- 6개월치 보관missingok- 파일 없어도 에러 안남dateext- 파일명에 날짜 추가 (예: btmp-20260206)
4. wtmp 로그 설정
| |
5. messages 로그 설정 (신규)
| |
6. secure 로그 설정 (신규)
| |
설정 검증
1. 문법 검사
| |
정상 출력:
reading config file btmp
reading config file wtmp
rotating pattern: /var/log/btmp monthly (6 rotations)
rotating pattern: /var/log/wtmp monthly (6 rotations)
에러가 없으면 정상입니다!
2. 테스트 실행
| |
주의: -f 옵션은 즉시 강제 실행이므로 테스트 환경에서만 사용하세요.
적용 결과
보안 개선 효과
로그 파일 무단 수정 방지
- 권한 강화: 0660/0664 → 0640
- 그룹 쓰기 권한 제거로 일반 사용자 수정 불가
보안 사고 조사 기간 확보
- 보관 기간: 1개월 → 6개월
- 장기간 로그 보존으로 침해 사고 추적 가능
KISA 권장 기준 준수
- 정보보호 관리체계(ISMS) 인증 준비 시 유리
- 보안 감사 대응 용이
디스크 효율 향상
- 압축 활성화로 로그 파일 크기 50~70% 감소
- 6개월 보관해도 디스크 부담 최소화
디스크 사용량 예측
현재 로그 사용량:
| |
43M /var/log/messages
8.1M /var/log/secure
0 /var/log/btmp
84K /var/log/wtmp
6개월 보관 시 예상:
- 압축 없이: ~307MB (51.1MB × 6)
- 압축 적용: ~150MB (압축률 50% 가정)
현재 여유 공간이 127GB이므로 전혀 문제없습니다.
핵심 학습 포인트
1. 로그 권한 관리의 중요성
로그 파일 권한이 0664 (rw-rw-r–) 이면 그룹 멤버가 로그를 수정할 수 있습니다. 공격자가 그룹 권한을 획득하면 침입 흔적을 지울 수 있죠.
권장 권한: 0640 (rw-r—–)
- 소유자(root)만 쓰기 가능
- 그룹은 읽기만 가능
- 기타 사용자는 접근 불가
2. 로그 보관 기간 설정 원칙
| 보관 기간 | 용도 | 비고 |
|---|---|---|
| 1개월 | 일상 모니터링 | 단기 문제 해결 |
| 3개월 | 보안 감사 | 분기별 검토 |
| 6개월 | 침해 사고 조사 | KISA 권장 |
| 1년 이상 | 법적 증거 | 규정 준수 필요 시 |
보안 사고는 발생 후 수개월 뒤에 발견되는 경우가 많습니다. 6개월 보관은 최소 기준입니다.
3. logrotate 핵심 옵션
| |
4. OS별 차이점 주의
RHEL/CentOS/Oracle Linux:
- 그룹:
utmp(btmp, wtmp용) - 설정:
/etc/logrotate.d/
Debian/Ubuntu:
- 그룹:
btmp,wtmp(별도 그룹) - 설정:
/etc/logrotate.d/
KISA 가이드는 Debian 기준이므로 RHEL 계열에서는 그룹명 조정 필요합니다.
5. 로그 로테이션 타이밍
| |
실제 로테이션은 조건이 만족될 때만 실행됩니다:
monthly- 매월 1일에만weekly- 매주 일요일에만daily- 매일
매일 cron이 돌아도 조건 미달 시 스킵됩니다.
추가 보안 강화 팁
1. 원격 로그 백업
중요 서버는 로그를 원격 서버에도 전송하세요:
| |
공격자가 로컬 로그를 삭제해도 원격 서버에 증거가 남습니다.
2. 로그 무결성 검증
| |
로그 파일 해시를 저장해서 위변조를 탐지할 수 있습니다.
3. 실시간 로그 모니터링
| |
로그를 분석해서 공격 패턴 발견 시 자동으로 IP를 차단합니다.
마무리
KISA 로그 설정 권장값은 최소한의 보안 기준입니다. 이번 적용으로:
✅ 로그 파일 무단 수정 방지
✅ 침해 사고 조사 기간 6배 확보
✅ KISA 권장 기준 100% 준수
✅ 디스크 효율 향상 (압축)
운영 중인 리눅스 서버가 있다면 지금 바로 점검해보세요. 로그는 사고가 난 후에야 그 중요성을 깨닫게 됩니다. 미리 준비하는 것이 최선의 보안입니다.
참고 자료
💬 댓글로 궁금한 점 남겨주세요!