리눅스에서 auditd(감사)를 설치하고 사용하는 방법
auditd는 Linux 커널의 감사 프레임워크를 기반으로 동작하는 데몬으로 시스템에서 발생하는 주요 이벤트를 추적하고 기록합니다.
이를 통해 다음과 같은 보안 요구사항을 충족할 수 있습니다.
- 파일 접근 및 변경 추적
- 사용자 행위 감사 (로그인/명령 실행)
- 시스템 콜 기반 행위 분석
- 보안 사고 대응 및 포렌식
1. 설치
Ubuntu/Debian 계열
sudo apt update
sudo apt install auditd audispd-plugins
CentOS/RHEL 계열
sudo yum install audit
2. 서비스 관리
서비스 시작
sudo systemctl start auditd
부팅 시 자동 시작
sudo systemctl enable auditd
상태 확인
sudo systemctl status auditd
3. auditd 설정
auditd의 기본 설정 파일은 /etc/audit/auditd.conf에 있습니다.
cat /etc/audit/auditd.conf
#
# This file controls the configuration of the audit daemon
#
local_events = yes
write_logs = yes
log_file = /var/log/audit/audit.log
log_group = adm
log_format = ENRICHED
flush = INCREMENTAL_ASYNC
freq = 50
max_log_file = 8
num_logs = 5
priority_boost = 4
name_format = NONE
##name = mydomain
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
verify_email = yes
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
use_libwrap = yes
##tcp_listen_port = 60
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
transport = TCP
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
distribute_network = no
q_depth = 1200
overflow_action = SYSLOG
max_restarts = 10
plugin_dir = /etc/audit/plugins.d
end_of_event_timeout = 2
주요 옵션 설명
- log_file : 감사 로그 파일 경로
- log_format : ENRICHED 권장 (해석 편의성 향상)
- max_log_file : 로그 파일 최대 크기 (MB)
- num_logs : 로그 로테이션 개수
- space_left : 디스크 여유 공간 임계치 (%)
- admin_space_left_action : 공간 부족 시 동작
- disk_full_action : 디스크 full 시 동작
- flush : 로그 flush 방식
4. 감사 규칙 설정
auditd는 감사 이벤트를 정의하는 규칙을 사용합니다.
cat /etc/audit/rules.d/audit.rules
# 기존 규칙 초기화
-D
# 버퍼 크기 증가
-b 8192
# 이벤트 처리 대기 시간
--backlog_wait_time 60000
# 실패 시 동작 (1 = syslog)
-f 1
5. 파일 삭제 감시
규칙 추가 (일시 적용)
sudo auditctl -w /tmp/testfile.txt -p wra -k delete_tmp_testfile
옵션 설명
- -w 감시 대상 파일
- -p 권한 (w:쓰기, r:읽기, a:속성 변경)
- -k 이벤트 식별 키
영구 적용 (권장)
sudo vi /etc/audit/rules.d/delete-file.rules
-w /tmp/testfile.txt -p wra -k delete_tmp_testfile
적용
sudo augenrules --load
6. 테스트
파일 생성
echo "test file" > /tmp/testfile.txt
파일 삭제
rm /tmp/testfile.txt
7. 로그 조회
특정 이벤트 조회
sudo ausearch -k delete_tmp_testfile
리포트 형태 확인
sudo aureport -f
8. 로그 해석 방법
주요 로그 필드
시간
time->Fri Sep 22 10:03:35 2023
이벤트 유형
- SYSCALL : 시스템 콜 정보
- PATH : 파일 경로
- CWD : 실행 위치
- PROCTITLE : 실행 명령
핵심 분석 포인트
comm="rm"
exe="/usr/bin/rm"
name="/tmp/testfile.txt"
nametype=DELETE
- /usr/bin/rm 명령으로 /tmp/testfile.txt 삭제됨
사용자 정보
uid=0
auid=1002
- uid : 현재 실행 사용자
- auid : 로그인 사용자
9. 운영에서 자주 사용하는 규칙
1) passwd 파일 변경 감시
-w /etc/passwd -p wa -k passwd_change
2) sudo 사용 감시
-w /var/log/sudo.log -p wa -k sudo_log
3) 권한 변경 감시
-a always,exit -F arch=b64 -S chmod -S chown -k perm_change
4) 실행 파일 추적
-a always,exit -F arch=b64 -S execve -k exec_log
10. 성능 및 운영 팁
버퍼 크기 조정 필수
-b 8192 이상 권장
과도한 rule 금지
- rule 많으면 성능 저하
- 필요한 것만 필터링
logrotate 연동
/etc/logrotate.d/audit
실시간 모니터링
tail -f /var/log/audit/audit.log
참고URL
- RedHat Docs(시스템 감사) : https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/8/html/security_hardening/auditing-the-system_security-hardening
- RedHat Docs(시스템 감사) : https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/8/html/security_hardening/starting-the-audit-service_auditing-the-system
- Auditd가 포함된 Oracle Linux 감사 : https://docs.oracle.com/ko/learn/ol-auditd/#introduction
- auditd : https://sematext.com/glossary/auditd/
'리눅스' 카테고리의 다른 글
| [draft] MySQL에서 새로운 데이터베이스를 생성하고 테이블을 만들고 데이터를 추가 및 조회하는 방법 (0) | 2026.03.16 |
|---|---|
| [draft] MySQL에서 리플리케이션을 다시 연결하는 방법 (0) | 2026.03.16 |
| [draft] MySQL 리플리케이션을 설정하는 방법 (0) | 2026.03.16 |
| [draft] MySQL Replication을 설정하는 방법 (0) | 2026.03.14 |
| [draft] 리눅스에서 MySQL Binary 파일을 이용하여 MySQL 서버를 수동 설치하는 방법 (0) | 2026.03.14 |