Общий ключ для VPN: что это, как работает и где его взять

Разбираемся, что такое общий ключ (Pre-Shared Key) в VPN L2TP/IPsec, как он используется, как его настроить на Windows, Android и Linux, а также отвечаем на частые вопросы.

Что такое общий ключ для VPN и зачем он нужен

Общий ключ (Pre-Shared Key, PSK) — это секретная строка, которая используется для аутентификации при установке VPN-соединения по протоколу L2TP/IPsec. Он выступает в роли пароля, который должен совпадать на сервере и на клиенте, чтобы обе стороны могли подтвердить друг другу, что они знают общий секрет. Без совпадения ключей соединение не будет установлено.

В контексте L2TP/IPsec общий ключ используется в протоколе IKE (Internet Key Exchange) для создания защищённого канала. Он участвует в первой фазе согласования, когда стороны обмениваются параметрами шифрования и аутентифицируются. После успешной аутентификации начинается передача данных через туннель.

Важно понимать, что общий ключ — это не пароль пользователя. Пароль пользователя используется на втором этапе, когда происходит аутентификация самого пользователя (например, по протоколу MSCHAPv2 или PAP). Общий ключ защищает само соединение, а пароль — доступ к ресурсам.

Где взять общий ключ для VPN

Общий ключ не генерируется автоматически — его задаёт администратор VPN-сервера. Если вы подключаетесь к корпоративному VPN, ключ вам должен предоставить системный администратор. В случае использования готового образа VPN-сервера, например, на базе Windows Server 2019 от RuVDS, ключ может быть предустановлен и указан в документации. В примере из справочника RuVDS для образа с L2TP используется ключ vpn.

Если вы настраиваете собственный VPN-сервер, вы сами выбираете ключ. Главное — использовать достаточно длинную и сложную строку, чтобы её было трудно подобрать. Не стоит использовать простые слова или короткие комбинации.

При настройке VPN-клиента важно точно ввести ключ, включая регистр символов. Ошибка даже в одном символе приведёт к невозможности подключения.

Как настроить общий ключ в Windows 10 и Windows 11

В Windows 10 и Windows 11 настройка VPN-подключения с общим ключом выполняется через графический интерфейс. Для этого нужно перейти в «Параметры» → «Сеть и Интернет» → «VPN» и нажать «Добавить VPN-подключение».

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

  • Поставщик услуг VPN — оставьте «Windows (встроенные)».
  • Имя подключения — любое удобное имя, например, «WorkVPN».
  • Имя или адрес сервера — IP-адрес или доменное имя VPN-сервера.
  • Тип VPN — выберите «L2TP/IPsec с общим ключом».
  • Общий ключ — введите ключ, полученный от администратора.
  • Тип данных для входа — выберите «Имя пользователя и пароль».
  • Имя пользователя и пароль — укажите учётные данные для подключения.

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

Если у вас возникают проблемы с подключением, возможно, потребуется изменить дополнительные параметры безопасности. Например, в свойствах адаптера на вкладке «Безопасность» можно выбрать протокол аутентификации PAP, если сервер требует именно его.

Настройка общего ключа на Android

На устройствах Android настройка VPN с общим ключом также возможна через системные настройки. Перейдите в «Настройки» → «VPN» и нажмите «Добавить VPN-сеть» (или значок «+»).

В открывшемся окне заполните поля:

  • Название — любое имя подключения.
  • Тип — выберите «L2TP/IPSec PSK».
  • Адрес сервера — IP-адрес или домен VPN-сервера.
  • Общий ключ IPSec — введите общий ключ.
  • Имя пользователя и пароль — укажите учётные данные.

После заполнения сохраните настройки, нажав на галочку. В списке VPN-подключений появится новое соединение. Для подключения нажмите на него и введите учётные данные, если они не были сохранены.

Обратите внимание, что в новых версиях Android (например, Android 13) поддержка L2TP может быть ограничена. В некоторых прошивках отсутствует возможность указать общий ключ для L2TP, и доступны только протоколы IKEv2/IPsec. В таком случае вам придётся использовать другой протокол или стороннее приложение.

Настройка общего ключа в Linux (Ubuntu)

