Jump to content

Блокировка по списку IP через Nginx.conf

1. Открыть для редактирования файл /etc/nginx/nginx.conf и добавить после http {

    include /etc/nginx/blockips.conf;
    
    где /etc/nginx/ - путь к файлу blockips.conf от корня сервера.

http {
    include /etc/nginx/blockips.conf;

    
2. Создать на локале в Notepad++ текстовой файл blockips.conf с кодировкой UTF-8.

3. Добавить в файл список блокируемых IP адресов по образцу (возможны такие варианты):

deny 31.220.61.77;
deny 185.84.148.0/22;
deny 2a02:748:b000:3:a87a:866d:94f0:ffbe;
deny 2a02:748:b000:3:a87a:866d:94f0:ffbe/22;

Примечание:
    Инструменты, для создания списка блокируемых IP адресов:
    
    1) Спам-IP за последние 10 дней - готовый список: 
   https://ru.myip.ms/files/blacklist/csf/latest_blacklist.txt
    
    2) Спам-IP за последнее время, добавленный вручную пользователями - готовый список: https://ru.myip.ms/files/blacklist/csf/latest_blacklist_users_submitted.txt
    
    Для быстрой правки скачанных выше списков используйте текстовый редактор Notapad++:
        - нажать Ctrl+H для открытия окна автоматической замены.
        - поставить галку в окне замены галку Extended (Расширенный).
        - далее заменить \r на ;
        - далее заменить \n на \ndeny(пробел)
        - чтобы получить так: 
          deny 46.101.204.143;
          deny 55.101.204.143/21;
    
    Дополнительные инструменты, для создания списка блокируемых IP адресов:
    3) Сетевой калькулятор: http://ru.smart-ip.net/calculator#ipv4
    4) IP to CIDR: http://ip2cidr.com/bulk-ip-to-cidr-converter.php
    5) Создание списка IP в формате CIDR по странам: http://software77.net/geo-ip/ (справа блочек Country IP listing, выбрать страну и CIDR).
    
4. Залить на сервер blockips.conf по ssh, дать ему права CMOD 644 через любой файловый ssh менеджер.

5. Перезапустить Nginx, например, так: service nginx restart

6. Периодически обновляйте список, не реже одного раза в месяц.

PS Добавлен образец файла со списком спам-IP и также добавлением ниже страны Украина (добавление Украины сильно снизило количество спаммеров на моих сайтах, но это чисто индивидуально).

blockips.conf

blockips.conf

User Feedback

Recommended Comments

Wolfstalker

Пользователи

Заблочил адреса, но в логе они все-равно отображаются, и посылают запросы:

Спойлер

2023/08/30 02:53:45 [error] 22591#22591: *395007 access forbidden by rule, client: 85.113.18.242, server: ap-pro.ru, request: "GET / HTTP/1.1", host: "ap-pro.ru"

Так не должно ведь быть?

Wolfstalker

Пользователи
36 минут назад, Zero108 сказал:

Написано, что клинет заблокирован. Так и должно быть.

Но при этом он все-равно отправляет запросы, и тем самым роняет сайт. Вот бы как-то сделать так, чтобы соединение сбрасывалось.

HooLIGUN

Ветеран
13 минут назад, Wolfstalker сказал:

Но при этом он все-равно отправляет запросы, и тем самым роняет сайт. Вот бы как-то сделать так, чтобы соединение сбрасывалось.

Если вдс, то через iptables

Wolfstalker

Пользователи
1 минуту назад, HooLIGUN сказал:

Если вдс, то через iptables

В него записи добавляются через панель ISP, но вручную, по одному адресу. А адресов очень много, это не вариант. Я пытался вручную править этот файл, но записи в итоге не сохранились в нем. Есть какие-то конкретные инструкции, может быть, как правильно все сделать? 

HooLIGUN

Ветеран
3 часа назад, Wolfstalker сказал:

В него записи добавляются через панель ISP, но вручную, по одному адресу. А адресов очень много, это не вариант. Я пытался вручную править этот файл, но записи в итоге не сохранились в нем. Есть какие-то конкретные инструкции, может быть, как правильно все сделать? 

Существуют скрипты, которые чекают кол-во запросов в секунду с одного айпи, и если оно превышает заданное, то банит этот айпи (сбрасывает соединение) 

В принципе и в ISP панельке тоже есть такое, в настройках WWW домена

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Добавить комментарий...