Установка и настройка OpenVPN на роутере

Материал из First-Leon
Перейти к навигации Перейти к поиску

Настройка OpenVPN сервера подробна описана в этом мануале.

Есть небольшое отличие конфига для OpenVPN в OpenWRT. Все пути до ключей должными быть полными (а не относительными, как указано в статье).

Установка клиента openvpn:

opkg install openvpn-polarssl

Использование библиотеки polarssl позволит нам установить openvpn на внутреннюю флэш (polarssl с зависимостями занимает меньше места чем openssl). А это в дальнейшем поможет заходить удаленно на роутер даже в случае возникновения проблем с USB флэш.

Копируем по ssh ключи и конфиг на роутер:

scp home-020.crt home-020.key ta.key ca.crt home_client.conf root@ip:~/

Тем, кто работает в windows, возможно, будет удобнее копировать файлы на роутер с помощью программы WinSCP. С помощью этой же программы можно удаленно по ssh создавать, удалять, редактировать и т.д. файлы.

Далее копируем файлы ключей и конфиг в отведенные им места:

mkdir /etc/openvpn/home
mv home-020.* ca.crt ta.key /etc/openvpn/home/
mv home_client.conf /etc/openvpn/

Для проверки всего проделанного можно запустить OpenVPN с консоли так:

openvpn --config /etc/openvpn/home_client.conf

Если соединение устанавливается корректно, то в консоли мы увидим что-то подобное этому:

Wed Aug  6 14:47:23 2014 OpenVPN 2.3.4 mips-openwrt-linux-gnu [SSL (PolarSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Jul 21 2014
Wed Aug  6 14:47:23 2014 library versions: PolarSSL 1.3.7, LZO 2.08
Wed Aug  6 14:47:23 2014 Control Channel Authentication: using '/etc/openvpn/home/ta.key' as a OpenVPN static key file
Wed Aug  6 14:47:23 2014 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Aug  6 14:47:23 2014 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Aug  6 14:47:23 2014 Socket Buffers: R=[163840->131072] S=[163840->131072]
Wed Aug  6 14:47:23 2014 UDPv4 link local: [undef]
Wed Aug  6 14:47:23 2014 UDPv4 link remote: [AF_INET]189.236.214.204:65446
Wed Aug  6 14:47:23 2014 TLS: Initial packet from [AF_INET]189.236.214.204:65446, sid=cc395913 c6610d9a
Wed Aug  6 14:47:24 2014 VERIFY OK: depth=1, C=RU, ST=TOM, L=Tomsk, O=Home, CN=Home CA, emailAddress=first-leon@yandex.ru
Wed Aug  6 14:47:24 2014 VERIFY OK: nsCertType=SERVER
Wed Aug  6 14:47:24 2014 VERIFY OK: depth=0, C=RU, ST=TOM, L=Tomsk, O=Home, CN=home, emailAddress=first-leon@yandex.ru
Wed Aug  6 14:47:28 2014 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Aug  6 14:47:28 2014 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Aug  6 14:47:28 2014 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Aug  6 14:47:28 2014 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Aug  6 14:47:28 2014 Control Channel: TLSv1.0, cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA, 2048 bit RSA
Wed Aug  6 14:47:28 2014 [home] Peer Connection Initiated with [AF_INET]188.226.204.204:65456
Wed Aug  6 14:47:30 2014 SENT CONTROL [home]: 'PUSH_REQUEST' (status=1)
Wed Aug  6 14:47:30 2014 PUSH: Received control message: 'PUSH_REPLY,route-gateway 10.9.8.1,ping 10,ping-restart 120,ifconfig 10.9.8.20 255.255.255.0'
Wed Aug  6 14:47:30 2014 OPTIONS IMPORT: timers and/or timeouts modified
Wed Aug  6 14:47:30 2014 OPTIONS IMPORT: --ifconfig/up options modified
Wed Aug  6 14:47:30 2014 OPTIONS IMPORT: route-related options modified
Wed Aug  6 14:47:30 2014 TUN/TAP device tap0 opened
Wed Aug  6 14:47:30 2014 TUN/TAP TX queue length set to 100
Wed Aug  6 14:47:30 2014 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Aug  6 14:47:30 2014 /sbin/ifconfig tap0 10.9.8.20 netmask 255.255.255.0 mtu 1500 broadcast 10.9.8.255
Wed Aug  6 14:47:32 2014 Initialization Sequence Completed

Теперь нужно настроить автозапуск OpenVPN клиента. Для этого нужно привести файл /etc/config/openvpn к такому виду:

package openvpn
config openvpn custom_config
       option enabled 1
       option config /etc/openvpn/home_client.conf

Включить автозапуск нужно так:

/etc/init.d/openvpn enable

Запустить можно так:

/etc/init.d/openvpn start

Посмотреть логи подключения можно командой logread