Хотим свободы и анонимности в сети или еще раз про свой VPN сервер для чайников (часть 3)

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


Часть1


Часть2


Настало время подключить к VPN серверу наш смартфон (или любое другое устройство).


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


Создавать файл мы будем на компьютере. Можете создать его рядом с уже имеющимся файлом (в нашем примере это test_pc.ovpn), заодно сразу проверим, что он работает.


Итак создаем файл с произвольным названием и расширением .ovpn. Я сделаю файл test_smart.ovpn

Содержимое файла

client
dev tun
proto udp
remote 123.123.123.123 443
resolv-retry infinite
nobind
block-outside-dns
persist-key
persist-tun
mute-replay-warnings
remote-cert-eku "TLS Web Server Authentication"
remote-cert-tls server
tls-client
auth SHA512
key-direction 1
<tls-auth>
</tls-auth>
<ca>
</ca>


<cert>
</cert>
<key>
</key>
cipher AES-256-CBC
comp-lzo
verb 3

Здесь вместо 123.123.123.123 вставьте IP-адрес вашего VPN-сервера.

Обратите внимание, что у нас ушли строчки с указанием имени файлов ключей, но добавились секции вида <ca> </ca>. Вот в эти секции мы и будем добавлять ключи. Для этого в WinCSP, в левой панели найдем поочередно необходимые файлы (ca.crt, ta.key, test_smart.key, test_smart.crt) и откроем их. В каждом файле будет запись вида (на примере ca.crt):

-----BEGIN CERTIFICATE-----

MIIFNTCCAx2gAwIBAgIJAJaBlANf4UOFMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV

BAMTC0Vhc3ktUlNBIENBMB4XDTE3MDYwMTA5NTA0MVoXDTI3MDUzMDA5NTA0MVow

FjEUMBIGA1UEAxMLRWFzeS1SU0EgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw

SirEaEdDwXsnV1o/xV7N3F6C8Hb5qpg8BKAWGrK9ABPnByABd2kRxxDbnWl42qjF

TlzUPR90pyv0+2h9V1mGD6t8lbcJO0kJEHgqG7L95QYGPq8WEaSju9EMsHL3Jsc6

2VSVrfA+4SJwUmY7R53nLaRVY3m9qy2erVWDjnylNk17TGSs5MfZDf1ZOq6ec78M

USBEo7W/Pa564jtwm8xqusI/jleFKZTXbJdq33Fmakn5caxEDiEBPUxb1c/VgAP/

lSAot8w57BaWB9jSxDCMxv9YOOLpMvMX45OMOEwwbztt9dY3PAiTZVWtijXziiUd

-----END CERTIFICATE-----

Мы должны скопировать эту запись и вставить её в соответствующую секцию нашего ovpn файла. Получится как-то так:

<tls-auth>
-----BEGIN OpenVPN Static key V1-----
0b9b161b4494f29b1684a7cf3acf5ef8
38b5d9ae30c000f28d6fe0185058e6a6
170fe69d48d2705441ac467b7896aa5e
9298c21d680c67c7b8bfb2adf2c8250e
886954d66b8037be62269eeb0f554b9d
5285ed47136703030d5e5b8c7b712212
-----END OpenVPN Static key V1-----
</tls-auth>


<ca>
-----BEGIN CERTIFICATE-----
MIIFNTCCAx2gAwIBAgIJAJaBlANf4UOFMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV
BAMTC0Vhc3ktUlNBIENBMB4XDTE3MDYwMTA5NTA0MVoXDTI3MDUzMDA5NTA0MVow
FjEUMBIGA1UEAxMLRWFzeS1SU0EgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
SirEaEdDwXsnV1o/xV7N3F6C8Hb5qpg8BKAWGrK9ABPnByABd2kRxxDbnWl42qjF
TlzUPR90pyv0+2h9V1mGD6t8lbcJO0kJEHgqG7L95QYGPq8WEaSju9EMsHL3Jsc6
2VSVrfA+4SJwUmY7R53nLaRVY3m9qy2erVWDjnylNk17TGSs5MfZDf1ZOq6ec78M
USBEo7W/Pa564jtwm8xqusI/jleFKZTXbJdq33Fmakn5caxEDiEBPUxb1c/VgAP/
lSAot8w57BaWB9jSxDCMxv9YOOLpMvMX45OMOEwwbztt9dY3PAiTZVWtijXziiUd
-----END CERTIFICATE-----
</ca>


<cert>
-----BEGIN CERTIFICATE-----
MIIFPjCCAyagAwIBAgIBAzANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtFYXN5
LVJTQSBDQTAeFw0xNzA2MDExMTI0MjlaFw0yNzA1MzAxMTI0MjlaMBUxEzARBgNV
BAMUCnRlc3Rfc21hcnQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCs
/ULqWUKxtzlgkkWviE2WatSxOOqhL4zNoTbYgyyuzrsRVIrfWX8GdtjXlEQ2L7zx
tMzVTUuta4tj+9/MoZjre68ncyaNzaxXSeiR/CVczT4juz9a9Iws1Zwx9XFev+wQ
RVE=
-----END CERTIFICATE-----
</cert><key>
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQCs/ULqWUKxtzlg
kkWviE2WatSxOOqhL4zNoTbYgyyuzrsRVIrfWX8GdtjXlEQ2L7zxtMzVTUuta4tj
+9/MoZjre68ncyaNzaxXSeiR/CVczT4juz9a9Iws1Zwx9XFev+wQyxLWlQxGrj1+
TcJ4zLUeCfiRqtiSxi/gJBLpMjJVdQWOarsbD1f7vGMzekLJGmCPxdnm1HCOOYi+
DzvvhwDG9NL0+8OQSvgur417mQ1UZS5TLtHUgxkkDMybtIT/UR23pGRnWSSuRqvD
/HUmGQwEHk2AjW6nV+dmBfeeP0ZMH1iaii7Iv9Tt2404QW8FStp2aNHexup1gQeP
P2ZvHMdf6MGsd1QT8tFuHKsCsmi/wvTc8BgEiiPbwEHnjuqtElsW4Av6uuKLRUKq
-----END PRIVATE KEY-----
</key>

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

Обратите внимание на строчку

key-direction 1

Она обязательно должна быть перед секцией <tls-auth> </tls-auth>

Сохраним файл ovpn и поместим его в папку C:\Program Files\OpenVPN\config\

Хотим свободы и анонимности в сети или еще раз про свой VPN сервер для чайников (часть 3) Инструкция, VPN, Openvpn, VPS, Анонимность, Обход ограничений, Длиннопост

Теперь, если щелкнуть по значку OpenVPN в трее, увидим еще одну строчку

Хотим свободы и анонимности в сети или еще раз про свой VPN сервер для чайников (часть 3) Инструкция, VPN, Openvpn, VPS, Анонимность, Обход ограничений, Длиннопост

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

После проверки можете убрать файл из папки C:\Program Files\OpenVPN\config\


