понедельник, 23 сентября 2024 г.

ip листы по автономной сети (AS) и их применение (возможно блокировка по ним) скажем в nginx/angie и т.д.

 Данный сценарий применим не только в целях блокировок, но и в других сценариях, т.к. по сути по итогу лист будет находиться замэпленым в переменной и дальше можно применять в логике настройки согласно своим хотелкам.

Также чуть переделав данный сценарий - можно генерировать подобные листы для фаерволов и других систем, где это может понадобиться.

Итак, допустим нам прилетела задача по блокировке входящих соединений скажем нууу... С microsoft'а... Мы знаем AS мелгомякгой компании - это AS8075.

Я набросал вот таков вот простенький скриптик на баше, который будет генерировать geo лист для nginx:

#!/bin/bash
echo 'geo $remote_addr $ipblocked {'
echo '         default 0;'
whois -h whois.radb.net -- "-i origin $1" | grep 'route:\|route6:' | awk '{print $2 " 1;"}'
echo '}' 

Вызовем его так:

./t.sh AS8075 > msblocklist.conf  

Получим файл с примерно таким содержимым:

geo $remote_addr $microsoft {
        default 0;
1.186.0.0/16 1;
2.58.103.0/24 1;
...

}

Не забудем подключить данный файл в nginx добавив строку вида:

include /etc/nginx/blacklists/microsoft.conf;

Ну и теперь, где оно необходимо будем использовать данный список согласно нашим хотелкам примерно так:

  if ($microsoft) {
       return 403;
 }

Данный лист генерируется с учётом как ipv4, так и с учётом ipv6 адресов. Если необходимо оставить только ipv4, то достаточно

grep 'route:\|route6:' 

  исправить на

grep 'route:'

Комментариев нет:

Отправить комментарий