lograpi_UnregisterTargetType 함수는 이전에 로그 라우팅 데몬에 등록된 대상 유형의 등록을 취소합니다.
이 함수는 성공하면 0을 반환합니다. 실패할 경우에는 부호 없는 정수 오류 코드를 반환하고 다음 값 표에 따라 전역 변수 errno에 값을 할당합니다.
|
반환 값 |
ERRNO |
의미 |
|---|---|---|
|
LOGRAPI_E_NULLPARM |
EINVAL |
code 매개 변수가 NULL입니다. |
|
LOGRAPI_E_NODEST |
ENOENT |
해당 대상 유형이 없습니다. |
중요! 대상 유형의 등록이 취소된 후에는 현재 세션 중에 다시 등록할 수 없습니다. 하지만 이후의 모든 레코드는 해당 대상으로 보내는 데 성공한 것처럼 표시됩니다. 따라서 대상 유형을 더 이상 사용하지 않을 것이 분명한 경우에만 해당 대상 유형의 등록을 취소하십시오.
int lograpi_UnregisterTargetType (const char *name);
name
등록을 취소할 대상 유형의 이름입니다.
lograpi_MakeStringMessage 함수는 감사 로그 레코드를 seaudit 및 seauditx가 사용하는 표준 형식의 한 행으로 된 텍스트 형식으로 변환합니다.
이 함수는 성공 시 감사 로그 데이터 문자열에 대한 문자 포인터를 반환합니다. 이 문자열은 이후에 해당 함수를 호출할 때 덮어쓰여지는 정적 메모리 영역에 보관됩니다.
이 함수가 실패할 경우에는 NULL을 반환합니다. 자세한 내용은 errno의 반환 값에서 확인하십시오. 입력 매개 변수로 NULL 포인터를 전달하면 오류가 생성됩니다. 가능한 오류는 다음과 같습니다.
|
반환 값 |
의미 |
|---|---|
|
EINVA |
포인터 매개 변수의 데이터가 NULL입니다. |
char * lograpi_MakeStringMessage (LOGRECORD *plr, void *data);
LogrApiSendFunc 함수에 전달된 감사 로그 레코드 구조에 대한 포인터입니다.
LogrApiSendFunc 함수에 전달된 압축되지 않은 감사 로그 레코드 정보에 대한 포인터입니다.
LogrApiSenseFunc는 selogrd 데몬이 초기화되고 다시 시작될 때 호출될 사용자 정의 감지 함수를 지정하는 함수 포인터 유형입니다. 감지 함수는 구성 파일 라우트 항목이 유효한지 여부를 확인(감지)합니다. 감지 함수는 각 구성 파일 행의 대상 필드 항목이 유효한지 테스트합니다. 예를 들어 대상 이름이 사용자 jsmith이면 LogrApiSenseFunc는 해당 이름의 사용자가 실제로 있는지 확인해야 합니다.
이 함수는 성공하면 0을 반환합니다. 실패하면 오류 코드를 반환합니다.
typedef int (*LogrApiSenseFunc) (SEOS_ROUTENTRY *pre);
유효성을 검사할 구성 파일 항목입니다.
LogrApiSendFunc는 사용자 정의 보내기 함수를 지정하는 함수 포인터 유형입니다. 사용자의 선택 조건과 일치하는 감사 로그 레코드가 발견되면 보내기 함수는 선택한 감사 로그 레코드를 사용자가 지정한 대상으로 전송합니다(보냅니다).
보내기 작업에 성공할 경우 이 함수는 0을 반환해야 합니다. 성공적으로 보낸 감사 로그 레코드는 LogrApiSendFunc에 다시 제출되지 않습니다.
보내기 작업에 실패할 경우 CA ControlMinder는 syslog 파일에 오류 알림을 입력하고 오류 플래그로 0이 아닌 정수를 반환합니다. 동일한 감사 로그 레코드가 무제한으로 다시 제출될 수 있습니다.
typedef int (*LogrApiSendFunc) (LOGRECORD *plr, SEOS_ROUTENTRY *pre, \
int notify, void *data);
감사 로그 설명 파일입니다.
감사 로그 레코드의 감사 대상에 대한 정보입니다.
다음과 같이 이 감사 로그 레코드가 알림 레코드인지 여부를 나타내는 플래그입니다.
감사 로그 레코드가 알림 레코드입니다.
감사 로그 레코드가 알림 레코드가 아닙니다.
감사 로그 레코드에 대한 포인터입니다.
LogrApiFreeFunc는 사용자 정의 해제 함수를 지정하는 함수 포인터 유형입니다. selogrd가 종료되거나 다시 시작된 경우 LogrApiFreeFunc는 이전에 등록된 함수에 할당된 메모리를 해제하는 해제 함수입니다. SEOS_ROUTENTRY 구조의 SendData 구성원은 FILE * 또는 CLIENT *와 같이 대상의 할당된 메모리에 대한 자리 표시자로 사용됩니다. 등록된 함수가 할당되지 않은 리소스를 사용하는 경우에는 포인터가 NULL일 수 있습니다.
selogrd 데몬은 seosd가 로그 파일을 전환할 때마다 종료된 후 다시 시작됩니다. 이 문제는 로그 파일이 지정된 최대 크기를 초과할 때마다 발생하는 경우가 있습니다. 사용 가능한 함수가 할당된 모든 메모리를 안정적으로 해제하는지 확인하십시오. 그렇지 않으면 시스템에 문제가 발생할 수 있습니다.
반환 값은 없습니다.
추가 작업이 필요하지 않은 경우 이 함수 포인터를 NULL로 설정하십시오.
typedef void (*LogrApiFreeFunc) (SEOS_ROUTENTRY *pre);
해제하거나 닫을 대상 항목입니다.
servlog_IsThereExit 함수는 종료 함수가 지정된 감사 레코드 유형에 대해 등록되었는지 여부를 테스트합니다. 각 감사 레코드는 로그인, 감사 또는 일반 리소스와 같은 특정 레코드 유형으로 정의됩니다. rectype의 값은 CA ControlMinder API와 함께 제공되는 헤더 파일 selogtype.h에 정의됩니다. rectype의 형식은 AUDIT_rectype입니다.
이 함수는 지정된 레코드 유형에 대한 종료 함수가 있으면 1을 반환하고, 그렇지 않으면 0을 반환합니다.
int servlog_IsThere Exit (int rectype);
이 특정 코드가 나타내는 레코드 유형에 대해 등록된 종료 함수가 있는지 테스트합니다.
servlog_RegisterExit 함수는 selogrcd 데몬이 특정 감사 레코드 유형을 받을 때 호출할 종료 함수를 등록합니다. CA ControlMinder의 각 감사 레코드는 로그인, 감사 또는 일반 리소스와 같은 특정 레코드 유형으로 정의됩니다. rectype의 값은 CA ControlMinder API와 함께 제공되는 헤더 파일 selogtype.h에 정의됩니다. rectype의 형식은 AUDIT_rectype입니다.
각 레코드 유형에 대해 둘 이상의 종료 함수를 등록할 수 있으며 CA ControlMinder는 각 레코드 유형에 대해 최대 16개의 종료 함수를 허용합니다. 함수가 등록되면 해당 함수에는 특정 유형의 종료 함수 목록에 있는 시퀀스 번호가 할당됩니다.
이 함수는 종료 초기화 중 종료 함수를 등록할 때 호출되어야 합니다. 이 함수는 일반적으로 driver_Register 함수에서 호출됩니다.
이 함수는 성공 시 0을 반환하고, 실패 시 오류 코드를 반환합니다.
int servlog_RegisterExit (int rectype, collectexitf func, int *chain);
종료 함수를 호출해야 하는 레코드 유형의 코드입니다.
rectype의 감사 레코드를 받을 때 제어권을 가져야 하는 사용자 함수에 대한 포인터입니다.
지정된 레코드 유형에 대한 종료 함수의 체인 번호입니다.
servlog_UnRegisterExit 함수는 servlog_RegisterExit에 대한 호출로 이전에 등록된 종료 함수를 등록 취소합니다. 종료 함수를 등록 취소한 후에는 더 이상 해당 함수를 호출할 수 없습니다.
이 함수는 성공 시 0을 반환하고, 실패 시 오류 코드를 반환합니다.
int servlog_UnRegisterExit (int rectype, int *chain);
감사 레코드 유형의 코드입니다.
등록 취소할 종료 함수의 번호입니다. 이 번호는 지정된 레코드 유형에 대한 종료 함수의 체인에서 가져오며 함수가 등록될 때 함수에 할당된 번호입니다.
이 단원에서는 LogRoute API 함수가 CA ControlMinder 데몬(UNIX의 경우) 및 서비스(Windows의 경우)와 서로 정보를 전달하는 데 사용하는 데이터 구조 및 각 데이터 구조의 모든 필드에 대해 설명합니다.
LogRoute API 함수는 두 가지 유형의 데이터 구조, 즉 감사 로그 레코드 구조와 정보 전달 구조에 액세스합니다.
각각 고유한 구조 형식을 갖는 여덟 개의 감사 로그 레코드 유형이 있습니다. 이 구조는 원본 파일 selogtype.h에서 찾을 수 있습니다. 다음 감사 로그 레코드 구조는 LogRoute API에 포함되어 있습니다.
데이터베이스 업데이트 이벤트에 사용됩니다.
데몬 종료 이벤트에 사용됩니다.
일반 리소스 검사 이벤트에 사용됩니다.
TCP/IP 요청 이벤트에 사용됩니다.
로그인 이벤트에 사용됩니다.
데몬 시작 이벤트에 사용됩니다.
사용자 추적 이벤트에 사용됩니다.
Watchdog 이벤트에 사용됩니다.
LogRoute API에는 CA ControlMinder 데몬과 LogRoute API 함수 간에 감사 로그 레코드, 구성 파일 정보 및 LogRoute API 함수 포인터를 전달하는 데 사용됩니다. 함수 간에 정보를 전달하는 데 사용되는 네 개의 데이터 구조에 대한 설명은 이 단원의 뒷부분에 나옵니다. 구조 자체는 원본 파일 lograpi.h에서 찾을 수 있습니다. 네 개의 정보 전달 구조는 다음과 같습니다.
감사 로그 레코드 헤더를 저장합니다.
감사 로그 레코드 데이터를 저장합니다.
구성 파일 항목을 저장합니다.
LogRoute API구현 함수를 포함합니다.
CA ControlMinder는 알림 정보를 데이터베이스에 사용자 또는 리소스 레코드와 연결된 문자열로 저장할 수 있도록 합니다. 관리자는 리소스에 대한 액세스 시도가 있을 때마다 알림을 보낼 메일 주소를 지정할 수 있습니다. 알림 요청은 감사 로그 파일에 특수한 감사 로그 레코드로 저장됩니다. selogrd는 알림 요청을 감사 로그 레코드에 지정된 대상의 메일 또는 화면 주소로 라우팅합니다.
특정 이벤트에 대한 알림 레코드는 해당 이벤트에 연결된 표준 감사 로그 레코드와 동일하되, 감사 로그 레코드의 처음 부분에 저장된 대상도 포함되어 있다는 차이점이 있습니다. 알림 레코드에 대한 로그 코드는 단순히 일반 감사 로그 레코드의 로그 코드를 2048만큼 오프셋한 것입니다. 예를 들어 일반 로그인 감사 로그 레코드의 로그 유형 코드가 1인 경우 알림 로그의 유형 코드는 2049가 됩니다. 감사 로그 레코드는 감사 로그 파일에 표시될 수 있으며 그 위에는 동일한 이벤트의 알림 코드가 옵니다.
알림 레코드 구조 이름은 SEOSNF_AUDIT로 시작됩니다. 정확한 이름은 해당하는 감사 로그 레코드의 이름을 따릅니다.
SEOS_AUDITADMIN
SEOS_AUDITDOWN
SEOS_AUDITGENR
SEOS_AUDITINWARN
SEOS_AUDITLOGIN
SEOS_AUDITSTART
SEOS_AUDITUSER
SEOS_AUDITWDWARN
각 구조에서 첫 번째 필드는 데이터베이스에서 가져온 대상 문자열을 포함하기 위한 최대 30 바이트의 버퍼인 SEOS_NOTIFYSTR입니다. 두 번째 필드는 이 알림 레코드에 해당하는 감사 로그 레코드입니다.
|
Copyright © 2013 CA.
All rights reserved.
|
|