| HOME / 정보공유 / AIX 명령어 모음

auditselect
auditselect auditselect 명령 목적 정의한 기준에 따라 분석할 감사 레코드를 선택합니다. 구문
auditselect { -e "Expression" | -f File} [ -m ] [ Trail ]
설명
auditselect 명령은 감사(auditing) 서브시스템의 일부입니다. /etc/security/audit/bincmds 파일에서 bin 파일 처리를 위한 백엔드 명령으로 구성설정되어 있을 경우, 이 명령은 auditbin 디먼에 의해 호출됩니다.
auditselect 명령은 식별된 기준과 일치하는 감사 레코드를 선택하여 표준 출력으로 레코드를 기록합니다. auditselect 명령을 사용하여, 분석을 위한 특정 레코드를 얻기 위해 감사 trail을 필터하거나 장기간의 기억영역을 위한 특정 레코드를 선택할 수 있습니다. 이 명령은 Trail 매개변수가 지정한 파일이나 표준 입력으로부터 stream이나 bin의 입력을 얻습니다. $bin 문자열을 Trail 매개변수의 값으로 지정하면 auditselect 명령을 호출할 때 auditbin 디먼이 현재 bin 파일의 경로 이름을 대체합니다. 선택 기준은 표현식으로 입력하거나 -f 플래그로 지정된 파일로부터 입력될 수 있습니다. bin 파일이 압축되었을 경우, auditselect 명령은 파일을 처리하기 전에 압축을 해제합니다.
스트림 데이터의 경우, /etc/security/audit/streamcmds 파일에서 auditstream 명령과 auditselect 명령을 모두 구성설정하거나, 명령행에서 두 명령을 입력하십시오.
플래그
-e"Expression" 선택 기준을 정의합니다. Expression 매개변수는 논리적 연산자로 결합된 하나 이상의 조건으로 구성됩니다.
-f File 선택 기준이 들어 있는 File을 지정합니다.
-m 레코드 확장자로 출력 감사 레코드를 지정합니다.
표현식 작성
유효한 표현식은 하나의 항목 또는 논리적 연산자로 결합된 하나 이상의 항목으로 구성됩니다.
논리적 연산자
논리적 연산자를 사용하면 하나 이상의 항목을 표현식에 사용할 수 있습니다. 하나 이상의 논리적 연산자가 있는 표현식을 평가할 때는 통상적인 선행 규칙이 적용됩니다. 평가의 순서를 지정하기 위해 괄호를 사용할 수도 있습니다. 유효한 논리적 연산자에는 다음과 같은 연산자가 포함됩니다.
&& (And) term1과 term2가 참이면 표현식 term1 && term2이 참입니다(선택됨).
|| (Or) term1 또는 term2가 참이면 표현식 term1 || term2가 참입니다(선택됨).
! (Not) term1이 참이 아니면 표현식 !term1이 참입니다(선택됨).
항목
표현식의 각 항목은 다음 형태를 취합니다.
Field Relational_Operator Value
필드
필드는 각 레코드의 감사 헤더에 있는 정보에 대응합니다. 필드의 값에는 다음이 포함됩니다.
event 감사 이벤트의 이름, 예를 들면, FILE_Open.
command(명령) 감사 이벤트를 생성한 명령.
result 감사 이벤트의 상태. result 필드의 값은 다음 중 하나여야 합니다.
OK
FAIL
FAIL_PRIV
FAIL_AUTH
FAIL_ACCESS
FAIL_DAC는 DAC(임의적 액세스 제어)의 거부로 인해 실패된 이벤트를 나타냅니다. 액세스 제어 리스트(ACL)는 공유 자원/오브젝트에 액세스하는 권한(사용권한)과 관련된 데이터가 들어 있는 정보 저장소(repository) 양식입니다. ACL은 DAC(디지탈에서 아날로그) 메커니즘으로 분류됩니다.
FAIL은 다른 모든 오류 코드와 일치합니다.
login 감사 이벤트를 생성한 프로세스의 로그인 사용자의 ID.
real 감사 이벤트를 생성한 프로세스의 실제 사용자의 ID.
pid 감사 이벤트를 생성한 프로세스의 ID.
ppid 감사 이벤트를 생성한 상위의 ID.
tid 이벤트를 생성한 커널 스레드의 ID.
time 감사 이벤트가 생성된 시각.
date 감사 이벤트가 생성된 일자.
host 레코드를 생성한 기계의 호스트 이름. 예약된 이름 UNKNOWN은 /etc/security/audit/hosts 파일에 나열되지 않은 모든 기계를 일치시키기 위해 사용될 수 있습니다.
관계 연산자
관계 연산자는 감사 레코드의 필드와 측정 값을 비교하는 데 사용됩니다. 다음과 같은 연산자는 유효한 관계 연산자입니다.
== 같다
!= 같지 않다
< 작다
> 크다
>= 크거나 같다
<= 작거나 같다
유효한 항목
유효한 항목은 필드, 관계 연산자 그리고 값으로 구성됩니다. 그리고 모든 관계 연산자와 값이 각 필드에 유효한 것은 아닙니다. 다음은 유효한 조합입니다.

`필드` | `유효한 연산자` | `유효한 값`
`event` | `= =, ! =` | `텍스트 문자열 감사 이벤트 이름`
`result` | `= =, ! =` | `텍스트 문자열 감사 상태 코드`
`command(명령)` | `= =, ! =` | `텍스트 문자열 명령 이름`
`pid` | `all` | `십진 정수 프로세스 ID`
`ppid` | `all` | `십진 정수 프로세스 ID`
`login` | `all` | `십진 정수 사용자 ID`
`login` | `= =, ! =` | `텍스트 문자열 사용자 이름`
`real` | `all` | `십진 정수 사용자 ID`
`real` | `= =, ! =` | `텍스트 문자열 사용자 이름`
`tid` | `all` | `십진 정수 스레드 ID`
`time` | `all` | `현행 로케일에 의해 지정된 형식의 문자열`
`date` | `all` | `현행 로케일에 의해 지정된 형식의 문자열`
`host` | `= =, ! =` | `텍스트 문자열 호스트 이름 또는 16자 cpu ID`

보안
액세스 제어: 이 명령은 루트 사용자와 감사 그룹 멤버에게 실행(x) 액세스 권한을 부여해야 합니다. 명령은 루트 사용자에 대한 setuid이어야 하고, 신뢰있는 전산구조 속성이 있어야 합니다.
예제
구성설정
bin 방식으로 수집된 데이터 레코드 중 USER_SU 또는 USER_Login 감사 이벤트와 일치하는 레코드를 선택하려면, 다음과 같이 입력하여 auditselect 명령을 /etc/security/audit/bincmds 파일에 추가하십시오.
/usr/sbin/auditselect -e "event== USER_SU || event== \
USER_Login" $bin >> /audit/trail.login
감사 기능이 사용 가능한 동안, 사용자 세션을 시작할 때 각 레코드는 현재 bin 파일에서 읽어 /audit/trail.login 파일에 기록합니다.
stream 방식으로 수집된 데이터 레코드 중 로그인에 성공하지 못한 사용자에 해당하는 레코드를 선택하려면, 다음과 같이 입력하여 auditselect 명령을 /etc/security/audit/streamcmds 파일에 있는 auditstream 스탠자(stanza)에 추가하십시오.
/usr/sbin/auditstream -c authentication | \
/usr/sbin/auditselect -e "event == \
USER_Login && result == FAIL" | \
/usr/sbin/auditpr -t 2 -v >> /dev/lpr2
하드카피 감사 트레일을 생성하기 위해 성공하지 못한 인증 이벤트의 레코드는 /dev/lpr2 라인 프린터에 기록됩니다.
인증 또는 로그인 이벤트 선택
감사 trail 파일에서 인증 오류를 포함하고 있는 모든 이벤트를 탐색하려면, 다음과 같이 입력하십시오.
/usr/sbin/auditselect -e "result == FAIL_AUTH"
/audit/oldtrail | /usr/sbin/auditpr -t -helt -v
인증이 거부되었기 때문에 실패한 이벤트에 대한 기록이 인쇄됩니다. 헤더 제목, 이벤트, 로그인 ID, 시간 필드, 그리고 감사 trail의 순으로 한번 인쇄됩니다.
1987년 5월 첫번째 주의 프라임 작업 시간 중에 smith가 로그인할 때 생성된 감사 레코드를 선택하려면, 다음과 같이 입력하십시오.
/usr/sbin/auditselect -f /aaa/bbb \
/audit/trail1987 | /usr/sbin/auditpr
/aaa/bbb 파일에는 다음 행이 있어야 합니다.
command == login && login == smith &&
time >= 08:00:00 && time <= 17:00:00 &&
date >= 05/01/87 && date <= 05/05/87
문자열 비교
감사 이벤트의 이름을 USER_Login 문자열과 비교하려면, 다음 중 하나를 입력하십시오.
"event == USER_Login"
"event != USER_Login"
passwd 명령이 감사 이벤트를 생성했는지 여부를 알아보려면, 다음을 사용하십시오.
"command == passwd"
passwd 명령이 감사 이벤트를 생성하지 않았는지 여부를 알아 보려면, 다음을 사용하십시오.
"command != passwd"
감사 상태를 OK 결과 문자열에 비교하려면, 다음과 같이 입력하십시오.
"result == OK"
감사 이벤트를 생성한 프로세스의 로그인 또는 실제 사용자 ID를 특정 사용자 ID(사용자 ID 014 또는 사용자 이름 carol)와 비교하려면, 다음 중 하나를 입력하십시오.
"login == 014"
"login != carol"
"login == 014 || login != carol"
"real == carol"
감사 이벤트를 생성한 프로세스나 프로세스의 상위의 ID를 프로세스 ID 2006와 비교하려면, 다음 중 하나를 입력하십시오.
"pid == 2006"
"pid != 2006"
"ppid == 2006"
주: 부등식 연산자(< =, > =, <, >)를 사용해 로그인 또는 실제 사용자 ID 및 프로세스 ID를 비교할 수 있지만, 대부분의 경우 부등식 연산자를 사용할 필요가 없다.
감사 이벤트가 작성된 시간을 08:03:00 시간 문자열과 비교하려면, 다음 중 하나를 입력하십시오.
"time == 08:03:00"
"time != 08:03:00"
"time < 08:03:00"
"time <= 08:03:00"
"time > 08:03:00"
"time >= 08:03:00"
08:03:00 시간 문자열과 비교 지정된 문자열과 맞는 감사 레코드가 선택됩니다. 시간 문자열은 현행 로케일에 의해 지정된 형식에 맞아야 합니다.
감사 이벤트가 작성된 일자를 05/05/89 일자 문자열과 비교하려면, 다음 중 하나를 입력하십시오.
"date == 05/03/89"
"date != 05/03/89"
"date < 05/03/89"
"date <= 05/03/89"
"date > 05/03/89"
"date >= 05/03/89"
05/05/89 날짜 문자열과 비교 지정된 문자열에 맞는 감사 레코드가 선택됩니다. 일자 문자열은 현행 로케일에 의해 지정된 형식에 맞아야 합니다.
파일
/usr/sbin/auditselect auditselect 명령의 경로를 지정합니다.
/etc/rc 시스템 초기화 명령을 포함하고 있습니다.
/etc/security/audit/config 감사 시스템 구성설정 정보를 포함하고 있습니다.
/etc/security/audit/events 시스템의 감사 이벤트를 포함하고 있습니다.
/etc/security/audit/objects 감사된 오브젝트(파일)에 대한 감사 이벤트를 포함하고 있습니다.
/etc/security/audit/bincmds auditbin 백엔드 명령을 포함하고 있습니다.
/etc/security/audit/streamcmds auditstream 명령을 포함하고 있습니다.
/etc/security/audit/hosts 호스트 이름 맵핑에 대한 CPU ID가 들어 있습니다.
관련 정보
audit 명령, auditcat 명령, auditconv 명령, auditpr 명령, auditstream 명령, env 명령.
auditbin 디먼.