탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 11.1 관리: 보안 서비스 Oracle Solaris 11.1 Information Library (한국어) |
기본 플러그인 audit_binfile은 감사 추적을 만듭니다. 추적은 대량의 데이터를 포함할 수 있습니다. 다음 작업에서는 이러한 모든 데이터로 작업하는 방법을 보여줍니다.
다음 작업 맵에서는 감사 레코드를 선택, 분석 및 관리하기 위한 절차를 안내합니다.
|
auditrecord 명령은 감사 레코드 정의를 표시합니다. 정의는 감사 이벤트 번호, 감사 클래스, 선택 마스크 및 감사 이벤트의 레코드 형식을 제공합니다.
-a 옵션은 모든 감사 이벤트 정의를 나열합니다. -h 옵션은 목록을 HTML 형식으로 만듭니다.
% auditrecord -ah > audit.events.html
참고 - 브라우저에서 HTML 파일을 표시하면 브라우저의 Find(찾기) 도구를 사용하여 특정 감사 레코드 정의를 찾습니다.
자세한 내용은 auditrecord(1M) 매뉴얼 페이지를 참조하십시오.
예 28-27 프로그램의 감사 레코드 정의 표시
이 예에서는 login 프로그램으로 생성되는 모든 감사 레코드의 정의가 표시됩니다. 로그인 프로그램에는 rlogin, telnet, newgrp 및 Oracle Solaris의 Secure Shell 기능이 포함됩니다.
% auditrecord -p login ... login: logout program various See login(1) event ID 6153 AUE_logout class lo (0x0000000000001000) ... newgrp program newgrp See newgrp login event ID 6212 AUE_newgrp_login class lo (0x0000000000001000) ... rlogin program /usr/sbin/login See login(1) - rlogin event ID 6155 AUE_rlogin class lo (0x0000000000001000) ... /usr/lib/ssh/sshd program /usr/lib/ssh/sshd See login - ssh event ID 6172 AUE_ssh class lo (0x0000000000001000) ... telnet login program /usr/sbin/login See login(1) - telnet event ID 6154 AUE_telnet class lo (0x0000000000001000) …
예 28-28 감사 클래스의 감사 레코드 정의 표시
이 예에서는 예 28-10에서 만들어진 pf 클래스의 모든 감사 레코드 정의가 표시됩니다.
% auditrecord -c pf pfexec system call pfexec See execve(2) with pfexec enabled event ID 116 AUE_PFEXEC class pf (0x0100000000000000) header path pathname of the executable path pathname of working directory [privileges] privileges if the limit or inheritable set are changed [privileges] privileges if the limit or inheritable set are changed [process] process if ruid, euid, rgid or egid is changed exec_arguments [exec_environment] output if arge policy is set subject [use_of_privilege] return
use_of_privilege 토큰은 권한이 사용될 때마다 기록됩니다. privileges 토큰은 제한 또는 상속 가능한 설정이 변경될 경우 기록됩니다. process 토큰은 ID가 변경될 경우 기록됩니다. 이러한 토큰이 레코드에 포함되기 위해 필요한 정책 옵션은 없습니다.
모든 감사 디렉토리의 감사 파일을 결합하면 전체 감사 추적의 내용을 분석할 수 있습니다.
주 - 감사 추적의 시간 기록은 협정 세계시(UTC)로 되어 있으므로 의미를 가지려면 날짜와 시간을 현재 시간대로 변환해야 합니다. auditreduce 명령이 아닌 표준 파일 명령으로 이러한 파일을 조작할 때는 항상 이 사항을 염두에 두십시오.
시작하기 전에
Audit Review 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
디스크 공간 제한에 도달할 수 있는 가능성을 줄이기 위해서는 이 파일 시스템이 원래 파일을 저장하기 위해 감사 파일에 대한 ZFS 파일 시스템을 만드는 방법에서 만든 파일 시스템과 다른 zpool에 있어야 합니다.
병합된 감사 파일을 저장할 디렉토리로 이동합니다. 이 디렉토리에서 감사 레코드를 이름이 지정된 접미어가 있는 파일로 병합합니다. 로컬 시스템에서 감사 추적의 모든 디렉토리가 병합되고 이 디렉토리에 배치됩니다.
# cd audit-storage-directory # auditreduce -Uppercase-option -O suffix
auditreduce 명령에 대한 대문자 옵션은 감사 추적의 파일을 조작합니다. 대문자 옵션에는 다음이 포함됩니다.
감사 추적의 모든 파일을 선택합니다.
완전한 파일만 선택합니다.
특정 접미어가 있는 파일을 선택합니다. 접미어는 시스템 이름이거나 요약 파일에 대해 지정한 접미어일 수 있습니다.
현재 디렉토리에서 suffix 접미어를 사용하여 시작 시간과 종료 시간 모두에 대해 14자의 시간 기록을 가진 감사 파일을 만듭니다.
대체 감사 루트 디렉토리인 pathname에서 감사 파일을 읽도록 지정합니다.
지정된 서버에서 감사 파일을 읽도록 지정합니다.
전체 옵션 목록은 auditreduce(1M) 매뉴얼 페이지를 참조하십시오.
예 28-29 감사 파일을 요약 파일로 복사
다음 예에서는 System Administrator 권한 프로파일이 지정된 관리자가 감사 추적의 모든 파일을 다른 파일 시스템의 병합된 파일로 복사합니다. /var/audit/storage 파일 시스템은 감사 루트 파일 시스템인 /var/audit 파일 시스템과 다른 별도의 디스크에 있습니다.
$ cd /var/audit/storage $ auditreduce -A -O All $ ls /var/audit/storage/*All 20100827183214.20100827215318.All
다음 예에서는 완전한 파일만 감사 추적에서 병합된 파일로 복사됩니다. 전체 경로는 -0 옵션의 값으로 지정됩니다. 경로의 마지막 구성 요소인 Complete는 접미어로 사용됩니다.
$ auditreduce -C -O /var/audit/storage/Complete $ ls /var/audit/storage/*Complete 20100827183214.20100827214217.Complete
다음 예에서는 -D 옵션을 추가하여 원래 감사 파일이 삭제됩니다.
$ auditreduce -C -O daily_sys1.1 -D sys1.1 $ ls *sys1.1 20100827183214.20100827214217.daily_sys1.1
검사를 위해 감사 레코드를 필터링할 수 있습니다. 전체 필터링 옵션 목록은 auditreduce(1M) 매뉴얼 페이지를 참조하십시오.
시작하기 전에
Audit Review 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
auditreduce -lowercase-option argument [optional-file]
소문자 옵션에 필요한 특정 인수입니다. 예를 들어, -c 옵션에는 ua와 같은 감사 클래스의 argument가 필요합니다.
특정 날짜의 모든 이벤트를 선택합니다. argument에 대한 날짜 형식은 yyymmdd입니다. 다른 날짜 옵션인 -b 및 -a는 특정 날짜 전후의 이벤트를 선택합니다.
특정 사용자에게 지정 가능한 모든 이벤트를 선택합니다. argument는 사용자 이름입니다. 다른 사용자 옵션인 -e는 유효 사용자 ID에 지정 가능한 모든 이벤트를 선택합니다.
사전 선택된 감사 클래스의 모든 이벤트를 선택합니다. argument는 감사 클래스 이름입니다.
특정 감사 이벤트의 모든 인스턴스를 선택합니다. argument는 감사 이벤트입니다.
객체 유형별로 선택합니다. 파일, 그룹, 파일 소유자, FMRI, pid 및 기타 객체 유형별로 선택하려면 이 옵션을 사용합니다.
감사 파일의 이름입니다.
전체 옵션 목록은 auditreduce(1M) 매뉴얼 페이지를 참조하십시오.
예 28-30 감사 파일 결합 및 줄이기
auditreduce 명령은 입력 파일을 결합할 때 관심이 적은 레코드를 없앨 수 있습니다. 예를 들어, auditreduce 명령을 사용하여 1개월이 지난 감사 파일에서 로그인 및 로그아웃 레코드만 유지할 수 있습니다. 전체 감사 추적을 검색해야 하는 경우 백업 매체에서 추적을 복구할 수 있습니다.
# cd /var/audit/audit_summary # auditreduce -O lo.summary -b 20100827 -c lo; compress *lo.summary
예 28-31 한 사용자의 감사 레코드를 요약 파일로 복사
이 예에서는 특정 사용자의 이름을 포함하는 감사 추적의 레코드가 병합됩니다. -e 옵션은 유효 사용자를 찾습니다. -u 옵션은 로그인 사용자를 찾습니다.
$ cd /var/audit/audit_summary $ auditreduce -e tamiko -O tamiko
이 파일에서 특정 이벤트를 찾을 수 있습니다. 다음 예에서는 사용자가 2010년 9월 7일에 로그인 및 로그아웃한 시간이 확인됩니다. 사용자의 이름이 파일 접미어로 있는 파일만 확인됩니다. 날짜의 짧은 형식은 yyyymmdd입니다.
# auditreduce -M tamiko -O tamikolo -d 20100907 -u tamiko -c lo
예 28-32 선택한 레코드를 단일 파일로 복사
이 예에서는 특정 일에 대한 로그인 및 로그아웃 레코드가 감사 추적에서 선택됩니다. 레코드는 대상 파일로 병합됩니다. 대상 파일은 감사 루트 디렉토리를 포함하는 파일 시스템 이외의 파일 시스템에 쓰여집니다.
# auditreduce -c lo -d 20100827 -O /var/audit/audit_summary/logins # ls /var/audit/audit_summary/*logins /var/audit/audit_summary/20100827183936.20100827232326.logins
praudit 명령을 사용하여 이진 감사 파일의 내용을 볼 수 있습니다. auditreduce 명령에서 출력을 파이프하거나 특정 감사 파일을 읽을 수 있습니다. -x 옵션은 추가 처리에 유용합니다.
시작하기 전에
Audit Review 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
다음 예에서는 동일 감사 이벤트에서 praudit 출력을 보여줍니다. sequence 토큰을 포함하도록 감사 정책이 설정되었습니다.
praudit -s 명령은 짧은 형식(한 행당 하나의 토큰)으로 감사 레코드를 표시합니다. -l 옵션을 사용하여 각 레코드를 한 행에 표시합니다.
$ auditreduce -c lo | praudit -s header,69,2,AUE_screenlock,,mach1,2010-10-14 08:02:56.348 -07:00 subject,jdoe,root,staff,jdoe,staff,856,50036632,82 0 mach1 return,success,0 sequence,1298
praudit -r 명령은 원시 형식(한 행당 하나의 토큰)으로 감사 레코드를 표시합니다. -l 옵션을 사용하여 각 레코드를 한 행에 표시합니다.
$ auditreduce -c lo | praudit -r 21,69,2,6222,0x0000,10.132.136.45,1287070091,698391050 36,26700,0,10,26700,10,856,50036632,82 0 10.132.136.45 39,0,0 47,1298
praudit -x 명령은 XML 형식(한 행당 하나의 토큰)으로 감사 레코드를 표시합니다. -l 옵션을 사용하여 한 행에 하나의 레코드에 대한 XML 출력을 표시합니다. 다음 목록은 이 인쇄 페이지에 맞추어 두 행의 출력으로 나누어집니다.
$ auditreduce -c lo | praudit -x <record version="2" event="screenlock - unlock" host="mach1" iso8601="2010-10-14 08:28:11.698 -07:00"> <subject audit-uid="jdoe" uid="root" gid="staff" ruid="jdoe rgid="staff" pid="856" sid="50036632" tid="82 0 mach1"/> <return errval="success" retval="0"/> <sequence seq-num="1298"/> </record>
예 28-33 전체 감사 추적 인쇄
인쇄 명령에 파이프를 사용하면 전체 감사 추적이 프린터로 출력됩니다. 보안상 이유로 프린터는 제한적인 액세스 권한을 가집니다.
# auditreduce | praudit | lp -d example.protected.printer
예 28-34 특정 감사 파일 보기
이 예에서는 요약 로그인 파일이 터미널 창에서 검사됩니다.
# cd /var/audit/audit_summary/logins # praudit 20100827183936.20100827232326.logins | more
예 28-35 감사 레코드를 XML 형식으로 표시
이 예에서는 감사 레코드가 XML 형식으로 변환됩니다.
# praudit -x 20100827183214.20100827215318.logins > 20100827.logins.xml
XML 파일은 브라우저에서 표시할 수 있습니다. 파일의 내용은 스크립트로 관련 정보를 추출하여 작업할 수 있습니다.
예 28-36 스크립트를 사용하여 praudit 출력 처리
praudit 명령의 출력을 텍스트 행으로 처리하고자 할 수 있습니다. 예를 들어, auditreduce 명령에서 선택할 수 없는 레코드를 선택하고자 할 수 있습니다. 간단한 셸 스크립트를 사용하여 praudit 명령의 출력을 처리할 수 있습니다. 다음 샘플 스크립트는 하나의 감사 레코드를 한 행에 표시하고 사용자 지정 문자열을 검색한 다음 감사 파일을 원래 형식으로 반환합니다.
#!/bin/sh # ## This script takes an argument of a user-specified string. # The sed command prefixes the header tokens with Control-A # The first tr command puts the audit tokens for one record # onto one line while preserving the line breaks as Control-A # praudit | sed -e '1,2d' -e '$s/^file.*$//' -e 's/^header/^aheader/' \\ | tr '\\012\\001' '\\002\\012' \\ | grep "$1" \\ Finds the user-specified string | tr '\\002' '\\012' Restores the original newline breaks
스크립트의 ^a는 ^과 a의 두 문자가 아닌 Ctrl-A입니다. 접두어는 텍스트로 나타날 수 있는 header 문자열에서 header 토큰을 구분합니다.
일반 오류
다음과 유사한 메시지는 praudit 명령을 사용할 수 있는 충분한 권한이 없음을 나타냅니다.
praudit: Can't assign 20090408164827.20090408171614.sys1.1 to stdin.
프로파일 셸에서 praudit 명령을 실행합니다. Audit Review 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
비정상적인 시스템 중단이 발생할 경우 감사 파일이 열린 상태에서 감사 서비스가 종료됩니다. 또는 파일 시스템에 액세스할 수 없게 되고 시스템이 강제로 새로운 파일 시스템으로 전환됩니다. 이러한 경우 감사 파일이 더 이상 감사 레코드에 사용되지 않더라도 감사 파일은 종료 시간 기록으로 not_terminated 문자열을 가집니다. auditreduce -O 명령을 사용하여 파일에 올바른 시간 기록을 지정합니다.
시작하기 전에
Audit Review 권한 프로파일이 지정된 관리자여야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# ls -R1t audit-directory*/* | grep not_terminated
하위 디렉토리의 파일을 나열합니다.
최근에서 가장 오래된 순서로 파일을 나열합니다.
파일을 한 열로 나열합니다.
auditreduce -O 명령에 오래된 파일의 이름을 지정합니다.
# auditreduce -O system-name old-not-terminated-file
# rm system-name old-not-terminated-file
예 28-37 닫힌 not_terminated 감사 파일 정리
다음 예에서는 not_terminated 파일을 찾고 이름을 바꾼 다음 원본을 제거합니다.
ls -R1t */* | grep not_terminated …/egret.1/20100908162220.not_terminated.egret …/egret.1/20100827215359.not_terminated.egret # cd */egret.1 # auditreduce -O egret 20100908162220.not_terminated.egret # ls -1t 20100908162220.not_terminated.egret Current audit file 20100827230920.20100830000909.egret Cleaned up audit file 20100827215359.not_terminated.egret Input (old) audit file # rm 20100827215359.not_terminated.egret # ls -1t 20100908162220.not_terminated.egret Current audit file 20100827230920.20100830000909.egret Cleaned up audit file
새 파일의 시작 시간 기록에는 not_terminated 파일에서 첫 감사 이벤트의 시간이 반영됩니다. 종료 시간 기록에는 파일에서 마지막 감사 이벤트의 시간이 반영됩니다.
보안 정책에서 모든 감사 데이터가 저장되도록 요구하는 경우 감사 레코드 손실을 막습니다.
시작하기 전에
root 역할을 맡아야 합니다. 자세한 내용은 지정된 관리 권한을 사용하는 방법을 참조하십시오.
p_minfree 속성을 사용합니다.
audit_warn 전자 메일 별칭은 디스크 공간이 최소 사용 가능 크기까지 채워지면 경고를 보냅니다. 예 28-17을 참조하십시오.
파일을 오프라인 매체에 백업하여 감사 파일을 아카이브합니다. 또한 아카이브 파일 시스템으로 파일을 이동할 수도 있습니다.
syslog 유틸리티를 사용하여 텍스트 감사 로그를 수집하는 경우 텍스트 로그를 아카이브합니다. 자세한 내용은 logadm(1M) 매뉴얼 페이지를 참조하십시오.
감사 추적과 함께 감사 레코드를 해석하는 데 필요한 정보를 아카이브합니다. 최소한 passwd, group 및 hosts 파일을 저장합니다. 또한 audit_event 및 audit_class 파일을 아카이브할 수 있습니다.
감사 파일 전용 ZFS 파일 시스템에서 압축을 사용하면 파일이 크게 줄어듭니다. 예는 전용 파일 시스템에서 감사 파일을 압축하는 방법을 참조하십시오.
또한 Oracle Solaris 11.1 관리: ZFS 파일 시스템의 ZFS 압축, 중복 제거 및 암호화 등록 정보 간의 상호 작용을 참조하십시오.
auditreduce 명령에 대한 옵션을 사용하여 감사 추적에서 요약 파일을 추출할 수 있습니다. 요약 파일에는 지정된 유형의 감사 이벤트에 대한 레코드만 포함됩니다. 요약 파일을 추출하려면 예 28-30 및 예 28-32를 참조하십시오.