Актуальная блокировка ботов без использования сторонних сервисов

C
На сайте с 13.01.2017
Offline
89
107

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

Жду мнения экспертов, актуально ли это

Я использую Fastpanel, метод должен быть совместим с ней

После изучения, остановился на nftables

Делаю копию, у меня этот файл был без настроек а сам nftables был выключен

sudo cp /etc/nftables.conf /etc/nftables.conf.bak

Редактирую /etc/nftables.conf, конфиг сгенерировал в Claude

Для теста добавил туда только одну asn AS200373, которая в данный момент жестко сканирует

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    set blocked_v4 {
        type ipv4_addr
        flags interval
        elements = {
            45.3.32.0/20,
            45.3.48.0/21,
            45.3.62.0/24,
            65.111.0.0/20,
            65.111.20.0/22,
            65.111.24.0/21,
            95.141.242.0/24,
            104.167.19.0/24,
            104.167.25.0/24,
            104.207.32.0/19,
            151.123.176.0/23,
            151.123.178.0/24,
            193.56.28.0/24,
            195.63.0.0/19,
            209.50.160.0/19,
            216.26.224.0/19,
            217.181.64.0/19
        }
    }

    chain input {
        type filter hook input priority 0; policy drop;

        # Drop blocked ASN ranges first, before anything else
        ip saddr @blocked_v4 drop

        # Loopback (local machine talking to itself)
        iif lo accept

        # Allow replies to connections we initiated, drop garbage packets
        ct state established,related accept
        ct state invalid drop

        # Basic ICMP for diagnostics (ping, etc.)
        ip protocol icmp icmp type { echo-request, destination-unreachable, time-exceeded } accept

        # SSH
        tcp dport 22 accept

        # Web traffic
        tcp dport { 80, 443 } accept

        # FastPanel
        tcp dport 8888 accept
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Дальше нужно применить изменения

sudo nft -c -f /etc/nftables.conf


sudo systemctl enable nftables
sudo systemctl restart nftables

sudo systemctl status nftables
sudo nft list ruleset

Это должно защитить от примитивных ботов, которые игнорируют robots и создают высокую нагрузку

Дальше нужно добавить туда asn битерики и других, у меня все ip битерики были заблокированы еще в htaccess

Еще нашел список asn для блокировки на гитхабе https://raw.githubusercontent.com/wallacebrf/dns/refs/heads/main/ASN_LIST.txt , там почти все asn простых сканеров, Тенсент в том числе AS45090, AS132203

Думаю добавить их тоже

Получается, что так можно заблокировать страны и сети, откуда идут боты. Умных поведенческих это не коснется

Может здесь поделюсь своим списком блокировки, когда сделаю

И следующим шагом хочу настроить Crowdsec, бесплатно и с открытым кодом. Анализирует логи и принимает решение о блокировке, так же использует списки от сообщества

C
На сайте с 13.01.2017
Offline
89
#1

Весь список того мужика не хочу использовать без детального изучения, мне кажется, что он слишком много и жестко блокировал там, там видно как Vodafone попал в блокировку, а потом он убирал

И еще забыл написать, что заблокировал в htaccess по user agent ботов, которые представляются RewriteCond %{HTTP_USER_AGENT}:

AI2Bot, Ahrefs, Amazonbot, Applebot, Barkrowler, BitSightBot, BLEXBot, Bytespider, CCBot, Censys, ChatGPT, Cohere, Diffbot, DuckAssistBot, FacebookBot , GPTBot, Google-CloudVertexBot, Google-Extended, HeadlessChrome, ImagesiftBot, Kangaroo, MJ12Bot, MegaIndex.ru, Meta-ExternalAgent, Meta-ExternalFetcher, OAI-SearchBot, Omgili, PerplexityBot, Python-requests, SemrushBot, SERanking, Seznambot, Shodan, Sqlmap.org, Spider.cloud, Thinkbot, Timpibot, TikTokSpider, Webzio, YouBot, Vulnweb

facebookexternalhit, meta-externalagent, meta-webindexer, Amzn-SearchBot, DataForSeoBot, Go-http-client, DotBot, TerraCotta, keys-so-bot, Claude-SearchBot, DotBot, GetIntent

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий