이게 내 규칙이야울부짖었다그리고iptables, 레코드는 다음 위치에 저장됩니다 /var/log/ulog/sysloemu.log
.
iptables -A INPUT -p tcp --sport 1234 -j NFLOG --nflog-prefix 'example block'
iptables -A INPUT -p tcp --sport 1234 -j DROP
나는 이 규칙을 단순화하고 싶다. 나는 이것을 시도했지만 작동하지 않습니다:
iptables -A INPUT -p tcp --sport 1234 --nflog-prefix 'example block' -j DROP
나가:
iptables v1.8.4 (legacy): unknown option "--nflog-prefix"
Try `iptables -h' or 'iptables --help' for more information"
하지만ebtables이를 수락합니다(적어도 오류는 발생하지 않습니다).
ebtables -A INPUT --protocol ipv4 --ip-proto tcp --ip-sport 1234 --nflog-prefix 'example block' -j DROP
풀어줄 수 있는 방법이 있나요?신경망 로그( --nflog-prefix
) iptables 규칙에 한 줄만 남았나요?
PD: 아니면 nftables 외에 이러한 규칙을 단순화하는 다른 대안이 있을까요?
PD: 내 iptables 스크립트에는 유사한 규칙이 많이 있으므로 어떤 규칙에도 작동하는 솔루션을 원합니다.
PD: 비슷한 질문이 있어요.여기, 하지만 해결책은 내가 찾고 있는 것이 아닙니다.
고쳐 쓰다:
나는 이것을 시도했습니다 (@Tom Yan에게 감사드립니다):
# variable prefix
A='block A'
B='block B' # in this case i need to repeat the loop (and increase the number of lines)
iptables -N NFLOG_AND_DROP
iptables -A NFLOG_AND_DROP -j NFLOG --nflog-prefix "$A"
iptables -A NFLOG_AND_DROP -j DROP
# rules
iptables -A INPUT -p tcp --sport 1234 -j NFLOG_AND_DROP
iptables -A FORWARD -p tcp --dport 1234 -j NFLOG_AND_DROP
하지만 시퀀스와 iptables 스크립트를 줄이는 대신 반복해야 하기 때문에 다른 행을 추가할 수 없습니다. --nflog-prefix
그러면 행 수가 늘어납니다(누군가가 이 문제를 해결하기 위해 루프를 고안하지 않는 한).
답변1
내 생각에 당신이 할 수 있는 최선은 다음과 같다:
-N log_and_drop
-A log_and_drop -j NFLOG --nflog-prefix "shared prefix"
-A log_and_drop -j DROP
-A INPUT -p tcp --sport 1234 -g log_and_drop
-A INPUT -p udp --sport 4321 -g log_and_drop
일부 (일치하는) 규칙이 동일한 로그 접두사를 공유해야 한다고 가정합니다.