Как заворачивать трафик в VPN на уровне роутера

Может пригодиться для ситуаций, когда нужно подключиться к рабочему VPN, но подключения за пределами страны заблокированы админами. И получается, что нужен первый впн, который "забрасывает" трафик в нужную страну, и второй -- тот самый рабочий.

Или если ты находишься в России, и хочешь фрилансить на Upwork. Ибо в апворк запрещено заходить из "токсичных стран". И клиент апворка проверяет -- установлены ли VPN программы на твоём ПК.

<TL;DR>

Простая инструкция с картинками: как настроить VPN на своём роутере

У джедая два пути:

  1. Джедай домогается до всех магазинов электроники, и пытается выцепить роутер, который из-коробки поддерживает подключение по openVPN. (Их мало, они дорогие)
  2. Джедай берет из кладовки свой старый роутер, ставит на него Linux, и полноценный клиент openVPN.

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

Проверяем, возможно ли накатить линукс на наш роутер.

Для этого берем и вбиваем его модель на вот этом сайте. Нашлось? Пол дела сделано!

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

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

Ставим openWRT!

Если вы ещё не поняли, ставить будем именно эту сборку линукса для роутеров. Потому что у него есть удобная вебморда. Почти как стоковая, только лучше :)

Возвращаемся на сайт, где мы проверяли модель роутера. Видим внизу ссылки для скачивания сборок OpenWRT для нашей модели.
../../../Assets/VPN на роутере/pasted-image-20240712215939.png
Kernel и Sysupgrade нас не интересует. Нас интересует третий вариант, который будет называться по разному в зависимости от доступного на нашей модели способа установки.

Какие есть варианты установки:

  1. Зайти в вебморду роутера, и во вкладке "обновление ПО" подсунуть ему сборку openWRT.
  2. Расшарить папку по TFTP, положить в неё openWRT и перезагрузиться
  3. Колдовать с serial-портом и консолью

Что я делал?

Скачал образ openWRT. И на всякий случай открыл WIKI по установке конкретно от моей модели роутера. У меня в шкафу валялся TL-WR840N v4.

На вики видно, что единственный способ как накатить на него WRT, это через расшаривание по TFTP с IP 192.168.0.66 и файл должен называться tp_recovery.bin
../../../Assets/VPN на роутере/pasted-image-20240712220921.png

Делаем!

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

И выставляем нашему компьютеру нужный IP:
Тыкаем на иконку нашей сети в трее, далее "Параметры сети и Интернет"
../../../Assets/VPN на роутере/pasted-image-20240712221325.png

Далее в открывшемся окне "Ethernet" -> "Настройка параметров адаптера"

../../../Assets/VPN на роутере/pasted-image-20240712221509.png

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

Открываем её свойства.
../../../Assets/VPN на роутере/pasted-image-20240712221805.png

И в свойствах IP версии 4 прописываем нужный нам IP адрес из вики
../../../Assets/VPN на роутере/pasted-image-20240712221847.png

Для расшаривания папки будем использовать софтинку tftpd64. Качаем, распаковываем себе куда-нибудь на рабочий стол.

Рядом создаём какую-нибудь папку, в которую кладём скачанную ранее сборку openWRT и переименовываем файл в tp_recovery.bin.

../../../Assets/VPN на роутере/pasted-image-20240712222325.png

Открыв программу от имени администратора выбираем папку, которую хотим расшарить, сетевую карту, по которой будет передача.

И в настройках отрубаем всю защиту нашей папки
../../../Assets/VPN на роутере/pasted-image-20240712222534.png

Момент истины.

У нас расшарена папка, роутер подключен к компьютеру по сети. Теперь берем и удерживаем кнопку reset на роутере, пока он не начнёт скачивать наш файл.
(Процесс скачивание отобразится в окне программы)

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

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

Ахтунг! После сего действа не забудьте вернуть взад настройки IP на вашей сетевой карте, которые вы сделали до этого.

Устанавливаем VPN клиент

