Установка сертификата компьютера для l2pt
Генерация ключевой пары и сертификата
Для успешной аутентификации клиенту необходимо:
- сгенерировать ключевую пару;
- иметь корневой сертификат УЦ;
- иметь сертификат для своей ключевой пары, подписанный корневым УЦ.
2. Настраиваем RRAS
После того, как мы установили все компоненты и перезагрузили машину, нужно приступить к настройке. Как на картинке, в пуске, находим диспетчер RRAS.
Через эту оснастку мы можем управлять серверами с установленным RRAS. Жмем правой кнопкой мыши, выбираем настройку и переходим.
Пропустив первую страницу переходим к выбору конфигурации, выбираем свою.
На следующей странице нам предлагается выбрать компоненты, выбираем VPN и NAT.
Далее, далее. Готово.
Теперь нужно включить ipsec и назначить пул адресов, который будет использовать наш NAT. Жмем правой кнопкой мыши по серверу и переходим в свойства.
Первым делом вводим свой пароль для l2TP ipsec.
На вкладке IPv4 обязательно нужно установить выдаваемый клиентам диапазон ip адресов. Без этого NAT не заработает.
Теперь осталось добавить интерфейс за NAT. Переходим в подпункт IPv4, жмем правой кнопкой мыши по пустому месту и добавляем новый интерфейс.
На интерфейсе (тот который не Internal) включаем NAT.
Установка клиента L2tpIpsecVpn
В данный момент клиента тоже нужно собирать из исходников. Делается это с помощью следующей последовательности команд:
Подключение к сети
После настроек можно произвести подключение к сети. Для этого откроем вкладку апплета и выберем сеть, к которой мы хотим подключиться:
В процессе установки соединения клиент попросит ввести нас PIN-код Рутокен:
Если в статус-баре появится оповещение о том, что соединение успешно установлено, значит, настройка была произведена успешно:
В противном случае стоит разобраться, почему соединение не было установлено. Для этого стоит посмотреть лог программы, выбрав в апплете команду "Connection information":
Настройка клиента в Windows осуществляется гораздо проще, чем в Linux, т.к. весь необходимый софт уже встроен в систему.
Настройка VPN соединения
Для настройки VPN соединения перейдите в панель управления и выберите пункт для создания нового соединения.
Во всплывшем окне выберите опцию создания соединения для подключения к рабочему месту:
В следующем окне выберете подключение по VPN:
и введите данные VPN соединения, а также укажите опцию для использования смарт-карты:
На этом настройка не закончена. Осталось указать общий ключ для протокола IPsec, для этого перейдём на вкладку “Настройки сетевых подключений” и затем перейдём на вкладку “Свойства для данного соединения”:
В открывшемся окне перейдём на вкладку "Безопасность", укажем в качестве типа сети "Сеть L2TP/IPsec" и выберем "Дополнительные параметры":
В открывшемся окне укажем общий ключ IPsec:
Настраиваем L2TP
Для реализации функций L2TP-сервера предназначен пакет xl2tpd, для его установки выполните:
Затем откройте файл настроек /etc/xl2tpd/xl2tpd.conf, раскомментируйте и приведите к следующему виду опции:
Большая часть опций относится к настройке протокола L2TP и требует понимания его работы, поэтому мы на них останавливаться не будем. Разберем те опции, которые имеют существенное значение. Параметр auth file указывает на файл с данными для аутентификации, а pppoptfile - набор опций для PPP-соединения, которое используется внутри L2TP-туннеля, name - имя сервера, которое будет использоваться для поиска аутентификационных данных в файле chap-secrets.
Опции local ip и ip range отвечают за локальный адрес сервера в VPN-сети и диапазон адресов для выдачи удаленным клиентам. Здесь можно использовать два подхода: выдавать клиентам адреса из диапазона локальной сети офиса и включить ProxyARP, в этом случае настраивать маршрутизацию на клиентах не требуется, они будут как-бы включены в общую сеть офиса на канальном уровне (L2), либо выдавать адреса из непересекающегося диапазона и использовать маршрутизацию. Автоматизировать создание маршрутов для Windows-клиентов можно с использованием PowerShell.
Для настройки PPP перейдем в /etc/ppp и скопируем стандартный файл настроек:
Затем открываем файл /etc/ppp/options.xl2tpd на редактирование и приводим к следующему виду. Опции перечислены в порядке их следования, нужно раскомментировать их и указать нужное значение, если опция отсутствует, то ее следует добавить в конце файла.
Если вы будете использовать ProxyARP то дополнительно раскомментируйте опцию:
Также для Windows-клиентов можно передать настройку DNS-серверов, для этого добавьте опции:
Это позволит настроить первичный и альтернативный DNS-сервера в системе.
Сохраним все внесенные изменения и перезапустим службу L2TP-сервера:
Заключительным этапом настройки будет создание учетных записей для удаленных клиентов, для этого откроем файл /etc/ppp/chap-secrets и внесем следующую строку:
Первым указываем логин, затем имя службы, оно должно совпадать с тем, которое мы указали в опции name в xl2tpd.conf, после него идет пароль и IP-адрес клиента, символ * обозначает что можно присвоить любой адрес из выбранного диапазона. Если же требуется выдать клиенту постоянный адрес, то его следует указать явно, и он не должен входить в динамический диапазон указанный в ip range, например:
Для доступа к L2TP-серверу следует разрешить в брандмауэре входящие подключения к портам 500 UDP, 1701 UDP и 4500 UDP.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Недавно я озадачился поиском возможности создания шифрованного подключения к своему офису средствами L2TP/IPsec протокола. Задача усложнилась, когда, кроме Windows клиентов, появилась потребность пускать в сеть еще iOS и Android клиентов. В Интернете множество статей как проделать это на Windows Server с «внешним» IP-адресом. Но я хочу предложить сообществу реализацию стандартными средствами Windows 7/8 шифрованного L2TP тоннеля в локальную сеть с популярной, на мой взгляд, топологией.
Структура сети
Маленькая сеть из десяти Windows 7/8 клиентов с выделенным сервером на базе Windows Server 2008 Std (на него пока не обращаем внимание) и с доступом в Интернет средствами простого роутера. Для VPN сервера я выделил одну из машин на Windows 7 Pro. Далее будет описано два способа поднятия L2TP/IPsec сервера на Windows 7 Pro.
Создание клиентского подключения для этого способа
- Установим сертификаты на нашего VPN клиента. Копируем с VPN сервера сертификаты, которые создали ранее. Устанавливаем их точно таким же способом, как и на сервере.
- Создадим VPN подключение. Идем в «Центр управления сетями и общим доступом» -> Настройка нового подключения или сети. Далее «Подключение к рабочему месту» -> Использовать мое подключение к Интернет. Вводим адрес нашего VPN сервера. Подключение готово.
- Настроим наше VPN подключение. Имя пользователя и пароль, думаю, вопросов не вызывают. Во вкладке «Безопасность» выбираем тип VPN L2TP/IPsec и в дополнительных параметрах выбираем «Использовать сертификат» и убираем галку «Проверить атрибуты имени сертификата». Шифрование ставим Обязательное и «Разрешаем следующие протоколы» проверки подлинности: MS-CHAPv2. Далее вкладка Сеть -> TCP/IPv4 свойства -> Дополнительно -> Убираем галку «Использовать основной шлюз».
- Если не поднимается подключение. То на Windows 8 стоит попробовать такой ключ реестра HKLM\SYSTEM\CurrentControlSet\Services\IPsec создаем параметр DWORD с именем AssumeUDPEncapsulationContextOnSendRule и значением 2. Для Windows 7/Vista этот параметр нужно создать в HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent
Итоги этого способа
Для Windows клиентов это хороший способ реализации L2TP/IPsec, но когда дело доходит до iOS клиентов, задача расширяется. Проблема в том, что iOS могут подключаться по L2TP только с шифрованием по Заранее подготовленной ключевой фразе (Preshared Key), а по сертификату могут подключаться только к Cisco VPN. Второй способ расскажет, как решить эту проблему.
Windows 7 L2TP/IPsec Preshared Key с ESP 3DES шифрованием и контролем целостности
- Вернемся к чудо-параметру ProhibitIpSec=1. Идем в Реестр, в ветку HKLM\System\CurrentControlSet\Services\Rasman\Parameters и создаем там параметр типа DWORD с именем ProhibitIpSec и присваиваем ему значение 1. После этого необходимо или перезагрузить ОС, или перезапустить службы RemoteAccess и RasMan. Этим действием мы отключаем локальную политику IP безопасности по-умолчанию для IPsec.
- Создадим теперь новую политику безопасности IP. «Выполнить» -> mmc -> Добавить оснастку -> «Управление политикой IP-безопасности» и выбираем Локальный компьютер. Далее «Создать политику IP-безопасности». «Далее» -> Вводим имя -> Галку «Использовать правило по умолчанию» не ставим -> Далее -> «Изменить свойства» галку оставляем. Откроются свойства новой политики. Здесь убрать галку «использовать мастер» и «Добавить». Теперь по порядку о каждой вкладке:
- Список IP-фильтров. Вводим имя, снимаем галку «Исп. мастер», «Добавить». Адрес источника: «Любой». Адрес назначения: «Любой». Вкладка протокол. В выпадающем списке выбираем UDP. Пакеты ИЗ этого порта: 1701. Пакеты НА любой порт. ОК, ОК и возвращаемся в список IP-фильтров. Здесь вновь созданный фильтр отмечаем «точкой» и переходим на следующую вкладку.
- Действие фильтра. По аналогии. Имя, галку про мастер, «Добавить». Выбираем «Согласовать безопасность», «Добавить». Выбираем «Шифрование и обеспечение целостности. (ESP)». ОК. Смотрим, чтоб не стояло никаких галок ниже списка методов безопасности. ОК. Аналогично отмечаем точкой и переходим к очередной вкладке.
- Тип подключения. Все сетевые подключения.
- Параметры туннеля. Это правило не указывает туннель IPsec.
- Методы проверки подлинности. Не обращаем пока внимание на Kerberos, жмем «Добавить». Выбираем «Использовать данную строку (Предварительный ключ)» и вводим наш заранее придуманный Ключ. ОК. И теперь можно удалить Kerberos. В этой же вкладке можно добавить проверку подлинности по Сертификату. Процесс генерации и установки Сертификата описан в первом способе.
Создание клиентского подключения для этого способа
- Отличается от создания клиентского подключения для первого способа только Дополнительными свойствами L2TP/IPsec, где вместо использования сертификата выбираем "… использовать общий ключ".
Доступ к VPN серверу
На роутере я использовал службу Dynamic DNS, т.к. внешний IP динамический. Для возможности подключения необходимо сделать проброс портов (Port Forwarding) для портов UDP 1701 UDP 4500 UDP 500 к нашему VPN серверу. Мы подобрались к финишному этапу, где нас ждет еще одна немаленькая проблема. Дело в том, что Windows 7/8 имеет ограничение на максимальное количество подключений для удаленного доступа, и оно равно 1. Такого ограничения нет на Windows Server. Тут и напрашивается фраза «А на фига ты тут всё это написал?!» Есть два способа решения. Первый: один хороший человек провел немаленькую работу и написал патч, снимающий ограничение для Windows 7 Pro SP1. Здесь подробно описан сам процесс поиска решения и присутствует патч. Второй: использовать Windows Server. Но использовать не так, как написано в большинстве статей, где говорится о назначении серверу Роли «Маршрутизации и удаленного доступа» и использовании специальных оснасток, в которых чёрт ногу сломит, а использовать вышеописанный метод. Он отлично работает на Windows Server без назначения специальных ролей и без ограничений на число подключений.
Ещё совсем недавно многие не знали, как это — работать из дома. Пандемия резко изменила ситуацию в мире, все начали адаптироваться к сложившимся обстоятельствам, а именно к тому, что выходить из дома стало просто небезопасно. И многим пришлось быстро организовывать работу из дома для своих сотрудников.
Однако отсутствие грамотного подхода в выборе решений для удалённой работы может привести к необратимым потерям. Пароли пользователей могут быть украдены, а это даст возможность злоумышленнику бесконтрольно подключаться к сети и ИТ-ресурсам предприятия.
Именно поэтому сейчас выросла потребность в создании надёжных корпоративных VPN сетей. Я расскажу вам о надёжной, безопасной и простой в использовании VPN сети.
Она работает по схеме IPsec/L2TP, использующей для аутентификации клиентов неизвлекаемые ключи и сертификаты, хранящиеся на токенах, а также передает данные по сети в зашифрованном виде.
В качестве демонстрационных стендов для настройки использовались сервер с CentOS 7 (адрес: centos.vpn.server.ad) и клиент с Ubuntu 20.04, а также клиент с Windows 10.
VPN будет работать по схеме IPSec + L2TP + PPP. Протокол Point-to-Point Protocol (PPP) работает на канальном уровне модели OSI и обеспечивает аутентификацию пользователя и шифрование передаваемых данных. Его данные инкапсулируются в данные протокола L2TP, который собственно обеспечивает создание соединения в VPN сети, но не обеспечивает аутентификацию и шифрование.
Данные L2TP инкапсулируются в протокол IPSec, который тоже обеспечивает аутентификацию и шифрование, но в отличие от протокола PPP аутентификация и шифрование происходит на уровне устройств, а не на уровне пользователей.
Данная особенность позволяет обеспечить аутентификацию пользователей только с определённых устройств. Мы же будем использовать протокол IPSec как данное и позволим производить аутентификацию пользователей с любого устройства.
Аутентификация пользователя с помощью смарт-карт будет производиться на уровне протокола PPP с помощью протокола EAP-TLS.
Более подробную информации о работе данной схемы можно найти в этой статье.
- Надёжность данной схемы проверена временем. Она используется для развёртывания VPN сетей с 2000 года.
- Безопасную аутентификацию пользователя обеспечивает протокол PPP. Стандартная реализация протокола PPP разработанная Paul Mackerras не обеспечивает достаточного уровня безопасности, т.к. для аутентификации в лучшем случае случае используется аутентификация с помощью логина и пароля. Все мы знаем, что логин-пароль можно подсмотреть, подобрать или украсть. Тем не менее уже давно разработчик Jan Just Keijser в своей реализации данного протокола исправил этот момент и добавил возможность использования для аутентификации протоколы, основанные на асимметричном шифровании, такой как EAP-TLS. Кроме того, он добавил возможность использования смарт-карт для аутентификации, что сделало данную систему более безопасной.
В настоящий момент ведутся активные переговоры для слияния этих двух проектов и можно быть уверенными в том, что рано или поздно это всё равно произойдёт. Так, например, в репозиториях Fedora уже давно лежит пропатченная версия PPP, использующая для аутентификации безопасные протоколы. - Ещё совсем недавно данную сеть могли использовать только пользователи Windows, но наши коллеги из МГУ Василий Шоков и Александр Смирнов нашли старый проект L2TP клиента для Linux и доработали его. Совместными усилиями мы исправили множество багов и недочетов в работе клиента, упростили установку и настройку системы, даже при сборке из исходников. Наиболее существенными из них являются:
- Исправлены проблемы совместимости старого клиента с интерфейсом новых версий openssl и qt.
- Удалена передача pppd PIN-кода токена через временный файл.
- Исправлен некорректный запуск программы запроса пароля через графический интерфейс. Это было сделано за счет установки корректного окружения для xl2tpd сервиса.
- Сборка демона L2tpIpsecVpn теперь осуществляется совместно со сборкой самого клиента, что облегчает процесс сборки и настройки.
- Для удобства разработки подключена система Azure Pipelines для тестирования корректности сборки.
- Добавлена возможность принудительно понижать security level в контексте openssl. Это полезно для корректной поддержки новых операционных систем, где стандартный security level установлен на 2, с VPN сетями, в которых используются сертификаты, не удовлетворяющие требованиям безопасности данного уровня. Данная опция будет полезна для работы с уже существующими старыми VPN сетями.
Исправленную версию можно найти в данном репозитории.
Данный клиент поддерживает использование смарт-карт для аутентификации, а также максимально скрывает все тяготы и невзгоды настройки данной схемы под Linux, делая настройку клиента максимально простой и быстрой.
Конечно, для удобной связи PPP и GUI клиента не обошлось и без дополнительных правок каждого из проектов, но тем не менее их удалось минимизировать и свести к минимуму:
- Исправлена ошибка некорректного пробрасывания PIN-кода токена из PPP в контекст openssl
- Исправлена ошибка в порядке загрузки конфигурации и инициализации openssl контекста. Данная ошибка не позволяла подгружать из локального /etc/ppp/openssl.cnf файла с конфигурацией ничего, кроме сведений о движках openssl для работы со смарт-картами, что составляло серьёзное неудобство, если, например, кроме информации об энджинах мы хотели задать что-то ещё. Например, зафиксировать security level при установке соединения.
Теперь можно приступить к настройке.
Установим все необходимые пакеты.
Настраиваем L2TP VPN-сервер на платформе Linux (Debian / Ubuntu)
L2TP - один из наиболее популярных VPN-протоколов, обладающий, благодаря IPsec, отличной безопасностью, достаточной простотой и широкой поддержкой со стороны всех современных ОС. Для работы с ним не требуется установка дополнительного ПО и какие-либо сложные настройки. Мы уже рассматривали настройку L2TP VPN-сервера на платформах Windows и Mikrotik, а теперь расскажем, как настроить аналогичный сервер в Linux, дистрибутивах основанных на Debian или Ubuntu.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Перед тем, как приступать к работе над данной статьей мы внимательно изучили русскоязычный сегмент сети на предмет освещения данной темы и были весьма сильно удивлены. Большинство находящихся на первых страницах поиска ресурсов перепечатывает одну и ту же устаревшую инструкцию, даже в достаточно свежих публикациях. Но наш сайт с самого своего основания принципиально не занимается перепечатками (кроме переводов) и мы всегда проверяем на практике то, что рекомендуем нашим читателям. В этот раз нам пришлось потратить некоторое лишнее время на чтение документации, зато теперь мы можем предложить вам актуальный материал по настройке L2TP в Linux.
В качестве систем на тестовом стенде мы использовали Debian 10 и Ubuntu 20.04, но с некоторыми изменениями данная инструкция применима к любым версиям Linux со strongSwan версии 5.0 и выше.
Подключение
После завершения настройки можно попробовать подключиться к сети:
В процессе подключения от нас потребуют ввести PIN-код токена:
Мы с вами настроили безопасную VPN сеть и убедились в том, что это несложно.
Хотелось бы ещё раз поблагодарить наших коллег Василия Шокова и Александра Смирнова за совместно проделанную работу для упрощения создания VPN соединений для клиентов Linux.
Покопавшись по просторам интернета в поисках софта для построения своего собственного VPN, постоянно натываешься на кучу гайдов связанных с неудобным в настройке и использовании OpenVPN, требующим проприетарного клиента Wireguard, только один SoftEther из всего этого цирка отличается адекватной реализацией. Но мы расскажем, так сказать, о нативной для Windows реализации VPN – Routing And Remote Access (RRAS).
По странной причине, никто ни в одном гайде не написал про то, как это все развернуть и как включить на нем NAT, поэтому мы сейчас все исправим и расскажем, как сделать свой собственный VPN на Windows Server.
Ну а уже готовый и преднастроенный VPN можно заказать из нашего маркетплейса, он кстати работает из коробки.
для клиентов Windows и Linux (более универсальный способ)
Данный способ является более универсальным, т.к. позволяет сгенерировать ключ и сертификат, который будет успешно распознаваться у пользователей Windows и Linux, но он требует наличие машины на Windows для проведения процедуры генерации ключей.
Перед генерацией запросов и импортом сертификатов необходимо добавить корневой сертификат VPN сети в список доверенных. Для этого откроем его и в открывшемся окне выберем опцию "Установить сертификат":
В открывшемся окне выберем установку сертификата для локального пользователя:
Установим сертификат в хранилище доверенных корневых сертификатов УЦ:
После всех этих действий соглашаемся со всеми дальнейшими пунктами. Теперь система настроена.
Создадим файл cert.tmp со следующим содержимым:
После этого сгенерируем ключевую пару и создадим заявку на сертификат. Для этого откроем powershell и введём следующую команду:
Отправьте созданную заявку client.req в ваш УЦ и дождитесь получения сертификата client.pem. Его можно записать на токен и добавить в хранилище сертификатов Windows с помощью следующей команды:
Стоит заметить, что аналогичные действия можно воспроизвести с помощью графического интерфейса программы mmc, но данный способ является более времязатратным и менее программируемым.
NOTE
Настройка клиента на Linux в данный момент является достаточно длительной по времени, т.к. требует сборки отдельных программ из исходников. Мы постараемся в ближайшее время добиться, чтобы все изменения попали в официальные репозитории.Для обеспечения подключения на уровне IPSec к серверу — используется пакет strongswan и демон xl2tp. Для упрощения подключения к сети с помощью смарт-карт – будем использовать пакет l2tp-ipsec-vpn, обеспечивающий графическую оболочку для упрощенной настройки подключения.
Начнём сборку элементов поэтапно, но перед этим установим все необходимые пакеты для непосредственной работы VPN:
Настраиваем VPN сервер. Часть 5 - L2TP. Платформа Windows.
Протокол L2TP является более предпочтительным для построения VPN-сетей, нежели PPTP, в основном это касается безопасности и более высокой доступности, благодаря тому, что для для каналов данных и управления используется одна UDP-сессия. Сегодня мы рассмотрим настройку L2TP VPN-сервера на платформе Windows.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Несмотря на простоту развертывания и подключения самых различных клиентов протокол PPTP имеет ряд существенных недостатков. Самый существенный - это однофакторная аутентификация при помощи пары логин / пароль, а так как логин пользователя чаще всего известен (или не составляет труда его выяснить), то по факту для аутентификации используется только пароль, будучи скомпрометированным он позволяет третьим лицам получить полный доступ к корпоративной сети.
Второй недостаток, вытекающий из первого - невозможность проверить подлинность подключающегося хоста, т.е. администратор не может с уверенностью сказать, что данное подключение выполнено пользователем Иванов со служебного ноутбука, а не злоумышленником, получившим доступ к учетным данным.
И наконец, третий недостаток связан с тем, что PPTP использует для работы два соединения: канал данных и канал управления. Это создает сложности с подключением, так как не все провайдеры, особенно при мобильном или гостевом доступе, обеспечивают нормальное прохождение GRE-пакетов, что делает подключение к VPN-серверу невозможным.
L2TP не имеет указанного недостатка, так как использует только одну UDP-сессию для передачи данных и управления, что облегчает подключение клиентов и администрирование сетевой инфраструктуры.
Вторым достоинством L2TP является двухфакторная аутентификация. Перед установлением соединения узлы проверяют подлинность друг друга на основании сертификата или предварительного ключа и только после этого приступают к соединению. Аутентификация с использованием сертификатов требует развернутой в сети инфраструктуры PKI, при ее отсутствии можно использовать аутентификацию по предварительному ключу. Мы будем рассматривать именно этот вариант.
Аутентификация по предварительному ключу менее надежна, чем по сертификату, но тем не менее позволяет организовать более высокий уровень безопасности VPN-сети нежели с использованием протокола PPTP. Предварительный ключ указывается один раз, при создании VPN-подключения на клиенте и может быть неизвестен пользователю (настройку производит администратор), в этом случае можно быть уверенным в подлинности подключающегося хоста и компрометация пароля в этом случае не позволит подключится к сети предприятия, так как предварительный ключ неизвестен.
Для развертывания VPN L2TP-сервера мы будем использовать Windows Server 2008 R2 SP1, однако все сказанное, с небольшими поправками, будет справедливо и для иных версий Windows Server.
Нам потребуется установленная роль Службы политики сети и доступа, которая должна содержать Службы маршрутизации и удаленного доступа.
Дальнейшая настройка производится через оснастку Маршрутизация и удаленный доступ, доступной в меню Пуск - Администрирование. При первом обращении будет запущен мастер, который поможет вам быстро настроить необходимые службы. Если вы планируете использовать это сервер как роутер, для обеспечения доступа в интернет компьютеров локальной сети, то следует выбрать Доступ к виртуальной частной сети (VPN) и NAT, если вам нужен только VPN-сервер, то Удаленный доступ (VPN или модем).
Настройку служб NAT мы рассматривать не будем, при необходимости обратитесь к данной статье. Также довольно часто встречается ситуация, когда службы NAT уже развернуты, в этом случае нужно включить службы VPN вручную. Для этого в оснастке Маршрутизация и удаленный доступ щелкните правой кнопкой мыши на имени сервера и выберите Свойства. В открывшемся окне на вкладке Общие поставьте переключатель IPv4-маршрутизатор в положение локальной сети и вызова по требованию, а также установите галочку IPv4-сервер удаленного доступа.
На вкладке Безопасность введите предварительный ключ.
Остальные параметры мы подробно рассматривать не будем, так как подробно рассматривали их в статье посвященной настройке PPTP-сервера. Применяем изменения, перезапускам службу.
Затем переходим в раздел Порты и в свойствах L2TP устанавливаем обе галочки Подключения удаленного доступа и Подключения по требованию, максимальное число портов должно соответствовать или превышать предполагаемое количество клиентов. Неиспользуемые протоколы лучше отключить, убрав с свойствах обе галочки.
В итоге в списке портов должны остаться только L2TP порты в указанном вами количестве.
Настройка L2TP подключения на клиенте производится стандартными методами, на вкладке Безопасность выберите тип VPN как L2TP с IPsec и нажмите кнопку Дополнительные свойства, в открывшемся окне укажите использование предварительного ключа и введите сам ключ.
Также не забудьте включить использование протокола расширенной проверки подлинности EAP.
В остальном никаких отличий от создания PPTP подключения нет, пользователи могут подключаться к нашему серверу используя свои учетные данные.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Настройка клиента L2tpIpsecVpn
Запускаем установленный клиент:
После запуска у вас должен открыться апплет L2tpIpsecVPN. Нажмём на него правой кнопкой мыши и произведём настройку соединения:
.
Закроем окно настроек OpenSSL и перейдём к настройке сети. Добавим новую сеть, нажав на клавишу Add… в панели настроек и введите имя сети:
После этого данная сеть станет доступна в панели настроек. Дважды кликнем правой кнопкой мыши по новой сети, чтобы настроить её. На первой вкладке необходимо произвести настройки IPsec. Зададим адрес сервера и общий ключ:
После этого переходим на вкладку настройки PPP и укажем там имя пользователя, под которым мы хотим зайти в сеть:
После этого откроем вкладку Properties и укажем путь до ключа, сертификата клиента и УЦ:
Закроем данную вкладку и выполним финальную настройку, для этого откроем вкладку "IP settings" и поставим галочку напротив опции "Obtain DNS server address automatically":
Данная опция позволит клиенту получать от сервера личный IP-адрес внутри сети.После всех настроек закроем все вкладки и перезагрузим клиент:
Настраиваем IPsec
Именно с устаревшими настройками IPsec вам придется столкнуться в большинстве опубликованных инструкций. Нет, все даже будет работать, но вот безопасность такого решения окажется довольно низкой, не соответствующей современным требованиям. Поэтому, если у вас уже имеется настроенный экземпляр L2TP-сервера мы настоятельно советуем обновить его настройки.
Для работы с IPsec мы будем использовать пакет strongSwan, установим его:
Затем откроем файл настроек /etc/ipsec.conf и добавим в его конец следующие две секции:
Первая секция задает общие параметры: включает фрагментацию IKE и настраивает протокол обнаружения мертвых узлов (Dead Peer Detection, DPD), отвечающий за обнаружение неактивных клиентов. Вторая относится уже к L2TP-соединениям, указывая использовать транспортный режим IPsec, аутентификацию по общему ключу и задает используемые шифры. Приведенные значения являются рекомендуемыми и взяты из официальной документации strongSwan.
Общий ключ следует указать в файле /etc/ipsec.secrets, добавив в него следующую строку:
Где mySharedKey - общий ключ, так как от него зависит безопасность вашей VPN-сети мы рекомендуем использовать в качестве ключа случайно сгенерированную строку из букв, цифр и спецсимволов. Для этого можно воспользоваться командой:
Результатом ее выполнения станет случайная строка длинной в 18 символов.
После внесения указанных настроек перезапустим службу:
В Ubuntu имя службы несколько иное - strongswan-starter, поэтому команда будет иметь вид:
1. Устанавливаем службы
Сначала, нам понадобится Windows Server Desktop Experience. Установка Core нам не подойдет, ибо отсутствует компонент NPA. Если компьютер будет членом домена, можно остановиться и на Server Core, в таком случае все это дело можно уложить в гигабайт ОЗУ.
Нам нужно установить RRAS и NPA (Network Policy Server). Первый нам понадобится для создания туннеля, а второй нужен в случае если сервер не является членом домена.
В выборе компонентов RRAS выбираем Direct access and VPN и Routing.
Настройка PPP
UPD: предложенные нами изменения были приняты начиная с версии pppd 2.4.9. Поэтому пакет pppd можно взять из репозиториев.
Желательно поставить последнюю версию pppd. Для этого выполним следующую последовательность команд:
Впишите в файл /etc/ppp/options.xl2tpd следующее (если там присутствуют какие-то значения, то их можно удалить):
Выписываем корневой сертификат и сертификат сервера:
Таким образом, мы закончили с основной настройкой сервера. Остальная часть конфигурации сервера связана с добавлением новых клиентов.
Установка strongswan (IPsec)
В первую очередь, настроим firewall для работы ipsec
Затем приступим к установке
После установки необходимо задать конфигурацию для strongswan (одну из реализаций IPSec). Для этого отредактируем файл /etc/strongswan/ipsec.conf :
Также зададим общий пароль для входа. Общий пароль должен быть известен всем участникам сети для аутентификации. Данный способ и является заведомо ненадёжным, т.к. данный пароль с лёгкостью может стать известным личностям, которым мы не хотим предоставлять доступ к сети.
Тем не менее, даже этот факт не повлияет на безопасность организации сети, т.к. основное шифрование данных и аутентификация пользователей осуществляется протоколом PPP. Но справедливости ради стоит заметить, что strongswan поддерживает более безопасные технологии для аутентификации, например, с помощью приватных ключей. Так же в strongswan имеется возможность обеспечить аутентификацию с помощью смарт-карт, но пока поддерживается ограниченный круг устройств и поэтому аутентификация с помощью токенов и смарт-карт Рутокен пока затруднительна. Зададим общий пароль через файл /etc/strongswan/ipsec.secrets:для клиента на Linux
Для начала сгенерируем ключевую пару на токене и создадим заявку на сертификат:
Появившуюся заявку client.req отправьте в УЦ. После того как вы получите сертификат для своей ключевой пары, запишите его на токен с тем же id, что и у ключа:
3. Разрешаем правила в брандмауэре
Тут все просто. Нужно найти группу правил Routing and Remote Access и включить их всех.
4. Настраиваем NPS
Ищем в пуске Network Policy Server.
В закладках, где перечислены все политики, нужно включить обе стандартные. Это разрешит всем локальным пользователям подключение к VPN.
Установка пропатченного ppp
UPD: предложенные нами изменения были приняты начиная с версии pppd 2.4.9. Поэтому пакет pppd можно взять из репозиториев.
Установка xl2tp
Сконфигурируем его через файл /etc/xl2tpd/xl2tpd.conf:
Установка ПО для работы с токенами
Установите последнюю версию библиотеки librtpkcs11ecp.so с сайта, также библиотеки для работы со смарт-картами:
Подключите Рутокен и проверьте, что он распознается системой:
5. Подключаемся по VPN
Для демонстрационных целей выберем Windows 10. В меню пуск ищем VPN.
Жмем на кнопку добавления подключения и переходим в настройки.
Имя подключения задавайте какое вам хочется.
IP адрес – это адрес вашего VPN сервера.
Тип VPN – l2TP с предварительным ключом.
Общий ключ – vpn (для нашего образа в маркетплейсе.)
А логин и пароль — это логин и пароль от локального пользователя, то есть от администратора.Жмем на подключение и готово. Вот и ваш собственный VPN готов.
Надеемся, наш гайд даст еще одну опцию тем, кто хочет сделать свой собственный VPN не связываясь с Linux или просто хочет добавить шлюз в свою AD.
Добавление нового клиента
Чтобы добавить нового клиента в сеть, необходимо записать его сертификат в список доверенных для данного клиента.
Если пользователь хочет стать участником VPN сети, он создаёт ключевую пару и заявку на сертификат для данного клиента. Если пользователь доверенный, то данную заявку можно подписать, а получившийся сертификат записать в директорию сертификатов:
Добавим строчку в файл /etc/ppp/eaptls-server для сопоставления имени клиента и его сертификата:
NOTE
Чтобы не запутаться, лучше чтобы: Common Name, имя файла с сертификатом и имя пользователя были уникальными.Также стоит проверить, что в других файлах аутентификации нигде не фигурирует имя пользователя, которого мы добавляем, иначе возникнут проблемы со способом аутентификации пользователя.
Настройка системы
Установим все необходимые драйверы для работы с Рутокенами скачав их c оф. сайта.
Скачаем корневой сертификат сервера и установим в систему. Для этого откроем его и в открывшемся окне выберем опцию "Установить сертификат":
В открывшемся окне выберем установку сертификата для локального пользователя. Если хочется, чтобы сертификат был доступен всем пользователям на компьютере, то тогда следует выбрать установку сертификата на локальный компьютер:
Установим сертификат в хранилище доверенных корневых сертификатов УЦ:
После всех этих действий соглашаемся со всеми дальнейшими пунктами. Теперь система настроена.
Читайте также: