Сравнение протоколов: pptp, l2tp, openvpn, sstp, ikev2

Введение

Протоколы туннелирования 2-го уровня, в том числе L2TP, не предусматривают механизмы шифрования для трафика, проходящего через туннель. Шифрование данных они делегируют другим протоколам безопасности, таким как IPSec. В рассматриваемом примере конфигурации шифрование трафика L2TP для входящих подключений пользователей по коммутируемым каналам выполняется посредством IPSec.

Туннель L2TP устанавливается между концентратором доступа L2TP (LAC) и сетевым сервером L2TP (LNS). Между этими устройствами также устанавливается туннель IPSec, и весь трафик туннеля L2TP шифруется по протоколу IPSec.

Поиск и устранение неполадок

В этом разделе описывается процесс устранения неполадок конфигурации.

Команды для устранения неполадок

Некоторые команды show поддерживаются интерпретатором выходных данных (доступен только для зарегистрированных пользователей); интерпретатор позволяет просматривать анализ выходных данных команды show.

Примечание. Прежде чем применять команды debug, ознакомьтесь с документом Важные сведения о командах debug.

  • debug crypto engine – показывает события ядра.

  • debug crypto ipsec – показывает события IPSec.

  • debug crypto isakmp – показывает сообщения, касающиеся событий IKE.

  • debug ppp authentication – показывает сообщения протокола аутентификации, включая информацию об обмене пакетами CHAP и обмене по протоколу аутентификации по паролю (PAP).

  • debug vpdn event – показывает сообщения о событиях, являющихся частью обычного процесса установки или завершения работы туннеля.

  • debug vpdn error – показывает ошибки, не позволяющие установить туннель или вызывающие закрытие установленного туннеля.

  • debug ppp negotiation – показывает PPP-пакеты, передаваемые при запуске PPP во время согласования параметров.

Тест подключения

В нашем случае мы установили VPN-соединение со смартфоном Android, в частности Huawei P30, который включает клиента L2TP / IPsec PSK. Конфигурация, которую мы должны выполнить, следующая (мы не можем установить захват, потому что операционная система определяет его как частный контент).

  • Имя: мы даем VPN имя
  • Тип: L2TP / IPsec PSK
  • Сервер: IP- или DDNS-домен вашего VPN-сервера.
  • Секрет L2TP: 1234clavel2tp; ключ, который мы помещаем в раздел L2TP, который используется всеми клиентами.
  • Идентификатор IPsec: redeszone@redeszone.net
  • Начальный общий ключ IPsec: 12345678; ключ, который мы помещаем для идентификатора «allusers» в разделе IPsec / Pre-Shares Key.

Нажимаем на сохранить, и подключаемся. При подключении он запросит у нас имя пользователя и пароль, эти учетные данные мы вводим в «Пользователи L2TP». После этого он без проблем подключит нас к серверу VPN, и у нас будет доступ к администрированию pfSense и любой сети.

Как вы видели, соединение было успешно установлено и никаких проблем не возникло.

Бонус (shadowsocks)

Не всегда нужен полноценный VPN, иногда просто хочется безопасно посмотреть котиков в браузере. Для Windows скачиваем https://github.com/shadowsocks/shadowsocks-windows/releases

Shadowsocks Windows (не требует прав администратора)

В браузере Firefox скачиваем расширение FoxyProxy (так же и на Android), настройка: SOCKS5/127.0.0.1/1080

foxyproxy для Firefox, для Chrome — proxy-switchyomega

Для Android https://play.google.com/store/apps/details?id=com.github.shadowsocks выбираем только прокси (тогда не будет подниматься VPN канал).

Shadowsocks AndroidShadowsocks скорость на провайдер МТС в Санкт-ПетербургSSTP VPN (2 устройства в сети) скорость на провайдер МТС в Санкт-Петербурге

P.S.

Почему Amazon? — самая низкая скорость, которая была — 10Mbps.

Почему FreeBSD? — SoftEther под него устанавливается менеджером пакетов, да и сама ОС потребляет меньше ресурсов и без того дохлого виртуального сервера.

Домашний роутер для Билайн

