Как запретить добавление VPN подключения в Windows

Disable VPN

Добрый день! Уважаемые читатели и гости. В предыдущей публикации я вам показал, что очень полезно уметь определять по mac-адресу производителя устройства, показал рабочие сценарии, где это может пригодиться. В сегодняшней публикации я вам хочу показать, как вы можете убрать возможность создания VPN подключения в Windows, покажу, что это нужно делать даже для администраторов системы, если только в этом нет особой необходимости.

Ошибка "Неверная функция"

Опишу немного ситуацию, которая побудила меня к написанию данной статьи. В какой-то момент у меня по сети отвалился один из серверов. Такое иногда бывает, когда появляется BSOD. Я попытался подключиться по RDP к данному серверу, но ничего не получилось. Так как это виртуальная машина, то всегда есть возможность воспользоваться консольным подключением.

В консольном подключении после ввода логина и пароля я увидел для себя необычное сообщение, которое до этого я не видел и повторные попытки залогиниться терпели крах.

Неверная функция

Неверная функция

После принудительной перезагрузки мне удалось попасть на данный сервер. Как и в любой ситуации я всегда иду изучать логи Windows. Первое что я увидел из ошибок:

ID 20267: Что некий пользователь успешно установил подключение к resurs с помощью устройства VPN3-1

ID 20267

ID 8015: Системе не удалось зарегистрировать записи ресурсов узла (A и AAAA) для сетевого адаптера. Далее GUID интерфейса и странные IP адреса не из моего диапазона.

ID 8015

Теперь я понял, что произошло. Некий пользователь, не обладая административными правами, создал VPN подключение и успешно через него установил соединение. В результате чего была переписана таблица маршрутизации и весь трафик стал проходить через другой шлюз VPNа. Естественно RDP и связь с серверам пропала. Вот такой нежданчик может сделать рядовой пользователь сам того не зная. Понимая это я решил запретить добавление VPN подключения для кого либо на сервере, если только оно явным образом не будет нужно.

Читайте так же - Как ввести в домен Windows 10

По умолчанию рядовой пользователь имеет права на создание VPN подключения. Данная настройка находится по пути "Параметры - Сеть и интернет - VPN". 

Добавить VPN-Подключение

Как видите кнопка "Добавить VPN-подключение" активна и если ее нажать, то выскакивает форма, где вам нужно выбрать поставщика услуг, тип подключения, например L2TP или PPTP. Суть проблемы, в том что имея такие возможности пользователь может легко вам положить сервер, и ниже я приведу пример из практики.

Добавить VPN-подключение в Windows

Как отключить добавление VPN подключения через редактор реестра

Для начала я покажу, что за ключи реестра помогут вам решить вашу задачу. Откройте окно выполнить и введите там:

regedit

regedit

Перейдите в раздел:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN

Тут вам необходимо создать ключ реестра с именем "value" и типом DWORD.

Создаем ключ value

Если у значения ключа "value" выставить "0", то вы отключите возможность добавления нового VPN подключения.

Запрет создания VPN в Windows через реестр

В результате текущие настройки применяются на лету, теперь все пункты раздела VPN стали неактивными.

Успешное отключение VPN настроек

Использование reg файла для отключения раздела VPN

Второй метод решить нашу задачу, это создать заранее готовый reg файл с нужным наполнением, который сам пропишет нужный ключ. Создайте простой тестовый файл с таким содержимым:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN] "value"=dword:00000000

reg файл для отключения VPN

После наполнения файла, вам нужно изменить его расширение с txt на reg. Запускаем созданный файл и соглашаемся с добавлением изменений. В результате этих действий у вас добавиться в нужный раздел реестра ключ и функционал создания VPN подключений будет заблокирован.

Запуск reg файла

Используем командную строку для отключения VPN настроек

Существует очень старая команда reg add, в задачи которой входит создание ключей и веток реестра. В командной строке запущенной в режиме администратора выполните данную команду:

reg add "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN" /v "Value" /t REG_DWORD /d 0 /f

В результате у вас будет создан ключ Value по данному кусту в реестре.

AllowVPN в cmd

Как запретить добавление VPN подключения в Windows с помощью PowerShell

PowerShell один из моих любимых инструментов по управлению Windows Server и Windows 11, когда создавать групповую политику громоздко.  Чтобы решить нашу задачу вы можете запустить PowerShell ISE в режиме администратора. Выполните вот такой код:

