База знаний VMmanager

Как заблокировать доступ к определённому сайту

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

Описание

Требуется заблокировать доступ для всех ВМ к определённому IP-адресу, сайту, ресурсу. 

Как заблокировать доступ к сайту

Чтобы заблокировать доступ к сайту, добавьте правило в цепочку PREROUTING. Ниже см. два варианта блокировки доступа:

  • с сохранением правила после перезапуска сервера;
  • без сохранения правила после перезапуска сервера.
Внимание
Решение было протестировано на типе сети Коммутация. Для других типов сети правило может отличаться. 
Внимание

Регистр в названии цепочки PREROUTING зависит от вашей ОС. Чтобы определить регистр, выполните команду:

nft list ruleset

С сохранением правила после перезапуска сервера

Блокировка с сохранением правила после перезапуска выполняется через table bridge nat и работает для виртуальных машин на bridge-сети.

Чтобы заблокировать доступ к сайту:

  1. Определите IP-адреса сайта:
    dig +short <адрес_сайта>
    Пример вывода
    dig +short <адрес_сайта>
    10.10.10.1
    10.10.11.1
  2. Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  3. Откройте файл /etc/nftables/vmmgr.nft в режиме редактирования.
  4. Добавьте или измените таблицу bridge nat как в примере ниже:
    table bridge nat { chain PREROUTING { type filter hook prerouting priority dstnat; policy accept; ip daddr { 10.10.10.1, 10.10.11.1 } drop } }
    Пояснения
  5. Примените изменения:
    nft -f /etc/nftables/vmmgr.nft
  6.  Убедитесь, что правило добавлено:
    nft list ruleset

Без сохранения правила после перезапуска сервера

Чтобы заблокировать доступ к сайту:

  1. Определите IP-адреса сайта:
    dig +short <адрес_сайта>
    Пример вывода
    dig +short <адрес_сайта>
    10.10.10.1
    10.10.11.1
  2. Выполните команду:
    nft add rule bridge nat PREROUTING ip daddr { 10.10.10.1, 10.10.11.1 } drop
    Пояснения

Как снять блокировку

Чтобы снять блокировку, удалите созданное правило:

  1. Определите номер handle для удаления правила:
    nft -a list chain bridge nat PREROUTING
    Пример вывода
          ip daddr { 10.10.10.1, 10.10.11.1 } drop # handle <номер_handle>
       }
    
    Пояснения
  2. Удалите правило:
    nft delete rule bridge nat PREROUTING handle <номер_handle>
    Пояснения
Дата последнего обновления статьи: 04.06.2025. Статья подготовлена техническими писателями ISPsystem.