내 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의 조합을 나타냄) 따라서 inet
family 매개변수가 필요하며 그렇지 않은 경우 기본값은 다음과 같습니다 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 ruleset
flush ruleset
nftables서비스를 다시 시작 systemctl restart nftables
하거나( ) 파일을 직접 다시 로드하여( nft -f /etc/nftables.conf
) 내용을 복원합니다.