Как запретить добавление VPN подключения в Windows
- Ошибка "Неверная функция"
- Как отключить добавление VPN подключения через редактор реестра
- Использование reg файла для отключения раздела VPN
- Используем командную строку для отключения VPN настроек
- Как запретить добавление VPN подключения в Windows с помощью PowerShell
- Централизованное отключение VPN настроек с помощью групповых политик
- Как вернуть возможность создания VPN подключения в Windows
Добрый день! Уважаемые читатели и гости. В предыдущей публикации я вам показал, что очень полезно уметь определять по mac-адресу производителя устройства, показал рабочие сценарии, где это может пригодиться. В сегодняшней публикации я вам хочу показать, как вы можете убрать возможность создания VPN подключения в Windows, покажу, что это нужно делать даже для администраторов системы, если только в этом нет особой необходимости.
Ошибка "Неверная функция"
Опишу немного ситуацию, которая побудила меня к написанию данной статьи. В какой-то момент у меня по сети отвалился один из серверов. Такое иногда бывает, когда появляется BSOD. Я попытался подключиться по RDP к данному серверу, но ничего не получилось. Так как это виртуальная машина, то всегда есть возможность воспользоваться консольным подключением.
В консольном подключении после ввода логина и пароля я увидел для себя необычное сообщение, которое до этого я не видел и повторные попытки залогиниться терпели крах.
Неверная функция
После принудительной перезагрузки мне удалось попасть на данный сервер. Как и в любой ситуации я всегда иду изучать логи Windows. Первое что я увидел из ошибок:
ID 20267: Что некий пользователь успешно установил подключение к resurs с помощью устройства VPN3-1
ID 8015: Системе не удалось зарегистрировать записи ресурсов узла (A и AAAA) для сетевого адаптера. Далее GUID интерфейса и странные IP адреса не из моего диапазона.
Теперь я понял, что произошло. Некий пользователь, не обладая административными правами, создал VPN подключение и успешно через него установил соединение. В результате чего была переписана таблица маршрутизации и весь трафик стал проходить через другой шлюз VPNа. Естественно RDP и связь с серверам пропала. Вот такой нежданчик может сделать рядовой пользователь сам того не зная. Понимая это я решил запретить добавление VPN подключения для кого либо на сервере, если только оно явным образом не будет нужно.
Читайте так же - Как ввести в домен Windows 10
По умолчанию рядовой пользователь имеет права на создание VPN подключения. Данная настройка находится по пути "Параметры - Сеть и интернет - VPN".
Как видите кнопка "Добавить VPN-подключение" активна и если ее нажать, то выскакивает форма, где вам нужно выбрать поставщика услуг, тип подключения, например L2TP или PPTP. Суть проблемы, в том что имея такие возможности пользователь может легко вам положить сервер, и ниже я приведу пример из практики.
Как отключить добавление VPN подключения через редактор реестра
Для начала я покажу, что за ключи реестра помогут вам решить вашу задачу. Откройте окно выполнить и введите там:
Перейдите в раздел:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN
Тут вам необходимо создать ключ реестра с именем "value" и типом DWORD.
Если у значения ключа "value" выставить "0", то вы отключите возможность добавления нового VPN подключения.
В результате текущие настройки применяются на лету, теперь все пункты раздела VPN стали неактивными.
Использование reg файла для отключения раздела VPN
Второй метод решить нашу задачу, это создать заранее готовый reg файл с нужным наполнением, который сам пропишет нужный ключ. Создайте простой тестовый файл с таким содержимым:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN] "value"=dword:00000000
После наполнения файла, вам нужно изменить его расширение с txt на reg. Запускаем созданный файл и соглашаемся с добавлением изменений. В результате этих действий у вас добавиться в нужный раздел реестра ключ и функционал создания VPN подключений будет заблокирован.
Используем командную строку для отключения VPN настроек
Существует очень старая команда reg add, в задачи которой входит создание ключей и веток реестра. В командной строке запущенной в режиме администратора выполните данную команду:
reg add "HKLM\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowVPN" /v "Value" /t REG_DWORD /d 0 /f
В результате у вас будет создан ключ Value по данному кусту в реестре.
Как запретить добавление 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."
или вот такой вариант:
# Определяем путь к реестру
$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 уже существует."
}
Можно создать такие ключи для списка адресов в текстовом файле:
# Путь к файлу со списком адресов
$filePath = "C:\Temp\RDS\servers.txt"# Определяем имя новой записи и значение
$name = "value"
$value = 0# Проверяем, существует ли файл
if (Test-Path $filePath) {
# Читаем адреса из файла
$addresses = Get-Content -Path $filePathforeach ($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 подключения в 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
На этом у меня все, с вами был Иван Сёмин, автор и создатель IT портала