Что такое VPN? Суть технологии и области ее применения. Что такое VPN сервер Vpn трафик

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

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

VPN: термин и принцип работы

Virtual Private Network (VPN) – название технологии, обеспечивающей создание и наложение одной или нескольких сетей поверх любой другой сети пользователя.

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

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

Структура и разновидности технологии

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

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

Разница между ними заключается в защищенном соединении. Например, системы с подпиской дадут вам защищенные протоколы, типа PPTP, IPSec и другие. В то время, как бесплатные VPN чаще дают только «доверительные» каналы. То есть ваша сеть само по себе должна быть сильно защищена, а VPN только усилит уровень защиты.

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

Подписка на платные VPN не превышает и 10 долларов в месяц, но нужна она далеко не каждому пользователю. Для обычных задач нет смысла приобретать Premium-аккаунты, вполне хватит и стандартных возможностей.

Причины использования VPN

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

  • Защита данных. Особенно подходит тем пользователям, кто любит подключиться к «халявному» соседскому Wi-Fi-соединению, а потом обнаружить, что данные о его карте были украдены. К таким ситуациям относятся и посиделки в кафе и вообще в любых точках с бесплатным Wi-Fi.
  • Полная анонимность. Когда вы открываете новую вкладку с сайтом – это действие будет отображаться на сервере провайдера, так что ваше путешествие по интернету может отследить любой сотрудник компании. Включив VPN, вы скроете историю своих просмотров или посещений, так как вы используете иной IP-адрес.
  • Возможность серфинга в интернете без препятствий. Букмекерские конторы, интернет-казино, торренты, форумы, сайты для взрослых – все «подполье» интернета вновь доступно для вас, все, как в былые времена.
  • Использование зарубежных ресурсов. Это, конечно, вряд ли, что вы будете использовать англоязычные сервисы, типа hulu.com, но все равно – полноценный доступ ко всем популярным сайтам всего мира вам обеспечен.

Как пользоваться VPN на компьютере?

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

  1. установить VPN-клиент (программу) на ПК;
  2. добавить расширение для браузера через Webstore.

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

Так же можно использовать бесплатный, .

Чтобы установить VPN-клиент, необходимо скачать программу в интернете, например, «Betternet». Запускаем установочный файл и устанавливаем клиент. Запускаем его, нажимаем: «Connect» и все. Проблема в том, что программа автоматически выдает нам рандомный IP-адрес, и мы не можем выбрать страну, зато при нажатии всего одной кнопки мы уже используем VPN. И еще один минус – это необходимость постоянно запуска программы, впрочем, некоторые клиенты имеют возможность одновременного запуска с ОС.

Второй способ – это добавления расширения. Здесь минус в том, что, чаще всего, требуется регистрация для пользования, плюс, расширения имеют свойства «вылетать». Зато расширение использовать намного проще – кликаешь по иконке в браузере, выбираешь страну и profit. На данный момент существуют тысячи подобных программ, можете выбрать любую из них, например, «Hotspot Shield». Добавьте расширение в браузер, пройдите регистрацию и больше никаких технических моментов не будет.

Например, вот так работает расширение ZenMate VPN в браузере:

О VPN расширениях для разных браузеров мы писали в статье: .

Как пользоваться VPN на мобильных устройствах?

Мы рассмотрим те устройства, что имеют на борту популярные ОС, например, iOS или Андроид.

Использование VPN на смартфонах или планшетах тоже реализуется довольно просто, а именно – через мобильные приложения. Проблема в том, что некоторые программы требуют root-прав, а это дополнительные заморочки, плюс, возможность превращения телефона в «кирпич». Так что ищите те программы, которые не требуют от вас root-прав. На Android, например, это OpenVPN, а на iOS – это Cloak. Так же на iPhone и iPad можно использовать бесплатный и проверенный . Я сам им иногда пользуюсь, отлично работает.

Технология загрузки очень проста: скачиваем приложение из Play Market или AppStore, устанавливаем его на свой девайс. Далее, активируем VPN, выбираем профиль (откуда, получим IP-адрес), далее, проводится соединение и на этом все. Теперь вы гуляете по интернету через VPN, о чем вам и сообщит используемое приложение.

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

Привет, друзья! Многие люди пользуются интернетом по принципу “мне нечего скрывать”, но это все равно что сказать “мне плевать на мои права”. Эта статья для тех, кому не плевать на свои права, а также для тех, кто думает о безопасности в интернете. Я расскажу вам простыми словами о том, что такое VPN, зачем он нужен, а также как им пользоваться.

Что такое VPN

VPN расшифровывается как Virtual Private Network. В переводе на русский – виртуальная частная сеть. Впн – это технология, которая обеспечивает зашифрованное соединение поверх вашего интернет-соединения.

Благодаря VPN вы будете защищены от перехвата логинов/паролей в незащищенных или публичных WI-FI точках, история вашего посещения сайтов не будет доступна никому, а блокировки сайтов вы забудете как страшный сон. Это относится и к торрентам, и к любым другим якобы запрещенным сайтам.

К индустрии проектов руки “блокировщиков” тоже дотянулись. Недавно была заблокирована популярная биржа биткоинов, крупный форум об инвестициях и ещё неизвестно сколько сайтов. Заблокировать могут и доступ к сайту любой платежной системы, например к . Благо что нелепые блокировки пользователей VPN не касаются:)

Что делает ВПН

