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-logging 구현에서는 네트워크에 대한 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>
다음과 같습니다.
-
<timestamp>는 로그 메시지 생성 시간 및 날짜를 지정합니다. -
<message_serial>은 로그 메시지의 일련 번호를 나열합니다. -
acl_log(ovn_pinctrl0)는 OVN-Kubernetes 플러그인에 로그 메시지의 위치를 출력하는 리터럴 문자열입니다. -
<severity>는 로그 메시지의 심각도 수준을 설정합니다.allow및deny작업을 지원하는 감사 로깅을 활성화하면 두 가지 심각도 수준이 로그 메시지 출력에 표시됩니다. -
<name>은 네트워크 정책에서 생성된 OVN 네트워크 브리징 데이터베이스(nbdb)에 ACL-logging 구현의 이름을 지정합니다. -
<verdict>는허용또는드롭일 수 있습니다. -
<direction>은to-lport또는from-lport중 하나로, Pod에서 나가는 트래픽에 정책이 적용되었음을 나타냅니다. -
<flow>는OpenFlow프로토콜과 동일한 형식으로 패킷 정보를 표시합니다. 이 매개변수는 OVS(Open vSwitch) 필드로 구성됩니다.
다음 예제에서는 flow 매개변수가 시스템 메모리에서 패킷 정보를 추출하는 데 사용하는 OVS 필드를 보여줍니다.
패킷 정보를 추출하기 위해 flow 매개변수에서 사용하는 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>
다음과 같습니다.
-
&
lt;proto>는 프로토콜을 표시합니다. 유효한 값은tcp및udp입니다. -
VLAN ID가 내부 Pod 네트워크 트래픽에 설정되지 않았기 때문에
vlan_tci=0x0000은 VLAN 헤더를0으로 지정합니다. -
<src_mac>는 MAC(Media Access Control) 주소의 소스를 지정합니다. -
<source_mac>는 MAC 주소의 대상을 지정합니다. -
<SOURCE_IP>는 소스 IP 주소 나열 -
<target_ip>는 대상 IP 주소를 나열합니다. -
<
tos_dscp>는 다른 트래픽보다 특정 네트워크 트래픽을 분류하고 우선 순위를 지정할 수 있는 다양한 서비스 코드 포인트(DSCP) 값을 나타냅니다. -
<tos_ecn>은 네트워크에서 혼잡한 트래픽을 나타내는 ECN(Explicit Congestion Notification) 값을 나타냅니다. -
<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-fields 의 OVS 매뉴얼 페이지로 이동하십시오.
네트워크 정책에 대한 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
다음 표에서는 네임스페이스 주석 값에 대해 설명합니다.
| 필드 | 설명 |
|---|---|
|
|
|
|
|
허용 작업과 함께 ACL 규칙과 일치하는 모든 트래픽에 대한 네임스페이스 액세스를 |
|
|
|