Files
obsidian/OpenVPN OpenWRT.md
2026-09-24 13:22:58 +05:00

4.8 KiB

apk update apk add luci-app-openvpn openvpn-easy-rsa openvpn-openssl

Создание сертификатов.

easyrsa init-pki easyrsa build-ca nopass easyrsa build-server-full ovpn_server nopass easyrsa build-client-full ovpn_client_1 nopass easyrsa gen-dh В моем случае при выполнении команд сертификаты и ключи сохранились по указанным ниже путям: build-ca - /root/pki/ca.crt, /root/pki/private/ca.key build-server-full - /root/pki/issued/ovpn_server.crt, /root/pki/private/ovpn_server.key build-client-full - /root/pki/issued/ovpn_client_1.crt, /root/pki/private/ovpn_client_1.key gen-dh - /root/pki/dh.pem

Подготовка конфигурации сервера. nano /etc/config/openvpn

config openvpn 'ovpn_home'
        option proto 'udp'
        option cipher 'AES-256-GCM'
        option client_to_client '1'
        option comp_lzo 'no'
        option dev 'tun_ovpn'
        option duplicate_cn '1'
        option enabled '1'
        option keepalive '10 120'
        option mode 'server'
        option mssfix '1450'
        option persist_key '1'
        option persist_tun '1'
        option port '7500'
        option remote_cert_tls 'client'
        option reneg_sec '0'
        option server '10.100.0.0 255.255.255.0'
        option topology 'subnet'
        option verb '3'
        option ca '/root/pki/ca.crt'
        option cert '/root/pki/issued/ovpn_server.crt'
        option dh '/root/pki/dh.pem'
        option key '/root/pki/private/ovpn_server.key'
        list push 'comp-lzo no'
        list push 'redirect-gateway def1'
        list push 'route 192.168.1.0 255.255.255.0'
        option log_append '/etc/openvpn/logs/openvpn.log'

Добавляем новый интерфейс tun_ovpn как неуправляемый Запустить vpn сервер.

Настройки клиента.

client
dev tunrw
remote "ваш внешний ip" 7500
auth-nocache
cipher AES-256-GCM
comp-lzo no
connect-retry 5 60
keepalive 10 120
mssfix 1450
nobind
persist-key
persist-tun
proto udp
pull
remote-cert-tls server
reneg-sec 0
verb 3
# Uncomment below to force Internet traffic over VPN, instead of just accessing devices.
redirect-gateway def1
<ca></ca>
<cert></cert>
<key></key>

Добавляем в разделы содержимое файлов:

<ca></ca>

`cat /root/pki/ca.crt`

<cert></cert>

`cat /root/pki/issued/ovpn_client_1.crt`

<key></key>

`cat /root/pki/private/ovpn_client_1.key`

Создать зону межсетевого экрана (с именем vpn) для новой vpn0 сети. Это разрешит входящие и исходящие соединения, необходимые для VPN туннеля. Измените значение по умолчанию в соответствии с требованиями. Это (пока) не разрешит получить доступ к LAN или WAN сетям, но разрешит клиентам взаимодействовать с сервисами на маршрутизаторе и может разрешить соединения VPN клиентам, если это позволяет конфигурация вашего OpenVPN сервера:

uci set firewall.vpn=zone
uci set firewall.vpn.name=vpn
uci set firewall.vpn.network=vpn0
uci set firewall.vpn.input=ACCEPT
uci set firewall.vpn.forward=REJECT
uci set firewall.vpn.output=ACCEPT
uci set firewall.vpn.masq=1

Если планируется разрешить клиентам подключаться к компьютерам в вашей локальной сети, вам необходимо разрешить перенаправление трафика VPN и LAN зонами межсетевого экрана:

uci set firewall.vpn_forwarding_lan_in=forwarding
uci set firewall.vpn_forwarding_lan_in.src=vpn
uci set firewall.vpn_forwarding_lan_in.dest=lan

Вероятно, понадобится разрешить LAN компьютерам общаться с VPN клиентами:

uci set firewall.vpn_forwarding_lan_out=forwarding
uci set firewall.vpn_forwarding_lan_out.src=lan
uci set firewall.vpn_forwarding_lan_out.dest=vpn

Если необходимо, чтобы ваши VPN клиенты имели доступ к интернету (WAN) через туннель, вы должны разрешить перенаправление трафика межу VPN и WAN зонами межсетевого экрана:

uci set firewall.vpn_forwarding_wan=forwarding
uci set firewall.vpn_forwarding_wan.src=vpn
uci set firewall.vpn_forwarding_wan.dest=wan

Фиксируем изменения:

uci commit network
/etc/init.d/network reload
uci commit firewall
/etc/init.d/firewall reload