У меня есть список 60k CIDRs для блокирования, и я планирую сделать это использование следующей команды.
ip route add blackhole 1.0.1.0/24
Существует ли способ, которым я могу импортировать целый список на своем сервере Ubuntu 18 или являюсь там каким-либо местом, где я могу вручную ввести весь список?
Существует ли шанс сервера, становящегося медленным или нестабильным после добавления 60k записи?
Если Вам перечислили их как один на строку, это тривиально для сценариев этого:
for ip in $(cat filename.txt)
do
ip route add blackhole $ip
done
Поскольку привет Moto заявил в комментарии: почему бы не использовать iptables
отфильтровать? Сделать это...
for ip in $(cat filename.txt)
do
iptables -A INPUT -s $ip -j DROP
done
С правилами 60k я взглянул бы на ipset, чтобы не наносить вред производительности. Если у Вас есть правила 60k и 100kpps, это 60k*100k=6 миллиард сравнений в секунду...
Эта документация от Arch является несколько более дружественной, чем страница справочника для ipset
, и синтаксис запрашивает Ubuntu также.
Использовать ipset:
ipset create blocklist
for ip in $(filename.txt)
do
ipset add blocklist $ip
done
iptables -I INPUT -m set --match-set blocklist src -j DROP
Кроме того, iprange
может быть полезным. Это берет списки подсетей и пытается объединить сети в как можно меньше подсетей, которые сократили бы количество необходимых сравнений.