Что нового

Article OpenWRT на страже анонимности: сборка прошивки с клиентом OpenVPN.

Человек Тьмы 0
19.04.2020
24
59
Говорят, Вселенной периодически нужно отдавать что взял.
Эта статья родилась во исполнение этого завета.

screen.png


Не спится.
Чашка горячего крепкого кофе окончательно задушила во мне желание остаться в ночной постели.
Сегодняшнюю бессонницу решено выплеснуть во второй статье на тему операционой системы OpenWRT. Но посвящать статью изложению набора теоретических фраз нет никакого желания. Оставим это удовольствие умникам - их удел пускать пыль в глаза окружающих. Эта статья будет неплохим продолжением темы анонимности на роутерах под управлением операционной стстемы OpenWRT.
Современные маршрутизаторы (и не современные тоже) как правило управляются некой линукс-подобной системой при покупке. Но предустановленная на заводе изготовителе система управления роутером таит в себе ряд недостатков:
  • во первых предустановленное в системе программное обеспечение не всегда отвечает запросам продвинутых пользователей;
  • во-вторых, в сети Интернет ходят навязчивые и не умолкающие слухи о "вшитых" бэкдорах от производителей, провайдеров и других структур;
  • в-третьих заводские прошивки роутеров зачастую таят в себе немало уязвимостей, что делает всю локальную сеть за маршрутизатором приалекательной добычей для любопытных
  • в-четвёртых этот список можно продолжить, но оставим красивые слова другим умникам.

Ниже в статье пойдёт речь об установке и настройке клиента OpenVPN в операционной системе OpenWRT. опытный пользователь не найдёт в статье ничего нового, так как тема эта избитая, бородатая... другие синонимы прилагательного "старая" оставляю для фантазии читателя.
Прежде чем начать, хочется внести некоторую ясность в версии прошивок OpenWRT.
В настоящее время актуальной является версия 19.07 системы OpenWRT. На мой взгляд, настройка клиента в этой версии более приятна из WEB-интерфейса роутера: согласитесь, что нажатие нескольких кнопок в браузере занимает гораздо меньше человеческих ресурсов, чем ковыряние в чёрной и безжизненной консоли. Вместе с тем, web-интерфейс в системе OpenWRT является приложением относительно "тяжеловесным", пожирающим и без того скромные ресурсы ЭВМ с названием "маршрутизатор".
Возможно, в будущем я убью свою бессонницу написанием статьи об установке и настройке клиента OpenVPN в версии 19.07. Сегодня мне хочется описать консольный вариант.
Где-то на Хабре несколько лет назад имеется легко доступная из любой поисковой системы аналогичная статья ( < --- гиперссылки не выделяются другим цветом - это повод для критики здешних модераторов ) об установке клиента в OpenWRT. который после включения роутера загружается в оперативную память маршрутизатора. Такое нестандартное решение автор объяснил ограниченным количеством flash-памяти подопытного кролика своего роутера - всего лишь 4 Mb. Действительно, расположить операционную систему на четырёх мегабайтах - задача не простая.
Не простая. но привлекательная по нескольким причинам.
  1. в 2020 году роутеры с четырьмя мегабайтами flash -памяти считаются морально устаревшими и практически ничего не стоят. Их стоимость сравнима со стоимостью недоеденного пирожка из расчёта, что НЕ надкусанный пирожок стоит 500 рублей. <--- а чё ета гиперссылки не выделяются другим цветом ?
  2. тем не менее это воплощение обгрызанного пирожка в ЭВМ можно с лёгкостью воткнуть в кабель интернет-провайдера сразу после компьютера пользователя и повысить свою анонимность, возложив всю работу на другую машину.
  3. наконец, использование вот таких роутеров повышает уровень знаний локальных сетей и протоколов связи не в теории, а на практике.
Наверняка читатель догадался, что в статье будет описан процесс сборки (но коротко) и настройки прошивки для роутеров с минимальными ресурсами: 4 Mb flash-rom. Но в отличие от упомянутой выше статьи на Хабре, я предлагаю не изобретать велосипед, то есть не устанавливать клиент OpenVPN в оперативную память, а собратиь прошивку с заранее установленным VPN-клиентом и залить её на маршрутизатор. Считаю такой способ более надёжным, то сеть работающим без всяких глюков, сбоев и прочих мешающих нашему счастливому житию-бытию явлений. Стоит также отметить, что роутеры с четырьмя мегабайтами памяти в ближайшем будущем перестанут поддерживаться разработчиками операционной системы Open WRT. Официально объявлено, что версия 19.07 станет последней для таких "зверьков". Но сами роутеры ещё долгое время будут радовать нас своим существованием, так что особой причины для грусти в этой новости я не вижу )