В Linux, в частности в Ubuntu, для настройки L2TP/IPsec VPN используется Network Manager с плагином network-manager-l2tp. Установить его можно командой:

sudo apt update
sudo apt install -y network-manager-l2tp network-manager-l2tp-gnome

После установки откройте «Настройки» → «Сеть» и в разделе VPN нажмите «+». Выберите тип «Туннельный протокол второго уровня (L2TP)».

В открывшемся окне на вкладке «Идентификация» укажите:

  • Имя соединения — произвольное название.
  • Шлюз — адрес VPN-сервера.
  • Имя пользователя и пароль — учётные данные.

Затем нажмите кнопку «Параметры IPsec» и установите флажок «Включить IPsec-туннель к L2TP-хосту». В поле «Общий ключ» введите ключ. При необходимости настройте параметры IKE (фазы 1 и 2), но обычно значения по умолчанию подходят.

Далее перейдите в «Параметры PPP» и разрешите метод аутентификации PAP, если сервер его использует. Остальные методы можно отключить. Сохраните настройки и попробуйте подключиться.

Управление VPN-подключениями через PowerShell

Для автоматизации настройки VPN в Windows можно использовать PowerShell. Командлет Add-VpnConnection позволяет создавать подключения с указанием типа туннеля и общего ключа.

Пример создания L2TP/IPsec подключения с общим ключом:

Add-VpnConnection -Name "WorkVPN_L2TP" -ServerAddress "vpn.example.com" -TunnelType L2TP -L2tpPsk "str0ngSharedKey2" -Force -EncryptionLevel "Required" -AuthenticationMethod MSChapv2 -UseWinlogonCredential -RememberCredential -AllUserConnection -PassThru

Здесь параметр -L2tpPsk задаёт общий ключ. Если его не указать, Windows будет использовать сертификат для аутентификации.

Для изменения параметров существующего подключения используется Set-VpnConnection. Например, чтобы включить раздельное туннелирование:

Set-VpnConnection -Name "WorkVPN_L2TP" -SplitTunneling $true -PassThru

Удалить подключение можно командой Remove-VpnConnection. Для подключения к VPN из командной строки используйте rasdial "Имя подключения".

