!!! Сразу предупреждаю, способ не из лёгких. Для продвинутых пользователей. !!!Хотя, всё относительно.
Данное решение позволяет использовать VPN (OpenVPN) только для указанных адресов.
Итак, у меня это связка OpenVPN + Mikrotik. Почему так? Потому-что мне не нужно проксировать ВЕСЬ трафик. Мне нужно заходить на заблокированные сайты и качать с заблокированных трекеров. И не только с компьютера, но и с остальных устройств. Например, у меня есть медиапроигрываетль на CoreELEC (Kodi) с плагином Elementum и я могу смотреть фильмы на телевизоре с торрентов, не дожидаясь их загрузки. Для этого мне нужно, чтобы к трекерам был доступ, а не заглушка от провайдера.
4$ в год за vpn. 250 Гб трафика в месяц. Для наших нужд этого более, чем достаточно.
В чём плюс данного решения? Помимо стоимости, какая-никакая приватность и контроль.
Подойдёт роутер Mikrotik даже за 20$. Собственно, можно и не микротик. Роутер должен уметь помечать трафик и работать с OpenVPN (кхе-кхе, сам микротик это умеет не очень хорошо).
Страшно звучит? Наверное, да. Можно ли обойтись без вот этого всего - помечать трафик, какой-то там микротик и т.д.? Можно. Но это менее удобно.
1. Арендуем серверПроходим по ссылке:
https://hosting.gullo.me/order/config/index/nat-ipv4-vps-fin/?group_id=21&pricing_id=248&coupon=LEB-NAT-256MBВ поле Hostname пишем имя будущего хоста. Выглядеть оно должно как myhost.mydomain.com. Например: moyvpn.vps.com
Template: CentoOS 7 Minimal
Больше ничего не трогаем.
Оплачиваем 4$.
Заполняем форму с контактами и паролем. Полагаю, излишне предупреждать о том, что пароли забывать не надо. Поэтому, для их хранения и генерации нужно пользоваться соответствующими программами. Например, KeePass.
После оплаты и регистрации, подождите несколько минут. Вам придут письма от Gullo's Hosting.
2. Настройка сервераЗаходите на
https://solusvm.gullo.me. Логин и пароль берёте из письма (Username и Password). Адрес тоже берёте оттуда. Строчка NAT IPv4 Address.
В панели внизу во вкладке Settings устанавливаете TUN/TAP в положение On. Если этого не сделать, не получится поднять туннель.
2.1. Теперь нужно подключиться к серверу по протоколу SSH. Проще всего скачать Putty (
https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe) и работать в ней.
2.2. Заходим на страницу
https://hosting.gullo.me/plugin/support_manager/knowledgebase/view/23/nat-ipv4-port-calculator/4/ и узнаём внешний адрес и порт для подключения. Помните строчку NAT IPv4 Address? Вот этот адрес вида 10.X.X.X нужно вставить в поле IP. Не закрывайте окно. Оно нам ещё пригодится.
2.3. Запускаем Putty. В строке Host Name пишем External IP, который копируем со страницы, открытой на шаге 2.2. В поле Port вставляем номер порта (SSH Port на той же странице из шага 2.2.).
Если всё правильно, то вам предложат ввести имя пользователя. (login as)
Имя пользователя root, пароль берём из письма (Root Password).
2.4. Дальше обновляем систему. Для этого пишем команду:
Ждём окончания обновления.
После обновления, сервер перезагрузится.
Закрываем Putty. Через 10 секунд повторяем пункт 2.3.
3. Установка OpenVPN3.1. Устанавливать будем с помощью скрипта, чтобы не пришлось самим генерировать ключи и сертификаты и т.д.
Код: выделить все wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh |
Скрипт запустится и станет задавать вопросы.
3.2. Public IPv4 address/hostname - тут просто жмём Enter.
3.3. Protocol - TCP
***
если собираетесь пользоваться только официальным клиентом, без использования микротика, то оставляйте тут UDP ***
3.4. Port - номер порта выбираем из предоставляемого нам диапазона Port Range (пункт 2.2., выбираем любой)
3.5. DNS - OpenDNS
3.6. Client name - любое латиницей. Например, mikrotik.
Установка завершена. Начнём настройку.
***
если собираетесь пользоваться только официальным клиентом, без использования микротика, то переходите сразу к пятому пункту. ***
4. Настройка OpenVPN4.1. Устанавливаем файловый менеджер mc ради редактора mcedit. Мне он привычней, а вам легче, чем nano или vi.
4.2. Теперь нужно немного поправить конфиг. Можно это было бы сделать и через WinSCP, но нам всё равно нужно будет перезапускать openvpn из консоли, поэтому работаем в Putty и дальше.
и приводим файл к такому виду (вместо иксов у вас будут ваш адрес и порт - параметры local и port. Менять их не надо:
Код: выделить все local 10.X.X.X port XXXXX proto tcp dev tun ca ca.crt cert server.crt key server.key dh dh.pem topology subnet server 10.8.0.0 255.255.255.0 push "redirect-gateway def1 ipv6 bypass-dhcp" ifconfig-pool-persist ipp.txt push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" keepalive 10 120 auth SHA1 cipher AES-256-CBC user nobody group nobody persist-key persist-tun status openvpn-status.log verb 3 crl-verify crl.pem |
4.3.Перезапускаем службу OpenVPN.
Если ругается на ошибку, значит проверяйте внимательно, чего написали в пункте 4.2.
5. Скачиваем необходимые файлыТеперь нам нужно скачать файл .ovpn
5.1. Качаем утилиту WinSCP (
https://winscp.net/eng/download.php)
5.2. Запускаем. Протокол передачи SFTP.
Имя хоста и порт берём из шага 2.2. Их мы писали в Putty.
Логин root, пароль из письма (шаг 2.3.)
Из папки /root/ скачиваем себе файл с расширением .ovpn
***
Теперь можно пользоваться клиентом OpenVPN для Windows, Linux, macOS, Android и т.д.
https://openvpn.net/client-connect-vpn-for-windows/
После установки и запуска программы, необходимо импортировать наш конфигурационный файл из пункта 5.2. Для этого найдите значок OpenVPN в системном трее в виде компьютера с замком, щелкните по нему правой клавишей мыши, выберите пункт Импорт конфигурации и укажите скачанный файл.
Для вас на этом всё, пользуйтесь. Но не забывайте, что весь ваш трафик пойдёт через VPN. У вас 250 гигабайт в месяц. ***
Но мы зарулим всё на микротик.
6. Подключаемся к openvpn с микротика6.1. Подклюаемся к микротику винбоском.
Закидываем (просто перетаскиваем мышью в винбокс) скачанный файл .ovpn (пункт 5.2.)
6.2. Идём в System -> Certificates. Нажимаем кнопку Import и выбираем файл с расширением .ovpn. Импортируем.
В списке сертификатов должно появиться два новых сертификата, при этом, у одного из них должны стоять флаги KT.
6.3. Поднимаем соединение. Идём в PPP -> Interface. Добавляем OVPN Client.
Connect to - шаг 2.2., адрес
Port - шаг 2.2. и 3.4. - порт, который мы выбрали из диапозона
User - nobody
Certificate - выбираем тот, который был с флагами KT (шаг 6.2.). У меня это mikrotik.ovpn_1.
Auth - sha1
Cipher - aes 256
Use Peer DNS - yes
Add Default Route - снимаем галку
6.4. Нажимаем Apply и смотрим Status. Если соединения нет, то у меня для вас плохие новости. Вы где-то ошиблись.
7. Маркировка пакетовЕсли вы ещё не опустили руки, то продолжим.
7.1. В винбоксе идём в IP -> Firewall -> Mangle.
Создаём правило:
Код: выделить все action=mark-routing chain=prerouting comment="vpn unblock" dst-address-list=unblock new-routing-mark=unblock-mark passthrough=no src-address=192.168.230.0/24
|
dst-address-list можете назвать как хотите. У меня для примера unblock.
src-address- тут адрес и маска вашей сети.
7.2. Создаём правило маскарадинга для openvpn
IP -> Firewall -> NAT
Код: выделить все action=masquerade chain=srcnat out-interface=ovpn-out1
|
out-interface - указываете свой интерфейс клиента openvpn (шаг 6.3.)
7.3. Добавляем маршрут
IP -> Routes
Код: выделить все dst-address=0.0.0.0/0 type=unicast distance=1 gateway=ovpn-out1 routing-mark=unblock-mark
|
gateway - указываете свой интерфейс клиента openvpn (шаг 6.3.)
8. Создаём список сайтов, которые пойдут через туннель openvpnIP -> Firewall -> Address Lists
Добавляем необходимые записи. Например:
Name: unblock
Address: nnmclub.to
Теперь ваш трафик для адресов из списка unblock должен ходить через туннель openvpn.
Проверить можно, добавив в unblock адрес myip.ru и зайдя на него в браузере. Посмотрите, какой адрес он вам покажет.
Если эта простыня текста ввергла вас в уныние и показалась слишком сложной... Возможно, это действительно так. Увы, для реализации некоторых вещей нужны определённые знания и навыки.
Для меня данная связка openvpn + mikrotik очень удобна.
При написании этой инструкции, я пользовался статьями:
https://zen.yandex.ru/media/it_news/nastraivaem-sobstvennyi-bezopasnyi-vpn-za-130r-v-god-5de153aefe289100b0b472f2https://weblance.com.ua/317-obhod-blokirovki-saytov-so-storony-provaydera-na-mikrotik-routeros.htmlUPD: sailorxakep помог со скриншотами и описанием.Пожалуй, попробую помочь картинками. На своём девайсе экспериментировать не буду, поэтому развернул MikroTik RouterOS в VirtualBox.
1. В тестовой схеме предполагается, что кабель провайдера приходит на интерфейс
ether1.
2. От провайдера роутер получается данные DHCP, необходимые для доступа в сеть Internet.
3. Интерфейс
bridge1 объединяет интерфейсы
ether2-
ether4, для удобства раздачи настроек вашей домашней сети по DHCP.
Примечание-1. Если подключение к провайдеру происходит по PPoE, то суть настроек от это значительно не изменится.
Примечание-2. Будем считать, что пп. 1- 5.2 уже выполнены.
Примечание-3. В качестве теста буду использовать настройки ProtonVPN Free. Какой сервер VPN использовать существенной роли не играет. Главное - показать общий принцип. Настройки ProtonVPN берутся для подключения по TCP, т.к. подключаться по UDP к OpenVPN MikroTik пока не умеет.
7. Маркировка пакетов В общем, примерно, как-то так.
Дополняйте, поправляйте, исправляйте. Тем более, раз здесь есть сертифицированные специалисты по MikroTik.