Блокировка ботов РКН


по мотивам этого поста от @ЗаТелеком и дополнений ниже

Если вы хотите заблокировать доступ к вашим ресурсам со стороны ботов РКН то, для начала, надо узнать кого блокировать. Репозиторий C24Be/AS_Network_List позволяет получить список сетей и IP адресов для блокировки.

Рекомендуемые варианты - блокировать на уровне Nginx или Iptables. В случае блокировки на Nginx вы можете заблокировать доступ к конкретному домену, оставив остальные домены доступными. Другие варианты можно использовать в карйнем случае, так как в этом случае блокируется только незначительная часть ботов и обновлений не будет.

Примеры как блокировать:

Nginx

Репозиторий со всеми нужными скриптами и инструкциями: freemedia-tech/nginx-rugov-block

Не забудьте настроить (подробно описано в репозитории) ежедневное обновление списков.

iptables

Настройка системы скриптом (в том числе с авто-обновлением): freemedia-tech/iptables-rugov-block

Cloudflare

Откройте панель настройки своего сайта в дашборде CF, перейдите по пунктам меню слева: Security -> WAF -> create rule -> edit expression и введите:

(ip.geoip.asnum in {61280 34500 51932 57835 197153 206684 216080})

Mikrotik

/ip firewall address-list
add address=185.224.228.0/22 list=fgup_grchc
add address=195.209.120.0/22 list=fgup_grchc
add address=212.192.156.0/22 list=fgup_grchc

/ip firewall filter
add action=reject chain=forward dst-address-list=fgup_grchc protocol=tcp reject-with=tcp-reset
add action=drop chain=forward dst-address-list=fgup_grchc

/ip firewall raw
add action=drop chain=prerouting in-interface-list=WAN src-address-list=fgup_grchc
                                

Juniper

set firewall family inet filter BLOCK_GRCHC term TERM_BLOCK_GRCHC from source-address 185.224.228.0/22
set firewall family inet filter BLOCK_GRCHC term TERM_BLOCK_GRCHC from source-address 195.209.120.0/22
set firewall family inet filter BLOCK_GRCHC term TERM_BLOCK_GRCHC from source-address 212.192.156.0/22
set firewall family inet filter BLOCK_GRCHC term TERM_BLOCK_GRCHC then discard
set firewall family inet filter BLOCK_GRCHC term ALLOW_OTHERS then accept
set interfaces $IFTYPE unit $UNITNUM family inet filter input BLOCK_GRCHC
                                

nftables

set GRCHC {
                type ipv4_addr
                elements = {185.224.228.0/24, 185.224.229.0/24, 185.224.230.0/24, 185.224.231.0/24, 195.209.120.0/24,
                195.209.121.0/24, 195.209.122.0/24, 195.209.123.0/24, 212.192.156.0/24, 212.192.157.0/24, 212.192.158.0/24}
                flags interval
}
chain input {
                type filter hook input priority 0; policy drop
                ip saddr @GRCHC counter drop
}