
Auditd?
Linux auditd
시스템 감사(Auditing) 개요
auditd
(Audit Daemon)는 Linux에서 보안 및 시스템 활동을 모니터링하는 감사(Auditing) 시스템입니다.
주로 사용자 활동 추적, 파일 변경 모니터링, 시스템 호출 감시 등에 사용되며, 보안 정책을 강화하는 데 유용합니다.
1️⃣ auditd
의 주요 기능
✅ 로그인 및 인증 추적
-
사용자의 로그인/로그아웃 기록 확인 (
aureport -au
) -
SSH, sudo, su 명령어 실행 감시 (
ausearch -m USER_LOGIN, USER_AUTH
)
✅ 파일 접근 및 변경 감시
-
특정 파일을 누가, 언제 변경했는지 추적 (
auditctl -w /path/to/file -p wa
) -
예:
/etc/passwd
,/var/www/html
파일 접근 모니터링
✅ 명령어 실행 감시
-
특정 명령어 실행 여부 확인 (
auditctl -a always,exit -F arch=b64 -S execve
) -
예:
rm
,chmod
,chown
같은 명령어 실행 감시
✅ 프로세스 및 시스템 호출(Syscall) 감시
-
중요한 시스템 호출 감시 (
auditctl -a always,exit -F arch=b64 -S open,unlink
) -
예:
unlink
,chmod
,mount
감시하여 시스템 보호
✅ 보안 정책 위반 탐지 및 경고
-
원격 로그인 실패 감지 후 자동 차단 가능
-
Root 계정이 직접 로그인하면 알림 전송
2️⃣ auditd
설치 및 활성화
> 설치 방법
✅ Rocky Linux / CentOS / RHEL
✅ Ubuntu / Debian
> 서비스 시작 및 확인
3️⃣ auditd
기본 로그 확인 방법
✅ 감사 로그 위치
모든 감사 이벤트는 /var/log/audit/audit.log
파일에 기록됩니다.
✅ 실시간 로그 확인
# sudo tail -f /var/log/audit/audit.log
> 특정 로그 유형별 확인
✅ 로그인 관련 감사 로그 조회
# ausearch -m USER_LOGIN
time->Thu Apr 3 08:33:15 2025
type=USER_LOGIN msg=audit(1743636795.974:17231): pid=1147 uid=0 auid=1001 ses=1585 msg='op=login id=1001 exe="/usr/bin/login" hostname=? addr=? terminal=tty1 res=success'
----
time->Thu Apr 3 08:36:35 2025
type=USER_LOGIN msg=audit(1743636995.858:17248): pid=9136 uid=0 auid=4294967295 ses=4294967295 msg='op=login acct="root" exe="/usr/sbin/sshd" hostname=? addr=***.***.***.*** terminal=ssh res=failed'
----
time->Thu Apr 3 08:36:47 2025
type=USER_LOGIN msg=audit(1743637007.449:17274): pid=9148 uid=0 auid=1001 ses=1586 msg='op=login id=1001 exe="/usr/sbin/sshd" hostname=***.***.***.*** addr=***.***.***.*** terminal=/dev/pts/0 res=success'
----
time->Thu Apr 3 09:52:27 2025
type=USER_LOGIN msg=audit(1743641547.210:17315): pid=12894 uid=0 auid=1001 ses=1588 msg='op=login id=1001 exe="/usr/sbin/sshd" hostname=***.***.***.*** addr=***.***.***.*** terminal=/dev/pts/0 res=success'
----
time->Thu Apr 3 11:02:00 2025
type=USER_LOGIN msg=audit(1743645720.260:17440): pid=16533 uid=0 auid=1001 ses=1591 msg='op=login id=1001 exe="/usr/sbin/sshd" hostname=***.***.***.*** addr=***.***.***.*** terminal=/dev/pts/0 res=success'
👉 접속 시도 IP는 보안상 별표 처리하였습니다.
✅ 특정 사용자(예 : testuser)의 활동 검색
# ausearch -ua testuser
User ID is non-numeric and unknown (testuser)
👉 테스트 서버 내 testuser 를 생성하지 않아 올바른 결과값이 출력되지 않습니다.
✅ 특정 키워드(예: passwd_access)로 감사 로그 검색
----
time->Thu Apr 3 09:56:23 2025
type=CONFIG_CHANGE msg=audit(1743641783.205:17326): auid=1001 ses=1588 op=add_rule key="passwd_access" list=4 res=1
auditd
에서 "passwd_access"
키워드와 관련된 새 감사 규칙을 추가한 기록👉
auid=1001
사용자가 audit 규칙을 추가했으며, 해당 변경은 성공(res=1
)👉 이 후 passwd 파일에 대한 접근 감시가 활성화됨 (
auditctl -w /etc/passwd -p wa -k passwd_access
실행된 것으로 추정)4️⃣ 감사 로그 분석 및 보고서 생성
📌 요약 보고서 생성
5️⃣ auditd
로그 관리 (압축 및 정리)
기본적으로 auditd
는 logrotate
를 사용하여 로그를 관리한다.
# sudo cat /etc/audit/auditd.conf | grep max_log_file
max_log_file = 8
max_log_file_action = ROTATE
필요하면 크기 조정 후 적용:
# systemctl restart auditd
6️⃣ 보안 강화를 위한 추가 조치
✅ Fail2Ban과 연동하여 로그인 실패 IP 자동 차단
✅ SSH 포트 변경 (/etc/ssh/sshd_config
에서 Port 2222
)
✅ root 계정의 직접 로그인 차단 (PermitRootLogin no
)
✅ cron을 이용해 정기적으로 감사 로그 분석 자동화
✅ 결론
auditd
를 활용하면 시스템 보안 강화 및 이상 징후 감지가 가능하다.
-
로그인 및 시스템 활동을 감시
-
중요한 파일/명령어에 대한 변경 사항 추적
-
로그 분석을 통해 공격 시도 탐지
-
Fail2Ban 등과 연동하여 자동 보안 조치
이상으로 auditd 에 대한 설명과 활용법에 대한 글을 마치겠습니다.
감사합니다.
참고 링크