สคริปต์ด้านล่างควรทำสิ่งที่คุณต้องการ โปรดทราบว่าชื่อของไฟล์ที่คุณจะอ่าน IP คือ ips.txt ในสคริปต์ คุณสามารถแทนที่ด้วยชื่อไฟล์ของคุณเอง
#!/bin/bash
ip_addresses=$(แมว ips.txt)
echo -n "" > iptables_configuration
echo "*raw" >> iptables_configuration
echo ":PREROUTING ยอมรับ [0:0]" >> iptables_configuration
echo ":OUTPUT ยอมรับ [0:0]" >> iptables_configuration
สำหรับฉันใน $ip_addresses
ทำ
echo -A PREROUTING -d $i/32 -j DROP >> iptables_configuration
เสร็จแล้ว
echo "COMMIT" >> iptables_configuration
echo "*filter" >> iptables_configuration
echo ":INPUT ACCEPT [0:0]" >> iptables_configuration
echo ":FORWARD ACCEPT [0:0]" >> iptables_configuration
echo ":OUTPUT ยอมรับ [0:0]" >> iptables_configuration
echo "-A INPUT -p tcp -m tcp --dport 25565 --tcp-option 8 --tcp-flags FIN,SYN,RST,ACK SYN -j REJECT --reject-with icmp-port-unreachable" >> iptables_configuration
echo "COMMIT" >> iptables_configuration
cat iptables_configuration | iptables กู้คืน
rm iptables_configuration
iptables -t raw -A PREROUTING -p tcp --dport 25565 -j ยอมรับ
iptables -t raw -A PREROUTING -p tcp --dport 25565 -m state --state RELATED,ESTABLISHED -j ยอมรับ
iptables -t raw -A PREROUTING -p tcp --dport 25565 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 150 --connlimit-mask 32 --connlimit-saddr -j DROP
iptables -t raw -A PREROUTING -p tcp --dport 25565 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 --connlimit-saddr -j DROP
สิ่งที่คุณต้องทำคือรันสคริปต์ที่มีไฟล์ ips.txt อยู่ ส่วนที่เหลือจะถูกจัดการโดยสคริปต์