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

Имеется клиент, который пользуется 3G интернетом, соответственно NAT и серый IP адрес. Имеется необходимость туда попадать на сервер терминалов и IP камеры. Я решил сделать подключение к уже имеющемуся серверу OpenVPN. И оттуда прокинуть порты на камеры и сервер. У клиента используется 3G роутер TP-Link
На него залил прошивку 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 тут

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *