March 3, 2022

НАСТРОЙКА VPN СЕРВЕРА И КЛИЕНТСКОГО КОМПЬЮТЕРА

Чтобы разобраться с настройкой VPN, необходимо понимать, что же это такое. VPN (Virtual Private Network) – это виртуальная частная сеть. В неё входит группа протоколов, с помощью которых можно организовать визуальную сеть поверх незащищенной сети. Её используют для того, чтобы получить доступ в интернет, доступ в корпоративную сеть и объединение её сегментов.
Все способы подключения компьютера к Интернету читайте на сайте https://countryonline.ru подробно.

На какие типы делят VPN?

VPN делятся на:

  • PPTP (Point-to-point Tunneling Protocol) – туннельный протокол типа точка-точка. Такой протокол организовывает защиту соединения. Для этого создаётся туннель поверх стандартной сети. На данный момент этот тип протокола не рекомендуют, потому что он считается самым небезопасным протоколом. Как организовать такой протокол? Для настройки используются 2 сетевые сессии: PPP и TCP сессия. Для установки PPP сессии необходим протокол GRE. Эту сессию устанавливают для передачи данных. Для управления используется соединение на TCP порту. Из-за такого «строения» протокола в гостиничных и мобильных операторах могут появиться проблемы.
  • L2TP (Layer 2 Tunneling Protocol). Этот протокол лучше, чем предыдущий. Он базируется на двух протоколах: PPTP и L2F. В нём объединяется каналы данных и управления, также добавляется шифрование, что делает его более безопасным.Помимо этого, есть ещё одно преимущество L2TP перед PPTP — L2TP намного легче воспринимается большинством брандмауэров, в отличие от PPTP.
  • SSTP(Secure Socket Tunneling Protocol) – протокол безопасного туннелирования сокетов. Он основывается на SSL, который является безопасным уровнем сокета и построен на криптографической системе с использованием открытого и закрытого ключа. SSTP допускает создание защищенного соединения из любого места с помощью HTTPS и открытого порта 443. Его самым важным достоинством является эффективное использование сетевых ресурсов.

Для чего используются VPN?

Давайте более детально рассмотрим самые частые сферы применения VPN:

  • Выход в сеть интернета. Зачастую, используется провайдерами городских сетей. Но также этот способ достаточно популярен и в сетях предприятий. Главное его преимущество заключается в обладании высоким уровнем безопасности. Этому факту способствует осуществление доступа в интернет через две различные между собой сети. Это позволяет задать для них различные уровни безопасности. Классическое решение подразумевает в себе раздачу интернета в корпоративную сеть. В этом случаи выдержать уровни безопасности для локального и интернет трафика практически невозможно.
  • Доступ в корпоративную сеть снаружи. Также существует возможность объединения сетей всех филиалов в одну сеть. Эта функция и есть основной целью разработчиков VPN – возможность организации безопасной работы в единой корпоративной сети для пользователей, месторасположения которых вне предприятия. Достаточно широко применяется в качестве соединителя территориально-разнесенных подразделений, обеспечения выхода в сеть для сотрудников, которые находятся в командировке или же в отпуске, открывает возможность работать, не выходя из собственного дома.
  • Объединение компонентов корпоративной сети. Чаще всего сеть предприятия включает в себя определенное количество сегментов, которые имеют различные уровни безопасности и доверия. В этой ситуации для взаимодействия между сегментами можно применить VPN. Это решения считается наиболее безопасным, если сравнивать его с простым соединением. Поступивши таким образом можно организовать доступ сети складов к отдельным ресурсам сети отдела реализации. В связи с тем, что это отдельная логическая сеть, для нее можно задать нужные требования по безопасности и при этом не вмешиваться в функциональный процесс отдельных сетей.

Особенности настройки VPN соединения