1. VPN подменяет ваш реальный IP на подставной, например на итальянский или нидерландский, если вы используете VPN, то вы в сети практически невидимы. Вы заходите на сайт, а видят что вы, к примеру, не из России, а из Германии. За счет этого вам не страшны никакие блокировки сайтов.

2. Зашифровывает соединение – ни ваш провайдер, ни сисадмин на работе не узнает куда вы заходили.
- Что вообще видит сисадмин/провайдер, когда вы без VPN? Всю историю вашего серфинга, всё без исключения сайты, на которые вы заходите.
- Что он видит, когда вы работаете через VPN? Что вы подключились через VPN и… всё, больше ему ничего неизвестно:)
А также злоумышленники при перехвате данных не смогут их распознать из-за шифрования.

3. В сумме с подменой IP и шифрованием трафика вы становитесь полностью анонимны.


Зачем нужен VPN

  • Если вы любите посещать кафе и сидите там в интернете через Wi-Fi или часто путешествуете и подключаетесь к открытым Wi-Fi точкам - никакой наглый хакер, сидящий за соседним столиком, не перехватит данные вашей пластиковой карты с CVV­ кодом или не украдет пароль от платежной системы вместе с вашими деньгами. Причем не важно, работаете ли вы с ноутбука или с мобильного устройства – без ВПН они одинаково не защищены.
  • Вы цените анонимность и вам неприятен тот факт, что любой сисадмин провайдера имеет доступ к посещенным вами сайтам или с каких ЭПС вы пополняете/снимаете крупные суммы. Провайдер больше не будет знать, какие сайты вы посещаете, а сайты не будут знать, кто их посетил.
  • На работе любите сидеть в YouTube/ВКонтакте/мессенджерах, но не хотите, чтобы это пронюхал начальник или сисадмин. Знаю, что вы успешный инвестор и давно не ходите на работу, это я так, на всякий случай:)
  • Хотите видеть интернет таким, каким он должен быть – посещать сайты без ограничений службы, которая просто пачками блокирует сайты. На момент написания статьи заблокировано более 2 млн сайтов (статистика ведется ). Также не редкость, когда требуют блокировки определенной страницы или раздела, а провайдер не разбираясь блочит весь сайт.
  • Любимый сервис ограничивает доступ из вашей страны или предоставляет привилегии/бонусы/скидки конкретным странам? С помощью ВПН станьте резидентом любой страны и получайте все преимущества сервисов.

Как пользоваться VPN (на примере NordVPN)

Сам я сижу в интернете только через ВПН и могу порекомендовать отличный сервис под названием . Скажу сразу, сервис платный, стоимость 12$ в месяц, при оплате на пол года стоимость за месяц 9$, при оплате на год – 7$.

Да, в интернете полно бесплатных VPN сервисов, но содержание серверов стоит денег, поэтому если сервис не берет с вас оплаты, он зарабатывает на вас как-то иначе и это «иначе» может обойтись гораздо дороже, чем оплата надежного VPN. Безопасность – не тот вопрос, на котором стоит экономить.

Обзор NordVPN, его возможности

  • Практически никакого влияния на скорость подключения, лично проверено:)
  • Поддержка Windows, MacOS X, Linux, Android, iOS;
  • Возможность использовать один аккаунт на 6-ти устройствах одновременно;
  • На выбор доступно более 50 стран и свыше 500 серверов;
  • Подключение к NordVPN одним кликом;
  • Если у вас пропадет VPN соединение, автоматически закроются программы, которые вы указали в настройках. Можно не волноваться за утечку данных;
  • Защита от распознавания через DNS и WebRTC (это ребята, через которые виден ваш реальный IP даже при включенном VPN);
  • Поддержка DoubleVPN (цепочка из двух впн серверов);
  • Никаких ограничений: торренты, звонки, HD видео, онлайн игры – всё работает без проблем;
  • Поддержка биткоинов и оплаты через пластиковые карты. Но мы ведь любим анонимность, поэтому если вы ещё не завели себе биткоин кошелек, ловите инструкцию ;
  • Любые запросы игнорируются, потому что сервис находится под юрисдикцией Панамы и не подчиняется законам других стран.

Создаем аккаунт в NordVPN

1) Переходим по ссылке , нажимаем “Получить VPN” и выбираем тариф.
2) Нас перекидывает на форму регистрации аккаунта. Выбираем тариф, заполняем email и пароль, выбираем удобный вариант оплаты и жмем “Зарегистрироваться”.
3) Подтверждаем оплату и заходим в личный кабинет с помощью логина и пароля .

Скачиваем клиент и включаем VPN (на примере Windows)

1) В личном кабинете на сайте переходим во вкладку “Область загрузки”, находим свою операционную систему и качаем клиент. Если у вас Windows, то выбирайте строчку, рядом с которой стоит “recommended”. Если вам нужен VPN на мобильном устройстве, найдите NordVPN в своем магазине приложений и скачайте.

2) Устанавливаем программу и запускаем её. На скриншоте ниже видно, как выглядит программа (скрин увеличивается по клику). Во вкладке “Servers ” вы можете выбрать любую страну для подключения.

Настройка NordVPN

Если вы хотите максимальной защиты и всё настроить под себя, тогда нажмите на “Settings”:

За что отвечает каждый пункт:

Automatic updates – при выходе новых версий обновлять программу автоматически;
Auto connect to – при запуске NordVPN автоматически подключится к выбранному серверу;
Start NordVPN on startup – запускать VPN вместе со стартом системы;
Kill switch – выбрать программы, которые автоматически закроются, если соединение с VPN пропадет. Для выбора программы нажмите “Add more applicatios” и найдите на компьютере нужную программу, к примеру браузер и мессенджер;
Notifications – получать уведомления, когда происходит соединение или отключение от НордВПН;

