Обход цензуры в сети и защита приватности с помощью VPN

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

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


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

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

Проблему выбора и настройки VPN — как готовых, так и на основе VPS — мы и рассмотрим.

ПОДГОТОВКА И ОБЗОР ГОТОВЫХ VPN-СЕРВИСОВ

Сперва рассмотрим готовые VPN-сервисы. Речь, разумеется, не идет о программах, которые работают на основе каких-то своих протоколов. Мы говорим о стандартных средствах, поддерживаемых Linux. К их числу относятся следующие протоколы и приложения:
• PPTP — старый (даже можно сказать, древний) протокол, разработанный в Microsoft и применяемый аж с 1996 года. На данный момент его использование не рекомендуется из-за уязвимостей;
• IPSec — семейство протоколов для VPN. Зачастую применяется вместе с L2TP. На мой взгляд, данное семейство избыточно сложно;
• OpenVPN — на сегодняшний день самая популярная реализация VPN.

Есть еще менее распространенные варианты создания VPN-соединения — например, можно сделать шифрованный тоннель, используя PPP поверх OpenSSH. Но эти методы мы в статье затрагивать не будем.

В дальнейшем нам понадобится OpenVPN, так что нелишним будет установить данный пакет на клиентской стороне, а заодно и плагин для Network Manager (предполагается, что используется какая-либо из последних версий Ubuntu):

$ sudo apt-get install openvpn
network-manager-openvpn

Перейдем наконец к VPN-сервисам.

vpngate.net

Существуют ресурсы, где можно найти список общедоступных VPN-провайдеров. Например, vpngate.net — японский ресурс, созданный в качестве исследовательского проекта Цукубского университета. Присоединиться к проекту может любой желающий, что, таким образом, создает некий аналог сети Tor.

Для того чтобы подключиться к VPN-серверу из данного списка, нужно выбрать его на свой вкус (понятно, лучше всего подходят машины с малым временем пинга и широкой полосой пропускания), затем выбрать тип соединения (поскольку мы рассматриваем OpenVPN, то и подключаться будем к OpenVPN) и, наконец, выбрать файл конфигурации. Как правило, их на каждый сервер четыре штуки — hostname/TCP, hostname/UDP, IP-адрес/TCP и IP-адрес/UDP.

[ad name=»Responbl»]

После выбора и загрузки конфига оттуда нужно вытащить сертификат — для этого открываем скачанный файл и копируем все, что находится между <ca></ca>, в отдельный файл с расширением crt, сохраняя его в UNIX-формате строк. Затем (в случае использования Network Manager) добавляем новое соединение и в типе создаваемого соединения указываем «Импортировать сохраненные параметры VPN», после чего выбираем файл, который мы скачали. Указываем тип аутентификации по паролю, вбиваем имя пользователя и пароль (на момент написания статьи это была пара vpn/vpn) и выбираем ранее сохраненный сертификат ЦС. Все, после сохранения можно подключаться.

В командной же строке все еще проще — для подключения достаточно набрать следующее:

% sudo openvpn --config vpngate_vpn417604226.opengw.net_udp_1512.ovpn

Вместо vpngate_vpn417604226.opengw.net_udp_1512.ovpn, естественно, нужно поставить свое имя файла. Кроме того, стоит обратить внимание, что в случае использования этой команды должен быть указан публичный DNS-сервер — иначе доменные имена попросту не будут резолвиться.

А вот с конфиденциальностью у данного проекта не очень, о чем нас честно предупреждают на самом сайте vpngate. Логи пакетов (точнее, заголовков) хранятся в течение двух недель. Логи же соединений (кто когда с кем) и того больше — три и более месяца. Также они реагируют на абузы.
vpnbook.com

Этот сервис предоставляет VPN в Румынии и Германии. Сам веб-сервер тоже находится в Румынии, однако в контактах указана Швейцария. Ресурс общеизвестный, так что вполне вероятно, что его уже везде перебанили. Кроме того, среди доступных серверов имеются еще и серверы США и Канады, которые заточены под веб-серфинг и для P2P не годятся.

Настройка с использованием Network Manager практически идентична предыдущему случаю — за исключением того, что пароли там меняются раз в две недели, а DNS нужно прописывать ручками. Для этого на вкладке «Параметры IPv4» в способе настройки ставим «Автоматически (VPN, только адрес)», а в DNS-серверах прописываем какой-либо публичный.

О самом сервисе можно сказать, что торрент-файлы фильтруются, — даже учитывая слова на его страничке о том, что P2P-трафик запрещен только на американских серверах. Также непонятна фактическая юрисдикция данного сервиса — доменное имя зарегистрировано через посредника.

frootvpn.com

FrootVPN усиленно рекламируется на The Pirate Bay. Предоставляет шведские адреса, меняющиеся при каждом подключении. Скорость приличная. При регистрации нужно указать email, логин и пароль, причем логин и пароль будут использоваться и для подключения. Предоставляется как PPTP/L2TP, так и OpenVPN.

К сожалению, при использовании Network Manager некоторые маршруты по неизвестным причинам не прописываются в таблице маршрутизации. Поэтому при использовании данного VPN-сервиса нужно запускать OpenVPN из командной строки.

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

seed4.me

Для разнообразия расскажу и о платном PPTP-сервисе seed4.me. Он поддерживает соединение от IP, находящихся в разных странах, в том числе нидерландских, британских, гонконгских… Регистрация по приглашениям.

Вкратце опишу, как настраивать в Ubuntu c использованием Network Manager. Убедимся, что установлен соответствующий пакет:

$ sudo apt-get install
network-manager-pptp

Затем в самом Network Manager создаем PPTP-соединение, в качестве шлюза прописываем предпочтительный по стране, имя пользователя / пароль — твои email с паролем, которые ты использовал при регистрации. Не забываем поставить чекбокс «Использовать шифрование MPPE» в дополнительных параметрах и выбрать 128-битное шифрование.

Сам сервис, как уже было сказано, платный, но пробный период — неделя — предоставляется бесплатно. При каждом подключении адрес выделяется динамически. Сервис честно предупреждает, что может в случае чего собирать информацию о пользователях. К сожалению, с некоторых IP-адресов торрент (Ubuntu 14.10) качаться не желал — но, полагаю, это вина местного провайдера, предоставляющего IP для VPN, не самого сервиса. А вот полосу пропускания сервис режет — поскольку почти на всех протестированных ранее VPN данный торрент качался со скоростью более 1 Мбит/с. Здесь же выше 800 Кбит/с скорость никогда не поднималась.

VPN СВОИМИ РУКАМИ. ПОДГОТОВКА

Но что, если ты не доверяешь VPN-сервисам? В этом случае есть один путь — поднять свой собственный VPN на основе VPS. Преимущество этого способа хотя бы в том, что между тобой и дата-центром меньше посредников. А недостаток… возможный штраф за нарушение законов страны юрисдикции VPS.
Давай посмотрим, какие у нас требования к VPS. Во-первых, должна быть поддержка TUN/TAP — и если в гипервизоре Xen или KVM она имеет место, то в OpenVZ ее зачастую отключают. Во-вторых, он должен недорого стоить. В-третьих, он должен быть более-менее стабилен. Кроме того, нужно внимательно смотреть правила использования — в противном случае твой аккаунт попросту заблокируют (если не чего хуже).

Далее я опишу несколько VPS, которые более-менее соответствуют заданным параметрам.

openhosting.com

Это на удивление неплохой облачный VPS, цена на который начинается от 9 долларов за KVM виртуальную машину (конфигурация которой вполне достаточна для запуска OpenVPN), дается пять дней триала. Регистрация триала требует указания номера карточки VISA, при этом снимается один цент, но его сразу же возвращают обратно. После регистрации нужно создать новую виртуальную машину (я создал с образом CentOS 6) и привязать к ней статический IP-адрес. Следом же нужно ее запустить и подсоединиться к ней через веб-интерфейс.

По умолчанию пароль для root при входе с веб-интерфейса (выступающего в роли локальной консоли) отсутствует. Его можно поставить стандартным способом. Для установки же OpenVPN нужно сперва поставить репозиторий EPEL:

# yum install -y wget
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/
epel-release-6-8.noarch.rpm
# rpm -Uvh epel*.rpm

Затем нужно изменить файл репозитория — по неизвестным причинам соединение по HTTPS не устанавливается.

# sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo

Наконец, ставим пакет OpenVPN:

# yum install -y openvpn easy-rsa

Настраиваем сам OpenVPN. В интернете много материала по настройке, поэтому подробно описывать смысла не имеет. Вкратце же — копируем каталог со скриптами генерации сертификатов, настраиваем параметры, генерируем их, затем настраиваем параметры OpenVPN-сервера (можно найти на врезке), разрешаем IP-форвардинг, устанавливаем правило iptables для NAT и… все. Можно настраивать клиент (лучше использовать командную строку). Единственное замечание — лично у меня на сервере было спешащее время, из-за чего были небольшие трудности с сертификатом.

[ad name=»Responbl»]
Про сам VPS-хостинг можно сказать, что он крайне стабилен (есть даже SLA, что и неудивительно, поскольку это крупная контора). Техподдержка реагирует практически моментально. Полоса пропускания обеспечивает минимум 1 Мбит/с по шифрованному каналу. Правила использования довольно стандартны (DMCA, оговаривание доступа к данным на хостинге…). На использование VPN, равно как и на использование P2P, ограничений не накладывается.

КОНФИГУРАЦИОННЫЕ ФАЙЛЫ OPENVPN

Конфиг для серверной части:

local 0.0.0.0 # Адрес, который доступен из интернета, —по сути, это единственный параметр, который нужно менять
port 1234
proto udp
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca /etc/openvpn/.key/ca.crt
cert /etc/openvpn/.key/server.crt
key /etc/openvpn/.key/server.key
dh /etc/openvpn/.key/dh2048.pem
client-cert-not-required
auth-user-pass-verify /etc/openvpn/verify.sh via-file
# Производим аутентификацию с помощью скрипта — скрипт можешь написать сам
username-as-common-name
script-security 2
tmp-dir /tmp
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 4.2.2.1"
keepalive 5 30
comp-lzo
persist-key
persist-tun
status server-tcp.log
verb 3
user openvpn
group openvpn

Конфиг для клиентской части:

client
dev tun
proto udp
remote 0.0.0.0 1234 # Указываем адрес и порт сервера
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
ca ca.crt
auth-user-pass
comp-lzo
verb 3

GleSYS

Шведская фирма, предоставляющая VPS (как Xen, так и OpenVZ) в Нью-Йорке, Амстердаме, Фалькенберге и Стокгольме. Стоимость начинается от семи-восьми евро — что по современным меркам довольно дорого. На OpenVZ поддерживаются Debian, CentOS и Ubuntu.

После регистрации и оплаты мы создаем сервер с желаемым местоположением, выбирая самые минимальные настройки (их вполне достаточно), затем заходим через HTML5-VNC, устанавливаем пакеты OpenVPN и SSH — на Debian для этого нужно набрать команду

# apt-get install openvpn openssh-server

И, зайдя по SSH, настраиваем OpenVPN. Проблем быть не должно — разве что в дебиановском пакете для OpenVPN не создается UID/GID, и эти опции в конфиге мы отключаем.

Как уже было сказано, VPS довольно дорогой — однако, поскольку он находится в Швеции, правила его использования в некоторых аспектах либеральнее, чем в США. В частности, DMCA на Швецию пока не распространяется. Скорость же достаточно стабильно держится на отметке 1 Мбит/с.+

ЗАКЛЮЧЕНИЕ

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

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

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

Если же ты покупаешь VPS, чтобы поднять свой VPN, — ты избавляешься от одного из посредников, но приобретаешь головную боль юриста, поскольку тебе нужно учитывать законы страны, в дата-центре которой ты его купил. Кроме того, как правило, VPS стоит дороже, чем покупка VPN у посредника. Дешевые же VPS имеют свойство падать из-за перегрузок, и работать по VPN становится сомнительным удовольствием.

Подводя итоги: для анонимизации VPN имеет смысл применять только в сочетании с другими средствами. А вот для обычного серфинга по запрещенным в России сайтам или, к примеру, в зарубежной поездке, где есть открытый Wi-Fi, VPN подходит идеально.

Click to rate this post!
[Total: 14 Average: 4.1]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

1 comments On Обход цензуры в сети и защита приватности с помощью VPN

  • В принципе на VPS сервер оптимальнее всего понять и DNS сервер(достаточно того же кеширующего unbound), чтобы можно не сообщать о себе лишнюю информацию через провайдера или публичным днс, которые обычно принадлежат рекламным компаниям отслеживающих действия пользователя. VPN казалось бы позволяет сменить IP адрес на другой, но только если забыть про цифровой отпечаток браузера… Если через VPN зайти на закрытый ресурс, но к которому имеют доступ спецслужбы, то они с очень высокой степенью вероятности могут однозначно идентифицировать пользователей. Тем, более если пользователь оставляет на таких ресурсах какие-то сообщения, которые могут дать этим же спецслужбам дополнительную информацию о пользователе. Понятно, что дорогу осилит идущий, но как-то уж сложно это всё получается. При склонности текущего режима к тоталитарности, доступности зарубежным VPN недолго осталось. «ведь от этого выиграют российские интернет-ресурсы, если закрыть все зарубежные» 🙁

Leave a reply:

Your email address will not be published.