javascript javascript 11 січня 2024, 23:16

blocklist_net_ua - список IP-адрес підозрілих ботів, які намагаються ддосити українські веб-сервери. Частина з них росіянські.

За сьо­го­дні вони дода­ли май­же 7000 айпішників.

Спи­сок налі­чує більш ніж 100 тисяч різних ботів, яких ви може­те поба­чи­ти в ваших логах в веб-сер­ве­рі, їхня діяль­ність вигля­дає при­бли­зно ось так:

Вони зав­жди вико­ну­ють одно­ти­пні дії, напри­клад роблять пошук випад­ко­во­го текс­ту, або від­кри­ва­ють будь-яку сто­рін­ку з нови­на­ми сайту:

Цим самим такі боти наван­та­жу­ють базу даних і ваш PHP-FPM, який може не справ­ля­ти­ся з наван­та­же­н­ням у 100 000 запи­тів на годину.

Через це ресур­си сер­ве­ра можуть закін­чи­тись і сайт буде висну­ти, як колись було з Ujournal — в ана­лі­ти­ці від гугла пока­зує, що кори­сту­ва­чів немає, а про­це­сор заван­та­жу­є­ться на 100%

Є захист від Cloudflare та Digital Ocean, але не не у всіх є можли­вість його під­клю­чи­ти, з Digital Ocean вза­га­лі не зро­зумі­ло як він пра­цює (а наші хосте­ри не дуже це люблять і зазви­чай став­лять такі послу­ги у преміум-росцінки).

Тому добрі люди зро­би­ли спи­сок з таких шкі­дли­вих IP, на яких сидять русня­ві боти і паску­дять жит­тя всім іншим.

Ось цей спи­сок, його можна дода­ти в бло­кліст вашо­го сер­ве­ра та забу­ти про вели­ке навантаження

raw.githubusercontent.com/ktsaou/blocklist-ipsets/master/blocklist_net_ua.ipset веб-ресурс

Тут є ще гра­фі­ки по кра­ї­нам, ста­ти­сти­ка дода­ва­н­ня і бага­то іншого:

iplists.firehol.org FireHOL IP Lists | IP Blacklists | IP Reputation Feeds iplists.firehol.org

Роз­ка­жу як зро­би­ти це на при­кла­ді сер­ве­ра на Nginx

1. Від­кри­ва­є­те ваш кон­фі­гу­ра­цій­ний файл:

vi /etc/nginx/sites-available/default

2. Дода­є­те рядок

include /etc/nginx/blacklist.conf;

Ось так вигля­дає кон­фі­гу­ра­ція без цьо­го рядка:

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        server_name _;
        location / {
                try_files $uri $uri/ =404;
        }
}

Ось так з:

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        include /etc/nginx/blacklist.conf;
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        server_name _;
        location / {
                try_files $uri $uri/ =404;
        }
}

3. Від­кри­ва­є­те ваш файл blocklist.conf

vi /etc/nginx/blacklist.conf

4. Встав­ля­є­те туди вміст того фай­лу так, щоб пер­шим було сло­во deny, а потім IP, кожен з ново­го ряд­ка (можна зро­би­ти в екселі):

deny 1.0.128.181
deny 1.0.138.90
deny 1.0.138.115
deny 1.0.162.230
allow all;

Не забудь­те дода­ти allow all; в кінці.

5. Збе­рі­га­є­те і змі­ню­є­те нала­шту­ва­н­ня www-data щоб він міг пра­цю­ва­ти з фай­лом blacklist.conf

chown www-data.www-data /etc/nginx/blacklist.conf

6. Пере­за­ван­та­жу­є­те nginx

service nginx restart

7. Ботам зі спи­ску забо­ро­ня­є­ться доступ до сервера

Наван­та­же­н­ня на сер­вер падає і кори­сту­ва­чі щасливі.

  • 7
  • 1
  • 141

1 комментар