Show tray icon – показывать значок программы в системном трее;
Start minimized – стартовать в свёрнутом виде;
System of measurement – выбрать в метрической (км) или имперской системе (мили) показывать расстояние до серверов.

При работе с облачными сервисами важна не только скорость обработки и передачи данных - на первое место выдвигается гарантированный уровень безопасности. Данные, хранящиеся на внешнем ресурсе, ни в коем случае не должны попасть в чужие руки. C другой стороны, постоянно появляются сообщения о попытках государств что-нибудь да заблокировать. Наверное, поэтому в последнее время вырос интерес к VPN-решениям, и наряду с уже традиционными IPsec/XFRM и OpenVPN в Linux стали активно развиваться еще несколько проектов. Сегодня тебя ждут четыре интересных экземпляра: SoftEther VPN, WireGuard, FreeLAN и GoVPN.

SoftEther VPN

SoftEther VPN - академический проект японского Цукубского университета (University of Tsukuba), распространяемый под лицензией GPLv2. Главной его особенностью является поддержка нескольких VPN-протоколов, совместимых с оригинальными клиентами. Это позволяет вместо парка серверов из проприетарных и open source решений использовать для подключения клиентов, работающих под управлением разных ОС, одно приложение. И просто выбирать нужный протокол в зависимости от конкретной ситуации. Поддерживаются: SSL-VPN (HTTPS), IPsec, L2TP, MS-SSTP, L2TPv3, EtherIP и OpenVPN. SoftEther VPN работает в режимах remote-access и site-to-site, на уровнях L2 (Ethernet-bridging) и L3 (IP). В случае замены OpenVPN мы получаем более простую конфигурацию. Есть генератор ovpn-файлов для быстрого подключения VPN-клиента. Замена SSTP VPN позволяет отказаться от использования серверов на базе Win2k8/2012, требующих лицензии. Собственный протокол обеспечивает прохождение Ethernet поверх HTTPS (отсюда и название проекта - Software Ethernet), характеризуется хорошей пропускной способностью и низкой латентностью. Его использование дает возможность прозрачно соединить несколько Ethernet-сетей в одну, то есть отпадает необходимость в дополнительных решениях Ethernet-over-IP.

И главное - он совместим с NAT и работает через стандартный 443-й порт, который обычно не блокируется брандмауэрами провайдеров. Эта возможность позволяет скрыть вообще использование VPN: со стороны трафик выглядит как обычный и не обнаруживается технологиями Deep Packet Inspection. Собственно, поэтому он и стал очень популярен в Китае, где его используют для обхода Великого китайского файрвола. При этом на стороне клиента реализован виртуальный сетевой адаптер Ethernet, а на сервере - виртуальный коммутатор. Большой плюс - наличие NAT Traversal, включенной по умолчанию, то есть не нужно просить админа открыть доступ к VPN-серверу, находящемуся во внутренней сети. Но и это еще не все. В сетях с ограниченным доступом, у которых блокируются все TCP- и UDP-пакеты (например, публичные Wi-Fi), для создания VPN можно использовать протоколы ICMP и DNS, обычно не блокируемые брандмауэром. Поддерживается Dynamic DNS, позволяющий получить доступ при динамически меняющемся IP-адресе. Для этого реализован сервис VPN Gate, называемый VPN Azure Cloud Service , - к нему можно организовать соединение из внутренней сети и затем при необходимости свободно попадать внутрь сети. Клиентская часть содержит специальный плагин VPN Gate, позволяющий отслеживать смену IP и быстро подключаться к VPN Gate.

Обеспечивается высокая производительность и скорость соединения 1 Гбайт/с без существенных ограничений по объемам ОЗУ и минимальной нагрузке на процессор. Поэтому требования к серверной части очень невысоки. По тестам SoftEther VPN обходит на том же оборудовании оригинальные решения. Поддерживается шифрование AES-256 и RSA-4096, IPv4/IPv6, журналирование трафика и событий. Аутентификация пользователей локальная, RADIUS и домен Windows.

Администрирование учетных записей и параметры безопасности могут быть настроены удаленно с помощью графического интерфейса Server Manager (локализация только английский, японский и китайский), который устанавливается на Win- или macOS-компьютере администратора или при помощи утилиты командной строки vpncmd. Возможна установка на Windows, Linux, macOS, FreeBSD и Solaris. Доступен исходный код и архив со скомпилированным приложением. Для установки потребуется выбрать ОС, платформу и компонент (сервер, клиент, bridge...). Официально поддерживаются Linux-ядра 2.4/2.6/3.x, но без проблем работает и в современных дистрибутивах с ядром 4.х. В Linux достаточно распаковать архив и запустить файл.install.sh, после чего раза три принять условия лицензии и по окончании запустить сервер:

WireGuard

WireGuard - результат исследований автора проекта Джейсона Доненфилда (Jason A. Donenfeld), главы компании Edge Security. Продукт со встроенной криптографией, одновременно простой в использовании и в реализации (чуть более 4000 строк кода), что существенно выделяет его среди остальных решений. Например, его код легче проанализировать, чем все, что написано в рамках *Swan/IPsec или OpenVPN. Самый молодой проект обзора. О нем заговорили в середине лета 2016-го после публикации анонса в списке рассылки разработчиков ядра Linux, где был представлен патч к ядру. Хотя сам проект развивается уже несколько лет и прошел стадию рецензирования криптографии, то есть его можно внедрять в основное ядро.