Beeline L02H – домашний 4G / WiFi роутер с возможностью раздачи мобильного интернета другим устройствам, подключенным к нему через Wi-Fi (компьютеры, ноутбуки, телефоны, планшеты и т.д.).

Его особенности:

  • UMTS: 900 МГц, 2100 МГц;
  • Поддержка систем связи LTE / FDD в диапазонах частот: 800 МГц, 1800 МГц, 2600 МГц (скорость интернета с LTE / FDD: скорость приема – до 100 Мегабит / сек, скорость передачи данных – до 50 Мегабит / сек);

Здесь необходимо сделать небольшое отступление. Не все знают, что означает umts, что находится в телефоне, какую роль играет эта технология, поэтому давайте кратко объясним: это технология связи третьего поколения, что расшифровывается как «Универсальная система мобильной связи». В некотором смысле это связующее звено между системами связи второго поколения (GSM) и системами 3G и 4G следующего поколения.

  • Работоспособность роутера гарантируется только при использовании USIM-карты «Билайн».
  • GSM: 900 МГц, 1800 МГц;
  • Максимальное количество активных пользователей через Wi-Fi – десять;

Summary

Standards:

L2TP is a secure tunnel protocol for transporting IP traffic using PPP. L2TP encapsulates PPP in virtual lines that run over IP, Frame Relay and other protocols (that are not currently supported by MikroTik RouterOS). L2TP incorporates PPP and MPPE (Microsoft Point to Point Encryption) to make encrypted links. The purpose of this protocol is to allow the Layer 2 and PPP endpoints to reside on different devices interconnected by a packet-switched network. With L2TP, a user has a Layer 2 connection to an access concentrator — LAC (e.g., modem bank, ADSL DSLAM, etc.), and the concentrator then tunnels individual PPP frames to the Network Access Server — NAS. This allows the actual processing of PPP packets to be separated from the termination of the Layer 2 circuit. From the user’s perspective, there is no functional difference between having the L2 circuit terminate in a NAS directly or using L2TP.

It may also be useful to use L2TP just as any other tunneling protocol with or without encryption. The L2TP standard says that the most secure way to encrypt data is using L2TP over IPsec (Note that it is default mode for Microsoft L2TP client) as all L2TP control and data packets for a particular tunnel appear as homogeneous UDP/IP data packets to the IPsec system.

Multilink PPP (MP) is supported in order to provide MRRU (the ability to transmit full-sized 1500 and larger packets) and bridging over PPP links (using Bridge Control Protocol (BCP) that allows to send raw Ethernet frames over PPP links). This way it is possible to setup bridging without EoIP. The bridge should either have an administratively set MAC address or an Ethernet-like interface in it, as PPP links do not have MAC addresses.

L2TP includes PPP authentication and accounting for each L2TP connection. Full authentication and accounting of each connection may be done through a RADIUS client or locally.

MPPE 128bit RC4 encryption is supported.

L2TP traffic uses UDP protocol for both control and data packets. UDP port 1701 is used only for link establishment, further traffic is using any available UDP port (which may or may not be 1701). This means that L2TP can be used with most firewalls and routers (even with NAT) by enabling UDP traffic to be routed through the firewall or router.

WireGuard

Новое поколение VPN-протоколов. Разработчики называют его ускоренной, надежной и простой в управлении альтернативой OpenVPN и другим используемым технологиям. Какого-то конкретного мнения по поводу WireGuard пока выражено не было. 

Известно, что в его основе лежит ворох технологий шифрования, бережно оберегающих каждый байт отправляемых данных. Используются Curve25519, ChaCha20, SipHash, BLAKE2 и Poly1305. Причем каждый из перечисленных типов криптографии берет на себя конкретную задачу. Допустим, Curve25519 необходим для обмена ключами, BLAKE2 занимается хэшированием информации, а Poly1305 задействуется для аутентификации.

 

WireGuard легковесный – он состоит всего из четырех тысяч строк кода. Поэтому разработчики при желании могут быстро его исследовать, проанализировать и даже поменять что-то. Это открытый стандарт, как и OpenVPN. Эта легковесность распространяется и на пользовательский опыт – люди охотно отмечают, что настроить WireGuard легче, чем остальные протоколы. 

По результатом бенчмарков, WireGuard обгоняет лидеров рынка. Разрыв между WG и OpenVPN впечатляет. 1011 Мбит в секунду против 258 Мбит в секунду соответственно. С IPsec разница не такая большая, но она есть, и как раз в пользу WireGuard.

Дополнительная информация

Кроме того, в утилите конфигурации предусмотрена проверка, которая включает ведение журнала IPSec. Если вы не можете подключиться, и администратор сети или сотрудники службы поддержки обратились к вам с просьбой предоставить им журнал подключения, вы можете включить ведение журнала IPSec здесь. При этом журнал (Isakmp.log) создается в папке. При создании подключения также включить ведение журнала для обработки PPP в L2TP. Для этого:

  1. Щелкните правой кнопкой мыши папку сети dialup и нажмите кнопку Свойства.
  2. Щелкните вкладку Networking, а затем выберите запись файла журнала для этого окна подключения.

Файл журнала PPP является . Он расположен в папке.

Дополнительные сведения см. в Параметры microsoft L2TP/IPSec Virtual Private Network Client.

Шаг 7. Настройка VPN-клиента в Linux

Ну я был бы не я, если бы не описал настройку клиента в Linux ) Продолжим популяризировать наш Linux Mint.

Чтобы добавить новое подключение к VPN-серверу, в системном трее нужно кликнуть на иконку сетевого соединения и добавить новое подключение.

Как видим, “Из коробки” нам доступны только OpenVPN и PPTP типы VPN. Нет нашего L2TP+IPsec. Придётся доустановить некоторые недостающие пакеты:

# apt-get update
# add-apt-repository ppa:nm-l2tp/network-manager-l2tp
# apt-get install xl2tpd network-manager-l2tp network-manager-l2tp-gnome

После этого нам уже доступен новый тип VPN-подключения:

Заполняем поля аналогично клиенту Windows – в качестве шлюза – удалённый IP сервера, логин и пароль L2TP, а также обращаем внимание на две кнопки – IPsec и PPP. В первой – установим PSK для формирования IPsec, во второй – укажем наши алгоритмы шифрования (MSCHAP2 и т.д.). Ну вот! О чём я и говорил!

Ну вот! О чём я и говорил!

Теперь можно подключаться к сети:

Спасибо, что дочитали до этого момента. У меня великолепная аудитория)

Control Message Attribute Value Pairs

Registration Procedure(s)
Expert Review
Expert(s)
Carlos Pignataro (primary), Ignacio Goyret (secondary)
Reference
Note
To maximize extensibility while still permitting interoperability, a
uniform method for encoding message types and bodies is used
throughout L2TP.  This encoding will be termed AVP (Attribute-Value
Pair).
    
