DataLife Engine / Поднимаем SSL VPN OpenConnect с Let's Encrypt в Ubuntu 20.04

Поднимаем SSL VPN OpenConnect с Let's Encrypt в Ubuntu 20.04


OpenConnect VPN server (ocserv) — это бесплатная реализация протокола Cisco AnyConnnect VPN с открытым исходным кодом. AnyConnect — это протокол VPN на основе SSL, который позволяет пользователям подключаться к удаленной сети.

Могут оказаться полезными следующие статьи:

Устанавливаем необходимые пакеты:
apt update
apt install ocserv certbot -y

Проверяем статус службы ocserv:
systemctl status ocserv

Получаем сертификат от Let's Encrypt:
certbot certonly --standalone --preferred-challenges http --agree-tos --email [email protected] -d vpn.newsite.com

Проверяем наличие сертификата в директории:
ls -l /etc/letsencrypt/live/

Редактируем основной конфиг ocserv:
vi /etc/ocserv/ocserv.conf
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
tcp-port = 443
udp-port = 443
run-as-user = nobody
run-as-group = daemon
socket-file = /run/ocserv.socket
server-cert = /etc/letsencrypt/live/vpn.newsite.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.newsite.com/privkey.pem
isolate-workers = true
max-clients = 30
max-same-clients = 2
server-stats-reset-time = 604800
keepalive = 300
dpd = 60
mobile-dpd = 300
switch-to-tcp-timeout = 25
try-mtu-discovery = true
cert-user-oid = 0.9.2342.19200300.100.1.1
compression = true
no-compress-limit = 256
tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-RSA:-VERS-SSL3.0:-ARCFOUR-128"
auth-timeout = 240
idle-timeout = 1200
mobile-idle-timeout = 1800
min-reauth-time = 300
max-ban-score = 80
ban-reset-time = 300
cookie-timeout = 300
deny-roaming = false
rekey-time = 172800
rekey-method = ssl
use-occtl = true
pid-file = /run/ocserv.pid
device = vpns
predictable-ips = true
default-domain = newsite.com
ipv4-network = 192.168.100.0
ipv4-netmask = 255.255.255.224
tunnel-all-dns = true
dns = 8.8.8.8
dns = 1.1.1.1
ping-leases = false
route = default
cisco-client-compat = true
dtls-legacy = true

Создадим учетную запись для пользователя user1:
ocpasswd -c /etc/ocserv/ocpasswd user1

Включаем пересылку пакетов между интерфейсами:
sysctl net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf

Настроим трансляцию адресов на основе источника SNAT:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.0/27 -j SNAT --to 1.2.3.4

Проверяем изменения на наличие ошибок:
ocserv -t

Перезапускаем службу ocserv:
systemctl restart ocserv
6-05-2021, 20:06
Вернуться назад