VPN-соединение инициализируется (handshake) путем обмена открытыми ключами и напоминает подход, применяемый в SSH. Все остальное прозрачно обрабатывается WireGuard, нет необходимости беспокоиться о ключах, роутинге, контроле состояния и прочем, это все забота WireGuard. Возможно использование симметричного шифрования, но это потребует чуть больших настроек. Маршрутизация производится по ключам шифрования, для этого к каждому сетевому интерфейсу привязывается закрытый ключ. Для обновления ключей handshake происходит через определенное время или по сигналу, что ключи устарели. Для согласования ключей и соединения вместо собственного демона в пространстве пользователя используется механизм Noise_IK из Noise Protocol Framework, похожий на поддержание authorized_keys в SSH, без усложнений в виде поддержки x509 и ASN.1.

Для шифрования применяются потоковый шифр ChaCha20 и алгоритм аутентификации сообщений (MAC) Poly1305. Для генерации совместного секретного ключа - протокол Диффи - Хеллмана на эллиптических кривых в реализации Curve25519, предложенной Дэниелом Бернштейном. Для хеширования используются BLAKE2s (RFC 7693) и SipHash-2-4. Избежать replay-атаки позволяет метка времени TAI64N, пакеты с меньшей меткой времени отбрасываются.

Передача данных осуществляется на третьем уровне ISO через инкапсуляцию в пакеты UDP. Поддерживаются IPv4 и IPv6, инкапсуляция v4 в v6 и v6 в v4. Может работать за NAT и файрволом. Поддерживается смена IP-адреса VPN-сервера без разрыва соединения с автоматической перенастройкой клиента.

После установки в системе появляется новый сетевой интерфейс wg0, который может быть настроен штатными инструментами ipconfig/ip-address и route/ip-route. Специальная утилита wg позволяет установить секретный ключ устройства и указать список ассоциаций для клиентов (его публичный ключ, разрешенный IP).

Для установки понадобится дистрибутив с ядром Linux >4.1. Пакет можно найти в репозиториях основных дистрибутивов Linux. Для Ubuntu 16.04 есть PPA.

$ sudo add-apt-repository ppa:hda-me/wireguard $ sudo apt update $ sudo apt install wireguard-dkms wireguard-tools

Самостоятельная сборка из исходных текстов также несложна. Поднимаем интерфейс, генерируем пару ключей (для примера сохраняем в файлах privatekey и publickey):

$ sudo ip link add dev wg0 type wireguard $ wg genkey | tee privatekey | wg pubkey > publickey

Получаем публичный ключ от клиента и создаем соединение.

$ sudo wg set wg0 listen-port 1234 private-key ~/privatekey peer IKy1eCE9pP1w... allowed-ips 192.168.0.0/24 endpoint 1.2.3.4:9876

Возможно использование PresharedKey (генерируется командой wg genpsk), который добавляет еще один уровень симметричного шифрования к имеющемуся шифрованию с открытым ключом. Для пира можно указать PersistentKeepalive, позволяющий поддерживать соединение из-за NAT и файрвола. Поднимаем интерфейс:

$ sudo ip address add dev wg0 192.168.0.1

Смотрим настройки:

$ sudo wg

Для удобства лучше заранее подготовить конфигурационный файл, содержащий секцию interface и секции peer. Формат можно увидеть, введя wg showconf.

$ sudo wg setconf wg0 myconfig.conf

Подходит как для небольших встроенных устройств вроде смартфонов, так и для магистральных маршрутизаторов. Тесты показали, что WireGuard имеет примерно в четыре раза лучшую пропускную способность и в 3,8 раза более отзывчив по сравнению с OpenVPN (256-bit AES c HMAC-SHA-2–256). Здесь сказывается не только реализация в виде модуля ядра, тогда как OpenVPN работает в userspace. Повышение производительности обусловлено отказом от использования CryptoAPI ядра, работающего достаточно медленно. Вместо него в WireGuard задействованы собственные реализации ChaCha20, Poly1305, BLAKE2s и Curve25519, которые позиционируются как быстрые и безопасные аналоги AES-256-CTR и HMAC, их программная реализация позволяет добиться фиксированного времени выполнения без аппаратной поддержки.

Также WireGuard благодаря меньшим задержкам чуть лучше выглядит в производительности по сравнению с IPsec (256-bit ChaCha20 + Poly1305 и AES-256-GCM-128), но вот настройки гораздо проще.

Пока WireGuard доступен только для Linux, после тестирования предполагается портировать в другие ОС. Код распространяется под лицензией GNU GPLv2.



FreeLAN

FreeLAN - мультиплатформенный VPN-клиент, который распространяется по лицензии GNU GPL и относится к так называемому классу Full Mesh, то есть использует P2P-технологии. Проект относительно молодой, активно начал продвигаться только с 2013 года. Его главное отличие от других проектов - это выбор варианта архитектуры: клиент-серверная (как привычный VPN, клиенты в зависимости от установок могут или не могут обмениваться данными друг с другом, сервер может выступать как релей), P2P (клиенты подключаются друг к другу напрямую) и смешанный (оба варианта). Таким образом, можно гибко настроить VPN практически под любые условия. Например, сервер может понадобиться, чтобы получать доступ во внутреннюю сеть или для контроля соединений, в остальных случаях можно позволить подключаться напрямую.