На роль подопытного кролика экспериментального роутера для написания статьи я выбрал модель TP-LINK TL-WR841N v.11
Моя задача - описать сборку прошивки из образа Image Builder . Если у читателя нет никакого желания разбираться в сборках, разборках, заливках и прочеих танцев с бубнами вокруг системы OpenWRT, то можно скачать и залить готовый образ. К счастью для русскоязычного пользователя, в его свободном доступе имеется форум 4pda, на котором сконцентрировано невероятное количество прошивок мобильных устройств, в том числе и марщрутизаторов.

Ниже будет описан процесс сборки прошивки в операционной системе Debian v.10.3 Buster .
Перед началом сборки в систему необходимо установить пакеты, необходимые для успешной компиляции.
Устаналиваем зависимости для make:
# sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc unzip

screen01.png

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

# mkdir TL-WR841

Переходим в созданный каталог:

# cd TL-WR841

ВАЖНО: сборка прошивки осуществляется от имени пользователя, НЕ от имени root.

Далее необходимо скачать образ ImageBuilder со страницы https://downloads.openwrt.org/releases/19.07.2/targets/ar71xx/tiny/
по ссылке https://downloads.openwrt.org/releases/19.07.2/targets/ar71xx/tiny/openwrt-imagebuilder-19.07.2-ar71xx-tiny.Linux-x86_64.tar.xz

screen03.png

На рисунке представлена страница, откуда нужно скачать образ Image Builder для модели TP-LINK TL-WR841N v.11
Распаковка , дальнейший переход в распакованную папку и просмотр профилей для сборки прошивки производится соответственно командами:

Код:
$ wget https://downloads.openwrt.org/releases/19.07.2/targets/ar71xx/tiny/openwrt-imagebuilder-19.07.2-ar71xx-tiny.Linux-x86_64.tar.xz
Распаковываем и переходим в каталог с ImageBuilder:
$ tar xfJ openwrt*
$ cd openwrt*64
Что бы узнать весь список устройств, под которые можно собрать прошивку используя данный архив, команудем
# make info
screen04.png


Компиляция будущей прошивки происходит одной командой:
# make image PROFILE=XXX PACKAGES="pkg1 pkg2 pkg3 -pkg4 -pkg5 -pkg6" FILES=files/

PROFILE - модель устройства, под которую собираем прошивку.
Что бы узнать весь список устройств, под которые можно собрать прошивку используя данный архив, мы только что скомандовали
# make info
PACKAGES - перечисляем пакеты, которые хотим видеть в нашей прошивке, или наоборот, если какие-то пакеты не хотим видеть, ставим - перед наименованием пакета.
FILES - задаем место, где лежат конфиги. Мы как раз создали каталог files и положили туда конфиги.
Для того, что бы настроенные конфиги вошли в будущую сборку, нужно создать директорию /files/etc/config и скопировать туда конфигурационные файлы network, firewall, system, wireless. Но если конфигов нет, то папку files можно не создавать. При первой сборке, естественно конфигов нет - откуда им взяться то ? Тем более речь в статье идёт о прошивке на устройство с 4 мегабайтами памяти. То есть дорог каждый байт. Из соображений экономии места и благопрлучной сборки прошивки, конфигурационные файлы проигнорируем. Дополнительным доводом в пользу игнорирования конфигов будущей прошивки может быть таким: будущая прошивка будет содержать только одну программу - клиент Open VPN ( а может быть и dns-crypt влезет - посмотрим по ходу написания статьи и компиляции прошивки, ведь я пишу эту статью в режиме реальных действий) Настройка всего лишь двух программ - не такая уж и громоздкая задача, чтобы заморачиваться с двумя - тремя конфигурационными файлами.


Минимальный объем места на роутере накладывает ограничения на размер будущей прошивки. Из соображений уменьшения объёма образа, предлагаю удалить поддержку Ipv6, PPTP, средства отладки. Менеджер пакетов opkg также можно удалить, ведь после заливки прошивки на роутер, места на нём уже не останется и возможности установить дополнительное программное обеспечение попосту не будет.
Ниже приведены списки пакетов, которые необходимо "минусовать" в будущей команде компиляции прошивки.

