IPTABLES Предварительная маршрутизация, массовое добавление

возможно кто-нибудь знает, как я могу массово добавить 1 400 000 ip в iptables с помощью команды:

iptables -I PREROUTING -t raw -d $ ipban -j DROP

прямо сейчас я использую:

while read ipban
do
iptables -I PREROUTING -t raw -d $ipban -j DROP
done < ips.txt

Но уже потребовалось больше чем 20 часов, чтобы добавить.

Мой vps очень маленький, как 1 ГБ оперативной памяти и 1 виртуальный процессор, поэтому он не такой быстрый.

Я попытался восстановить iptables, но у меня было несколько ошибок, поэтому я ищу самое быстрое решение.

0
задан 12 August 2021 в 13:25

1 ответ

Приведенный ниже скрипт должен делать то, что вам нужно. Обратите внимание, что имя файла, из которого вы будете считывать IP-адреса, — ips.txt в скрипте. Вы можете заменить его собственным именем файла.

#!/bin/bash

ip_addresses=$(cat ips.txt)

echo -n "" > iptables_configuration
echo "*raw" >> iptables_configuration
echo ":PREROUTING ACCEPT [0:0]" >> iptables_configuration
echo ":OUTPUT ACCEPT [0:0]" >> iptables_configuration

for i in $ip_addresses
do
echo -A PREROUTING -d $i/32 -j DROP >> iptables_configuration
done
echo "COMMIT" >> iptables_configuration

echo "*filter" >> iptables_configuration
echo ":INPUT ACCEPT [0:0]" >> iptables_configuration
echo ":FORWARD ACCEPT [0:0]" >> iptables_configuration
echo ":OUTPUT ACCEPT [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-restore
rm iptables_configuration

iptables -t raw -A PREROUTING -p tcp --dport 25565 -j ACCEPT
iptables -t raw -A PREROUTING -p tcp --dport 25565 -m state --state RELATED,ESTABLISHED -j ACCEPT
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. Остальное будет обрабатываться скриптом.

0
ответ дан 20 August 2021 в 10:27

Другие вопросы по тегам:

Похожие вопросы: