Поднимаем VPN сервер. Часть 1. Основы

Это самая необычная статья этого номера. Ее особенность в том, что ее я пытался опубликовать несколько месяцев назад, но каждый раз при сдаче номера забывал это сделать. Первый раз забыл ее на рабочем компьютере. Подумал – ничего страшного, опубликую позже на сайте. «Позже» переросло в три недели. То времени не хватало, то банально забывал. Когда вспомнил, то посмотрел на календарь. Было как раз начало месяца, и я решил опубликовать ее в грядущем номере. Записал статью с работы на флешку и… забыл флешку на работе. Опять сорвалось?. Задерживать номер на еще один день не хотелось, поэтому я плюнул на это дело и поставил себе напоминалку в телефоне. Уж к следующему номеру точно не забуду?. Что вы думаете, к сдаче очередного номера я опять ее забыл. На этот раз по обыкновенной запарке. Статью принес домой, а когда собирал все статьи в кучу, чтобы отправить верстальщику – забыл переписать ее с флэшки. Рассказывать итог, думаю не надо?. Вот такая история. Главное, что сейчас статья на своем месте, и ты наконец-то можешь ее прочитать. Приятного чтения!

Что такое VPN?

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

VPN – это сокращение от Virtual Private Network, или говоря русским языком – «Виртуальная частная сеть». Суть этой замечательной технологии в том, что она позволяет организовать сети/несколько сетевых подключений поверх другой сети. Под другой сетью обычно подразумевается Интернет, но обычная сеть тоже может выполнять эту роль.

Если есть сеть по которой мы и так можем соединяться с удаленными компьютером/компьютерами, то для чего тогда заморачивать себе голову с VPN? На самом деле все просто. В первую очередь это безопасность.. VPN соединения являются защищенными, т.к. весь трафик между ними шифруется. Следовательно, даже если злоумышленнику удастся перехватить твой трафик, то он ничего полезного из него он не выдернет. Итак, ключевой момент использования VPN – безопасность.

Рассмотрим еще одну жизненно-важную ситуацию. Представь, что тебе требуется из дома подключиться к своей корпоративной сети. Как это сделать? Если речь идет о подключении к одному компьютеру, то задачу можно решить банально с помощью средств удаленного администрирования, коих сейчас очень много. Ярким примером таких средств можно является уже знакомый многим – Remote Administrator или как принято говорить в народе: «Radmin». Устанавливаешь серверную часть на компьютер, с которым будешь соединяться, а клиента ставишь себе. Все гениально просто и в принципе безопасно, т.к. Radmin хорошо шифрует свой трафик, поэтому злоумышленник опять же остается не удел.

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

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

VPN туннели

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

Вернемся к нашим кроликам. Ой! Я хотел сказать VPN туннелям. Итак, VPN туннелям принято называть канал, который образовался в результате соединения VPN клиента с VPN сервером. Ты уже знаешь, что, такое соединение является безопасным и все передаваемы по нему данные, надежно зашифрованы. Если тебе доводилось видеть различные вузовские учебники по сетям, то в них обычно используют термин «канал типа точка-точка». Понятия «VPN туннель» и «канал типа точка-точка» тождественны и ты можешь пользоваться любым. На протяжении всей статьи я буду употреблять именно «VPN туннель». Мне оно больше нравится.

Peers, но те которые в Torrents

Еще одним важным термином в области VPN считается – peers (узел). Те, кто пользуется торрент-трекерами наверняка в курсе о значении этого слова в той среде. В VPN, этот термин применяют к компьютерам, установившим VPN-соединение. Т.е. когда ты устанавливаешь со своего компьютера VPN соединение, тебя можно смело назвать пиром.

Немного о шифровании

Шифрование – это один из ключевых моментов в VPN. Тема достаточно большая и по ней можно написать не одну добротную статью. Я не буду вдаваться в подробности и скажу, лишь, что за шифрование отвечают оба пира, которые установили туннель. Например, мы имеем две сети, соединенные посредством VPN шлюзов. Схематично эту модель можно представить так:

Сеть A -> VPN Шлюз A -> ИНТЕРНЕТ -> VPN Шлюз B-> Сеть B .

При таком раскладе алгоритм будет таким. Данные из сети A передаются на VPN-шлюз A в абсолютно неизменном виде. Затем (уже на шлюзе) они шифруется, и передаются по VPN-туннелю, проброшенным, через небезопасную сеть. В моем примере, небезопасной сетью выступает ИНТЕРНЕТ. Получив зашифрованный набор данных, VPN-шлюз B, произведет их расшифровку и чистый набор отправит в Сеть B. На основании вышеперечисленного, делаем вывод, что данные остаются в шифрованном виде, лишь во время передачи их по VPN-туннелю. Как только доставка завершена, данные перестают быть зашифрованными.

Обрати внимание, что шифрование действует на весь IP пакет. Сами заголовки пакета тоже (т.е. адрес отправителя и получателя) заменяются. Новыми адресами получателя и отправителя станут адреса VPN-шлюзов. Таким образом, при перехвате пакета, удастся лишь определить адреса VPN-шлюзов, а не адреса конечных клиентов внутренней сети.