Присутствует большая вероятность того, что клиентами VPN будут рабочие станции под управлением операционной системы Windows. Но необходимо выделить, что сервер может беспрепятственно выполнять свои основные функции как под Windows, так и под Linux или BSD. В связи с этим мы приступим к рассмотрению Windows 7. Не стоит останавливать свое внимание на базовых настройках. В них нет ничего сложного, и они понятны абсолютно каждому пользователю. Нужно остановиться на одном тонком нюансе:

  • Во время подключения стандартного VPN соединения главный шлюз будет указан для VPN сети, иными словами, на клиентской машине интернет полностью исчезнет или же будет использоваться через подключения в какой-либо удаленной сети. Такое неудобство может привести к существенным финансовым затратам – двойной оплате трафика (первый раз оплачивается удаленная сеть, а во второй раз сеть провайдера). Чтобы не допустить таких ситуаций необходимо на закладке «Сеть», в свойствах протокола TCP/IPv4, нажать кнопку «дополнительно» и в новом открытом окне снять галочку с позиции «Использовать основной шлюз в удаленной сети». На рисунке можно визуально ознакомиться с этим действием.

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

Что же такое маршрутизация? Если особо не вдавться в подробности темриналогий то можно сказать, что это совокупность правил, которые определяют маршрут следования данных в связных сетях. Их можно сравнить с дорожными указателями и разметкой. Представьте себе ситуацию: вы попали в совершенно чужой для вас город, где отсуствуют какие-либо знаки и разметка на перекрестках. Вы впадаете в растерянность. Аналогичная ситуация происходит и в сетях. Люые сетевые пакеты осуществляют свое передвижение согласно определенному набору правил – таблиц маршрутизации. Именно благодаря им можно отправить документ на сетевой принтер для его распечатки, а электронное письмо попадет точно адрессату.

Если же вы желаете использовать VPN соединение в качестве работы удаленных клиентов в корпоративной сети, то возникает необходимость настройки маршрутов. Если же не провести этот процесс, то, как тогда пакет самостоятельно определит, что ему необходимо именно через туннель попасть в вашу корпоративную сеть? Вы же не указываете в почтовом письме или телеграмме, что ее нужно доставить «бабушке в деревню».

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

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

Этот вариант функционирует только при условии поддержки со стороны Proxy ARP, позволяющий объеденить две не связные между собой сети в одну целую. Считается, что все хосты расположены на одной физической сети и обмениваются траффиком без дополнительной маршрутизации.

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

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

В таком случае удаленные клиенты выделяются в отдельную подсеть (на картинке это 10.0.1.0/24). При этом на рисунке видно, что обе подсети могут быть составляющими общей сети — 10.0.0.0/23. Таким образом, управление структурой может осуществляться с помощью маршрутизации или маски подсети.

Первый вариант заключается в перемещении компьютеров в сеть 10.0.0.0/23 (для этого необходимо изменить маску сети на 255.255.254.0), что предоставит ему доступ к обеим подсетям.

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

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

X.X.X.X mask Y.Y.Y.Y Z.Z.Z.Z

В этом шаблоне сеть — Х.Х.Х.Х, маска сети — Y.Y.Y.Y, а шлюз — Z.Z.Z.Z. для того чтобы добавить маршрут в ОС Windows нужно воспользоваться командой routeadd. Общая запись команды выглядит так:

routeadd X.X.X.X mask Y.Y.Y.Y Z.Z.Z.Z

В ОС Linux запись немного меняет свою форму, но в целом остается неизменной:

routeadd -net X.X.X.X netmask Y.Y.Y.Y gw Z.Z.Z.Z

Стоит отметить, что команды действуют до первой перезагрузки. Хотя это создает определенные трудности, этим свойством можно воспользоваться при ошибке в создании маршрута. После того как вы убедились, что всё работает правильно, следует добавить постоянные маршруты. Для этого к уже известной нам команде следует добавить ключ –p:

routeadd X.X.X.X mask Y.Y.Y.Y Z.Z.Z.Z -p

Чтобы осуществить это в Ubuntu, после описания интерфейса в файле /etc/network/interfaces, следует добавить строку:

uprouteadd -net X.X.X.X netmask Y.Y.Y.Y gw Z.Z.Z.Z

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

10.0.0.0 mask 255.255.255.0 10.0.1.1

И наоборот: для осуществления доступа из локальной сети к ПК удаленных клиентов следует прописать

