7.5. 감사 규칙 정의


감사 시스템은 로그 파일에서 캡처할 항목을 정의하는 일련의 규칙에서 작동합니다. 다음 유형의 감사 규칙을 지정할 수 있습니다.
제어 규칙
감사 시스템의 동작과 일부 구성을 수정할 수 있도록 허용합니다.
파일 시스템 규칙
파일 감시라고도 하는 경우 특정 파일 또는 디렉터리에 대한 액세스 감사를 허용합니다.
시스템 호출 규칙
지정된 프로그램에서 수행하는 시스템 호출을 로깅할 수 있습니다.
감사 규칙을 설정할 수 있습니다.

7.5.1. auditctl을 사용하여 감사 규칙 정의

auditctl 명령을 사용하면 감사 시스템의 기본 기능을 제어하고 기록된 감사 이벤트를 결정하는 규칙을 정의할 수 있습니다.
참고
감사 서비스 및 감사 로그 파일과 상호 작용하는 모든 명령에는 root 권한이 필요합니다. root 사용자로 이러한 명령을 실행해야 합니다. 또한 사용자 메시지를 기록하려면 감사 서비스와 CAP_AUDIT_WRITE를 설정하려면 CAP_AUDIT_CONTROL이 필요합니다.

제어 규칙 정의

다음은 감사 시스템의 동작을 수정할 수 있는 일부 제어 규칙입니다.
-b
커널에서 기존 감사 버퍼의 최대 크기를 설정합니다. 예를 들면 다음과 같습니다.
~]# auditctl -b 8192
-f
다음과 같이 심각한 오류가 감지될 때 수행되는 작업을 설정합니다.
~]# auditctl -f 2
위의 구성에서는 심각한 오류가 발생하는 경우 커널 패닉을 트리거합니다.
-e
감사 시스템을 활성화하고 비활성화하거나 해당 구성을 잠급니다. 예를 들면 다음과 같습니다.
~]# auditctl -e 2
위의 명령은 감사 구성을 잠급니다.
-r
생성된 메시지의 속도를 초당 설정합니다. 예를 들면 다음과 같습니다.
~]# auditctl -r 0
위의 구성은 생성된 메시지에 대한 속도 제한을 설정하지 않습니다.
-s
감사 시스템의 상태를 보고합니다. 예를 들면 다음과 같습니다.
~]# auditctl -s
AUDIT_STATUS: enabled=1 flag=2 pid=0 rate_limit=0 backlog_limit=8192 lost=259 backlog=0
-l
현재 로드된 모든 감사 규칙을 나열합니다. 예를 들면 다음과 같습니다.
~]# auditctl -l
-w /etc/passwd -p wa -k passwd_changes
-w /etc/selinux -p wa -k selinux_changes
-w /sbin/insmod -p x -k module_insertion
⋮
-D
다음과 같이 현재 로드된 모든 감사 규칙을 삭제합니다.
~]# auditctl -D
No rules

파일 시스템 규칙 정의

파일 시스템 규칙을 정의하려면 다음 구문을 사용합니다.
auditctl -w path_to_file -p permissions -k key_name
다음과 같습니다.
  • path_to_file 은 감사되는 파일 또는 디렉터리입니다.
  • 권한은 로깅된 권한입니다.
    • R - 파일 또는 디렉토리에 대한 읽기 액세스.
    • w - 파일 또는 디렉토리에 대한 쓰기 액세스입니다.
    • X - 파일 또는 디렉토리에 대한 액세스를 실행합니다.
    • a - 파일 또는 디렉터리의 특성을 변경합니다.
  • key_name 은 특정 로그 항목을 생성한 규칙 또는 규칙 집합을 식별하는 데 도움이 되는 선택적 문자열입니다.

예 7.1. 파일 시스템 규칙

/etc/passwd 파일의 모든 쓰기 액세스 권한을 로깅하는 규칙과 /etc/passwd 파일을 변경하는 규칙을 정의하려면 다음 명령을 실행합니다.
~]# auditctl -w /etc/passwd -p wa -k passwd_changes
-k 옵션 뒤에 있는 문자열은 임의적입니다.
/etc/selinux/ 디렉터리에 있는 모든 파일에 대한 쓰기 액세스 권한을 로깅하는 규칙을 정의하려면 다음 명령을 실행합니다.
~]# auditctl -w /etc/selinux/ -p wa -k selinux_changes
모듈을 Linux 커널에 삽입하는 /sbin/insmod 명령의 실행을 기록하는 규칙을 정의하려면 다음 명령을 실행합니다.
~]# auditctl -w /sbin/insmod -p x -k module_insertion

시스템 호출 규칙 정의

시스템 호출 규칙을 정의하려면 다음 구문을 사용합니다.
auditctl -a action,filter -S system_call -F field=value -k key_name
다음과 같습니다.
  • actionfilter 는 특정 이벤트가 기록될 때를 지정합니다. 작업을 항상 또는 사용하지 않을 수 있습니다.filter 는 이벤트에 적용되는 커널 규칙 일치 필터를 지정합니다. rule-matching 필터는 작업,exit,user, exclude 중 하나일 수 있습니다. 이러한 필터에 대한 자세한 내용은 7.1절. “감사 시스템 아키텍처” 시작을 참조하십시오.
  • system_call 은 시스템 호출을 해당 이름으로 지정합니다. 모든 시스템 호출 목록은 /usr/include/asm/unistd_64.h 파일에서 확인할 수 있습니다. 여러 시스템 호출을 자체 -S 옵션 다음에 지정된 하나의 규칙으로 그룹화할 수 있습니다.
  • field=value 지정된 아키텍처, 그룹 ID, 프로세스 ID 등을 기반으로 이벤트를 일치시키도록 규칙을 추가로 수정하는 추가 옵션을 지정합니다. 사용 가능한 모든 필드 유형 및 해당 값의 전체 목록은 auditctl(8) 도움말 페이지를 참조하십시오.
  • key_name 은 특정 로그 항목을 생성한 규칙 또는 규칙 집합을 식별하는 데 도움이 되는 선택적 문자열입니다.

예 7.2. 시스템 호출 규칙

adjtimex 또는 settimeofofday 시스템 호출이 프로그램에서 사용될 때마다 로그 항목을 생성하는 규칙을 정의하기 위해 64비트 아키텍처를 사용하는 시스템은 다음 명령을 실행합니다.
~]# auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
파일이 삭제될 때마다 로그 항목을 만드는 규칙을 정의하거나 ID가 1000 이상인 시스템 사용자가 이름을 변경하려면 다음 명령을 실행합니다.
~]# auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete
-F auid!=4294967295 옵션은 로그인 UID가 설정되지 않은 사용자를 제외하는 데 사용됩니다.
시스템 호출 규칙 구문을 사용하여 파일 시스템 규칙을 정의할 수도 있습니다. 다음 명령은 -w /etc/shadow -p wa 파일 시스템 규칙과 유사한 시스템 호출 규칙을 생성합니다.
~]# auditctl -a always,exit -F path=/etc/shadow -F perm=wa
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.