Available Formats
Attribute Type Description Reference
Message Type AVP
Also, see Message Type AVP values below
1 Result Code AVP
Also, see Result Code AVP values below
2 Protocol Version AVP
3 Framing Capabilities AVP
Also, see Framing Field definition below
4 Bearer Capabilities AVP
Also, see Bearer Field definition below
5 Tie Breaker AVP
6 Firmware Revision AVP
7 Host Name AVP
8 Vendor Name AVP
9 Assigned Tunnel ID AVP
10 Receive Window Size AVP
11 Challenge AVP
12 Q.931 Cause Code AVP
13 Response AVP
14 Assigned Session ID AVP
15 Call Serial Number AVP
16 Minimum BPS AVP
17 Maximum BPS AVP
18 Bearer Type AVP
Also, see Bearer Field definition below
19 Framing Type AVP
Also, see Framing Field definition below
20 Reserved
21 Called Number AVP
22 Calling Number AVP
23 Sub-Address AVP
24 (Tx) Connect Speed BPS AVP
25 Physical Channel ID AVP
26 Initial Received LCP CONFREQ AVP
27 Last Sent LCP CONFREQ AVP
28 Last Received LCP CONFREQ AVP
29 Proxy Authen Type AVP
Also, see Proxy Authen Type AVP Values below
30 Proxy Authen Name AVP
31 Proxy Authen Challenge AVP
32 Proxy Authen ID AVP
33 Proxy Authen Response AVP
34 Call Errors AVP
35 ACCM AVP
36 Random Vector AVP
37 Private Group ID AVP
38 Rx Connect Speed AVP
39 Sequencing Required AVP
40 Rx Minimum BPS
41 Rx Maximum BPS
42 Service Category
Also, see Service Category AVP Flag Fields
below
43 Service Name
44 Calling Sub-Address
45 VPI/VCI Identifier
46 PPP Disconnect Cause Code
Also, see PPP Disconnect Cause Code Values
below
47 CCDS AVP
48 SDS AVP
49 LCP Want Options
50 LCP Allow Options
51 LNS Last Sent LCP Confreq
52 LNS Last Received LCP Confreq
53 Modem On-Hold Capable AVP
54 Modem On-Hold Status AVP
55 PPPoE Relay AVP
56 PPPoE Relay Response Capability AVP
57 PPPoE Relay Forward Capability AVP
58 Extended Vendor ID AVP
59 Message Digest
60 Router ID
61 Assigned Control Connection ID
62 Pseudowire Capabilities List
63 Local Session ID
64 Remote Session ID
65 Assigned Cookie
66 Remote End ID
67 Application Code
68 Pseudowire Type
69 L2-Specific Sublayer
70 Data Sequencing
71 Circuit Status
72 Preferred Language
73 Control Message Authentication Nonce
74 Tx Connect Speed
75 Rx Connect Speed
76 Failover Capability
77 Tunnel Recovery
78 Suggested Control Sequence
79 Failover Session State
80 Multicast Capability
81 New Outgoing Sessions
82 New Outgoing Sessions Acknowledgement
83 Withdraw Outgoing Sessions
84 Multicast Packets Priority
85 Frame-Relay Header Length
86 ATM Maximum Concatenated Cells AVP
87 OAM Emulation Required AVP
88 ATM Alarm Status AVP
Also, see ATM Alarm Status AVP Values below
89 Attachment Group Identifier
90 Local End Identifier
91 Interface Maximum Transmission Unit
92 FCS Retention
93 Tunnel Switching Aggregator ID AVP
94 Maximum Receive Unit (MRU) AVP
95 Maximum Reassembled Receive Unit (MRRU) AVP
96 VCCV Capability AVP
97 Connect Speed Update AVP
98 Connect Speed Update Enable AVP
99 TDM Pseudowire AVP
100 RTP AVP
101 PW Switching Point AVP
102 S-BFD Target Discriminator ID
103-65535 Unassigned

Для чего нужен VPN-сервер L2TP / IPsec?

VPN-сервер в нашем pfSense позволит нам получить удаленный доступ к различным подсетям, которые мы настроили, он также позволит нам перенаправить весь интернет-трафик на VPN-сервер для выхода в Интернет через него. Благодаря конфигурации VPN-сервера мы сможем безопасно подключаться к незащищенной сети, потому что весь трафик от источника до VPN-сервера зашифрован и аутентифицирован.

L2TP (Layer 2 Tunneling Protocol) — один из наиболее широко используемых протоколов VPN, он использует протокол PPP для подключения различных каналов, кроме того, он включает механизмы аутентификации PPP, такие как PAP и CHAP, в дополнение к поддержке использование серверов RADIUS для аутентификации клиентов. Этот тип VPN Протокол является многопротокольным и позволяет получить доступ к удаленным локальным сетям. Отрицательной стороной является то, что он не представляет надежной криптографии, поэтому использовать его небезопасно. Он разрешает аутентификацию только между конечными точками туннеля, но не для каждого из пакетов, которые проходят через него, то же самое происходит с целостностью пакетов, это не проверяется. Кроме того, L2TP не шифрует трафик от источника к месту назначения.

Учитывая все это, организация IETF приняла решение использовать криптографические протоколы IPsec в сочетании с L2TP, чтобы обеспечить функции конфиденциальности, аутентификации и целостности туннеля L2TP. По этой причине мы всегда найдем этот протокол, записанный как «L2TP / IPsec» в операционных системах, поскольку он использует оба протокола одновременно.

Как только у нас будет сводка о том, как работают оба протокола VPN, мы продолжим настройку. Имея два протокола для настройки, L2TP и IPsec, мы четко разделим конфигурацию на две части.