10.0.1.0 mask 255.255.255.0 10.0.0.1

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

Удаленные клиенты имеют адреса, которые не являются частью локальной сети, но могут из нее маршрутизироваться.

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

Публикацию ресурса в сети VPN можно осуществить следующими путями: с помощью размещения его на VPN сервере и разрешению доступа к нему из удаленной сети, путем прокинутого порта в удаленную сеть или же подключения ресурса в роли клиента сети. Ниже представлена схема, на которой изображен сервер терминалов с маршрутом 10.0.0.2, доступный по адресу 172.16.0.2 удаленной сети.

VPN Соединение двух подсетей

Приведенная схема служит для соединения нескольких подсетей в целостную единственную сеть. Такая сеть имеет более сложную структуру. Однако если понять процесс направления пакетов через интерфейсы, сразу все становится на места. При данных условиях X.X.X.X — IP адрес основного офиса, а филиалы имеют серые IP адреса. Роутер офиса осуществляет подключение в качестве клиента. На нем находится VPN сервер.

Теперь поговорим о маршрутизации. Клиенты подсети LAN1 производят передачу пакетов к подсети LAN2 на сетевой шлюз роутера. Равным образом роутер передает пакеты на противоположный конец VPN туннеля. Точно такая же маршрутизация должна быть проведена для подсети LAN2.

Для этого необходимо написать маршрут к LAN2 на клиентах подсети LAN1:

10.0.1.0 mask 255.255.255.0 10.0.0.1

Нужно также прописать маршрут другого конца туннеля на роутере LAN1:

10.0.1.0 mask 255.255.255.0 172.16.0.2

Для клиентов LAN2 маршруты должны иметь следующий вид:

10.0.0.0 mask 255.255.255.0 10.0.1.1

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

Созданная нами в тестовой лаборатории схема, которая поможет практически ознакомиться с технологией:

Мы имеем локальную сеть 10.0.0.0/24, в которой расположен роутер, выполняющий функции VPN сервера терминальный сервер. Для VPN была закреплена сеть с маршрутом 10.0.1.0/24. Наружный вид сервера имеет условленный адрес X.X.X.X. Нам необходимо предоставить доступ удаленным клиентам к ресурсам терминального сервера.

Настройка сервера PPTP

Устанавливаем пакет pptpd:

sudo apt-get install pptpd

Далее запускаем /etc/pptpd.conf и задаем наиболее важные настройки VPN сервера. Для этого указываем в конце файла адрес сервера:

localip 10.0.1.1

Для выдачи клиентам указываем диапазон адресов:

remoteip 10.0.1.200-250

Не перезапустив pptpd, невозможно будет увеличить количество адресов, поэтому необходимо задавать их с запасом. Необходимо также найти и переписать строку:

bcrelay eth1

Существует две опции, которые возможно использовать. Это listen и speed. С помощью listen указывается IP адрес от локального интерфейса. Нужно это с целью прослушивания РРТР-соединения. Второй – speed – позволяет с точностью показать VPN-соединения в бит/с. В качестве примера можно взять разрешение для серверов прием РРТР-соединения, но лишь при внешнем интерфейсе:

listen X.X.X.X

В файле /etc/ppp/pptpd—options находятся настройки намного тоньше. Принимая настройки «по умолчанию», это будет наиболее соответствовать необходимым требованиям. Для лучшего представления стоит рассказать о нескольких из них.

За шифровку приложенных данных, а также проверку на подлинность несет ответственность секция #Encryption. Любой предположительно опасный протокол типа CHAP, PAP и MS-CHAP, устаревшие протоколы запрещаются опциями:

refuse-pap
refuse-chap
refuse-mschap

Следующим этапом является применение протокола проверки на подлинность (MS-CHAP v2, а также 128-битное MPPE-128):

require-mschap-v2
require-mppe-128

