8.9. nftables 규칙 디버깅
nftables 프레임워크는 관리자가 규칙을 디버깅하고 패킷이 일치하는 경우 다양한 옵션을 제공합니다.
8.9.1. 카운터를 사용하여 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
규칙이 일치하는지 확인하려면 카운터를 사용할 수 있습니다.
-
기존 규칙에 카운터를 추가하는 프로시저에 대한 자세한 내용은
네트워킹 구성 및 관리의기존 규칙에 카운터 추가를 참조하십시오.
사전 요구 사항
- 규칙을 추가하려는 체인이 있습니다.
프로세스
counter매개 변수를 사용하여 새 규칙을 체인에 추가합니다. 다음 예제에서는 포트 22에서 TCP 트래픽을 허용하는 카운터가 포함된 규칙을 추가하고 이 규칙과 일치하는 패킷 및 트래픽을 계산합니다.# nft add rule inet example_table example_chain tcp dport 22 counter accept카운터 값을 표시하려면 다음을 수행합니다.
# nft list ruleset table inet example_table { chain example_chain { type filter hook input priority filter; policy accept; tcp dport ssh counter packets 6872 bytes 105448565 accept } }
8.9.2. 기존 규칙에 카운터 추가 링크 복사링크가 클립보드에 복사되었습니다!
규칙이 일치하는지 확인하려면 카운터를 사용할 수 있습니다.
-
카운터를 사용하여 새 규칙을 추가하는 절차에 대한 자세한 내용은
네트워킹 구성 및 관리에서카운터를 사용하여 규칙 생성 을 참조하십시오.
사전 요구 사항
- 카운터를 추가하려는 규칙이 있습니다.
프로세스
프로세스를 포함하여 체인의 규칙을 표시합니다.
# nft --handle list chain inet example_table example_chain table inet example_table { chain example_chain { # handle 1 type filter hook input priority filter; policy accept; tcp dport ssh accept # handle 4 } }규칙을 교체하지만 카운터 매개 변수를 사용하여
카운터를 추가합니다. 다음 예제에서는 이전 단계에서 표시되는 규칙을 교체하고 카운터를 추가합니다.# nft replace rule inet example_table example_chain handle 4 tcp dport 22 counter accept카운터 값을 표시하려면 다음을 수행합니다.
# nft list ruleset table inet example_table { chain example_chain { type filter hook input priority filter; policy accept; tcp dport ssh counter packets 6872 bytes 105448565 accept } }
8.9.3. 기존 규칙과 일치하는 패킷 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
nft monitor 명령과 함께 nftables 의 추적 기능을 사용하면 관리자가 규칙과 일치하는 패킷을 표시할 수 있습니다. 이 규칙과 일치하는 패킷을 모니터링하는 데 사용하는 규칙에 대한 추적을 활성화할 수 있습니다.
사전 요구 사항
- 카운터를 추가하려는 규칙이 있습니다.
프로세스
프로세스를 포함하여 체인의 규칙을 표시합니다.
# nft --handle list chain inet example_table example_chain table inet example_table { chain example_chain { # handle 1 type filter hook input priority filter; policy accept; tcp dport ssh accept # handle 4 } }규칙을 교체하지만
meta nftrace set 1매개변수를 사용하여 추적 기능을 추가합니다. 다음 예제에서는 이전 단계에서 표시된 규칙을 교체하고 추적을 활성화합니다.# nft replace rule inet example_table example_chain handle 4 tcp dport 22 meta nftrace set 1 acceptnft monitor명령을 사용하여 추적을 표시합니다. 다음 예제에서는 명령의 출력을 필터링하여inet example_table example_chain을 포함하는 항목만 표시합니다.# nft monitor | grep "inet example_table example_chain" trace id 3c5eb15e inet example_table example_chain packet: iif "enp1s0" ether saddr 52:54:00:17:ff:e4 ether daddr 52:54:00:72:2f:6e ip saddr 192.0.2.1 ip daddr 192.0.2.2 ip dscp cs0 ip ecn not-ect ip ttl 64 ip id 49710 ip protocol tcp ip length 60 tcp sport 56728 tcp dport ssh tcp flags == syn tcp window 64240 trace id 3c5eb15e inet example_table example_chain rule tcp dport ssh nftrace set 1 accept (verdict accept) ...주의추적이 활성화된 규칙 수 및 일치하는 트래픽 양에 따라
nft monitor명령은 많은 출력을 표시할 수 있습니다.grep또는 기타 유틸리티를 사용하여 출력을 필터링합니다.