4.2. 감사 로깅
감사 로그의 대상을 Syslog 서버나 UNIX 도메인 소켓 등으로 구성할 수 있습니다. 추가 구성에 관계없이 감사 로그는 항상 클러스터의 각 OVN-Kubernetes Pod의 /var/log/ovn/acl-audit-log.log에 저장됩니다.
각 네임스페이스 구성에 k8s.ovn.org/acl-logging 섹션을 주석으로 지정하여 각 네임스페이스에 대한 감사 로깅을 활성화할 수 있습니다. k8s.ovn.org/acl-logging 섹션에서 네임스페이스에 대한 감사 로깅을 활성화하려면 allow , deny , 또는 두 값을 모두 지정해야 합니다.
네트워크 정책에서는 Pass 작업 집합을 규칙으로 설정하는 것을 지원하지 않습니다.
ACL 로깅 구현은 네트워크에 대한 액세스 제어 목록(ACL) 이벤트를 기록합니다. 이러한 로그를 확인하여 잠재적인 보안 문제를 분석할 수 있습니다.
네임스페이스 주석의 예
기본 ACL 로깅 구성 값을 보려면 cluster-network-03-config.yml 파일에서 policyAuditConfig 객체를 확인하세요. 필요한 경우 이 파일에서 로그 파일 매개변수에 대한 ACL 로깅 구성 값을 변경할 수 있습니다.
로깅 메시지 형식은 RFC5424에서 정의한 syslog와 호환됩니다. syslog 기능은 구성 가능하며 기본값은 local0입니다. 다음 예에서는 로그 메시지에 출력되는 주요 매개변수와 해당 값을 보여줍니다.
매개변수와 해당 값을 출력하는 로깅 메시지 예
<timestamp>|<message_serial>|acl_log(ovn_pinctrl0)|<severity>|name="<acl_name>", verdict="<verdict>", severity="<severity>", direction="<direction>": <flow>
<timestamp>|<message_serial>|acl_log(ovn_pinctrl0)|<severity>|name="<acl_name>", verdict="<verdict>", severity="<severity>", direction="<direction>": <flow>
다음과 같습니다.
-
<타임스탬프>는로그 메시지가 생성된 시간과 날짜를 나타냅니다. -
<message_serial>은로그 메시지의 일련 번호를 나열합니다. -
acl_log(ovn_pinctrl0)은 OVN-Kubernetes 플러그인에서 로그 메시지의 위치를 출력하는 리터럴 문자열입니다. -
<심각도>는로그 메시지의 심각도 수준을 설정합니다.허용및거부작업을 지원하는 감사 로깅을 활성화하면 로그 메시지 출력에 두 가지 심각도 수준이 표시됩니다. -
<name>은네트워크 정책에 의해 생성된 OVN 네트워크 브리징 데이터베이스(nbdb)의 ACL 로깅 구현 이름을 나타냅니다. -
<verdict>는allow또는drop이될 수 있습니다. -
<direction>은to-lport또는from-lport가 될 수 있으며, 해당 정책이 Pod로 가는 트래픽이나 Pod에서 멀어지는 트래픽에 적용되었음을 나타냅니다. -
<flow>는OpenFlow프로토콜과 동일한 형식으로 패킷 정보를 보여줍니다. 이 매개변수는 OVS(Open vSwitch) 필드로 구성됩니다.
다음 예에서는 흐름 매개변수가 시스템 메모리에서 패킷 정보를 추출하는 데 사용하는 OVS 필드를 보여줍니다.
패킷 정보를 추출하기 위해 흐름 매개변수에서 사용되는 OVS 필드의 예
<proto>,vlan_tci=0x0000,dl_src=<src_mac>,dl_dst=<source_mac>,nw_src=<source_ip>,nw_dst=<target_ip>,nw_tos=<tos_dscp>,nw_ecn=<tos_ecn>,nw_ttl=<ip_ttl>,nw_frag=<fragment>,tp_src=<tcp_src_port>,tp_dst=<tcp_dst_port>,tcp_flags=<tcp_flags>
<proto>,vlan_tci=0x0000,dl_src=<src_mac>,dl_dst=<source_mac>,nw_src=<source_ip>,nw_dst=<target_ip>,nw_tos=<tos_dscp>,nw_ecn=<tos_ecn>,nw_ttl=<ip_ttl>,nw_frag=<fragment>,tp_src=<tcp_src_port>,tp_dst=<tcp_dst_port>,tcp_flags=<tcp_flags>
다음과 같습니다.
-
<proto>는프로토콜을 나타냅니다. 유효한 값은tcp와udp입니다. -
vlan_tci=0x0000은내부 Pod 네트워크 트래픽에 대한 VLAN ID가 설정되지 않았기 때문에 VLAN 헤더를0으로 나타냅니다. -
<src_mac>은MAC(Media Access Control) 주소에 대한 소스를 지정합니다. -
<source_mac>은MAC 주소의 대상을 지정합니다. -
<source_ip>는소스 IP 주소를 나열합니다. -
<target_ip>는대상 IP 주소를 나열합니다. -
<tos_dscp>는다른 트래픽보다 특정 네트워크 트래픽을 분류하고 우선순위를 지정하기 위한 DSCP(Differentiated Services Code Point) 값을 나타냅니다. -
<tos_ecn>은 네트워크의 혼잡한 트래픽을 나타내는 명시적 혼잡 알림(ECN) 값을 나타냅니다. -
<ip_ttl>은패킷의 TTP(Time To Live) 정보를 나타냅니다. -
<fragment>는일치시킬 IP 조각 또는 IP 비조각의 유형을 지정합니다. -
<tcp_src_port>는TCP 및 UDP 프로토콜의 포트 소스를 보여줍니다. -
<tcp_dst_port>는TCP 및 UDP 프로토콜의 대상 포트를 나열합니다. -
<tcp_flags>는SYN,ACK,PSH등 다양한 플래그를 지원합니다. 여러 값을 설정해야 하는 경우 각 값은 세로 막대(|)로 구분됩니다. UDP 프로토콜은 이 매개변수를 지원하지 않습니다.
이전 필드 설명에 대한 자세한 내용은 OVS 매뉴얼 페이지에서 ovs-fields를 참조하세요.
네트워크 정책에 대한 ACL 거부 로그 항목 예
2023-11-02T16:28:54.139Z|00004|acl_log(ovn_pinctrl0)|INFO|name="NP:verify-audit-logging:Ingress", verdict=drop, severity=alert, direction=to-lport: tcp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:01,dl_dst=0a:58:0a:81:02:23,nw_src=10.131.0.39,nw_dst=10.129.2.35,nw_tos=0,nw_ecn=0,nw_ttl=62,nw_frag=no,tp_src=58496,tp_dst=8080,tcp_flags=syn 2023-11-02T16:28:55.187Z|00005|acl_log(ovn_pinctrl0)|INFO|name="NP:verify-audit-logging:Ingress", verdict=drop, severity=alert, direction=to-lport: tcp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:01,dl_dst=0a:58:0a:81:02:23,nw_src=10.131.0.39,nw_dst=10.129.2.35,nw_tos=0,nw_ecn=0,nw_ttl=62,nw_frag=no,tp_src=58496,tp_dst=8080,tcp_flags=syn 2023-11-02T16:28:57.235Z|00006|acl_log(ovn_pinctrl0)|INFO|name="NP:verify-audit-logging:Ingress", verdict=drop, severity=alert, direction=to-lport: tcp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:01,dl_dst=0a:58:0a:81:02:23,nw_src=10.131.0.39,nw_dst=10.129.2.35,nw_tos=0,nw_ecn=0,nw_ttl=62,nw_frag=no,tp_src=58496,tp_dst=8080,tcp_flags=syn
2023-11-02T16:28:54.139Z|00004|acl_log(ovn_pinctrl0)|INFO|name="NP:verify-audit-logging:Ingress", verdict=drop, severity=alert, direction=to-lport: tcp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:01,dl_dst=0a:58:0a:81:02:23,nw_src=10.131.0.39,nw_dst=10.129.2.35,nw_tos=0,nw_ecn=0,nw_ttl=62,nw_frag=no,tp_src=58496,tp_dst=8080,tcp_flags=syn
2023-11-02T16:28:55.187Z|00005|acl_log(ovn_pinctrl0)|INFO|name="NP:verify-audit-logging:Ingress", verdict=drop, severity=alert, direction=to-lport: tcp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:01,dl_dst=0a:58:0a:81:02:23,nw_src=10.131.0.39,nw_dst=10.129.2.35,nw_tos=0,nw_ecn=0,nw_ttl=62,nw_frag=no,tp_src=58496,tp_dst=8080,tcp_flags=syn
2023-11-02T16:28:57.235Z|00006|acl_log(ovn_pinctrl0)|INFO|name="NP:verify-audit-logging:Ingress", verdict=drop, severity=alert, direction=to-lport: tcp,vlan_tci=0x0000,dl_src=0a:58:0a:81:02:01,dl_dst=0a:58:0a:81:02:23,nw_src=10.131.0.39,nw_dst=10.129.2.35,nw_tos=0,nw_ecn=0,nw_ttl=62,nw_frag=no,tp_src=58496,tp_dst=8080,tcp_flags=syn
다음 표에서는 네임스페이스 주석 값에 대해 설명합니다.
| 필드 | 설명 |
|---|---|
|
|
|
|
|
|
|
|
|