OpenVPN - OpenWRT

Установка и настройка.
Работа с OpenVPN на «большом» компьютере описана здесь...
Устанавливаем:
opkg update
opkg install openvpn openvpn-easy-rsa
Для Chaos Calmer 15.05.
opkg install openvpn-openssl openvpn-easy-rsa
Переходим в папку /etc/easy-rsa для создания ключей:
cd /etc/easy-rsa
Очищаем от старых ключей (если таковые были):
clean-all
Откроем файл с переменными для создания ключей:
nano /etc/easy-rsa/vars
В самом конце перечислены значения, которые будут внесены в сертификат. Можно всё оставить как есть (на работу это не влияет), а можно вписать свои, например вот так:
export KEY_COUNTRY="RU"
export KEY_PROVINCE="RU"
export KEY_CITY="SPb"
export KEY_ORG="stD"
export KEY_EMAIL="istarik@mail.ru"
Создаём:
Сертификат, на все вопросы отвечайте нажатием Enter:
build-ca
Файл с параметрами протокола Диффи-Хеллмана, это займёт пару минут:
build-dh
Ключи для сервера, надо будет несколько раз нажать Enter и два раза y:
build-key-server server
Ключи для клиента:
build-key client1
Для каждого клиента надо создавать свои ключи. Поэтому в зависимости от количества планируемых клиентов создайте необходимое число ключей.
Для второго клиента:
build-key client2
И так далее… Если в дальнейшем появятся ещё клиенты, то просто выполните эту команду.
Если что-то нажали не так, то сделайте clean-all и создайте ключи заново.
TLS-ключ:
openvpn --genkey --secret /etc/openvpn/ta.key
Переходим в папку с создаными ключами:
cd /etc/easy-rsa/keys
И копируем ключи для сервера в папку /etc/openvpn/
cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn/
У Вас может быть dh2048.pem или другой если меняли файл vars.
Бекапим дефолтный конфиг openvpn:
mv /etc/config/openvpn /etc/config/openvpn.bak
Создаём свой:
nano /etc/config/openvpn
И вносим в него следующие строки…
package openvpn
config openvpn custom_config
# Set to 1 to enable this instance:
option enable 1
# Include OpenVPN configuration
option config /etc/openvpn/server.conf
Сохраняем.
Теперь перейдём в папку /etc/openvpn
cd /etc/openvpn
И создадим в ней конфиг сервера server.conf
nano /etc/openvpn/server.conf
Наполним его этим:
port 1194
proto udp
dev tun
topology subnet
server 10.25.0.0 255.255.255.0
keepalive 10 30
comp-lzo
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
tls-auth /etc/openvpn/ta.key 0
log-append /var/log/openvpn.log
#status /var/log/openvpn.status
#client-to-client
verb 3
Сервер OpenVPN получит адрес 10.25.0.1, а клиенты будут получать адреса 10.25.0.2 и т.д.
Описание команд и параметров.
Откроем конфиг файрвола:
nano /etc/config/firewall
И после опции:
config include
option path /etc/firewall.user
Добавим правило:
config 'rule'
option 'target' 'ACCEPT'
option 'name' 'VPN'
option 'src' 'wan'
option 'proto' 'udp'
option 'dest_port' '1194'
Получится вот так:
...
# include a file with users custom iptables rules
config include
option path /etc/firewall.user
config 'rule'
option 'target' 'ACCEPT'
option 'name' 'VPN'
option 'src' 'wan'
option 'proto' 'udp'
option 'dest_port' '1194'
...
Сохраняем — закрываем...
Открываем файл /etc/firewall.user
nano /etc/firewall.user
И дополняем его этим:
iptables -t nat -A prerouting_wan -p udp --dport 1194 -j ACCEPT
iptables -A input_wan -p udp --dport 1194 -j ACCEPT
iptables -I INPUT -i tun+ -j ACCEPT
iptables -I FORWARD -i tun+ -j ACCEPT
iptables -I OUTPUT -o tun+ -j ACCEPT
iptables -I FORWARD -o tun+ -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.25.0.0/24 -o br-lan -j MASQUERADE
Где br-lan — интерфей смотрящий в интернет. Проверить можно командой ifconfig
Перегрузите роутер.
reboot
Запустим сервер:
/etc/init.d/openvpn restart
Ничего не должно отображаться.
Смотрим лог:
tail -f /var/log/openvpn.log
Должна предстать такая картина:

Работает.
Ещё вот так можно посмотреть…
netstat -rn

Осталось дело за клиентами.
Настройку клиентов для различных ОС я описал в статье про VPN на большом компьютере, поэтому не стал дублировать эту инфу здесь и предлагаю вам перейти сюда.
Названия файлов ключей для клиентов совпадают в обоих статьях, так что никакого дискомфорта Вы не испытаете...)))

- +239
- stD
18108
Поддержать автора
Комментарии (8)
Заранее благодарен!
А почему пакет не доступен, может прошить рабочий опенврт?
Пришлось устанавливать openvpnssl, как-то так, — по итогу установка ушла немного в сторону, чем написано в мануале… ругалось на отсутствие /dev/tun (пришлось руками прописывать и поднимать туннель) и вот сейчас мучаюсь с настройкой, выбрасывает ошибки при соединении…
Статья просто отличная (редко, когда встречаю настолько лаконично и емко описанный технический процесс ;)), жалко просто если она потеряла свою актуальность из-за ребят, которые решили закончить поддержку пакета…
Ко всему, сейчас появился интерфейс openvpn в люсе, может, с этим связана недоступность пакета…
Какая версия врт?
Кстати, может у Вас места не хватает?
openwrt 15.05, но буду шить себе ниже, т.к. есть глюки с некоторыми программами…
Места у меня завались: 3 ГБ только своп ))) на руте 100 МБ — для него, думаю, выше крыши
Можете поставить 12.09 отсюда.