Код:
##########################################################################

Как отключить ipv6 на OpenWRT?

#/bin/sh
echo net.ipv6.conf.all.disable_ipv6=1 >> /etc/sysctl.conf
opkg remove ip6tables
opkg remove kmod-ip6tables
opkg remove odhcp6c
opkg remove 6relayd
opkg remove kmod-nf-ipt6 --force-removal-of-dependent-packages
opkg remove kmod-nf-conntrack6 --force-removal-of-dependent-packages
opkg remove kmod-ipv6 --force-removal-of-dependent-packages
reboot


Можно удалить поддержку ipv6
cd /etc/modules.d/; sed 's/\(.*ipv\?6.*\)/#\1/' -i *


Как отключить ipv6 на OpenWRT?
vi /etc/sysctl.conf
net.ipv6.conf.eth0.disable_ipv6 = 1

**************************************************************************
##########################################################################


Как отключить PPTP на OpenWRT?


opkg remove kmod-gre
opkg remove kmod-mppe
opkg remove kmod-ppp
opkg remove kmod-pppoe
opkg remove kmod-pppox
opkg remove kmod-pptp
opkg remove luci-proto-ppp
opkg remove ppp
opkg remove ppp-mod-pppoe
opkg remove ppp-mod-pptp
opkg remove kmod-nf-nathelper-extra

**************************************************************************
##########################################################################

OpenWRT — отказываемся от средств отладки

opkg remove kmod-b43
opkg remove kmod-b43legacy
opkg remove kmod-mac80211
opkg remove kmod-cfg80211

**************************************************************************
##########################################################################

Можно удалить также менеджер пакетов opkg.
Ведь на роутерах 4/32 всё равно устанавливать будет нечего. Не хватает места.

opkg remove opkg

**************************************************************************
##########################################################################
Добавляем в прошивку две программы:
dnscrypt-proxy - для шифрования dns-трафика (это не dnscrypt-proxy v.2, описанный в этой статье)
openvpn-openssl - собственно клиент OpenVPN.

Собираем прошивку, убрав ненужное , добавив нужное.

screen05.png

Команда для сборки прошивки в моём случае выглядит следующим образом:
make image PROFILE=tl-wr841-v11 PACKAGES="-luci -uhttpd-uhttpd-mod-ubus -libiwinfo-lua -luci-base -luci-app-firewall -luci-mod-admin-full -luci-theme-bootstrap -ip6tables -kmod-ip6tables -kmod-ipv6 -kmod-nf-conntrack6 -kmod-nf-ipt6 -libip6tc -luci-proto-ipv6 -odhcp6c -6relayd -qualcomm -ppp -ppp-mod-pppoe -kmod-gre -kmod-mppe -kmod-ppp -kmod-pppoe -kmod-pppox -ppp -kmod-b43 -kmod-b43legacy -kmod-mac80211 -kmod-cfg80211 -kmod-pptp -luci-proto-ppp -ppp-mod-pptp -kmod-nf-nathelper-extra -opkg -wpad-mini dnscrypt-proxy openvpn-openssl"


screen06.png

... И после нескольких минут сборки я получаю ошибку из-за слишком большого объёма файла готовой сборки.
Придётся убрать dns-crypt или ещё что-то. Иначе прошивка не соберётся.


К сожалению, неожиданно за окном нассвело и мне пора отходить от компутера.
Непременно обещаю порадовать (или не порадовать) продолжением и благополучной сборкой образа OpenWRT.
А сейчас мне пора ... заняться другими делами. Работа, мать её !!!
Прошу не ограничивать время редактирования статьи до вечера.
 
Последнее редактирование:
Человек Тьмы 0
19.04.2020
24
59
Ок, всё работает ))
Поменял на 3000 минут время на редактирование, проверь.
Не скупись на эти минуты ))
В ближайшее время я планирую опубликовать на этом форуме около десятка статей - мне нужно будет время на редактирование ))
Меня посетила МУЗА.
 
gx6060 0

gx6060

Команда форума
10.11.2019
65
99
Это минуты а не секунды, 3к минут
2е суток.
 
Верх Низ