Основой служит собственный протокол FSCP (FreeLAN Secure Channel Protocol), базирующийся на UDP. Может работать как на уровне Ethernet, устанавливая прямые Ethernet-соединения между узлами, так и на уровне IPv4/IPv6. Предусмотрена авторизация по секретному слову и по X.509-сертификатам, минимальный размер открытого ключа RSA - 1024 бит, рекомендуемый - 2048 бит, в качестве симметричного ключа используется AES-256. Сессии имеют ограниченный срок службы, после окончания которого перезапускаются, сообщения содержат счетчики и контролируют время, что позволяет избежать replay-атак. Для поддержания сеанса отправляются сообщения keep-alive. Заголовок сообщения подписывается частным ключом или HMAC-SHA-256, если используется pre-shared-ключ. В общем, выбор в настройках очень большой.

Поддерживаются Win, Linux, macOS, Raspberry Pi. Пакет есть в репозиториях основных дистрибутивов, поэтому установка сложностей не вызывает. По факту программа представляет собой один бинарник, поэтому создавать сети очень просто.

$ freelan --security.passphrase "secret"

По умолчанию сервер откроет порт UDP/12000 на всех интерфейсах, виртуальный интерфейс получит адрес 9.0.0.1. Используя дополнительные параметры, их можно переопределить, как и указать сертификаты. Подключаемся к серверу с другого узла, присвоим ему другой внутренний IP:

$ freelan --security.passphrase "secret" --fscp.contact 1.2.3.4:12000 --tap_adapter.ipv4_address_prefix_length 9.0.0.2/24

Для удобства все настройки можно поместить в конфигурационный файл. При установке в Ubuntu уже есть готовый шаблон /etc/freelan/freelan.cfg, который будет прочитан при запуске, а поэтому лучше сразу внести в него параметры. Альтернатива FreeLAN - PeerVPN или Cjdns , в которых также используют распределенные технологии.


GoVPN

GoVPN - легкий и простой в настройке демон VPN, предназначенный для создания шифрованных и аутентифицированных каналов связи поверх UDP или TCP. Среди задач проекта - безопасный код, который легко читать и анализировать, безопасность, устойчивость к DPI/цензуре. Фактически GoVPN просто туннелирует кадры Ethernet - ни больше ни меньше. Нет никаких особых инструментов для управления IP, но для этого можно самостоятельно написать скрипты. Использует TAP сетевые интерфейсы, в настройках можно задавать его имя. MTU конфигурируются относительно каждого клиента отдельно. Написан на языке Go и распространяется под лицензией GPLv3. Для согласования ключей используется протокол с двусторонней аутентификацией сторон по парольной фразе (PAKE DH A-EKE: Diffie - Hellman Augmented Encrypted Key Exchange). Клиент для подключения вводит парольную фразу, на серверной стороне хранится верификатор, который нельзя использовать с клиентской стороны, поэтому даже при взломе сервера хакер не может выдавать себя за клиента.

Реализовано три режима работы:

  • обычный (применяется по умолчанию), когда в сеть идут просто зашифрованные пакеты;
  • noise (шумовой), когда пакеты дополняются шумом до постоянной длины;
  • CPR (постоянной скорости) - в дополнение к noise пакеты отправляются строго через определенный промежуток, если нет полезной информации, отправляется шумовой пакет.

В последних двух режимах благодаря генерированию постоянного шумового трафика удается скрывать длину сообщений и сам факт передачи полезной нагрузки. Имеет свойство нулевого неразглашения, при котором невозможна offline-атака по словарю, устойчив к replay-атакам через использование одноразового кода аутентификации сообщения (message authentication code) и синхронизацию времени (опционально). Предусмотрена ротация сессионных ключей и отправка heartbeat для поддержания работы через NAT или файрвол. Для хеширования парольных фраз задействован Balloon (в релизе 6.0). В релизе 5.0 это был Argon2d, еще ранее PBKDF2. Поэтому версии несовместимы.

Есть нешифрованный режим, также обеспечивающий конфиденциальность и аутентичность данных благодаря технологии chaffing and winnowing. Он позволяет обойти ограничения на использование криптографических инструментов в некоторых странах. Вместо шифрования применяются алгоритмы аутентификации и передача множества лишних пакетов (получатель просто отбирает те, которые ему подходят). Но это увеличивает каждый пакет на 4128 байт, поэтому режим требователен и к процессору, и к лишнему передаваемому трафику.

Совместим с IPv4 и IPv6. Возможно подключение через внешний HTTP-прокси, клиент также имеет встроенный режим HTTP-прокси, который можно использовать для доступа к серверу. Для получения статистики о подключенных клиентах в режиме реального времени в JSON-формате используется встроенный HTTP-сервер. Поддерживается работа в GNU/Linux и FreeBSD. Сервер конфигурируется с использованием YAML-файла.

Готовых пакетов проект не предлагает, только исходные тексты, для сборки понадобятся пакеты uml-utilities и golang. Хотя неофициальные порты появились уже в некоторых дистрибутивах. Дистрибутив постоянно развивается, и часть инструкций по настройке уже недействительна.


Заключение

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

строим VPN канал

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

Задача: Настроить VPN канал между двумя филиалами вашей компании. Сеть в первом филиале называется N_B1) и сеть во втором филиале N_B2. Установка OpenVPN в обоих офисах будет на ОС Windows 7 . Приступим к выполнению поставленной задачи.

