OpenVPN - OpenWRT

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
  • 18108
Поддержать автора


Telegram-чат istarik

Задать вопрос по статье
Telegram-канал istarik

Известит Вас о новых публикациях






Комментарии (8)

0
Скажите пожалуйста, если пакет openvpn уже не достпуне для openwrt, можно ли найти аналог? Прекрасный ман, хотелось бы использовать именно его…

Заранее благодарен!
0
Аналогов не знаю, поставить «чужой» пакет не удастся так как не совпадут версии ядра.
А почему пакет не доступен, может прошить рабочий опенврт?
0
* opkg_install_cmd: Cannot install package openvpn.

Пришлось устанавливать openvpnssl, как-то так, — по итогу установка ушла немного в сторону, чем написано в мануале… ругалось на отсутствие /dev/tun (пришлось руками прописывать и поднимать туннель) и вот сейчас мучаюсь с настройкой, выбрасывает ошибки при соединении…

Статья просто отличная (редко, когда встречаю настолько лаконично и емко описанный технический процесс ;)), жалко просто если она потеряла свою актуальность из-за ребят, которые решили закончить поддержку пакета…

Ко всему, сейчас появился интерфейс openvpn в люсе, может, с этим связана недоступность пакета…
0
немного ошибся, вот, что установил:
0
Для /dev/tun нужен драйер kmod-tun, как вы без него настроили?
Какая версия врт?

Кстати, может у Вас места не хватает?
0
как-то так настроил, завтра буду разбираться что не так… )))
openwrt 15.05, но буду шить себе ниже, т.к. есть глюки с некоторыми программами…
Места у меня завались: 3 ГБ только своп ))) на руте 100 МБ — для него, думаю, выше крыши
0
Для 15.05 вот так opkg install openvpn-openssl openvpn-easy-rsa устанавливается.
Можете поставить 12.09 отсюда.
0
А ничего, что устройство совсем другое (у меня 1043)?! Да, так и устанавливал openvpn, и почему-то ругался на /dev/tun, — Вы пишете, что нужен kmod-tun, но в мануале ни слова о нем не сказано, он отдельно ставится или вместе с openvpn-openssl?! Благодарен за комментарии и помощь!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.