Openwrt + Vpnclient Для Роутера С 4Мб Пзу

Добрый день, Хабр! Недавно у меня возникла необходимость предоставить доступ в Интернет всем пользователям моей домашней сети через OpenVPN. Первоначально древний IBM NetVista 6646-Q1G с Linux Centos 6 на борту.

С этой задачей он справился хорошо, но, как говорится, совершенству нет предела.

Захотелось заменить его на что-то более компактное.

Изначально выбор пал на Малиновый Пи Модель Б , но смущала цена в 50 долларов, ведь нынешний сервер также успешно справился с той задачей, которую должен был выполнять.

Я начал рассматривать альтернативные варианты.

И я нашел, как мне казалось, идеальное решение — роутер + прошивка.

ДД-ВРТ , который содержит клиент OpenVPN. Далее пришло время выбора роутера.

я остановился на ТП-Линк WR841N .

Искать по база данных показал, что DD-WRT это поддерживает. Буквально в тот же день аппарат был куплен и прошит. Но тут меня разочаровало — в веб-интерфейсе на вкладке VPN не было возможности настроить клиент OpenVPN. Google очень быстро помог мне найти причину этой несправедливости: « OpenVPN доступен только на устройствах с флэш-памятью не менее 8 МБ (кроме сборки Broadcom VPN).

”.

Как говорят мудрейшие люди, внимательно читайте договорную документацию.

Ладно, это еще интереснее.

Быстрый поиск альтернативной прошивки привел меня к OpenWRT .

Его отличие от DD-WRT в том, что у него есть менеджер пакетов.

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

По сути, это очень облегченная версия Linux. В OpenWRT настроить OpenVPN из коробки не удалось — проблема та же, что и с DD-WRT. Но, благодаря архитектуре этой прошивки, была надежда, что всё получится.

В tmpfs обнаружено довольно много свободного места:

  
  
  
  
  
  
   

root@OpenWrt:~# df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 1088 352 736 32% / /dev/root 2048 2048 0 100% /rom tmpfs 14608 3256 11352 22% /tmp tmpfs 512 0 512 0% /dev /dev/mtdblock3 1088 352 736 32% /overlay overlayfs:/overlay 1088 352 736 32% /

Как следует из названия, оперативная память маршрутизатора монтируется в /tmp. Несколько минут поиска в Google привели меня к страница с решением этого вопроса.

К сожалению, у меня это не сработало, так как после установки пакетов kmod-tun, liblzo и libopenssl в корневой файловой системе осталось критически мало места.

Поэтому было решено немного модернизировать данное руководство.

Вот что я получил.

1. Подключитесь к роутеру по ssh и выполните команды:

opkg update opkg install kmod-tun zlib liblzo mkdir /etc/openvpn touch /etc/init.d/openvpn chmod +x /etc/init.d/openvpn

2. Отредактируйте скрипт инициализации:

vi /etc/init.d/openvpn



#!/bin/sh /etc/rc.common START=99 start() { local TMPPATH=/tmp/openvpn [ ! -d ${TMPPATH} ] && mkdir ${TMPPATH} cd ${TMPPATH} opkg update || exit 1 tar xzf $(opkg download libopenssl | grep Downloaded | cut -d\ -f4 | sed '$s/.

$//') tar xzf data.tar.gz tar xzf $(opkg download openvpn | grep Downloaded | cut -d\ -f4 | sed '$s/.

$//') tar xzf data.tar.gz rm -f pkg.tar.gz data.tar.gz control.tar.gz debian-binary getopenvpn.sh for i in $(ls ${TMPPATH}/usr/lib) do [ ! -f /usr/lib/$i ] && ln -s /tmp/openvpn/usr/lib/$i /usr/lib/$i done ${TMPPATH}/usr/sbin/openvpn --writepid /tmp/ovpn_ciberterminal.pid --daemon --cd /etc/openvpn --config my.conf } stop() { PIDOF=$(ps | egrep openvpn | egrep -v grep | awk '{print $1}') kill ${PIDOF} }

3. Скопируйте файл конфигурации (в нашем случае my.conf), сертификаты и ключ в папку /etc/openvpn. 4. Запускаем openvpn:

/etc/init.d/openvpn start

Если все прошло успешно, то при выполнении команды ifconfig мы увидим новый интерфейс tun или Tap. Пример:

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.54 P-t-P:10.8.0.53 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:100558 errors:0 dropped:0 overruns:0 frame:0 TX packets:78362 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:85115045 (81.1 MiB) TX bytes:16184384 (15.4 MiB

Если соединение не установлено, можно попытаться найти ошибку с помощью команды:

logread -f

Далее вам необходимо добавить сетевой интерфейс и настроить брандмауэр, чтобы разрешить клиентский трафик через VPN. Это можно сделать с помощью веб-интерфейса.

Примеры на скриншотах ниже:

OpenWrt + VPNclient для роутера с 4Мб ПЗУ



OpenWrt + VPNclient для роутера с 4Мб ПЗУ

Данное решение успешно протестировано и работает на роутере TP-Link WR841N, а также подойдет и для других.

поддерживаемые устройства OpenWRT , имеющий ПЗУ 4 мегабайта.

Теги: #linux #Беспроводные технологии #Системное администрирование #openvpn #Конфигурация Linux #OpenWRT #tp-link wr841n

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.