Где найти логин и пароль

Запрос авторизационных данных для входа в Интернет выполняется при каждом подключении через PPPoE. Обычно это автоматический процесс, при котором роутер отправляет запрос на доступ, а сервер запрашивает логин и пароль соединения PPPoE. Если данные верны, начинается новая интернет-сессия.

Восстановить учетные данные можно с помощью специальных программ. Это такие утилиты как Dialupass, Network Password Recovery, BulletsPassView и другое ПО такого типа. Они способны помочь узнать логин и пароль PPPoE, но только если последние были сохранены в памяти ноутбука или компьютера на Windows 10, 8, 7 или иных версий.

Что такое VPN-протокол?

VPN-протокол — программный фундамент, на базе которого строится любой VPN-сервис. В нем описывается формат организации подключения, обмена данными внутри частной виртуальной сети и другие аспекты работы ПО. 

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

На какие критерии оценки VPN-протоколов стоит обратить внимание

У каждого протокола свой набор характеристик, исходя из которых нужно выбирать для себя подходящий. Среди них:

  • Поддерживаемые платформы — протоколы могут быть достаточно специфичны и функционировать исключительно на одной-двух операционных системах. Другие же поддерживают сразу все доступные ОС.
  • Поддерживаемые сети — не все протоколы работают в идентичных сетях. Некоторые VPN-сервисы предлагают свои услуги только в конкретных странах ввиду технологических ограничений, введенных, в том числе, государственными органами.
  • Скорость работы — тоже зависит от архитектуры протокола. Есть те, что быстрее передают данные на мобильных устройствах. Есть те, что показывают пиковую производительность только в масштабах больших корпоративных сетей. 
  • Безопасность — в протоколах по-разному реализовано шифрование и другие механизмы обеспечения безопасности данных. Поэтому, в зависимости от поставленных задач, надо выбирать технологию, наименее подверженную распространенным для нее атакам.

Теперь от общего описания форматов и характеристик перейдем к конкретным технологическим решениям и к их особенностям.

Настройка соединения в Windows

На различных версиях ОС Windows от Microsoft процесс соединения по PPPoE очень схож.

Windows 7

Руководство для Windows 7:

  1. Открыть «Панель управления» через меню кнопки «Пуск».
  2. Кликнуть на «Центр управления сетями…».
  3. Приступить к созданию и настройке нового подключения или сети.
  4. Кликнуть «Подключение к Интернету».
  5. Указать «Высокоскоростное (с PPPoE)».
  6. Ввести данные для входа.
  7. Кликнуть «Подключить».

На экране высветится уведомление о созданном соединении.

Windows 10

Инструкция:

  1. Через поисковую строку найти «Панель управления».
  2.  Справа выбрать «Мелкие значки» и кликнуть на «Центр управления сетями…».
  3. Выбрать «Создание и настройка нового подключения или сети».
  4. Указать «Подключение к Интернету».
  5. Нажать «Высокоскоростное (с PPPoE)».
  6. Ввести имя пользователя, пароль, название.
  7. Кликнуть «Подключить».

Появится уведомление о созданном соединении.

Аутентификация через Active Directory

Проверка подлинности через активный каталог от Microsoft в xl2tp выполняется с помощью winbind и samba.

Подготовка сервера

Для корректной работы сервера с Active Directory необходимо задать ему имя (hostname), которое будет доступно в DNS. Также на сервере должно быть задано точное время.

1. Необходимо убедиться, что сервер доступен по своему доменному имени. Если серверу так и не было задано вменяемого имени, вводим команду:

hostnamectl set-hostname vpn.dmosk.local

* где vpn — имя сервера; dmosk.local — домен.

После добавляем в DNS наш сервер VPN. Ждем минут 15 (если у нас используется доменная инфраструктура с несколькими сайтами, иначе ждать не нужно).

2. Задаем временную зону:

\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* в данном примере мы задаем зону по московскому времени.

Устанавливаем утилиту для синхронизации времени, разрешаем запуск демона и стартуем его.

yum install chrony

systemctl enable chronyd

systemctl restart chronyd

Присоединяем сервер к домену

Устанавливаем необходимые компоненты:

