모든 수신 트래픽을 기록하는 규칙을 추가하려면 어떻게 해야 합니까?

모든 수신 트래픽을 기록하는 규칙을 추가하려면 어떻게 해야 합니까?

내 OS의 nftables 상태:

sudo systemctl status nftables
● nftables.service - nftables
     Loaded: loaded (/lib/systemd/system/nftables.service; disabled; vendor preset: enabled)
     Active: active (exited) since Fri 2022-11-04 11:01:47 HKT; 1s ago
       Docs: man:nft(8)
             http://wiki.nftables.org
    Process: 3780 ExecStart=/usr/sbin/nft -f /etc/nftables.conf (code=exited, status=0/SUCCESS)
   Main PID: 3780 (code=exited, status=0/SUCCESS)
        CPU: 7ms

Nov 04 11:01:47 debian systemd[1]: Starting nftables...
Nov 04 11:01:47 debian systemd[1]: Finished nftables.

이제 들어오는 모든 트래픽을 기록하고 싶습니다.

sudo nft add rule filter input log
Error: Could not process rule: No such file or directory
add rule filter input log
         ^^^^^^

구성 파일 나열 nftables.conf:

cat /etc/nftables.conf
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0;
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}

어떻게 고치나요?

답변1

테이블은 다음 위치에 있습니다.inet 가족(IPv4+IPv6의 조합을 나타냄) 따라서 inetfamily 매개변수가 필요하며 그렇지 않은 경우 기본값은 다음과 같습니다 ip.

지정된 식별자에 주소 계열이 없으면 ip해당 계열이 기본적으로 사용됩니다.

ip filter테이블이나 체인이 없으므로 ip filter input이 명령은 다음과 같습니다.

nft add rule filter input log

실패하다.

올바른 명령은 (루트로 또는 사용하여)입니다 sudo. 아래의 모든 명령은 루트로 실행하거나 를 사용하여 실행해야 합니다 sudo.

nft add rule inet filter input log

...하지만위 명령은 너무 많은 로그를 생성하고 로그가 저장된 파일 시스템을 플러딩하기 때문에 일반적으로 위험하며, 준비가 되어 있지 않은 한 있는 그대로 사용해서는 안 됩니다.

실제 방화벽이 없는 상황에서는 이미 존재하는 흐름의 패킷 부분을 기록하지 않는 것이 가장 좋습니다.확립된conntrack 상태)는 새롭고 관련 있는(예: ICMP 오류가 다시 전송됨) 유효하지 않은 패킷을 남깁니다. 이는 다음을 사용하여 수행됩니다.연결하다도움이 됩니다. 그리고 좋은 측정을 위해한계로그 수(예: 분당 최대 20개) 트리플도 추가했어요counter로그 문에 도달하기 전에 nft list ruleset추가된 각 필터의 ​​볼륨 차이에 대한 통계를 표시(사용) 할 수 있는 문입니다. 필요하지 않습니다.

nft add rule inet filter input counter ct state != established counter limit rate 20/minute counter log

나중에 다시 사용할 수 있도록 파일을 보존하려면 /etc/nftables.conf명령 출력을 사용하여(삭제하면 안 됨) 이전 파일을 편집할 수 있습니다.nft -s list rulesetflush rulesetnftables서비스를 다시 시작 systemctl restart nftables하거나( ) 파일을 직접 다시 로드하여( nft -f /etc/nftables.conf) 내용을 복원합니다.

관련 정보