Далее стоит упомянуть о секции #Network и Routing. Секция для использования DNS-серверов, ориентируясь на внутреннюю сеть. Почему это, вероятнее всего, станет весьма выгодным? Потому что позволяет обратить сигнал напрямую к компьютеру через имена, не исключительно через IP. Такое возможно при содержании в DNS всех портативных компьютеров. Но в нашей ситуации вышеуказанная опция совершенно бесполезна. В этом случае нужно всего лишь ввести адрес WINS-сервера через опцию ms-wins.

В том же разделе имеется proxyarp опция. Она включает в себя поддержание с помощью сервера Proxy ARP.

Следующая секция #Miscellaneous и содержащаяся в ней lock-опция. Лимитирует возможности любого клиента всего лишь через одно подключение.

Настраивание сервера вполне можно считать завершенным процессом. Последнее, что осталось, это разработать самих пользователей. Для того чтобы сделать это, внесите в /etc/ppp/chap-secrets все нужные записи:

ivanov * 123 *
petrov * 456 10.0.1.201

Первая запись дает возможность подключиться к серверу пользователю, пароль которого 123, а также присваивается персональный IP-адрес. Вторая запись создает следующего пользователя. Она так же выдает ему постоянный адрес (10.0.1.201).

Далее нужно перезапустить pptpd:

sudo /etc/init.d/pptpd restart

Обратите внимание! В тех случаях, когда pptpd отказывает в перезапуске, виснет, /var/log/syslog выдает строчку о long config file line ignored, незамедлительно вводите в конце файла /etc/pptpd.conf перенос строчки.

Наконец, сервер полностью подготовлен к работе.

Настройка клиентского компьютера

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

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

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

Внимание, еще одно важное замечание! Зачастую доступ к ПК в локальной сети будет осуществляться по IP адресам. Имеется в виду – путь \\\\10.0.0.1 будет рабочим, а \\\\SERVER – не будет работать. Такой вариант будет весьма непривычным для пользователей и может вызвать дополнительные трудности. От этих проблем можно избавиться несколькими способами:

  1. Если ваша сеть построена на основе доменной структуры, тогда необходимо для VPN соединения адресом DNS-сервера указать адрес сервера контроллера домена. Можно воспользоваться функцией в настройках сервера ms-dns в /etc/ppp/pptpd-options и данные настройки клиентом будут получаться автоматически.
  2. Если в вашей сети отсутствует DNS сервер, тогда можно создать WINS-сервер и аналогично настроить для него автоматическую передачу данных для клиентских компьютеров, используя опцию ms-wins.
  3. Если количество удаленных клиентов невелико, вы можете настроить файлы hosts на каждом из компьютеров, прописав в них строку вида: 10.0.0.2 SERVER. Файл hosts вы можете найти в папке (C:\\Windows\\System32\\drivers\\etc\\hosts).

Основой нашего сервера стал маршрутизатор, использующий WindowsServer 2008 R2. Настройка сервера рассматривалась ранее. Настройки актуальны и для серверов на основе WindowsServer 2003 – 2008 с небольшими особенностями.

Настройка закончена и, в крайнем случае, в процессе запуска мастера, необходимо будет выбрать нужную конфигурацию. При открытии диспетчера сервера, в ролях нужно найти «маршрутизация и удаленный доступ» зайти в ее свойства (открывается при помощи правой кнопки мыши). В появившемся окне, нужно установить переключатель «IPv4» в состояние локальной сети и вызова по требованию и установить галочку напротив «IPv4 сервер удаленного доступа«.

После данных манипуляций нужно в закладке «безопасность» выбрать проверку подлинности при помощи протокола MS-CHAPV2 и запретить подключение без проверки.

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

После сохранения изменений, служба перезапустится и добавится роль VPN сервера. В консоли (левая часть) должен появиться пункт «порты», в его свойства нам и нужно зайти. По умолчанию система создает 5 PPTP и 5 L2TP портов. В настройках PPTP устанавливаем галочки напротив подключения по требованию и подключения удаленного доступа. Кроме этого, необходимо указать максимальное количество портов. Все лишние порты рекомендуется отключить.

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

Настройка доступа производится разделе локальных пользователей и групп, где находим «свойства пользователя» и разрешаем доступ в разделе «права доступа к сети» во «входящих звонках».

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

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