GrabDuck

VPN "по-домашнему". Часть 3 – настройка OpenWRT

:

ОС OpenWRT – это прекрасная замена для фирменной прошивки вашего WiFi-роутера, если он есть в списке поддерживаемого оборудования . Поддерживаются практически все популярные модели роутеров, но если вашего среди них нет – попытайте счастья с DD-WRT . Это еще один альтернативный firmware, поддерживающий OpenVPN. (Справедливости ради замечу, что по удобству использования и наполению софтом DD-WRT намного внушительнее OpenWRT. Но моего девайса пока нет в списке поддерживаемого им оборудования.)

Установить OpenWRT можно, скачав подходящую прошивку в центре загрузок  и обновив устройство через функционал обновлений вашей фирменной прошивки. Goole может помочь найти подробную статью об обновлении вашего устройства. Важный момент: для каждой версии OpenWRT и каждого устройства есть два файла обновления: одно – для первого обновления с OEM прошивки, второе – для последующих обновлений OpenWRT. Например, для "крайней" версии, основанной на ночных сборках текущего снепшота репозитария проекта, и для роутера TP-Link WR941ND v6, в директории

http://downloads.openwrt.org/snapshots/trunk/
расположены соответствующие файлы
openwrt-ar71xx-generic-tl-wr941nd-v6-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr941nd-v6-squashfs-sysupgrade.bin
Обратите внимание на несколько очень важных деталей:
  • Скорее всего, устанавливая OpenWRT вы лишитесь гарантии на устройство. Поэтому не продолжайте установку, если не готовы остаться с оборудованием один на один.
  • Перед установкой, прочтите все материалы по этой теме на официальном сайте проекта  и официальном Wiki . Подробно остановитесь на установке и базовых операциях (восстановление, возврат на OEM прошивку и т.д.)
  • Сделайте резервную копию вашей прошивки и/или конфигурации.
  • Не обновляйте прошивку по WiFi.
Ну и традиционное в таких случаях заявление: все дальнейшие действия вы совершаете на свой страх и риск.

Итак, допустим, что у вас хватило смелости и терпения установить OpenWRT. Первый сеанс доступа к устройству можно осуществить по telnet.

telnet 192.168.1.1
Сразу же смените пароль .
root@openwrt:~$ passwd
Changing password for root
New password:
Retype password:
Password for root changed by root
root@openwrt:~$
Выйдите из telnet и подсоединитесь по SSH.
ssh root@192.168.1.1
Работа с OpenWRT с командной строки – занятие не из приятных. Я сразу же устанавливаю веб-интерфейс: LuCI.
root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/snapshots.
root@OpenWrt:~# opkg install luci luci-ssl
Installing luci (svn-r9964-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci_svn-r9964-1_ar71xx.ipk.
Installing luci-ssl (svn-r9964-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-ssl_svn-r9964-1_ar71xx.ipk.
Configuring luci.
Configuring luci-ssl.
root@OpenWrt:~# /etc/init.d/uhttpd enable
root@OpenWrt:~# /etc/init.d/uhttpd start
Если все прошло удачно, теперь по адресу https://192.168.1.1 вы сможете выполнить первичную настройку вашего роутера.

Теперь давайте настроим доступ к VPN. В предыдущем посте вы получили доступ к странице скачивания настроек соединения и клиентов VPN (https://droplet-ip:943/?src=connect). Вернитесь на нее под пользователем vpn_home и скачайте файл, обозначенный как user-locked profile. Разместите его в директории /etc/openvpn вашего роутера командой вроде

scp Downloads/client.ovpn root@192.168.1.1:/etc/openvpn/
В файле настроек нужно будет сделать одно изменение: добавить реквизиты доступа OpenVPN для автоматического соединения. В OpenWRT установлен редактор VI. Найдите в файле строку auth-user-pass и измените ее на такую:
auth-user-pass /etc/openvpn/creds.txt

Сохраните файл и создайте рядом с ним другой, под названием creds.txt, содержащий имя пользователя vpn_home и его пароль – каждое значение в отдельной строке. Теперь откройте файл /etc/config/openvpn, найдите в нем строку, начинающуюся option config и приведите в следующий вид:

option config /etc/openvpn/client.ovpn

Создайте интерфейс для соединения по VPN – в файле /etc/config/network добавьте такую секцию:

config interface 'VPN_client'
option proto 'none'
option ifname 'tun0'

Чтобы трафик вашей локальной сети направлялся в VPN-туннель, добавьте в файл /etc/config/firewall такие строки:

# NAT through VPN
config zone                      
option name 'VPN_client'    
option masq '1'              
option input 'ACCEPT'        
option forward 'REJECT'      
option output 'ACCEPT'      
option network 'VPN_client'
config forwarding
option dest 'VPN_client'
option src 'lan'

После этого можно запускать openvpn:

root@OpenWrt:/etc/openvpn# /etc/init.d/openvpn start
root@OpenWrt:/etc/openvpn# /etc/init.d/openvpn enable
Признаком успешного соединения будет появление в системе сетевого интерфейса tun0. Проверить, что теперь ваш IP-адрес совпадает с адресом дроплета, можно, сделав запрос "my ip" в Google.

В случае возникновения ошибок, почитайте сообщения в файле /var/log/openvpnas.log на сервере OpenVPN или опробуйте выполнить соединение вручную командой

root@OpenWrt:~# openvpn /etc/openvpn/client.ovpn
Если все прошло успешно, то теперь у вас есть отличный VPN-туннель, который может очень пригодиться во время командировки в какую-нибудь не очень приветливую страну. Пользуйтесь с умом и не забудьте сделать резервную копию конфигурации OpenWRT. Оставайтесь в безопасности.