Network N_B1 содержит:

Компьютер или сервер, где устанавливается сервер OpenVPN, имеет 2 сетевых интерфейса, один как вы можете понять для wan ip адреса, а второй для внутренней сети..
Также на ней установлен proxy сервер который раздает инет в локальную сеть, тем самым являясь для всех машин в локальной сети основным шлюзом (192.168.2.100)
192.168.2.100 смотрит в локальную сеть
192.168.2.3 данный интерфейс смотрит в интернет через маршрутизатор, который имеет статический IP скажем 123.123.123.123. На нем сделан форвардинг или как его еще называют проброс порта 1190 (для примера порт 1190 проброшен на сетевом интерфейсе с ip адресом 192.168.2.3)
Пользователь в сети имеет 192.168.2.100

Network N_B2 содержит:

Компьютер или сервер, где устанавливается клиент OpenVPN, так же имеет 2 сетевых интерфейса.
Также на ней установлен proxy сервер который раздает интернет в локальную сеть, тем самым являясь для всех машин в локальной сети основным шлюзом(172.17.10.10)
172.17.10.10 смотрит в локальную сеть
192.168.2.3 смотрит в мир через маршрутизатор.
Пользователь в сети: 172.17.10.50

Задача: Человек из офиса с сетью N_B1 (192.168.2.100) должен видеть общие ресурсы на компьютере человека из сети N_B2 (172.17.10.50) и в обратном направлении.

Другими словами каждый каждого должен видеть и иметь возможность заходить в гости, вдруг кто фотки новые расшарит посмотреть своему коллеге из другого branche.

Приступаем к настройке

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

Запускаем установку OpenVPN, на 3-м шаге ставим птички OpenSSL Utilites и OpenVPN RSA Certificate Management Scripts.

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

Выбор места установки

Во время установки в ОС будет добавлен virtual network adapter TAP-Win32 Adapter V9, и дополнительный драйвер для него. Данному сетевому интерфейсу OpenVPN как раз и будет выдавать IP адрес и маску виртуальной сети OpenVPN. У нас назначен адрес 10.10.10.1 с маской 255.255.255.0 на сервере N_B1 и 10.10.10.2 с такой же маской на клиенте N_B2.

Переименуем его в "VPN"

В директории "C:\OpenVPN" следует сразу же создать дополнительно папку ssl (здесь мы будем хранить ключи аутентификации) папку ccd (здесь будут находится конфигурация настроек сервера для клиента).

В папке easy-rsa создаем файл vars.bat , данный пакетный файл будет задавать переменные для сеанса генерации сертификатов, в той части что касается организации и расположения заполняем своими данными.

set HOME=C:\OpenVPN\easy-rsa set KEY_CONFIG=openssl-1.0 .0 .cnf set KEY_DIR=C:\OpenVPN\ssl set KEY_SIZE=1024 set KEY_COUNTRY=RU set KEY_PROVINCE=Stavropol set KEY_CITY= Stavropol set KEY_ORG=ServerVPN set KEY_EMAIL=admin@localhost set KEY_CN=test set KEY_NAME=test set KEY_OU=test set PKCS11_MODULE_PATH=test set PKCS11_PIN=1234

Запускаем командную строку от имени администратора.

Переходим по пути C:\OpenVPN\easy-rsa, набрав для перехода в командной строке команду

cd C:\OpenVPN\easy-rsa

Запускаем vars.bat :

Теперь запускаем build-ca.bat . Так как вся информация о сервере у нас уже заполнена, все оставляем без изменений:

после этого у нас в папке ssl появится два файла ca.crt и ca.key .

Запускаем build-dh.bat :

в результате у нас в папке ssl появится файл dh1024.pem.

Создаем серверный ключ, для этого вводим команду:

Build-key-server.bat ServerVPN

где "ServerVPN " это название нащего VPN сервера, как в моем случае,

Указываем параметр "commonname" - пишем имя нашего VPN сервера. Все остальные параметры оставляем по умолчанию, на все вопросы отвечаем yes

в результате у нас в папке ssl появятся файлы ServerVPN.crt , ServerVPN.csr , ServerVPN.key.

Приступаем к формированию клиентских ключей.

Выполняем команду:

Build-key.bat UserVPN_1

где "UserVPN_1 " имя нашего клиента.

Важно! Указываем параметр "commonname" - пишем имя нашего VPN клиента(UserVPN_1). Все остальные параметры оставляем по умолчанию, на все вопросы отвечаем yes

В результате у нас в папке ssl появятся файлы UserVPN_1.crt , UserVPN_1.csr , UserVPN_1.key .

Если у вас несколько клиентов, то повторяем формирование ключей; не забывая каждому клиенту присваивать свои имена

build-key.bat UserVPN_2 build-key.bat UserVPN_3

Генерация ключа tls-auth (ta.key) для аутентификации пакетов, для этого переходим в корневую папку OpenVPN:

cd ..

и выполняем команду:

Genkey --secret ssl/ta.key

в результате в папке ssl плучим файл ta.key .

Приступаем к созданию конфига сервера. В папке config создаем файл OpenVPN.ovpn :