dnf install samba-client samba-winbind samba-winbind-clients krb5-workstation

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

В разделе редактируем следующие опции:

workgroup = DMOSK
security = ads

* где DMOSK — NETBIOS имя домена; ads — указывает, что для samba будет использоваться модель безопасности LDAP Active Directory.

Также в добавим следующие строки:

kerberos method = secrets and keytab
realm = DMOSK.LOCAL
winbind enum groups = Yes
winbind enum users = Yes
idmap config * : rangesize = 1000000
idmap config * : range = 1000000-19999999
idmap config * : backend = autorid

* где:

  • kerberos method — метод проверки kerberos. В данном примере сначала используется secretts.tdb, а затем системная таблица ключей.
  • realm — сервер Active Directory. В нашем примере прописан домен, так как по нему можно обратиться к любому из серверов AD.
  • winbind enum groups — задает пределы перечисления групп через setgrent(), getgrent() и endgrent().
  • winbind enum users — задает пределы перечисления пользователей через setpwent(), getpwent()и endpwent().
  • idmap config * : rangesize — определяет количество доступных uids и gids в каждом доменном диапазоне.
  • idmap config * : range — определяет доступные совпадающие диапазоны uid и gid, для которых серверная часть является авторитетной.
  • idmap config * : backend — задает idmap плагин для использования в качестве SID/uid/gid подсистемы

Вводим сервер в домен: 

net ads join -U Administrator@dmosk.local

* где Administrator — учетная запись пользователя AD с правами на ввод компьютеров в домен; dmosk.local — наш домен.

Мы должны увидеть, примерно, следующее:

Using short domain name — DMOSK
Joined ‘SAMBA’ to dns domain ‘dmosk.local’

Разрешаем автозапуск winbind и стартуем его:

systemctl enable winbind —now

Выбираем профиль для аутентификации:

authselect select winbind —force

Проверяем, что наш сервер может получить список пользователей Active Directory:

wbinfo -u

… и групп:

wbinfo -g

Если мы увидели список пользователей и групп, то присоединение сервера к домену завершено.

После проверяем, что аутентификация в AD через модуль ntlm_auth работает корректно:

ntlm_auth —request-nt-key —domain=DMOSK.LOCAL —username=Administrator

* где DMOSK.LOCAL — наш домен; Administrator — пользователь, под которым будем логиниться для проверки работы модуля.

Настройка PPP для аутентификации через AD

Открываем конфигурационный файл options.xl2tpd:

vi /etc/ppp/options.xl2tpd

Добавляем в самый низ:


plugin winbind.so
ntlm_auth-helper ‘/usr/bin/ntlm_auth —helper-protocol=ntlm-server-1 —require-membership-of=»DMOSK\\VPN Users»‘

* где VPN Users — группа в AD, пользователи который будут иметь возможность использовать VPN.

Перезапускаем xl2tpd:

systemctl restart xl2tpd

Проверка

В Active Directory добавляем группу VPN Users (если еще нет). Группа должна быть локальная в домене. В группу добавим пользователей, которым хотим дать доступ для VPN-подключения.

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

Вход в настройки

Вход в роутер Билайн осуществляется по следующему алгоритму:

  1. Откройте ваш браузер. Необязательно иметь активное подключение к Интернету, но маршрутизатор должен быть подключен к компьютеру.
  2. В адресной строке браузера введите 192.168.1.1 и нажмите Enter. Это стандартный адрес для входа в админку большинства роутеров. Другие возможные адреса: my.keenetic.net, tplinkwifi.net, 192.168.0.1 (см. Наклейку внизу роутера).
  3. Вам будет предложено ввести имя пользователя и пароль. По умолчанию: admin и 1234 или даже admin. Провайдер может их изменить. В этом случае поищите текущее имя пользователя и пароль в соглашении или наклейке.

  4. На некоторых роутерах система попросит сбросить стандартный пароль и установить новый. Найдите пароль и повторите его в специальном окне. Далее вам будет предоставлен логин в админ-панель.Для следующего входа вам нужно будет использовать созданный вами пароль.

Как мы выбирали VPN-протокол

VPN-протокол должен без проблем поддерживаться на мобильных устройствах без установки дополнительного программного обеспечения.

Мы выбрали самые известные реализации протоколов и отсеяли не подходящие по условиям исходной задачи.

А условия всего два, я напомню:

  • Стабильное и надёжное подключение.
  • Без установки стороннего программного обеспечения на устройство клиента.

Пробегусь по протоколам и кратко расскажу о них + расскажу причины, почему тот или иной протокол нам не подошёл.

PPTP (Point-To-Point Tunneling Protocol)

Один из самых старейших VPN протоколов, разработанный компанией Microsoft. Из-за солидного возраста протокол поддерживается большинством операционных систем, но в то же время не может обеспечить стабильное и надёжное соединение. Компания Microsoft советует использовать L2TP или SSTP на замену PPTP.

Этот протокол прост в настройке и не требователен к ресурсам сервера, но проблемы с безопасностью заставляют отказаться от его использования в наших целях.

L2TP/IPSec

Протокол во многом схож с PPTP, разрабатывался и принимался практически одновременно с ним. Этот протокол более требователен к вычислительным мощностям, часто используется интернет-провайдерами, т.к. считается более эффективным для построения виртуальных сетей.
L2TP/IPsec позволяет обеспечить высокую безопасность данных, поддерживается всеми современными операционными системами. Есть одно но: он инкапсулирует передаваемые данные дважды, что делает его менее эффективным и более медленным, чем другие VPN-протоколы.

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

IKEv2/IPSec

Был разработан Microsoft совместно с Cisco, существуют реализации протокола с открытым исходным кодом (например, OpenIKEv2, Openswan и strongSwan).

Поддерживает Mobility and Multi-homing Protocol (MOBIKE), что обеспечивает устойчивость к смене сетей.

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

IKEv2 имеет нативную поддержку в большинстве операционных систем.

Вот этот вариант нам уже больше подходит, т.к. поддержка Mobility and Multi-homing Protocol будет очень большим плюсом при использовании на мобильных устройствах.

OpenVPN

Разработан компанией OpenVPN Technologies.

Протокол с открытым исходным кодом, который прошёл все возможные проверки безопасности.
Протокол OpenVPN стабилен и может обеспечить хорошую скорость передачи данных. Ещё одно преимущество протокола в том, что он использует для работы стандартные протоколы TCP и UPD, а также может работать на любом из портов. Это усложняет блокировку VPN сервиса провайдерами.

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

Этот вариант нам бы тоже подошёл, но, к сожалению, из-за необходимости установки клиента, придётся отказаться от этого протокола.

Wireguard

На данный момент это самый свежий протокол VPN. Его часто сравнивают с IPSec и OpenVPN, и называют его их заменой, но он всё ещё слишком сырой, чтобы использовать его в больших масштабах.

Лучшие результаты этот протокол показывает на Unix системах, т.к. он реализован в виде модуля ядра Unix. Но эта высокая пропускная способность достигается за счёт замедления сетевой активности других приложений.

Чтобы настроить на своём мобильном устройстве данный протокол, необходимо будет установить клиент, что тоже не всегда возможно в силу обстоятельств.

И снова необходимость установки дополнительного клиента на устройство отменяет все шансы на использование этого протокола в наших целях.

В итоге мы решили остановится на IKEv2/IPSeс, по следующим причинам:

  • Поддержка Mobility and Multi-homing Protocol (MOBIKE).
  • Нативная поддержка в большинстве операционных систем.
  • Обеспечивает высокую скорость соединения.
  • Не требователен к ресурсам сервера.

Перейдём от теории к практике.

Настройка Mikrotik L2TP Server. Главный офис

Создаем профиль подключения

У Mikrotik в меню PPP есть два профиля по умолчанию, которые используются для PPP соединений. Рекомендуется не изменять профили по умолчанию, а создать и использовать под свою задачу новый.

Создадим профиль для подключения, в котором укажем имя для соединения, назначим статические IP-адреса для L2TP сервера и клиента. Отроем Winbox, перейдя:

PPP => Profiles => “+”.

В окне New PPP Profiles, открыв, вкладку “General” укажем информацию:

  • Name: l2tp-site-to-site;
  • Local Address: 192.168.77.1;
  • Remote Address: 192.168.77.10.