При использовании PowerShell важно экранировать специальные символы в ключе, например, символ $ нужно экранировать обратным апострофом: ` $ ``.

Безопасность общего ключа: риски и рекомендации

Общий ключ — это статический секрет, который хранится на всех устройствах, подключающихся к VPN. Если ключ станет известен злоумышленнику, он сможет попытаться установить соединение, если также знает имя пользователя и пароль. Поэтому важно соблюдать правила безопасности:

  • Используйте длинные и случайные ключи (не менее 20 символов), включающие буквы разного регистра, цифры и специальные символы.
  • Не используйте один и тот же ключ для разных VPN-серверов или длительное время. Регулярно меняйте ключ, особенно если есть подозрение на утечку.
  • Храните ключ в безопасном месте, не передавайте его по незащищённым каналам (например, в открытых мессенджерах).
  • Ограничьте доступ к ключу: он должен быть известен только администратору и тем, кому действительно нужно подключаться.

Также стоит помнить, что L2TP/IPsec с общим ключом считается менее безопасным, чем IKEv2 с сертификатами, но при правильной настройке и использовании сложного ключа он обеспечивает достаточный уровень защиты для большинства задач.

Типичные проблемы при использовании общего ключа

При настройке VPN с общим ключом пользователи часто сталкиваются с ошибками подключения. Рассмотрим наиболее распространённые проблемы и способы их решения.

Неверный общий ключ. Если ключ указан неверно, соединение не установится. Проверьте правильность ввода, включая регистр символов. На сервере и клиенте ключ должен совпадать точно.

Проблемы с NAT-T. Если VPN-сервер находится за устройством NAT, может потребоваться включить поддержку NAT-T (NAT Traversal) на сервере и клиенте. В Windows для L2TP/IPsec это можно сделать через реестр, но в большинстве случаев современные системы поддерживают NAT-T автоматически.

Ограничения в новых версиях Android. Как уже упоминалось, Android 13 и новее могут не поддерживать L2TP с общим ключом. В этом случае используйте IKEv2 или сторонние приложения.

Конфликты с другими VPN-подключениями. Если на устройстве настроено несколько VPN-подключений, убедитесь, что вы выбираете правильное. Также проверьте, не блокирует ли VPN-клиент сторонний софт (антивирус, файрвол).

Ошибки аутентификации. Если общий ключ верен, но подключение не проходит, проверьте метод аутентификации. Некоторые серверы требуют PAP, а Windows по умолчанию использует MSCHAPv2. В свойствах VPN-адаптера на вкладке «Безопасность» можно изменить протокол.

Альтернативы общему ключу: сертификаты и IKEv2

Хотя общий ключ широко используется, существуют более безопасные альтернативы. Например, IKEv2 с сертификатами машин. В этом случае вместо общего ключа используется цифровой сертификат, который выдаётся доверенным центром сертификации (CA). Это исключает необходимость хранения общего секрета на клиенте и позволяет более гибко управлять доступом.

Для настройки IKEv2 в Windows необходимо импортировать корневой сертификат CA в хранилище доверенных корневых сертификатов, а сертификат компьютера — в личные сертификаты. Затем создаётся VPN-подключение с типом IKEv2 и методом аутентификации MachineCertificate.

В Linux для IKEv2 можно использовать strongSwan или Network Manager с соответствующими плагинами. В Android также есть встроенная поддержка IKEv2/IPsec, но настройка может отличаться в зависимости от версии ОС.

Выбор между общим ключом и сертификатами зависит от требований безопасности и сложности инфраструктуры. Для небольших сетей или временных подключений общий ключ может быть достаточным, но для корпоративных сред чаще используют сертификаты.

Вопросы и ответы

Что делать, если я не знаю общий ключ для VPN?

Общий ключ задаётся администратором VPN-сервера. Если вы подключаетесь к корпоративной сети, обратитесь к системному администратору. Для самостоятельно настроенного сервера вы можете задать ключ сами. Если вы используете готовый образ VPN-сервера, ключ может быть указан в документации или в настройках образа.

Можно ли использовать один и тот же общий ключ для нескольких пользователей?

Да, общий ключ является общим для всех клиентов, подключающихся к конкретному VPN-серверу. Однако это создаёт риск: если ключ станет известен посторонним, они смогут попытаться подключиться, если также узнают логин и пароль. Для повышения безопасности рекомендуется использовать индивидуальные сертификаты или регулярно менять ключ.

Чем отличается общий ключ от пароля пользователя?

Общий ключ (PSK) используется для аутентификации самого VPN-туннеля на этапе установки соединения (IKE). Пароль пользователя используется для аутентификации пользователя внутри туннеля (например, через MSCHAPv2 или PAP). Это два разных уровня безопасности: сначала проверяется, что клиент знает общий ключ, затем — что пользователь имеет право доступа.

Почему на Android 13 нет поля для общего ключа IPSec?

В новых версиях Android (начиная с Android 13) поддержка L2TP/IPsec с общим ключом была ограничена или удалена из системных настроек. Вместо этого предлагаются протоколы IKEv2/IPsec, которые считаются более безопасными. Для подключения к L2TP-серверу с общим ключом на таких устройствах можно использовать сторонние приложения, например, strongSwan или OpenVPN.

Как изменить общий ключ на уже настроенном VPN-подключении в Windows?

В графическом интерфейсе Windows изменить общий ключ напрямую нельзя — нужно удалить подключение и создать его заново. Альтернативно можно использовать PowerShell: командлет Set-VpnConnection не позволяет изменить ключ, но вы можете пересоздать подключение с помощью Add-VpnConnection с новым ключом и тем же именем, предварительно удалив старое.

Что такое NAT-T и как он связан с общим ключом?

NAT-T (NAT Traversal) — это технология, позволяющая протоколам IPsec и L2TP работать через устройства NAT (например, домашние роутеры). Без NAT-T соединение может не установиться, если сервер или клиент находятся за NAT. Общий ключ не влияет на NAT-T, но для корректной работы L2TP/IPsec часто требуется включить NAT-T на сервере и клиенте. В Windows поддержка NAT-T обычно включена по умолчанию.