Теперь на своем устройстве устанавливаем клиент OpenVPN Connect. Они есть и для Android (https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=ru) и для IOS (https://itunes.apple.com/ru/app/openvpn-connect/id590379981?mt=8). И у той, и у той функционал убог, но у обоих есть функция Import profile, а большего нам и не нужно.

Чтобы передать файл конфигурации на устройство, отправим его сами себе на тот e-mail, к которому у вас есть доступ с этого устройства. Открываем на устройстве это письмо и сохраняем файл .ovpn в любое удобное место. Главное не забыть – куда.


Можно передать конечно и другим способом. Например, через любой облачный ресурс (Google Drive, iTunes, Hubic, Yandex Disk и пр.). Тут как вам удобнее.

На андроиде:

Можно попробовать просто открыть файл .ovpn. В большинстве случаев сразу откроется приложение OpenVPN Connect. Появится запрос, нужно ли установить файл .ovpn. Подтвердите данное действие.


Если так не получилось, то запускаем OpenVPN Connect

Хотим свободы и анонимности в сети или еще раз про свой VPN сервер для чайников (часть 3) Инструкция, VPN, Openvpn, VPS, Анонимность, Обход ограничений, Длиннопост

Выбираем Import -> Import Profile from SD card

Находим наш .ovpn файл, становимся на него и жмём SELECT

Хотим свободы и анонимности в сети или еще раз про свой VPN сервер для чайников (часть 3) Инструкция, VPN, Openvpn, VPS, Анонимность, Обход ограничений, Длиннопост

Ну и жмем Connect

Хотим свободы и анонимности в сети или еще раз про свой VPN сервер для чайников (часть 3) Инструкция, VPN, Openvpn, VPS, Анонимность, Обход ограничений, Длиннопост
Хотим свободы и анонимности в сети или еще раз про свой VPN сервер для чайников (часть 3) Инструкция, VPN, Openvpn, VPS, Анонимность, Обход ограничений, Длиннопост

В строке статуса, вверху, появится ключик. Всё, ваше устройство теперь подключено к интернету через VPN-сервер.

Хотим свободы и анонимности в сети или еще раз про свой VPN сервер для чайников (часть 3) Инструкция, VPN, Openvpn, VPS, Анонимность, Обход ограничений, Длиннопост

Для iPhone / iPad


Всё очень похоже.


Также передаем на устройство файл .ovpn любым удобным способом (см. выше).


При попытке открыть файл .ovpn на смартфоне / планшете iOS сразу откроется приложение OpenVPN Connect. Появится запрос, нужно ли установить файл .ovpn. Нажмите кнопку “+” и установите файл .ovpn.


Теперь запустите OpenVPN Connect, выберите импортированный файл и нажмите по переключателю “Off”. Появится статус «Connected».


Вверху, в строке состояния появится пиктограмма VPN.


Теперь можно (и нужно) удалить файл .ovpn из того места, куда вы его сохраняли при переносе на устройство.

ВАЖНО:

После импортирования файла .ovpn в OpenVPN Connect файл записан в хранилище программы. Теперь можно (и нужно) удалить файл .ovpn из того места, куда вы его сохраняли при переносе на устройство. И письмо с этим файлом, если переносили через почту. И из облака (если переносили через облако). И из корзины. Отовсюду!

Домашнее задание для подписчиков:

1. нагенерируйте сертификов для всех своих гаджетов;

2. сделайте .ovpn файлы и подключите гаджеты к VPN серверу.

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

3
Автор поста оценил этот комментарий
ммм а кому ты вообще нужен?
раскрыть ветку (1)
19
Автор поста оценил этот комментарий

Жене, детям, родителям... Именно поэтому мой трафик зашифрован. А что поделать? Например, я часто своими высказывания в интернете вторгаюсь в чувства верующих. А ведь это ужасное преступление, которому посвящена отдельная статься в уголовном кодексе!

А бывает, публикую факты преступлений чиновников! Им я очень нужен.

А еще я нужен рекламным сетям (об этом в следующих частях статьи), а они мне не нужны.

А еще я нужен роскомнадзору, который за меня решает, какие сайты я буду смотреть. А я сам хочу решать.

Глупый вопрос, уж простите.

показать ответы
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
10
Автор поста оценил этот комментарий

Не исключён такой сценарий. Увы. Но на данный момент технически это сложно и дорого, потому сценарий маловероятен. Даже у Китая это не получилось полностью, а там и денег по-больше и менталитет другой.

У нас "великий российский файрволл" умрет на этапе распилов.

2
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Почитайте начало статьи ( т.е. первую часть). Я описал свой взгляд на проблему.
показать ответы
Автор поста оценил этот комментарий

Э-э, то есть вы и сами ни писать, ни читать это не можете? Просто это ведь не только в криптографии применяется, как я понимаю - я такое в паре игр видел, там чтобы изменять какие-то параметры нужно было куски подобной тарабарщины копировать и вставлять.

P.s. А почему текстовый редактор просто не пишет нули и единицы?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
я такое в паре игр видел

Куски тарабарщины - видимо это были куски скомпилированного кода. Т.е. программы в виде машинных кодов. Или куски базы данных.


А почему текстовый редактор просто не пишет нули и единицы

Потому что он редактор текста, а не нулей и единиц. Он разбивает биты на байты, а байты, по таблице кодировки, переводит в символы.


то есть вы и сами ни писать, ни читать это не можете?

А зачем? Вся криптография, это сплошная математика. Решение уравнений. То, что вы видите - это результат решения одного уравнения и значение переменной для решения другого уравнения. Этот результат нам нужен как есть. Просто "кусок информации", да простят меня за такое словосочетание.

показать ответы
Автор поста оценил этот комментарий

Мы сейчас говорим про виртуалку на которой собственно запущен демон OpenVPN, трафик до него будет зашифрован. Как его расшифрует VPS-хостер без приватного ключа?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

До него да, после него - нет. Посмотрите на рисунки в начале второй части этой статьи.

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

показать ответы
4
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Да, этот вопрос обязательно нужно будет осветить.
показать ответы
Автор поста оценил этот комментарий

Вы извините, что я вас достаю, но у меня никак не получается(

У вас такого не было? Не сталкивались? Гуглеж не помогает(

раскрыть ветку (1)
Автор поста оценил этот комментарий
Запуск от имени администратора не помогает?
показать ответы
Автор поста оценил этот комментарий
Хм, странно, так и не смог их подружить
Не устанавливается адаптер
У вас какой билд десятки? Говорят, что такая проблема появилась с 10049, а в 10041 все работало
раскрыть ветку (1)
Автор поста оценил этот комментарий

Кстати. Openvpn + Win10 = проблема

Tap адаптер не ставится
https://social.technet.microsoft.com/Forums/en-US/261392a2-3...

раскрыть ветку (1)
Автор поста оценил этот комментарий

Этот комментарий написан через тоннель Openvpn поднятый из Windows 10

Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий
Ну, всем, кто подключен к одному впн выдаётся айпишник внутри одной сети. Допустим, что у меня к моему впн подключены ПК и телефон на андроид. На ПК расшарены сетевые папки, я хочу в них залезть с телефона. При нахождении в одной реальной сети, я могу сделать это через es file explorer. Однако, сетку впн он не видит(хотя, скорее всегда проверяет наличие подключения к wi-fi, так как говорит, что не видит ни одного пожелания по wlan). Вот и поинтересовался, как бы это сделать)
раскрыть ветку (1)
Автор поста оценил этот комментарий

Все коннекты идут через сервер (ибо он дефолтный шлюз). Если сервер не режет соединения между клиентами (в моих статьях была настройка iptables -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT в файле ipt-set), то клиенты должны видеть друг друга по IP-адресам 10.8.0.х

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

показать ответы
Автор поста оценил этот комментарий

Не знаете каким софтом под андроид можно получить доступ с сетевым ресурсам впн? ES проводник не могёт

раскрыть ветку (1)
Автор поста оценил этот комментарий

Не очень понял, какую задачу решаете.

показать ответы
Автор поста оценил этот комментарий

1) бинарник не левый =) докер файл лежит точ там же где и образ.

