Сценарий ниже должен делать то, что вам нужно. Обратите внимание, что имя файла, из которого вы будете считывать IP-адреса, в сценарии — ips.txt. Вы можете заменить его своим именем файла.
#!/бин/баш
ip_addresses=$(cat ips.txt)
echo -n "" > iptables_configuration
echo "*raw" >> iptables_configuration
echo ": ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [0:0]" >> iptables_configuration
эхо ": ВЫВОД ПРИНЯТ [0:0]" >> iptables_configuration
для i в $ip_addresses
делать
echo -A PREROUTING -d $i/32 -j DROP >> iptables_configuration
сделано
эхо "COMMIT" >> iptables_configuration
эхо "*фильтр" >> iptables_configuration
эхо ":ВВОД ПРИНЯТ [0:0]" >> iptables_configuration
echo ":ВПЕРЕД ПРИНЯТЬ [0:0]" >> iptables_configuration
эхо ": ВЫВОД ПРИНЯТ [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
эхо "COMMIT" >> iptables_configuration
кошка 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 СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
iptables -t raw -A PREROUTING -p tcp --dport 25565 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-выше 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-выше 10 --connlimit-mask 32 --connlimit-saddr -j DROP
Все, что вам нужно сделать, это выполнить скрипт, в котором присутствует файл ips.txt. Остальное сделает скрипт.