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


selogrd 사용자 지정

로그 라우팅 데몬에 사용자 정의 기능을 추가하려면 컴파일 후 공유 라이브러리에 연결할 수 있는 C 언어 프로그램을 작성하십시오. LogRoute API 함수는 다음 세 부분으로 구성됩니다.

등록 부분은 LogRoute API 함수를 초기화하고 CA ControlMinder 데몬에 등록합니다. 구현 부분은 표준 로그 라우팅 데몬 프로세스에 작업을 추가합니다. 종료 부분은 데몬이 종료될 때 프로그램의 등록을 취소하고 올바르게 종료합니다.

LogRoute API 함수는 CA ControlMinder가 제공하는 함수 및 헤더 파일을 이용합니다. 모든 로그 라우팅 함수에 동일한 등록, 구현 및 종료 함수를 사용합니다.

LogRoute API 함수가 준비되고 나면 로그 라우팅 데몬 구성 파일에 공유 라이브러리를 추가할 수 있습니다.

로그 라우팅 데몬은 구성 파일을 사용하여 선택할 감사 로그 레코드와 해당 레코드를 보낼 위치를 결정합니다. 구성 파일을 편집하여 특정 감사 정보를 로그 라우팅 데몬이 지원하는 대상 중에서 선택한 다양한 대상으로 라우팅할 수 있습니다.

참고: 구성 파일과 selogrd 데몬의 구문에 대한 자세한 내용은 참조 안내서를 참조하십시오.

추가 정보:

LogRoute 라이브러리를 사용하여 컴파일 및 연결

함수

LogRoute API 함수

LogRoute API 함수는 다음과 같은 미리 정의된 selogrd 함수를 제공하는 CA ControlMinder에서 기본적으로 제공되는 함수 및 헤더 파일을 사용합니다.

CA ControlMinder는 다음과 같은 미리 정의된 selogrcd 함수를 제공합니다.

모든 LogRoute API 함수에는 구현된 각 대상 유형에 대한 다음 대상 함수도 포함되어야 합니다.

LOGRAPI_FUNCS 구조에 함께 그룹화되는 이 세 개의 함수는 pfSend, pfFree 및 pfSense 포인터를 사용하여 액세스됩니다. 각 함수는 작업에 따라 완전히 달라지므로 API 프로그래머가 이러한 각 함수에 사용되는 코드를 제공해야 합니다.

LogRoute 라이브러리를 사용하여 컴파일 및 연결

이 단원에서는 CA ControlMinder 데몬을 사용하여 LogRoute API 함수를 컴파일하고 연결하기 위한 지침을 제공합니다. 이 지침은 가장 일반적인 시스템 구성을 설명하는 일반적인 지침입니다. 각 시스템마다 관련된 고유 요구 사항이 있습니다. 특정 시스템의 컴파일러 및 링커에 대한 정확한 내용은 시스템 안내서를 참조하십시오.

응용 프로그램 컴파일

LogRoute API 함수에 헤더 파일 lograpi.hselogtype.h를 포함해야 합니다. 이러한 파일은 API 하위 디렉터리에 있습니다. 파일의 위쪽에 다음 두 행을 추가하십시오.

#include <lograpi.h>
#include <selogtype.h>

모든 ANSI‑C 호환 컴파일러를 사용할 수 있습니다.

응용 프로그램과 LogRoute 라이브러리 연결

코드를 컴파일한 후에는 컴파일된 버전의 함수를 포함하는 공유 라이브러리를 생성하십시오. apisamples 디렉터리에는 이 프로세스를 보여 주는 샘플 로그 라우팅 함수와 메이크파일이 있습니다. 공유 라이브러리용으로 컴파일하려면 일반적으로 위치 독립적인 코드를 생성하기 위한 추가 컴파일러 매개 변수가 필요합니다. 특정 시스템에서 공유 라이브러리를 생성하는 방법에 대한 자세한 내용은 사용 중인 컴파일러 또는 링커의 설명서를 참조하십시오.

코드를 작성하고 공유 라이브러리를 생성한 후에는 코드를 연결할 데몬과 관련된 "주문형" 공유 라이브러리에 해당 공유 라이브러리를 추가하십시오.

selogrd에 대한 공유 라이브러리를 작성한 경우 이 공유 라이브러리를 ACDir/etc/selogrd.ext 파일에 추가하십시오. selogrcd에 대한 공유 라이브러리를 작성한 경우 이 공유 라이브러리를 ACDir/etc/selogrcd.ext 파일에 추가하십시오.

각 파일에는 드라이버 이름과 공유 라이브러리 경로를 나타내는 두 개의 열이 있습니다. 규칙에 따라 드라이버 이름은 대상 유형과 동일한 이름을 갖는 문자열이지만 유효한 C 언어 기호일 수도 있습니다.

예를 들어 Pager를 구현하는 코드를 작성한 경우 대상 이름은 pager여야 하며 전체 파일 항목은 다음과 같이 됩니다.

pager /usr/local/lib/libseospager.so

이 파일 항목은 selogrd 데몬이 시작 시 공유 라이브러리 /usr/local/lib/libseospager.so를 로드하고 해당 함수를 호출함을 의미합니다.

일부 시스템은 _init라는 미리 정의된 함수를 지원하지만 대신 driver_RegisterDestination 함수를 사용하는 것이 좋습니다. 이 함수가 공유 라이브러리에서 호출되는 첫 번째 함수입니다.

driver_RegisterDestination 함수는 새 대상 유형을 등록합니다. 데몬 종료 시에는 미리 정의된 _fini 대신 driver_UnregisterDestination 함수를 사용하는 것이 좋습니다.

참고: 미리 정의된 시스템 함수 대신 CA ControlMinder 함수를 사용하면 코드의 이식성을 향상시킬 수 있습니다.

selogrcd 데몬은 selogrd와 동일한 파일 구성 형식을 사용합니다. 하지만 selogrcd는 driver_Register 및 driver_UnRegister 함수를 검색합니다. driver_UnRegister 함수는 필요하지 않은 경우 생략해도 됩니다.