2)какие маны? 2 команды?

3)вот как раз таки установка по инструкции с гугла =) адовый фэйспалм =)

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

Просьба помочь со следующей проблемой:

использую VPN для обхода блокировок на Украине.

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

Всё отлично работает на PC, на телефоне через домашний wi-fi тоже всё ок, но стоит переключиться на 3G, то блокируемые ресурсы уже недоступны. Пробовал менять принудительно DNS на телефоне на гугловские - не помогло. Но если пропускать весь трафик через VPN, то блокируемые ресурсы через мобильный интернет уже доступны. В чём может быть загвоздка?

раскрыть ветку (1)
Автор поста оценил этот комментарий
На сервере push dns прописан?
показать ответы
Автор поста оценил этот комментарий

Ну с другой стороны у админов может быть много интересных вопросов к клиенту, от которого 99% трафика - это шифрованный трафик к одному адресату)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Это уже политика :) Выходит за рамки статьи.

Топором одинаково эффективно рубятся и дрова и головы. К человеку, постоянно ходящему с топором, могут возникнуть вопросы. И тут уже по ситуации: или доказать, что дровосек, или ...

Автор поста оценил этот комментарий

А через корпоративную проксю не будет пытаться трафик на 443 порту пускать? Понимаю, что SSL, но все же. Да и тогда бинд придется поднимать на виртуалке, чтобы с dns-запросами не палиться. Еще и свой локальный фаерволл надо будет настраивать, иначе вся защита скомпрометируется при любом обрыве туннеля :)