Немного о принципах работы VPN

В общем виде, все VPN придерживаются нескольких общих правил:

1. Идентификация узлов перед созданием VPN-туннеля.

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

3. После окончания сверки используемых алгоритмов шифрования (само собой, если она прошла успешно), будет создан ключ. В дальнейшем, он будет применяться в симметричном алгоритме для шифрования/дешифрования пакетов данных.

Давай, попрактикуемся

Самую необходимую теорию я до тебя донес и теперь надо бы попробовать все это дело на практике. Когда я писал первый вариант статьи, то я полностью посвятил его, настройке VPN-сервера на Kerio WinRoute. Я конечно мог так и поступить – оставить все как есть и ничего не изменять, но в самый последний день перед сдачей этого номера, я решил выделить несколько часиков времени и разнообразить информацию. Начать с наиболее простого примера, который обязательно будет полезен новичкам, а уже в следующих частях статьи рассмотреть более специфичные вещи, вроде поднятие VPN сервера с помощью OpenVPN и Kerio Winroute. Итак, начнем с самого простого примера – организации VPN-туннеля между двумя компьютерами, работающих, под управлением Windows XP. Важный момент. Никакой дополнительный софт я использовать не буду. Все будет сделано стандартными средствами.

VPN-туннель для Windows XP

Как я уже сказал, будем начинать с самого простого. Не многие знают, что в Windows XP есть встроенный VPN сервер. Чуешь, чем это пахнет? Ты можешь запросто пробросить туннель к удаленному компьютеру и воспользоваться всеми радостями VPN.

Не будем мусолить одно по одному, а возьмемся за дело. Сначала научимся принимать внешние VPN подключения, т.е. подготовим VPN-сервер. Усядься за тот компьютер, который будем выполнять роль сервера и проделай следующие шаги.

1. ПУСК -> Настройка -> Сетевые подключения.

2. Запусти «Мастер новых подключений».

3. В первом окне (смотри рисунок 1) выбери пункт: «Установить прямое подключение к другому компьютеру» и нажми «Далее».

4. В следующем окне (рисунок 2) сделай выбор в пользу «Принимать входящие подключения». Нажимай «Далее».

5. В следующем окне (рисунок 3), мастер создания нового подключения тебя спросит «Разрешать виртуальные частные подключения аль нет?». Мы собственно и собираемся принимать подключения, поэтому выбираем «Разрешать». После этого нажимаем «Далее». Вполне вероятно, что вид твоего окна будет отличаться от того что изображено на рисунке 3. Не обращай на это внимания, а просто нажми «Далее». Следующее окно должно быть таким, каким надо.

6. В очередном окне (рисунок 4) тебе требуется определить пользователей, которые могут подключаться. Выбирай из списка имеющихся или создавай новых. Не забудь, создаешь юзера - задай пароль. Как закончишь – кликни «Далее».

7. Наши усилия близки к завершению. На очередном шаге, от нас требуется настроить сетевые параметры. Можешь оставить все как есть. Единственное, что требуется – настроить протокол TCP/IP. Выдели этот пункт и нажми кнопку «Свойства». Перед тобой появится окно как на рисунке 5. Установи в нем флаг «Разрешать звонящим доступ к локальной сети». Отметь пункт «Указать адреса TCP/IP явным образом». После этого, пропиши диапазон «с» и «по». Я указал здесь следующий вариант: 192.168.1.40-192.168.1.50. Все клиенты, которые будут подключаться к нам, будут получать IP адреса из этого диапазона. Так, почти все, осталось лишь снять галку «Разрешить звонящему указывать свой адрес IP». Теперь точно все. Нажимай Ok, а затем «Далее».

8. Следующий шаг мастера чисто формальный и тебе остается лишь нажать на кнопку «Далее».

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

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

2. Теперь тебе требуется выбрать тип создаваемого подключения. Доступно два варианта:
- Подключение удаленного доступа
- Подключение к виртуальной частной сети.
Не трудно догадаться, что нас интересует второй вариант (рисунок 7).


3. Здесь нам требуется ввести название соединения. Вводи сюда любое имя. Разницы от этого никакой. Клацай опять на «Далее».

4. На этом шаге мастер попросит тебя определиться – «Требуется ли перед установкой VPN соединения выполнять подключение к публичной сети. Например, если VPN-сервер находится в инете, то сначала нужно установить соединение с Интернет, а уже после пытаться соединиться с VPN-сервером. Для себя я выбрал вариант «Не набирать номер предварительного подключения».

5. Это шаг заключительный. Здесь тебе требуется ввести IP адрес VPN-сервера. Мой VPN-сервер находится в локальной сети и имеет адрес 192.168.1.33. Все, кликай «Далее», а потом готово.

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

Connecting Complete

На сегодня это все. Проведи эксперименты с установленным соединением – попробуй найти ему практическое применение (например, организуй выход в инет, для VPN клиента), а в следующем номере, я расскажу тебе о настройке и практическом применении OpenVPN. Удачи в исследованиях.

Written by Игорь Антонов aka Spider_NET