이전 항목: 로그 파일의 형식다음 항목: SEOS_AUDITLOGIN


lograpi_UnregisterTargetType 함수

lograpi_UnregisterTargetType 함수는 이전에 로그 라우팅 데몬에 등록된 대상 유형의 등록을 취소합니다.

이 함수는 성공하면 0을 반환합니다. 실패할 경우에는 부호 없는 정수 오류 코드를 반환하고 다음 값 표에 따라 전역 변수 errno에 값을 할당합니다.

반환 값

ERRNO

의미

LOGRAPI_E_NULLPARM

EINVAL

code 매개 변수가 NULL입니다.

LOGRAPI_E_NODEST

ENOENT

해당 대상 유형이 없습니다.

중요! 대상 유형의 등록이 취소된 후에는 현재 세션 중에 다시 등록할 수 없습니다. 하지만 이후의 모든 레코드는 해당 대상으로 보내는 데 성공한 것처럼 표시됩니다. 따라서 대상 유형을 더 이상 사용하지 않을 것이 분명한 경우에만 해당 대상 유형의 등록을 취소하십시오.

int lograpi_UnregisterTargetType (const char *name);
name

등록을 취소할 대상 유형의 이름입니다.

lograpi_MakeStringMessage 함수

lograpi_MakeStringMessage 함수는 감사 로그 레코드를 seaudit 및 seauditx가 사용하는 표준 형식의 한 행으로 된 텍스트 형식으로 변환합니다.

이 함수는 성공 시 감사 로그 데이터 문자열에 대한 문자 포인터를 반환합니다. 이 문자열은 이후에 해당 함수를 호출할 때 덮어쓰여지는 정적 메모리 영역에 보관됩니다.

이 함수가 실패할 경우에는 NULL을 반환합니다. 자세한 내용은 errno의 반환 값에서 확인하십시오. 입력 매개 변수로 NULL 포인터를 전달하면 오류가 생성됩니다. 가능한 오류는 다음과 같습니다.

반환 값

의미

EINVA

포인터 매개 변수의 데이터가 NULL입니다.

char * lograpi_MakeStringMessage (LOGRECORD *plr, void *data);
plr

LogrApiSendFunc 함수에 전달된 감사 로그 레코드 구조에 대한 포인터입니다.

data

LogrApiSendFunc 함수에 전달된 압축되지 않은 감사 로그 레코드 정보에 대한 포인터입니다.

추가 정보:

lograpi_InterpretRecord 함수

LogrApiSenseFunc 함수

LogrApiSenseFunc는 selogrd 데몬이 초기화되고 다시 시작될 때 호출될 사용자 정의 감지 함수를 지정하는 함수 포인터 유형입니다. 감지 함수는 구성 파일 라우트 항목이 유효한지 여부를 확인(감지)합니다. 감지 함수는 각 구성 파일 행의 대상 필드 항목이 유효한지 테스트합니다. 예를 들어 대상 이름이 사용자 jsmith이면 LogrApiSenseFunc는 해당 이름의 사용자가 실제로 있는지 확인해야 합니다.

이 함수는 성공하면 0을 반환합니다. 실패하면 오류 코드를 반환합니다.

typedef int (*LogrApiSenseFunc) (SEOS_ROUTENTRY *pre);
pre

유효성을 검사할 구성 파일 항목입니다.

LogrApiSendFunc 함수

LogrApiSendFunc는 사용자 정의 보내기 함수를 지정하는 함수 포인터 유형입니다. 사용자의 선택 조건과 일치하는 감사 로그 레코드가 발견되면 보내기 함수는 선택한 감사 로그 레코드를 사용자가 지정한 대상으로 전송합니다(보냅니다).

보내기 작업에 성공할 경우 이 함수는 0을 반환해야 합니다. 성공적으로 보낸 감사 로그 레코드는 LogrApiSendFunc에 다시 제출되지 않습니다.

보내기 작업에 실패할 경우 CA ControlMinder는 syslog 파일에 오류 알림을 입력하고 오류 플래그로 0이 아닌 정수를 반환합니다. 동일한 감사 로그 레코드가 무제한으로 다시 제출될 수 있습니다.

typedef int (*LogrApiSendFunc) (LOGRECORD *plr, SEOS_ROUTENTRY  *pre, \
                                           int  notify,  void *data);
plr

감사 로그 설명 파일입니다.

pre

감사 로그 레코드의 감사 대상에 대한 정보입니다.

notify

다음과 같이 이 감사 로그 레코드가 알림 레코드인지 여부를 나타내는 플래그입니다.

1(TRUE)

감사 로그 레코드가 알림 레코드입니다.

0(FALSE)

감사 로그 레코드가 알림 레코드가 아닙니다.

data

감사 로그 레코드에 대한 포인터입니다.

추가 정보:

LogrApiFreeFunc 함수

LogrApiFreeFunc 함수

LogrApiFreeFunc는 사용자 정의 해제 함수를 지정하는 함수 포인터 유형입니다. selogrd가 종료되거나 다시 시작된 경우 LogrApiFreeFunc는 이전에 등록된 함수에 할당된 메모리를 해제하는 해제 함수입니다. SEOS_ROUTENTRY 구조의 SendData 구성원은 FILE * 또는 CLIENT *와 같이 대상의 할당된 메모리에 대한 자리 표시자로 사용됩니다. 등록된 함수가 할당되지 않은 리소스를 사용하는 경우에는 포인터가 NULL일 수 있습니다.

selogrd 데몬은 seosd가 로그 파일을 전환할 때마다 종료된 후 다시 시작됩니다. 이 문제는 로그 파일이 지정된 최대 크기를 초과할 때마다 발생하는 경우가 있습니다. 사용 가능한 함수가 할당된 모든 메모리를 안정적으로 해제하는지 확인하십시오. 그렇지 않으면 시스템에 문제가 발생할 수 있습니다.

반환 값은 없습니다.

추가 작업이 필요하지 않은 경우 이 함수 포인터를 NULL로 설정하십시오.

typedef void (*LogrApiFreeFunc) (SEOS_ROUTENTRY *pre);
pre

해제하거나 닫을 대상 항목입니다.

servlog_IsThereExit 함수

servlog_IsThereExit 함수는 종료 함수가 지정된 감사 레코드 유형에 대해 등록되었는지 여부를 테스트합니다. 각 감사 레코드는 로그인, 감사 또는 일반 리소스와 같은 특정 레코드 유형으로 정의됩니다. rectype의 값은 CA ControlMinder API와 함께 제공되는 헤더 파일 selogtype.h에 정의됩니다. rectype의 형식은 AUDIT_rectype입니다.

이 함수는 지정된 레코드 유형에 대한 종료 함수가 있으면 1을 반환하고, 그렇지 않으면 0을 반환합니다.

int servlog_IsThere Exit (int rectype);
rectype

이 특정 코드가 나타내는 레코드 유형에 대해 등록된 종료 함수가 있는지 테스트합니다.

servlog_RegisterExit 함수

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

종료 함수를 호출해야 하는 레코드 유형의 코드입니다.

func

rectype의 감사 레코드를 받을 때 제어권을 가져야 하는 사용자 함수에 대한 포인터입니다.

chain

지정된 레코드 유형에 대한 종료 함수의 체인 번호입니다.

servlog_UnRegisterExit 함수

servlog_UnRegisterExit 함수는 servlog_RegisterExit에 대한 호출로 이전에 등록된 종료 함수를 등록 취소합니다. 종료 함수를 등록 취소한 후에는 더 이상 해당 함수를 호출할 수 없습니다.

이 함수는 성공 시 0을 반환하고, 실패 시 오류 코드를 반환합니다.

int servlog_UnRegisterExit (int rectype, int *chain);
rectype

감사 레코드 유형의 코드입니다.

chain

등록 취소할 종료 함수의 번호입니다. 이 번호는 지정된 레코드 유형에 대한 종료 함수의 체인에서 가져오며 함수가 등록될 때 함수에 할당된 번호입니다.

구조 및 데이터 형식

이 단원에서는 LogRoute API 함수가 CA ControlMinder 데몬(UNIX의 경우) 및 서비스(Windows의 경우)와 서로 정보를 전달하는 데 사용하는 데이터 구조 및 각 데이터 구조의 모든 필드에 대해 설명합니다.

LogRoute API 함수는 두 가지 유형의 데이터 구조, 즉 감사 로그 레코드 구조와 정보 전달 구조에 액세스합니다.