раскрыть ветку (1)
Автор поста оценил этот комментарий

На данный момент, в 99% случаев, в корпоративных сетях нет проксей, умеющих https. Ведь, по сути, это будет MitM, подмена сертификата, а браузеры на такое ругаются. Поэтому HTTPS идёт в обход прокси и всё работает.

Адреса DNS серверов скармливаются клиенту в конфиге сервера, все dns запросы идут уже в VPN тоннеле и разрешаются после VPN сервера.

показать ответы
Автор поста оценил этот комментарий

Можно на сервере tcp пустить.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Можно, но по tcp всё это будет работать гораздо медленнее. В случае с микротиком - адово медленно. Испробовано не однократно.

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

показать ответы
Автор поста оценил этот комментарий
Да вот только прикол в том, что эти опции не отрабатывают на клиенте под Android, а в логах срёт ошибками.

Если Вы утверждаете, что у Вас работает, выложите сюда конфиг сервера и дифф таблицы маршрутов. Ну и желательно traceroute до и после.
раскрыть ветку (1)
Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий

Вопрос от человека, бесконечно далекого от программирования. Как вы вообще расшифровываете тарабарщину типа

MIIFNTCCAx2gAwIBAgIJAJaBlANf4UOFMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV
BAMTC0Vhc3ktUlNBIENBMB4XDTE3MDYwMTA5NTA0MVoXDTI3MDUzMDA5NTA0MVow
FjEUMBIGA1UEAxMLRWFzeS1SU0EgQ0EwggI

По какому принципу это пишется?... Если в скриптах я еще могу проследить какие-то правила и логику, то тут вообще хз.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Это просто визуализация ключа. Текстовый редактор пытается показать набор нулей и единиц в виде букв. Это не нужно расшифровывать.

https://ru.wikipedia.org/wiki/Электронная_подпись

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

показать ответы
Автор поста оценил этот комментарий

Вы, простите, ерунду говорите. У меня планшет samsung galaxy tab 4 8.0, прошит стоковой прошивкой Android 5.1.1, рутован SuperSU. Только что отключил рут полностью (SuperSU так умеет), подключился к рабочему впну. И, знаете, всё прекрасно работает, маршруты на месте.

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо, всё руки не доходили тоже самое написать. Всё правильно. Push в конфиге сервера позволит настроить любые маршруты. Можно пустить через VPN весь трафик, можно выборочно.

2
Автор поста оценил этот комментарий

В чем проблема расшифровки трафика самим хостером, при условии, что у него есть доступ к хранилке, т.е. к приватному ключу?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Никаких проблем. Почитайте первую часть, там описаны требования к хостеру и есть ответ на ваше замечание.
показать ответы
2
Автор поста оценил этот комментарий

А я даже написал скрипт, который с нуля поднимает OpenVPN шлюз на никсах. Отрабатывает за пару секунд (кроме заполнения инфы о корневом сертификате). Автоматом конфигурит всё, включая firewall. Плюс веб-морда для выдачи новых сертификатов пользователям.

раскрыть ветку (1)
Автор поста оценил этот комментарий
К сожалению с универсальным скриптом куча проблем. Я это проходил. Разные сборки дистрибутивов у хостеоров постоянно вызывают неожиданные проблемы. Веб-морды зло.
показать ответы
DELETED
Автор поста оценил этот комментарий
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Любая вебморда - набор уязвимостей.
показать ответы