Pull to refresh

OpenVPN клиент на роутере TP-Link TL-MR3020 с OpenWRT

Имеется клиент, который пользуется 3G интернетом, соответственно NAT и серый IP адрес. Имеется необходимость туда попадать на сервер терминалов и IP камеры. Я решил сделать подключение к уже имеющемуся серверу OpenVPN. И оттуда прокинуть порты на камеры и сервер. У клиента используется 3G роутер TP-Link TL-MR3020.
На него залил прошивку OpenWRT Attitude Adjustment Beta 2.

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

Так как на борту флеш объемом всего 4Мб, то пришлось поставить туда усб хаб и флешку. Но чтобы увиделась флешка сначала нужно доустановить пакеты.

opkg install kmod-usb-uhci kmod-usb-storage block-mount kmod-fs-ext4
insmod usb-ohci

Cоздаем точку подключения:
mkdir /mnt/sda1

Я флешку на компе заранее отформатировал в ext4, маунтим ее:
mount -t ext4 /dev/sda1 /mnt/sda1 -o rw,sync

Сначала была еще мысль создать на флешке раздел под swap, но потом передумал, вдруг мало ли сдохнет флешка от постоянной перезаписи.

Копируем туда установленные пакеты:
tar -C /overlay -cvf - . | tar -C /mnt/sda1 -xvf –

Немного правим конфиг:
vi /etc/config/fstab

чтобы выглядело вот так:
config 'mount'
option target /overlay
option device /dev/sda1
option fstype ext4
option options rw,sync
option enabled 1
option enabled_fsck 1

затем перезагружаем роутер
reboot

Теперь мы не ограничены исходным размером flash роутера. И можем себе позволить поставить практически все :)
Смотрим свободное место:
df -h
Filesystem Size Used Available Use% Mounted on
rootfs 504.4M 25.0M 453.8M 5% /
/dev/root 2.0M 2.0M 0 100% /rom
tmpfs 14.3M 168.0K 14.1M 1% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/sda1 504.4M 25.0M 453.8M 5% /overlay
overlayfs:/overlay 504.4M 25.0M 453.8M 5% /

Устанавливаем необходимые нам пакеты:
opkg install openvpn nano mc luci-i18n-russian

Для нормальной работы mc нужно выполнить две строчки:

export TERMINFO=/usr/share/terminfo
export TERM=xterm

И чтобы каждый раз их не выполнять руками нужно их добавить в /etc/profile:
nano /etc/profile

Затем копируем на роутер в /etc/openvpn/ ключи и сертификаты созданные на сервере openvpn:
ca.crt
dh1024.pem
client.crt
client.key
ta.key

Правим конфиг
nano /etc/config/openvpn

package openvpn
config openvpn client
option enabled 1
option client 1
option dev tun
option proto udp
list remote "remote.server.ip 1194"
option resolv_retry infinite
option nobind 1
option persist_key 1
option persist_tun 1
option ca /etc/openvpn/ca.crt
option cert /etc/openvpn/client.crt
option key /etc/openvpn/client.key
option dh /etc/openvpn/dh1024.pem
option ns_cert_type server
option tls_auth "/etc/openvpn/ta.key 1"
option comp_lzo 1
option verb 0

затем запускаем openvpn
/etc/init.d/openvpn start
/etc/init.d/openvpn enable

Теперь настраиваем 3g. Устанавливаем пакеты:
opkg install kmod-usb-serial kmod-usb-serial-option

Добавляем в /etc/config/network
nano /etc/config/network

config 'interface' 'wan'
option 'ifname' 'ppp0'
#option 'pincode' '1234'; у кого включена проверка pin кода раскомментировать строчку
option 'device' '/dev/ttyUSB0': может быть другим, проверяйте с помощью dmesg
option 'apn' 'home.beeline.ru'; указываем свою apn
option 'service' 'umts'
option 'proto' '3g'
#option 'username' 'yourusername'; у некоторых ОПСОСов требуется
#option 'password' 'yourpassword'; авторизация при подключении

Перезагружаем роутер и проверяем:
ping 192.168.254.1 -c 5
PING 192.168.254.1 (192.168.254.1): 56 data bytes
64 bytes from 192.168.254.1: seq=0 ttl=64 time=947.409 ms
64 bytes from 192.168.254.1: seq=1 ttl=64 time=606.373 ms
64 bytes from 192.168.254.1: seq=2 ttl=64 time=576.448 ms
64 bytes from 192.168.254.1: seq=3 ttl=64 time=554.852 ms
64 bytes from 192.168.254.1: seq=4 ttl=64 time=503.695 ms
--- 192.168.254.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 503.695/637.755/947.409 ms

ifconfig
3g-wan Link encap:Point-to-Point Protocol
inet addr:172.20.17.132 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:220 errors:0 dropped:0 overruns:0 frame:0
TX packets:234 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:25248 (24.6 KiB) TX bytes:23382 (22.8 KiB)

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.254.105 P-t-P: 192.168.254.106 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:840 (840.0 B) TX bytes:840 (840.0 B)

Все отлично работает, несмотря на задержки. Другого интернета нет, так как здание находится далековато от всего, и подключить человеческий интернет стоит слишком дорого, то приходится довольствоваться этим. 3g модем Huawei e150, у кторого принудительно включен режим только модем, с другими модемами придется возможно поплясать.
Подробнее про подключение флешки и размещению пакетов почитать можно тут, про openvpn тут
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.