Если у нас всё прошло успешно, то по адресу 192.168.1.1 у нас будет доступна веб морда настроек роутера. Пытаемся открыть и видим вот такое окно:
../../../Assets/VPN на роутере/pasted-image-20240712223050.png

Пользователь -- root
Начальный пароль -- пустота

После первого захода роутер предложит придумать какой-нибудь пароль. Соглашаемся.

Дальше нужно подвести к нашему роутеру интернет. Втыкаем кабель с интернетом в порт WAN

Если вы воткнули кабель напрямую от провайдера, то вам потребуется ввести всякие ваши логины и пароли во вкладке Network -> Interfaces -> WAN -> Edit

../../../Assets/VPN на роутере/pasted-image-20240712223651.png

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

Интернет есть, устанавливаем софт

Идём во вкладку System -> Software

../../../Assets/VPN на роутере/pasted-image-20240712223616.png

Жмем на кнопку "Update Lists", и у нас выведется список доступных для установки программ. Вбиваем в поиск openvpn. И устанавливаем два пакета:

../../../Assets/VPN на роутере/pasted-image-20240712224453.png

Первый -- сам клиент openVPN (это пакет openvpn-openssl или openvpn-mbedtls). Они ничем по поведению не отличаются. Разница лишь в библиотеках, которые они используют.

В моём случае openssl просто не помещался в память устройства, и я использовал другой)

Второй -- плагин, для того, чтобы у нас кнопочки по управлению VPN в вебморде появились.

Устанавливаем нажатием кнопок, сохраняемся, перезагружаем роутер через меню. (System -> Reboot)

Настраиваем наш VPN

После всех проделанных махинаций в веб морде у нас появилась вкладка VPN.

Переходим в неё, удаляем все лишние стандартные записи, загружаем туда файл настроек VPN от вашего провайдера.

../../../Assets/VPN на роутере/pasted-image-20240712225058.png

У вас ещё нет файла настроек от провайдера? Самое время его получить!

Чтобы забрасывать трафик в РФ можно купить вот этот VPN (выбирайте тариф "Быстрый")

Чтобы выбрасывать трафик из РФ в другие страны можно купить вот этот VPN.

Дальше следуя инструкциям от своего VPN провайдера, получаем кофиг-файл для openVPN, и загружаем на экран выше.

Прожимаем галочку "Enabled", нажимаем на "Start", потом сохраняемся.

Фаервол

Если до этого момента, из роутера неплохо шёл интернет, то он резко пропал. Ведь так?)

Дело в том, что прямой доступ к интернету теперь заблокирован впн-клиентом (что логично). А доступ через openVPN-посредника заблокирован фаерволом. Осталось рассказать ему, что это нужный трафик.

Идём в меню Network -> Firewall -> Настройки сети WAN -> Edit
../../../Assets/VPN на роутере/pasted-image-20240712225737.png

И во вкладке Advanced Settings в поле Covered devices проставляем галочку напротив tun0 (это и есть наш VPN туннель)
../../../Assets/VPN на роутере/pasted-image-20240712225843.png

Сохраняемся, перезагружаемся, пробуем.

IP адрес и страну можно проверить например здесь.

../../../Assets/VPN на роутере/pasted-image-20240712230057.png

Опционально -- делаем VPN-wifi

Заходим в Network -> Wireless -> Edit

../../../Assets/VPN на роутере/pasted-image-20240712230248.png

Mode -- Access Point
SSID -- Имя вашей WIFI сетки
Network -- Lan

../../../Assets/VPN на роутере/pasted-image-20240712230216.png

Во вкладке Security

Encryption -- WPA2-PSK
Cipher -- AES
Key -- Ваш пароль от WIFI

../../../Assets/VPN на роутере/pasted-image-20240712230613.png

Сохраняемся, применяем настройки, перезагружаемся.

Радуемся, что можем без какого-либо софта просто переключиться на другую WIFI точку и формально начать серфить интернет из-другой-страны.

</TL;DR>

../../../Assets/VPN на роутере/pasted-image-20240712230828.png

Всё
../../../Assets/VPN на роутере/pasted-image-20240712230928.png