감사 로그 레코드 구조

각각 고유한 구조 형식을 갖는 여덟 개의 감사 로그 레코드 유형이 있습니다. 이 구조는 원본 파일 selogtype.h에서 찾을 수 있습니다. 다음 감사 로그 레코드 구조는 LogRoute API에 포함되어 있습니다.

SEOS_AUDITADMIN

데이터베이스 업데이트 이벤트에 사용됩니다.

SEOS_AUDITDOWN

데몬 종료 이벤트에 사용됩니다.

SEOS_AUDITGENR

일반 리소스 검사 이벤트에 사용됩니다.

SEOS_AUDITINWARN

TCP/IP 요청 이벤트에 사용됩니다.

SEOS_AUDITLOGIN

로그인 이벤트에 사용됩니다.

SEOS_AUDITSTART

데몬 시작 이벤트에 사용됩니다.

SEOS_AUDITUSER

사용자 추적 이벤트에 사용됩니다.

SEOS_AUDITWDWARN

Watchdog 이벤트에 사용됩니다.

LogRoute API에는 CA ControlMinder 데몬과 LogRoute API 함수 간에 감사 로그 레코드, 구성 파일 정보 및 LogRoute API 함수 포인터를 전달하는 데 사용됩니다. 함수 간에 정보를 전달하는 데 사용되는 네 개의 데이터 구조에 대한 설명은 이 단원의 뒷부분에 나옵니다. 구조 자체는 원본 파일 lograpi.h에서 찾을 수 있습니다. 네 개의 정보 전달 구조는 다음과 같습니다.

LOGRECHDR

감사 로그 레코드 헤더를 저장합니다.

LOGRECORD

감사 로그 레코드 데이터를 저장합니다.

SEOS_ROUTENTRY

구성 파일 항목을 저장합니다.

LOGRAPI_FUNCS

LogRoute API구현 함수를 포함합니다.

알림 감사 로그 레코드

CA ControlMinder는 알림 정보를 데이터베이스에 사용자 또는 리소스 레코드와 연결된 문자열로 저장할 수 있도록 합니다. 관리자는 리소스에 대한 액세스 시도가 있을 때마다 알림을 보낼 메일 주소를 지정할 수 있습니다. 알림 요청은 감사 로그 파일에 특수한 감사 로그 레코드로 저장됩니다. selogrd는 알림 요청을 감사 로그 레코드에 지정된 대상의 메일 또는 화면 주소로 라우팅합니다.

특정 이벤트에 대한 알림 레코드는 해당 이벤트에 연결된 표준 감사 로그 레코드와 동일하되, 감사 로그 레코드의 처음 부분에 저장된 대상도 포함되어 있다는 차이점이 있습니다. 알림 레코드에 대한 로그 코드는 단순히 일반 감사 로그 레코드의 로그 코드를 2048만큼 오프셋한 것입니다. 예를 들어 일반 로그인 감사 로그 레코드의 로그 유형 코드가 1인 경우 알림 로그의 유형 코드는 2049가 됩니다. 감사 로그 레코드는 감사 로그 파일에 표시될 수 있으며 그 위에는 동일한 이벤트의 알림 코드가 옵니다.

알림 레코드 구조 이름은 SEOSNF_AUDIT로 시작됩니다. 정확한 이름은 해당하는 감사 로그 레코드의 이름을 따릅니다.

SEOSNF_AUDITADMIN

SEOS_AUDITADMIN

SEOSNF_AUDITDOWN

SEOS_AUDITDOWN

SEOSNF_AUDITGENR

SEOS_AUDITGENR

SEOSNF_AUDITINWARN

SEOS_AUDITINWARN

SEOSNF_AUDITLOGIN

SEOS_AUDITLOGIN

SEOSNF_AUDITSTART

SEOS_AUDITSTART

SEOSNF_AUDITUSER

SEOS_AUDITUSER

SEOSNF_AUDITWDWARN

SEOS_AUDITWDWARN

각 구조에서 첫 번째 필드는 데이터베이스에서 가져온 대상 문자열을 포함하기 위한 최대 30 바이트의 버퍼인 SEOS_NOTIFYSTR입니다. 두 번째 필드는 이 알림 레코드에 해당하는 감사 로그 레코드입니다.