Хотим свободы и анонимности в сети или еще раз про свой 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 серверу.

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

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

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

MIIFNTCCAx2gAwIBAgIJAJaBlANf4UOFMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV
BAMTC0Vhc3ktUlNBIENBMB4XDTE3MDYwMTA5NTA0MVoXDTI3MDUzMDA5NTA0MVow
FjEUMBIGA1UEAxMLRWFzeS1SU0EgQ0EwggI

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

Ясно, спасибо за ответ.

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

Вот в нулях и единицах :)

1001101 1001001 1001001 1000110 1001110 1010100 1000011 1000011 1000001 1111000 110010 1100111 1000001 1110111 1001001 1000010 1000001 1100111 1001001 1001010 1000001 1001010 1100001 1000010 1101100 1000001 1001110 1100110 110100 1010101 1001111 1000110 1001101 1000001 110000 1000111 1000011 1010011 1110001 1000111 1010011 1001001 1100010 110011 1000100 1010001 1000101 1000010 1000011 1110111 1010101 1000001 1001101 1000010 1011001 1111000 1000110 1000100 1000001 1010011 1000010 1100111 1001110 1010110 100000 1000010 1000001 1001101 1010100 1000011 110000 1010110 1101000 1100011 110011 1101011 1110100 1010101 1101100 1001110 1000010 1001001 1000101 1001110 1000010 1001101 1000010 110100 1011000 1000100 1010100 1000101 110011 1001101 1000100 1011001 1110111 1001101 1010100 1000001 110101 1001110 1010100 1000001 110000 1001101 1010110 1101111 1011000 1000100 1010100 1001001 110011 1001101 1000100 1010101 1111010 1001101 1000100 1000001 110101 1001110 1010100 1000001 110000 1001101 1010110 1101111 1110111 100000 1000110 1101010 1000101 1010101 1001101 1000010 1001001 1000111 1000001 110001 1010101 1000101 1000001 1111000 1001101 1001100 1010010 1010111 1000110 1111010 1100101 1010011 110001 1010011 1010101 110000 1000101 1100111 1010001 110000 1000101 1110111 1100111 1100111 1001001

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку