Разрешение использования доменного имени вместо IP-адреса в брандмауэре Windows

Вопрос или проблема

Клиент раз в неделю получает записи с удаленного экземпляра MSSQL, используя Excel, для чего он включен в белый список на Windows Server, на котором работает этот экземпляр. Однако время от времени его интернет-провайдер назначает ему новый IP, и мне приходится вручную добавлять его в брандмауэр, чтобы вернуть ему доступ.

В идеале я хотел бы, чтобы он начал использовать DuckDNS или другую службу динамического DNS, чтобы я мог просто добавить домен в белый список, а не вносить изменения вручную. Возможно ли это каким-либо образом на Windows? Включение целого диапазона IP-адресов решило бы проблему, но открыло бы сервер для большего количества машин, с которыми я некомфортно.

Есть ли у брандмауэра Windows такая возможность, и если да, то как мне это настроить?

Брандмауэр Windows работает по IP-адресу, а не по доменному имени.

Возможным решением могло бы быть создание скрипта PowerShell и его запуск при входе в систему. Скрипт тогда будет разрешать DNS-имя и создавать новое правило. Он также должен удалять последнее правило, потому что иначе они будут накапливаться, возможно, даже ежедневно.

Вы можете найти полезные фрагменты PowerShell (с некоторыми изменениями) в статье
Как заблокировать домен или веб-сайт в брандмауэре Windows Defender с помощью PowerShell?

.

Ответ или решение

Разрешение доменного имени вместо IP-адреса в Windows Firewall

В условиях постоянно меняющихся IP-адресов, особенно когда речь идет о динамических диапазонах, настройка доступа к удаленным ресурсам может стать настоящим вызовом. В этой статье мы рассмотрим подходы к решению задачи, связанной с разрешением доменного имени, а не IP-адреса, в Windows Firewall, что позволит упростить управление доступом к MSSQL-инстансам.

Проблема

Ваш клиент, использующий Excel для получения данных из удаленной базы данных MSSQL, сталкивается с проблемой, связанной со сменой IP-адреса, назначаемого его интернет-провайдером. Для обеспечения доступа его IP необходимо добавлять в список разрешенных в Windows Server, что требует постоянного ручного вмешательства. Политика безопасности требует, чтобы вы не открывали доступ для большого диапазона IP-адресов из соображений безопасности.

Решение

К сожалению, Windows Firewall изначально работает с IP-адресами и не поддерживает возможности по созданию правил фильтрации на основе доменных имен. Тем не менее, существует эффективное решение, которое можно реализовать с помощью PowerShell.

Использование PowerShell для динамического обновления правил
  1. Настройка динамического DNS: Первым шагом будет настройка клиента на использование услуги динамического DNS, такой как DuckDNS. Это позволит вашему клиенту иметь фиксированное доменное имя, которое будет всегда указывать на его текущий IP-адрес.

  2. Создание PowerShell-скрипта: Напишите скрипт на PowerShell, который будет разрешать доменное имя в IP-адрес и обновлять правила Windows Firewall.

    $domainName = "yourclient.duckdns.org"
    $ip = (Resolve-DnsName $domainName).IPAddress[0] # Получение IP-адреса
    
    # Удаление предыдущего правила
    try {
       Remove-NetFirewallRule -DisplayName "Access to MSSQL from $domainName"
    } catch {
       Write-Host "Правило не найдено, возможно, это первая настройка."
    }
    
    # Создание нового правила
    New-NetFirewallRule -DisplayName "Access to MSSQL from $domainName" -Direction Inbound -Action Allow -RemoteAddress $ip -Protocol TCP -LocalPort 1433
  3. Автоматизация скрипта: Настройте планировщик задач (Task Scheduler) для выполнения данного скрипта при каждом входе пользователя или по расписанию, чтобы гарантировать, что правило будет актуальным.

  4. Проверка и обслуживание: Рекомендуется добавить логику контроля, которая будет проверять актуальность IP каждый раз, когда выполняется скрипт, а также уведомлять администратора в случае ошибок.

Заключение

Хотя Windows Firewall не поддерживает прямую работу с доменными именами, использование PowerShell и динамического DNS предоставляет мощное и гибкое решение для автоматизации процессов управления доступом. Это метод не только уменьшит количество ручных операций, но и повысит уровень безопасности вашего сервера, исключая необходимость предоставления доступа широкой группе IP-адресов. Теперь ваш клиент сможет без проблем получать данные из MSSQL, а вы сможете сосредоточиться на других задачах, не беспокоясь о постоянных изменениях IP-адресов.

Оцените материал
Добавить комментарий

Капча загружается...