Перейти к содержанию

Описание протоколов PPTP и L2TP#

PPTP#

PPTP (Point-to-Point Tunneling Protocol) — туннельный протокол типа «точка-точка», позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной незащищённой сети. Спецификация протокола PPTP приведена в RFC 2637. Протокол считается менее безопасным, чем другие протоколы, используемые для построения VPN, например, IPSec. Безопасность решения PPTP напрямую зависит от сложности паролей, которые используются пользователями. По этой причине при использовании в практических условиях следует внимательно следить за стойкостью используемых паролей. Как следствие этого, решения на базе PPTP слабее по сравнению с другими решениями.

К преимуществам данной технологии построения VPN можно отнести простоту настройки, а также тот факт, что все версии ОС Microsoft Windows, начиная с Windows 95 OSR2, включают в свой состав встроенный клиент PPTP.

На рисунке ниже приведена схема использования режима удаленного доступа VPN с использованием PPTP.

pptp1

VPN удаленного доступа на основе протокола PPTP

При использовании такого решения:

  • Клиент PPTP устанавливает соединение TCP с сервером (порт 1723).
  • Через установленное соединение клиент PPTP и сервер устанавливают туннель GRE (Generic Routing Encapsulation).
  • Затем поверх туннеля GRE устанавливается сеанс протокола PPP (Point-to-Point Protocol): пакеты PPP инкапсулируются и принимаются/отправляются через туннель GRE.

Аутентификация пользователей и шифрование данных осуществляется на уровне PPP при помощи комбинации имени и пароля с использованием протокола MS CHAP или MS CHAP v2 для аутентификации и протокола MPPE для шифрования.

L2TP/IPSec#

L2TP (Layer 2 Tunneling Protocol) — туннельный протокол, использующийся для поддержки виртуальных частных сетей. Для обеспечения безопасности пакетов L2TP используется набор протоколов IPSec, который обеспечивает конфиденциальность, аутентификацию и целостность передаваемых данных.

После запуска сервера L2TP начинается прослушивание порта UDP/1701 на предмет входящих соединений L2TP на внешнем интерфейсе сервера VPN. В штатном режиме работы клиент VPN первым устанавливает сеанс IPSec с сервером VPN, после чего через туннель IPSec устанавливается соединение L2TP.

При прослушивании порта UDP/1701 L2TP сервер также принимает входящие подключения L2TP, которые не туннелируются при помощи IPSec. Это может быть использовано, например, в том случае, если пользователь устанавливает соединение L2TP VPN без туннеля IPSec (следует отметить, что клиенты VPN под управлением ОС Windows не имеют такой возможности), при этом весь трафик пользователя будет «открытым», то есть не будет шифроваться.

На рисунке ниже приведен режим VPN удаленного доступа с использованием протокола L2TP (Layer 2 Tunneling Protocol) и IPSec.

pptp2

VPN удаленного доступа на основе протокола L2TP/IPSec

При использовании такого решения:

  • Удаленный компьютер сначала устанавливает туннель IPSec к серверу VPN.
  • Затем клиент и сервер L2TP устанавливают туннель L2TP поверх туннеля IPSec.
  • Далее сеанс PPP устанавливается поверх туннеля L2TP: пакеты PPP инкапсулируются и принимаются/отправляются через туннель L2TP.

В практических условиях рекомендуется ограничивать использование L2TP соединений без использования IPSec. В зависимости от ситуации этого можно добиться следующими способами:

  • В том случае если сервер VPN размещается в демилитаризованной зоне (DMZ) и перед ним установлен межсетевой экран, то межсетевой экран может быть настроен на прохождение к серверу VPN только трафика IPSec (то есть прохождение пакетов на UDP порт 1701 запрещено). Таким образом, соединения L2TP/IPSec смогут быть установлены, а соединения L2TP будут заблокированы.
  • В том случае если сервер VPN напрямую подключен ко внешней сети, межсетевой экран на сервере VPN должен быть настроен таким образом, чтобы запрещать отдельные соединения L2TP. Например, для того чтобы разрешить подключения L2TP/IPSec, можно определить в системе следующее правило и применить его к внешнему интерфейсу с использованием ключевого слова local (правило в этом случае будет применяться к пакетам, предназначенным для системы Numa Edge). Соединения L2TP без использования IPSec могут быть заблокированы правилом default-drop.
