6월 30일 업데이트 ips.txt 목록이 있고 iptables가 모든 형식의 모든 IP 또는 범위를 허용하도록 하고 싶습니다. 예:
# IPs List
199.59.243.120
157.60.1.0/24
91.190.0.0/16
192.168.2.1-192.168.2.25
내 규칙:
for ip in $(sed '/#.*/d' ips.txt); do
if echo $ip | grep -q "-" >/dev/null; then
iptables -w -A FORWARD -i eth1 -p tcp --dport 80 -m iprange --dst-range "$ip" -j ACCEPT
else
iptables -w -A FORWARD -i eth1 -p tcp --dport 80 -d $ip -j ACCEPT
fi
done
iptables는 ip 199.59.243.120 및 범위 192.168.2.1-192.168.2.25를 허용하지만 iptables가 157.60.1.0/24 또는 91.190.0.0/16 범위를 허용하도록 만드는 방법은 무엇입니까? ? ?
감사해요
답변1
iptables -d
CIDR 표기법의 네트워크가 허용되므로 지정된 검색 범위를 사용하도록 변경한 다음 grep
명령 -
을 바꾸거나 grep 결과를 무효화할 수 있습니다.
답변2
157.60.1.0/24는 -d 157.60.1.0/24 -j Accept와 같은 다른 조건에 있습니다. 오류에 표시된 것처럼 첫 번째 조건 --dst-range에 맞지 않습니다. 따라서 명령은 echo $ ip l grep -q "-" 입니다.