Мы указали:

  • произвольное имя для профиля(Name);
  • присвоили IP для L2TP-Сервера (Local Address);
  • IP-Адрес L2TP-Клиента (Remote Address).

Настраиваем Secret

На вкладке «Secrets» мы настраиваем имя, пароль и профиль подключения для L2TP-Клиента. Для этого выполним действия:

  • Secrets => “+”;
  • Name: office;
  • Password: qwas1234;
  • Profile: из выпадающего списка выбираем ранее созданный профиль (l2tp-site-to-site).

Включаем L2TP Server и IPSec

Следующим шагом включим L2TP Server на Mikrotik указав профиль, метод аутентификации и ключ шифрования для IPSec. Выберем пункт меню Interface, настроим как показано на рисунке ниже:

Не забываем придумывать сложные пароли.

Создаем интерфейс

Создадим статический интерфейс L2TP Server Binding. Это позволит избежать проблемы с маршрутизацией между сетями, которые могут возникнуть при разрыве соединения.

Заполним открывшееся окно New interface. Вкладка «General»:

Где:

  • Name – это произвольное имя интерфейса;
  • User – имя пользователя, которое мы назначили на вкладке Secrets.

Настройка firewall

Добавим правила в наш файрвол, тем самым разрешая трафик для L2TP, два правила для IPSec и протокол Ipsec-esp:

IP => Firewall => Filter Rules => “+”.

Добавим разрешающее правило для L2TP, который работает на 1701(UDP) порту:

После нажмем правой кнопкой мыши на созданное правило и добавим комментарий, нажав строку Comment из меню:

Добавим правило для UDP портов 4500, 500:

Добавим комментарий для этого правила, как показано выше.

Разрешим протокол IPsec-esp:

Очень важен порядок расположения правил. Ваш firewall после настроек должен выглядеть примерно следующим образом:

Для более глубокого понимания работы брандмауэра рекомендуем ознакомиться со статьей MikroTik настройка firewall.

На этом настройка L2TP Server Mikrotik закончена, перейдем к настройке клиентской части (филиала).

SSTP

Secure Socket Tunneling Protocol — модифицированная версия PPTP. Эдакая надстройка старого протокола, которая должна была стать не только духовным продолжением ранее существовавшей технологии, но и исправлением всех ошибок, допущенных в «предыдущей версии». 

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

Помогает SSL-шифрование. При подключении к SSTP вся информация отправляется через TCP-порт 443. Такой подход делает его полезным при необходимости создавать безопасные подключения со странами, где большая часть VPN-сервисов заблокирована или запрещена законом. 

Многочисленные тестирования показали, что SSTP может передавать данные на высокой скорости (если канал свободен) и быстро восстанавливать соединение, если то неожиданно оборвалось. По этим показателям протокол стремится к OpenVPN, но не дотягивает ввиду некоторых ограничений технологии. 

Secure Socket Tunneling Protocol доступен на операционных системах Windows, Linux и BSD, но поддерживается ограниченным количеством сервисов. Их тяжело найти, а еще они зачастую обходятся дороже альтернатив. Отсюда и скромная аудитория SSTP, которая и не планирует расти в ближайшем будущем из-за продвинутости конкурентов. 

Monitoring

Monitor command can be used to monitor status of the tunnel on both client and server.

 /interface l2tp-client> monitor 0
     status: "connected"
     uptime: 7h24m18s
  idle-time: 6h21m4s
   encoding: "MPPE128 stateless"
        mtu: 1450
        mru: 1450

Read-only properties

Property Description
status () Current L2TP status. Value other than «connected» indicates that there are some problems establishing tunnel.

  • dialing — attempting to make a connection
  • verifying password — connection has been established to the server, password verification in progress
  • connected — tunnel is successfully established
  • terminated — interface is not enabled or the other side will not establish a connection
uptime (time) Elapsed time since tunnel was established.
idle-time (time) Elapsed time since last activity on the tunnel.
encoding () Used encryption method
local-address (IP Address) IP Address of local interface
remote-address (IP Address) IP Address of remote interface
mru (integer) Negotiated and used MRU
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector