Version 0.26.1

구성

팔코 데몬을 위한 구성

이 문서는 팔코 데몬 구성 옵션을 위한 것이다.

이들 옵션을 보려면 규칙 또는 경고를 확인한다.

팔코의 구성 파일은 key: value 또는 key: [value list] 쌍의 모음을 포함하는 YAML 파일이다.

모든 구성 옵션은 -o/-option key=value 플래그를 통해 커맨드 라인에서 재정의할 수 있다. key: [value list] 옵션의 경우 --option key.subkey=value 를 사용하여 개별 목록 항목을 지정할 수 있다.

현재 구성 옵션

ConfigTypeDescription
rules_fileList

규칙 파일(들)의 위치이다. 여기에는 별도 규칙 파일에 대한 하나 이상의 경로가 포함될 수 있다. 다음의 예는 동일하다.

rules_file:
- path1
- path2

rules_file: [path1, path2]

하나 이상의 -r 옵션을 통해 커맨드 라인에서 여러 규칙 파일을 지정할 수도 있다.

time_format_iso_8601Booleantrue(기본값은 false)인 경우, 로그 메시지 및 출력 메시지에 표시되는 시간 형식은 ISO 8601이다. 기본적으로, 시간은 /etc/localtime에 의해 관리되는 현지 시간대로 표시된다.
json_outputBoolean경고 메시지에 JSON 출력을 사용할지 여부이다.
json_include_output_propertyBooleanjson 출력을 사용할 때, output 속성 자체(예: File below a known binary directory opened for writing (user=root ....)를 JSON 출력에 포함할지 여부이다.
log_stderrBooleantrue 인 경우, 팔코의 활동을 설명하는 로그 메시지가 표준 에러(stderr)에 기록된다. 참고로 이는 경고 메시지가 아니라 — 팔코 자체에 대한 로그 메시지이다.
log_syslogBooleantrue 인 경우, Falco의 활동을 설명하는 로그 메시지가 syslog에 기록된다.
log_level다음의 가능한 값이 있는 열거형: emergency, alert, critical, error, warning, notice, info, debug로그에 포함할 최소 로그 레벨이다. 참고: 이러한 레벨은 규칙의 우선 순위 필드와 별개이다. 이것은 팔코 내부 로깅의 로그 레벨만을 나타낸다.
priority다음의 가능한 값이 있는 열거형: emergency, alert, critical, error, warning, notice, info, debug로드 및 실행할 최소 규칙 우선 순위 레벨이다. 이 레벨보다 높은 우선 순위를 가진 모든 규칙이 로드/실행된다.
syscall_event_drops다음의 하위-키(sub-key)를 포함한 목록:

  • actions: 다음의 부울 하위-키 중 하나 이상을 포함하는 목록
    • ignore: 아무것도 하지 않는다. 빈 목록이 제공되면 무시하는 것으로 간주된다.
    • log: 버퍼가 꽉 찼음을 알리는 CRITICAL 메시지를 기록한다.
    • alert: 버퍼가 꽉 찼음을 알리는 팔코 경고를 내보낸다.
    • exit: 0이 아닌 반환 코드(rc)로 팔코를 종료한다.
  • rate: 조치를 취할 수 있는 정상 상태 비율이다. 작업 단위/초. 기본값은 0.03333(30초당 하나의 작업)이다.
  • max_burst: 정상 상태 비율이 적용되기 전에 취할 수 있는 최대 조치 수이다.
이는 삭제된 시스템 호출 이벤트에 대한 작업을 제어한다.
buffered_outputsBoolean아래 출력 채널 중 하나에 대한 출력이 버퍼링되는지 여부이다. 기본값은 false이다.
outputs다음의 하위-키를 포함한 목록:

  • rate: <알림/초>
  • outputs: max_burst: <메시지 수>

토큰 버킷으로 구현된 조절 메커니즘은 팔코 알림 속도를 제한한다. 이 제한은 ratemax_burst 옵션으로 제어된다.

rate 는 초당 획득한 토큰 수(즉, 알림을 보낼 권리)이며, 기본값은 1이다. max_burst 는 처리 중인 최대 토큰 수이며, 기본값은 1000이다.

이들 기본값을 사용하면, 팔코는 초기 무음 기간 후에 최대 1000개의 알림을 보낸 다음, 이후에는 초당 최대 1개의 알림을 보낼 수 있다. 1000초 동안 활동이 없으면 전체 버스트가 다시 발생한다.

syslog_output다음의 하위-키를 포함한 목록:

  • enabled: [true|false]
true 인 경우, 팔코 경고가 syslog를 통해 전송된다.
file_output다음의 하위-키를 포함한 목록:

  • enabled: [true|false]
  • keep_alive: [true|false]
  • filename: <경로>

enabledtrue 로 설정되면, 팔코 경고가 filename 에 지정된 파일 경로로 전송된다.

keep_alivefalse(기본값)로 설정된 경우, 팔코는 모든 경고에 대해 파일을 다시 연다. true 인 경우, 팔코는 파일을 한 번 열고 모든 경고에 대해 열어 둔다. 팔코 CLI를 사용하여 --unbuffered 를 지정해야 할 수도 있다.

stdout_output다음의 하위-키를 포함한 목록:

  • enabled: [true|false]
enabledtrue 로 설정되면, 팔코 경고가 표준 출력(stdout)으로 전송된다.
program_output다음의 하위-키를 포함한 목록:

  • enabled: [true|false]
  • keep_alive: [true|false]

enabledtrue 로 설정되면, 팔코 경고가 프로그램에 전송된다.

keep_alivefalse(기본값)로 설정된 경우, 각 경고에 대해 프로그램을 실행한다. true 인 경우, 팔코는 프로그램을 한 번 생성하고 모든 경고에 대해 열어 둔다. 팔코 CLI를 사용하여 --unbuffered 를 지정해야 할 수도 있다.

program 설정은 각 경고에 대해 실행할 프로그램을 지정한다. 이것은 셸을 통해 시작되므로 추가 형식을 허용하는 커맨드 파이프라인을 지정할 수 있다.

http_output다음의 하위-키를 포함한 목록:

  • enabled: [true|false]
  • url: [http[s]://웹훅/의/경로/]
0.15.0 부터 ​​enabled가 true로 설정되면, 팔코 경고는 url 로 정의된 HTTP[s] URL로 전송된다. 현재 이것은 차단 작업이며, 이 출력은 keep_alive 를 지원하지 않는다.
webserver다음의 하위-키를 포함한 목록:

  • enabled: [true|false]
  • listen_port
  • k8s_audit_endpoint
  • ssl_enabled: [true|false]
  • ssl_certificate: <경로>

enabledtrue 로 설정되면, 팔코는 쿠버네티스 감사 이벤트를 수락하기 위해 임베디드 웹 서버를 시작한다.

listen_port 는 웹 서버가 수신할 포트를 지정한다. 기본값은 8765이다.

k8s_audit_endpoint 는 쿠버네티스 감사 이벤트를 수신할 URI를 지정한다. 기본값은 /k8s-audit 이다.

ssl_enabledssl_certificate 에 지정된 인증서를 사용하여 웹 서버에 대한 SSL 지원을 활성화한다. 지정된 ssl_certificate 파일에는 civitweb에서 문서화와 같은 키와 서버의 인증서가 포함되어야 한다.

grpc다음의 하위-키를 포함한 목록:

  • enabled: [true|false]
  • bind_address: [address:port|unix://<경로>.sock]
  • threadiness: <정수>
  • private_key: <경로>
  • cert_chain: <경로>
  • root_certs: <경로>

enabledtrue 로 설정되면, Falco는 gRPC API를 노출하기 위해 gRPC 서버를 삽입한다. 기본값은 false이다.

gRPC 서버는 TLS 인증서를 사용하는 클라이언트와 서버 간에 상호 인증으로만 사용할 수 있다. 인증서를 생성하는 방법은 여기에 설명되어 있다.

서버와 클라이언트 사이에서 유일한 공통점은 루트 인증서라는 것을 항상 기억한다. 모든 클라이언트는 서버와 동일한 루트 CA에서 서명한 자체 인증서를 생성해야 한다.

bind_address 는 gRPC 서버가 수신할 주소와 포트를 지정한다. 기본값은 0.0.0.0:5060이다.

threadiness 는 gRPC 요청을 제공하는 데 사용할 스레드 수를 정의한다. 또한 threadiness 단위당 인수가 10배인 콘텍스트 수에 영향을 준다. 기본값은 8이다.

서버 인증을 위한 개인 키의 private_key 경로이다. 기본값은 /etc/falco/certs/server.key이다.

서버 인증을 위한 공개 인증서의 cert_chain 경로이다. 기본값은 /etc/falco/certs/server.crt이다.

서버와 모든 클라이언트 간에 공통적인 CA 인증서(또는 체인)의 root_certs 경로이다. 기본값은 /etc/falco/certs/ca.crt이다.

grpc_output다음의 하위-키를 포함한 목록:

  • enabled: [true|false]
enabledtrue 로 설정되면, Falco는 gRPC 서버에 대한 출력 수집을 시작한다. 출력 클라이언트와 함께 사용하는 것이 중요하다. 출력 클라이언트의 예는 여기에서 확인할 수 있다.