메뉴 닫기

Auditd


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

# dnf install audit -y

Ubuntu / Debian

# apt install auditd -y

> 서비스 시작 및 확인

# systemctl enable --now auditd
sudo systemctl status auditd
 
 

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)로 감사 로그 검색

# ausearch -k 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️⃣ 감사 로그 분석 및 보고서 생성

📌 요약 보고서 생성

✅ 사용자 인증 관련 로그

# aureport -au

Authentication Report
============================================
# date time acct host term exe success event
============================================
1. 12/07/2024 16:34:14 ?***.***.***.*** ssh /usr/sbin/sshd no 3710258
2. 12/07/2024 16:34:16 (unknown)***.***.***.*** ssh /usr/sbin/sshd no 3710264
3. 12/07/2024 16:34:16 root ***.***.***.***ssh /usr/sbin/sshd no 3710271
4. 12/07/2024 16:34:17 ? ***.***.***.***ssh /usr/sbin/sshd no 3710275
5. 12/07/2024 16:34:18 root***.***.***.*** ssh /usr/sbin/sshd no 3710278
6. 12/07/2024 16:34:19 (unknown)***.***.***.*** ssh /usr/sbin/sshd no 3710285
7. 12/07/2024 16:34:27 ?***.***.***.*** ssh /usr/sbin/sshd no 3710302
8. 12/07/2024 16:34:29 (unknown)***.***.***.*** ssh /usr/sbin/sshd no 3710303
9. 12/07/2024 16:34:31 ? ***.***.***.***ssh /usr/sbin/sshd no 3710310
10. 12/07/2024 16:34:33 (unknown) ***.***.***.***ssh /usr/sbin/sshd no 3710316

..

30622. 04/03/2025 08:36:32 root ***.***.***.*** ssh /usr/sbin/sshd no 17241
30623. 04/03/2025 08:36:34 root ***.***.***.*** ssh /usr/sbin/sshd no 17242
30624. 04/03/2025 08:36:47  ***.***.***.*** ssh /usr/sbin/sshd yes 17263
30625. 04/03/2025 08:36:47  ***.***.***.*** ssh /usr/sbin/sshd yes 17266
30626. 04/03/2025 08:36:52 root  pts/0 /usr/bin/su yes 17277
30627. 04/03/2025 09:52:27  ***.***.***.*** ssh /usr/sbin/sshd yes 17304
30628. 04/03/2025 09:52:27  ***.***.***.*** ssh /usr/sbin/sshd yes 17307
30629. 04/03/2025 09:52:31 root ts/0 /usr/bin/su yes 17318
30630. 04/03/2025 11:02:00 ***.***.***.*** ssh /usr/sbin/sshd yes 17424
30631. 04/03/2025 11:02:00  ***.***.***.*** ssh /usr/sbin/sshd yes 17427
30632. 04/03/2025 11:02:04 root pts/0 /usr/bin/su yes 17443

👉 로그의 일부분으로 접속 시도한 날짜와 IP가 기록되며, 접근 실패 / 성공 결과도 같이 확인 가능합니다.

 

✅ 파일 접근 로그

# aureport -f 

File Report
===============================================
# date time file syscall success exe auid event
===============================================
<no events of interest were found>

✅ 커널 이벤트 로그

# aureport -k 

Key Report
===============================================
# date time key success exe auid event
===============================================
1. 04/03/2025 09:56:23 passwd_access yes ? 1001 17326
2. 04/03/2025 09:56:44 file_delete yes ? 1001 17339 

5️⃣ auditd 로그 관리 (압축 및 정리)

기본적으로 auditdlogrotate를 사용하여 로그를 관리한다.

# 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를 활용하면 시스템 보안 강화 및 이상 징후 감지가 가능하다.

  1. 로그인 및 시스템 활동을 감시

  2. 중요한 파일/명령어에 대한 변경 사항 추적

  3. 로그 분석을 통해 공격 시도 탐지

  4. Fail2Ban 등과 연동하여 자동 보안 조치

 

이상으로 auditd 에 대한 설명과 활용법에 대한 글을 마치겠습니다.

감사합니다.

 

참고 링크

– https://mpjamong.tistory.com/136

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x