`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 ``` Добавляем в разделы содержимое файлов: ``` `cat /root/pki/ca.crt` `cat /root/pki/issued/ovpn_client_1.crt` `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 ```