IP многократные въезды маршрута

У меня есть список 60k CIDRs для блокирования, и я планирую сделать это использование следующей команды.

ip route add blackhole 1.0.1.0/24

Существует ли способ, которым я могу импортировать целый список на своем сервере Ubuntu 18 или являюсь там каким-либо местом, где я могу вручную ввести весь список?

Существует ли шанс сервера, становящегося медленным или нестабильным после добавления 60k записи?

3
задан 2 January 2019 в 09:00

1 ответ

Если Вам перечислили их как один на строку, это тривиально для сценариев этого:

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 может быть полезным. Это берет списки подсетей и пытается объединить сети в как можно меньше подсетей, которые сократили бы количество необходимых сравнений.

2
ответ дан 1 December 2019 в 16:50

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

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