Блокировка по IP

Поддерживаемая версия

Доступно начиная с релиза Wallarm Node 2.8

По умолчанию блокировка по IP на стороне Nginx не активна. Для её активации необходимо выполнить следующие действия:

  1. Создайте файл /etc/nginx/conf.d/wallarm-acl.conf со следующим содержимым:

    wallarm_acl_db default {
        wallarm_acl_path /var/lib/nginx-wallarm/wallarm_acl_default;
        wallarm_acl_mapsize 64m;
    }
    
    server {
      listen 127.0.0.9:80;
    
      server_name localhost;
    
      allow 127.0.0.0/8;
      deny all;
    
      access_log off;
    
      location /wallarm-acl {
        wallarm_acl default;
        wallarm_acl_api on;
      }
    }
    
  2. Включите блокировку для соответствующих виртуальных хостов и/или location'ов, добавив следующие строки в их конфигурационные файлы:

    server {
        ...
        wallarm_acl default;
        ...
    }
    
  3. Добавьте в файл /etc/wallarm/node.yaml следующие строки:

    sync_blacklist:
        nginx_url: http://127.0.0.9/wallarm-acl
    
  4. Активируйте синхронизацию черных списков, выполнив следующую команду.

    Один из способов сделать это — снять комментарий со строки, содержащей sync-blacklist в качестве подстроки, удалив символ # из начала этой строки в файле /etc/cron.d/wallarm-node-nginx.

    Вы также можете исполнить следующую команду, которая сделает это за вас:

     sed -i -Ee 's/^#(.*sync-blacklist.*)/\1/' /etc/cron.d/wallarm-node-nginx
    

    Sed — это потоковый редактор.

    По умолчанию sed записывает изменения в стандартный поток вывода. Опция -i означает, что все изменения будут записаны в редактируемый файл.

    Опция -eE — это комбинация двух отдельных опций:

    • Опция -e означает следующее:
      • Первый параметр, не являющийся опцией, будет использован на входные данные в качестве скрипта;
      • Второй параметр, не являющийся опцией, будет использован в качестве файла со входными данными.
    • Опция -E означает, что следующий за этой опцией скрипт написан на расширенном языке регулярных выражений.

    Следующий за опциями скрипт заменит в файле /etc/cron.d/wallarm-node-nginx строки, которые удовлетворяют регулярному выражению ^#(.*sync-blacklist.*) на последовательности символов, которые удовлетворяют регулярному выражению внутри круглых скобок. Обратная ссылка \ 1 в этом скрипте означает, что подвыражение в первой паре круглых скобок должно использоваться в качестве замены.

    Строка, удовлетворяющая регулярному выражению ^#(.*sync-blacklist.*):

    • Начинается с символа #;
    • Содержит sync-blacklist в качестве подстроки.

    Замена для описанной строки — подстрока этой строки без символа # в начале строки.

    Данная команда снимает комментарий со строки, указывающей на синхронизацию черного списка. Таким образом, будет активирована синхронизация черных списков.

    Подробнее о работе потокового редактора sed вы можете узнать здесь.

  5. Адреса можно добавлять в белый список, чтобы пропускать запросы, приходящие с этих адресов, без проверки на принадлежность к черному списку. Например, следующие строки в конфигурационном файле хоста или location'а добавляют в его белый список диапазон IP-адресов 1.2.3.4/32:

    server {
        ...
        wallarm_acl default;
        allow 1.2.3.4/32;
        satisfy any;
        ...
    }
    

results matching ""

    No results matching ""