#Порт для работы OpenVPN port 1190 ca C:\\OpenVPN\\ssl\\ca.crt #Сертификат сервера cert C:\\OpenVPN\\ssl\\ServerVPN.crt #ключ сервера key C:\\OpenVPN\\ssl\\ServerVPN.key # Защита от DOS атак (для сервера, после пути к ключу, ставим 0 а для клиента 1) tls-server tls-auth C:\\OpenVPN\\keys \\ta.key 0 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 #Диапазон IP адресов для VPN сети server 10.10 .10.0 255.255 .255.0 cipher AES-256 -CBC #Логи status C:\\OpenVPN\\log \\openvpn-status.log log log log #Каталог, в которой лежит файл с названием нашего клиента, в моем случае UserVPN_1 без расширения, и в нем записать команды, которые будут выполнятся на клиенте: client-config-dir "C:\\OpenVPN\\ccd" verb 3 mute 20 # Максимальное количество одновременно подключенных клиенты мы хотим разрешить max-clients 2 #Время жизни неактивной сессии keepalive 10 120 #Разрешаем клиентам видеть друг друга client-to-client #Включаем сжатие #Маршруты добавляются через.exe если без него, то не у всех прописываются маршруты route-method exe #Задержка перед добавлением маршрута route-delay 5 #Команда которая сообщает клиентам что за сервером локальная сеть с адресами 192.168.0.0 255.255.255.0 push "route 192.168.0.0 255.255.255.0" #Прописывает маршрут на сервере чтобы видеть сеть за клиентом route 172.17 .10.0 255.255 .255.0 10.10 .10.2 #Шлюз route-gateway 10.10 .10.1 # каждому клиенту выдается по 1 адресу, без виртуальных портов маршрутизатора topology subnet

В папке ccd создаем файл без расширения и называем его точно, как клиента UserVPN_1 , открываем его блокнотом и пишем следующее:

#Присваиваем клиенту постоянный IP 10.10.10.2 ifconfig-push 10.10 .10.2 255.255 .255.0 #сообщаем серверу что за клиентом сеть 172.17.10.0 iroute 172.17 .10.0 255.255 .255.0 #если раскоментировать следующую строку, то клиент будет отключен (на случай если нужно этого клиента отключить от сервера, а остальные будут работать) # disable

Создаем конфиг клиента.

#Говорим, чтобы клиент забирал информацию о маршрутизации с сервера (push опции) client #Порт для работы OpenVPN port 1190 #Указываем по какому протоколу работает OpenVPN proto udp #Тип интерфейса dev tun #Имя интерфейса dev-node "VPN" # Адрес сервера, к которому подключаемся remote 444.333 .222.111 1190 #защита remote-cert-tls server #Сертификат для шифрования подключения dh C:\\OpenVPN\\ssl\\dh1024.pem #Сертификат центра сертификации ca C:\\OpenVPN\\ssl\\ca.crt #Сертификат сервера cert C:\\OpenVPN\\ssl\\ UserVPN_1.crt #ключ key C:\\OpenVPN\\ssl\\ UserVPN_1.key # Защита от DOS атак tls-auth C:\\OpenVPN\\keys \\ta.key 1 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 ping-restart 60 ping 10 #Включаем сжатие comp-lzo persist-key persist-tun # Выбор криптографического шифра cIPher AES-256 -CBC #Логи status C:\\OpenVPN\\log \\openvpn-status.log log log log #Уровень отладочной информации verb 3 #Количество повторяющихся сообщений mute 20

Устанавливаем на клиенте OpenVPN, предаём ему ca.crt , UserVPN_1.crt , UserVPN_1.key , ta.key .

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

После всего этого запускаем наш сервер и клиент.

Если все правильно сделали наш сервер получит IP 10.10.10.1 и подключится к нему клиент и получит IP 10.10.10.2 . И так подключение у нас состоялось теперь сервер и клиент пингуют друг друга по IP нашей VPN сети, то есть 10.10.10.1 и 10.10.10.2.

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

Hужно зайти в свойства службы, настроить ее на автоматическое включение и запустить.

После этого мы сможем пинговать внутренние IP сервера и клиента (172.17.10.10 клиент и 192.168.2.100 сервер).

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

При этом все сети работают в штатном режиме. Лично меня этот крест раздражает и иногда сбивает с толку.

Есть второй способ как сделать видимыми внутренние IP сетей наших сервера и клиента.

Для этого заходим в реестр, открываем ветку реестра:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TcpIP\Parameters

Находим параметр и меняем значение: IPEnableRouter типа REG_DWORD значение 1 .

Не забываем перезагрузить машину, чтобы настройки вступили в силу!

Это нужно проделать и на сервере, и на клиенте.

Итак мы пингуем наши сети по внутренним IP, а так как у нас и сервер и клиент для своих сетей являются шлюзами, то и машины из сети 1 могут видеть машины из сети 2 и наоборот. то есть Пользователь N_B1 (192.168.2.100) может видеть расшаренные папки Пользователя N_B2 (172.17.10.50) и наоборот.

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

Пример для N_B1:

route -p 172.17.10.0 255.255.255.0 192.168.2.100 (машина где установлен OpenVPN)

Пример для N_B2:

route -p 192.168.0.0 255.255.255.0 172.17.10.10 (машина где установлен OpenVPN)

в моем случае этого не понадобилось.

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

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

Дополнительная защита

Как известно в OpenVPN есть возможность аутентификации по сертификатам, как описано выше, а так же по логину и паролю, но можно еще и объединить их вместе. Насколько мне известно только в Linux есть возможность штатными средствами настроить аутентификацию по логину и паролю, но в Windows это тоже можно решить. Для этого в папке config создаем файл auth.vbs и пишем в него следующее

