개요
auditctl은 Linux 감사 시스템의 규칙을 동적으로 관리합니다. 이 규칙들은 커널 수준에서 정의되며, 특정 파일 접근, 시스템 호출, 사용자 활동 등 다양한 이벤트를 기록하도록 설정할 수 있습니다. 감사 로그는 주로 /var/log/audit/audit.log 파일에 저장됩니다.
주요 기능
- 감사 규칙 추가 및 삭제
- 현재 활성화된 감사 규칙 목록 조회
- 파일 및 디렉토리 접근 감시
- 특정 시스템 호출 감시
- 사용자 및 그룹 기반 감사 규칙 설정
설치
auditctl은 'audit' 또는 'auditd' 패키지의 일부로 제공됩니다. 대부분의 Linux 배포판에 기본적으로 설치되어 있지 않다면 다음 명령어를 사용하여 설치할 수 있습니다.
Debian/Ubuntu
sudo apt update
sudo apt install auditd
Debian 또는 Ubuntu 기반 시스템에서 auditctl을 설치합니다.
RHEL/CentOS/Fedora
sudo yum install audit
# 또는
sudo dnf install audit
RHEL, CentOS 또는 Fedora 기반 시스템에서 auditctl을 설치합니다.
설치 후에는 auditd 서비스를 시작하고 활성화해야 합니다: `sudo systemctl enable auditd --now`
주요 옵션
auditctl 명령어는 다양한 옵션을 통해 감사 규칙을 정의하고 관리합니다.
규칙 관리
규칙 정의
생성된 명령어:
명령어를 조합해 보세요.
설명:
`auditctl` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
auditctl을 사용하여 감사 규칙을 설정하는 다양한 예시입니다.
현재 모든 감사 규칙 나열
sudo auditctl -l
현재 커널에 로드된 모든 감사 규칙을 확인합니다.
/etc/passwd 파일 변경 감시
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
/etc/passwd 파일에 대한 모든 쓰기(w) 및 속성 변경(a) 접근을 감시하고, 'passwd_changes' 키를 할당합니다.
/etc/shadow 파일 읽기 시도 감시
sudo auditctl -w /etc/shadow -p r -k shadow_read
/etc/shadow 파일에 대한 읽기(r) 시도를 감시하고, 'shadow_read' 키를 할당합니다.
/var/log 디렉토리 내 파일 생성/삭제 감시
sudo auditctl -a always,exit -F dir=/var/log -F perm=wa -S creat,unlink -k log_dir_changes
/var/log 디렉토리 내에서 파일 생성(creat) 및 삭제(unlink) 시스템 호출을 감시합니다. 'log_dir_changes' 키를 할당합니다.
특정 사용자(UID)의 파일 삭제 시도 감시
sudo auditctl -a always,exit -F arch=b64 -S unlink -F auid=1000 -k user_file_delete
UID 1000인 사용자가 파일을 삭제(unlink)하는 시스템 호출을 감시합니다. 64비트 시스템 아키텍처를 명시합니다.
모든 감사 규칙 삭제
sudo auditctl -D
현재 로드된 모든 감사 규칙을 삭제합니다. (주의: 신중하게 사용해야 합니다.)
특정 키를 가진 규칙 삭제
sudo auditctl -w /etc/passwd -p wa -k passwd_changes -d
'passwd_changes' 키를 가진 규칙을 삭제합니다. 규칙을 추가할 때와 동일한 옵션을 사용해야 합니다.
팁 & 주의사항
auditctl 사용 시 유용한 팁과 주의해야 할 사항입니다.
규칙 영구 저장
auditctl로 추가된 규칙은 시스템 재부팅 시 사라집니다. 규칙을 영구적으로 유지하려면 /etc/audit/rules.d/audit.rules 파일에 규칙을 추가하고, 'augenrules --load' 또는 'systemctl restart auditd' 명령으로 적용해야 합니다.
- 규칙 파일: /etc/audit/rules.d/audit.rules
- 규칙 적용: sudo augenrules --load
성능 영향
너무 많은 감사 규칙을 설정하거나 광범위한 디렉토리를 감시하면 시스템 성능에 영향을 줄 수 있습니다. 필요한 최소한의 규칙만 설정하고, 중요한 경로에 집중하는 것이 좋습니다.
로그 파일 확인
감사 이벤트는 /var/log/audit/audit.log 파일에 기록됩니다. 이 로그를 확인하려면 ausearch 및 aureport 명령어를 사용하는 것이 효율적입니다.
아키텍처 지정 (-F arch=b64/b32)
시스템 호출을 감시할 때, 64비트 시스템에서는 '-F arch=b64'를, 32비트 시스템에서는 '-F arch=b32'를 명시적으로 지정하는 것이 좋습니다. 이는 시스템 호출 번호가 아키텍처마다 다를 수 있기 때문입니다.