127 lines
4.8 KiB
Markdown
127 lines
4.8 KiB
Markdown
`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
|
||
```
|