Debianbuster/sid 규칙 파일에 --multiport 옵션이 있으면 iptables-restore가 실패합니다.

Debianbuster/sid 규칙 파일에 --multiport 옵션이 있으면 iptables-restore가 실패합니다.

/etc/iptables/rule.v4파일에는 많은 규칙이 포함되어 있습니다. 아래는 문제가 있는 줄입니다.

-A INPUT -p tcp -m multiport --dports 22 -j ACCEPT
-A INPUT -p udp -m multiport --dports 16384:32768 -j ACCEPT

이 작업을 시도하면 iptables-restore다음 오류와 함께 실패합니다.

root@rs-dal:/etc/iptables# iptables-restore rules.q
iptables-restore v1.8.2 (nf_tables): multiport needs `-p tcp', `-p udp', `-p udplite', `-p sctp' or `-p dccp'
Error occurred at line: 26
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
root@rs-dal:/etc/iptables# 

왜 실패했나요? , 동일한 규칙이 성공적으로 적용되었습니다 Debian Jessie.

아래와 같이 규칙을 변경했을 때도 작동했습니다.

-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p udp --dport 16384:32768 -j ACCEPT

iptables -L아래와 같이 이 규칙을 확인 하고 성공적으로 적용했습니다.

ACCEPT     udp  --  anywhere             anywhere             udp dpts:16384:32768
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh

현재 유효한 구문이 있는 규칙이 있습니까?

아래는 내 OS 세부정보입니다.

root@rs-dal:/etc/iptables# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux buster/sid"
NAME="Debian GNU/Linux"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

답변1

nftables사용자 AB가 지적했듯이 Buster에서 사용하는 와 사이에는 비호환 문제가 있습니다. 복원할 규칙을 저장하는 가장 좋은 방법 iptables은 호환되는 버전 간에 복원하는 것입니다.iptablesiptables-restore

문제가 있는 줄을 삭제하고 규칙을 복원합니다.

iptables-restore < rules.q

구성에 규칙을 다시 추가하고 다음을 저장합니다.

iptables -A INPUT -p tcp -m multiport --dports 22 -j ACCEPT
iptables-save > rules.q

이제 다시 복구를 시도해 보세요.

iptables-restore < rules.q

iptables -L모든 규칙이 올바른지 확인하는 데 사용됩니다 .

관련 정보