# Указываем путь к нужному ключу реестра
$registryPath = 'HKLM:\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN'

# Проверяем существование ключа AllowVPN
if (-not(Test-Path $registryPath)) {
# Если ключ отсутствует, создаем его
New-Item -Path $registryPath -Force | Out-Null
}

# Создаем новую запись DWORD с именем "Value" и значением 0
New-ItemProperty -Path $registryPath -Name 'Value' -PropertyType 'DWord' -Value 0 -Force | Out-Null

# Выводим сообщение об успешном создании записи
Write-Host "Запись Value была успешно создана со значением 0."

Отключение VPN в PowerShell

или вот такой вариант:

# Определяем путь к реестру
$registryPath = "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN"

# Определяем имя новой записи и значение
$name = "value"
$value = 0

# Проверяем, существует ли уже запись
if (-not (Test-Path "$registryPath\$name")) {
# Создаем новую запись в реестре
New-ItemProperty -Path $registryPath -Name $name -Value $value -PropertyType DWord -Force
Write-Host "Запись $name успешно создана с значением $value."
} else {
Write-Host "Запись $name уже существует."
}

Отключение VPN в PowerShell. Второй метод

Можно создать такие ключи для списка адресов в текстовом файле:

# Путь к файлу со списком адресов
$filePath = "C:\Temp\RDS\servers.txt"

# Определяем имя новой записи и значение
$name = "value"
$value = 0

# Проверяем, существует ли файл
if (Test-Path $filePath) {
# Читаем адреса из файла
$addresses = Get-Content -Path $filePath

foreach ($address in $addresses) {
# Формируем путь к реестру для текущего адреса
$registryPath = "HKLM:SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN\$address"

# Проверяем, существует ли уже запись
if (-not (Test-Path "$registryPath$name")) {
# Создаем новую запись в реестре
New-Item -Path $registryPath -Force # Создаем папку, если она не существует
New-ItemProperty -Path $registryPath -Name $name -Value $value -PropertyType DWord -Force
Write-Host "Запись $name успешно создана для адреса $address с значением $value."
} else {
Write-Host "Запись $name уже существует для адреса $address."
}
}
} else {
Write-Host "Файл по указанному пути не найден: $filePath"
}

Кстати сохранив данный код в виде ps1 файла. вы можете использовать его для распространения через SCCM.

Централизованное отключение VPN настроек с помощью групповых политик

Это самый правильный способ для крупных компаний у которых есть Active Directory. Плюс в том, что единожды настроив вы будите применять групповую политику и на новые серверы и компьютеры, по умолчанию.

Выбираем нужную OU и создаем на ее уровне новую групповую политику, переходим к ее редактированию. Нас будет интересовать раздел:

Computer Configuration - Preferences - Windows Settings - Registry

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

  • Action - Update
  • Hive - HKEY_LOCAL_MACHINE
  • Key Path - SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN
  • Value name - value
  • Value type - REG_DWORD
  • Value data - 0

Запретить VPN через GPO

Далее дожидаемся обновления групповой политики, или можно применить ее принудительно.

Если вы не знаете когда у вас применялась групповая политика, то можно эти данные легко получить, поможет при траблшутинге

Как вернуть возможность создания VPN подключения в Windows

Для того чтобы убрать запреты на создание VPN подключений, вам необходимо либо удалить, либо изменить значение ключа value на "1". Если у вас распространение ключа идет через групповую политику, то измените там значение на 1, или же просто уберите ваш компьютер из области действия GPO, либо там подредактируйте ее так же на значение 1.

Если у вас настройка ручная, то можно применить reg файл:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN] "value"=dword:00000001

или можно так же воспользоваться PowerShell, для удаления ключа.

# Укажите путь к реестру
$registryPath = "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN"

# Укажите имя значения, которое нужно удалить
$valueName = "value"

# Удалите значение
Remove-ItemProperty -Path $registryPath -Name $valueName -ErrorAction Stop

И не забываем про командную строку, где есть команда reg delete.

reg delete "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN" /v Value /f

Удаление ключа реестра AllowVPN

На этом у меня все, с вами был Иван Сёмин, автор и создатель IT портала

Оцените статью
Настройка серверов windows и linux
Добавить комментарий