rule 10 {
   action accept
      destination {
         port 1701 
      }
      ipsec {
         match-ipsec 
      }
      protocol udp 
   }

L2TP/IPSec с использованием предварительных ключей#

Настройка режима с использованием предварительных ключей проще, чем настройка режима с использованием сертификатов стандарта X.509. Следует учесть, что всеми удаленными пользователями VPN в части IPSec их подключений должны быть использованы одинаковые предварительные ключи, что может создавать определенные трудности — например, когда доступ VPN необходимо отозвать у одного из пользователей. Несмотря на то, что доступ можно ограничить на основе более высокоуровневой аутентификации, пользователь все же будет обладать ключом IPSec и сможет устанавливать сеансы IPSec, что нежелательно. Для того чтобы предотвратить такую ситуацию, необходимо будет настроить новый ключ на сервере VPN и всех клиентах VPN.

В этом случае на уровне PPP (с использованием имени и пароля) осуществляется только аутентификация пользователей. Шифрование данных обеспечивается средствами IPSec. Более того, чтобы осуществить шифрование, IPSec также требует аутентификации (использование IPSec в режиме, при котором осуществляется только шифрование, считается менее безопасным).

При использовании L2TP/IPSec с аутентификацией на основе предварительных ключей на всех удаленных клиентах должны быть настроены одинаковые ключи. Следовательно, при смене ключа необходимо будет настраивать заново все удаленные клиенты. Использование аутентификации на основе сертификатов стандарта X.509 позволяет избежать указанной ситуации.

L2TP/IPSec с использованием сертификатов стандарта X.509#

Использование сертификатов X.509 совместно с L2TP/IPSec позволит предотвратить вышеупомянутую ситуацию, однако применение сертификатов имеет свои сложности:

  • Сертификаты стандарта X.509 необходимо создавать с использованием инфраструктуры открытых ключей (PKI) при помощи удостоверяющего центра (CA). Для этого могут использоваться PKI, созданные при помощи коммерческих или свободно распространяемых продуктов (например, OpenSSL), а также модуля PKI системы Numa Edge. Установка PKI требует комплексного подхода к вопросам безопасности.
  • После получения сертификатов необходимо решить вопрос безопасной доставки сертификатов удаленным пользователям. Для этого, например, можно записать сертификаты на USB-флеш-накопитель и перенести их на каждое из клиентских устройств. Также сертификаты можно передать по протоколу SCP.
  • При использовании сертификатов X.509 с L2TP/IPSec, настройка клиентов VPN в ОС Windows сложнее, чем при использовании предварительных ключей. По этой причине, а также из-за проблемы распределения сертификатов, может возникнуть необходимость предварительной настройки компьютеров клиентов для организации удаленного доступа.

Общая схема работы L2TP/IPSec VPN с использованием сертификатов X.509 функционирует следующим образом:

  1. Сетевой администратор получает сертификат, подписанный удостоверяющим центром для каждого удаленного пользователя, и распространяет их пользователям через безопасные каналы совместно с пользовательскими открытыми/секретными ключами.
  2. Сетевой администратор настраивает сервер VPN с открытым ключом удостоверяющего центра.
  3. Когда удаленный клиент подключается к серверу VPN, он предоставляет свой сертификат.
  4. Сервер VPN подтверждает подлинность сертификата при помощи открытого ключа удостоверяющего центра. В результате успешной проверки подлинности сервер получает открытый ключ клиента. Впоследствии сервер может использовать данный открытый ключ для аутентификации.
  5. В результате успешной аутентификации устанавливается туннель IPSec между клиентом и сервером, после чего этапы использования L2TP и PPP аналогичны тем, которые применяются при аутентификации с помощью предварительных ключей.