"VBscript auth.vbs для аутентификации в OpenVPN - auth-user-pass-verify auth.vbs via-file "(c) 2007 vinni http://forum.ixbt.com/users.cgi?id=info:vinni "Support: http://forum.ixbt.com/topic.cgi?id=14:49976 " в скрипте производится сравнение имени пользователя без учёта регистра. " Если нужно иначе - уберите UCase(...) в 2 или 4 местах On Error Resume Next " открываем файл, имя которого передано OpenVPN-ом в скрипт через параметр Set fso = CreateObject("scripting.filesystemobject" ) Set CurrentUserPasswordFile = fso.OpenTextFile(WScript.Arguments(0 ),1 ) "1 = for reading if Err.Number<>0 Then WScript.Quit(1) " читаем из этого файла 2 строки - имя и пароль, которые ввёл пользователь "на том конце" if CurrentUserPasswordFile.AtEndOfStream then WScript.Quit(1 ) UserName=CurrentUserPasswordFile.ReadLine if CurrentUserPasswordFile.AtEndOfStream then WScript.Quit(1 ) Password=CurrentUserPasswordFile.ReadLine CurrentUserPasswordFile.Close " открываем переменную окружения common_name (это CN предъявленного клиентом сертификата) " и сравниваем её с введенным именем пользователя. " если это сравнение не нужно, то следующие 2 строки удалить или закомменировать CurrentCommonName = CreateObject("Wscript.Shell").ExpandEnvironmentStrings("%common_name%") if UCase(CurrentCommonName) <> UCase(UserName) then WScript.Quit(1) " открываем наш файл с базой логинов и паролей " по умолчанию это Users.pw в текущем каталоге Set UserPasswordFileBase = fso.OpenTextFile("Users.pw",1) " 1 = for reading if Err.Number <>0 Then WScript.Quit(1 ) " читаем в цикле пары строк, пропуская пустые МЕЖДУ ЭТИМИ ПАРАМИ, " и сравниваем их с тем, что ввёл пользователь. Do while not (UserPasswordFileBase.AtEndOfStream) NextUserName=UserPasswordFileBase.ReadLine if Err.Number <>0 Then WScript.Quit(1 ) if NextUserName<>"" then " если имя пользователя надо сравнивать с учётом регистра, то удалите здесь UCase(...) if UCase(UserName)=UCase(NextUserName) then if Password=UserPasswordFileBase.ReadLine then " если имя и пароль совпали с парой из базы, то завершаем скрипт с результатом 0 " так нужно для OpenVPN" a, это признак успешной аутентификации UserPasswordFileBase.Close WScript.Quit(0 ) end if else UserPasswordFileBase.ReadLine end if end if Loop " если поиск завершился безуспешно, то завершаем скрипт с результатом 1 " так нужно для OpenVPN"a, это признак НЕ успешной аутентификации UserPasswordFileBase.Close WScript.Quit(1)

Так же в папке config содаем файл Users.pw туда пишете логин и пароль нашего клиента

UserVPN_1 123456

Если несколько клиентов то:

UserVPN_1 123456 UserVPN_2 365214 UserVPN_3 14578

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

У меня настроено что имя пользователь(логин) соответствует имени клиента в сертификате, то естьUserVPN_1 . но можно задать и другое имя отличное от имени в сертификате, для этого нужно смотреть настройки в auth.vbs .

" открываем переменную окружения common_name (это CN предъявленного клиентом сертификата) " и сравниваем её с введенным именем пользователя. " если это сравнение не нужно, то следующие 2 строки удалить или закомменировать CurrentCommonName = CreateObject("WscrIPt.Shell" ).ExpandEnvironmentStrings("%common_name%" ) if UCase(CurrentCommonName) <> UCase(UserName) then WScrIPt.Quit(1 ) WScrIPt.Echo "Debug: CurrentCommonName= " & CurrentCommonName

А для того чтобы аутентификация работала и по сертификату, и по логину с паролем, но при этом не выплывало окно авторизации пользователя, так как это будет задерживать подключение клиента к серверу если, например, у вас включена автоматическая загрузка службы OpenVPN Service (как настроено у меня) или вы просто не хотите каждый раз вводить логин и пароль, в этом случае на клиенте в папке ssl создаем файл pass.txt и пишем в него наш логин и пароль вот так:

UserVPN_1 123456

а в конфиге клиента меняем строку auth-user-pass на auth-user-pass C:\\OpenVPN\\ssl\\pass.txt .

Теперь я включаю машину где установлен OpenVPN -Server, запускается служба и сервер VPN автоматически поднимается. Клиент запускает машину и у него также проходит автоматическое подключение к моему серверу. Теперь можно заходить в общие папки или по RDP работать, например, в 1С, установленной в другой организации.

VPN (Virtual Private Network) – это виртуальная частная сеть.

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

Как это работает?

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

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

Почему не анонимайзер или прокси?

Возникает вопрос: а почему бы просто не использовать какой-нибудь анонимайзер или прокси-сервер в сети, ведь они тоже подменяют IP-адрес? Да все очень просто – ни один из вышеупомянутых сервисов не дает защиты, вы по-прежнему остаетесь «видны» для злоумышленников, а значит и все те данные, которыми вы обмениваетесь в Интернете. И, вдобавок работа с прокси-серверами требует от вас определенного умения выставлять точные настройки. VPN действует по следующему принципу: «Подключился и работай», никаких дополнительных настроек он не требует. Весь процесс подключения занимает пару минут и очень прост.

О бесплатных VPN

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

С чего начать?

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