내 /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
은 호환되는 버전 간에 복원하는 것입니다.iptables
iptables-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
모든 규칙이 올바른지 확인하는 데 사용됩니다 .