Поднимаем SSL VPN OpenConnect с Let's Encrypt в Ubuntu 20.04
Ubuntu 6-05-2021, 20:06 sobir 9 639 0
OpenConnect VPN server (ocserv) — это бесплатная реализация протокола Cisco AnyConnnect VPN с открытым исходным кодом. AnyConnect — это протокол VPN на основе SSL, который позволяет пользователям подключаться к удаленной сети.
Могут оказаться полезными следующие статьи:
- Получаем валидные сертификаты SSL от Let's Encrypt для NGINX
- Настройка файрвола iptables в CentOS 8 / RHEL 8
Устанавливаем необходимые пакеты:
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
Поднимаем VPN сервер OpenConnect (ocserv) в контейнере Docker с аутентификацией пользователей из Microsoft...
ПодробнееПолучаем валидные сертификаты SSL от Let's Encrypt для NGINX с использованием плагина webroot....
ПодробнееНастраиваем обратный прокси сервер NGINX с SSL-терминацией и генерируем бесплатные валидные сертификаты SSL...
ПодробнееСоздаем свой репозиторий образов контейнеров Docker....
ПодробнееСоздание простого сетевого хранилища данных NFS....
ПодробнееНовые комментарии
Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные
К комментариюЦитата: sobir Цитата: FidoNet Спасибо за статью. Остальные статьи что находил
К комментариюЦитата: FidoNet Цитата: sobir Цитата: FidoNet Можт быть дело в
К комментариюЦитата: sobir Цитата: FidoNet Можт быть дело в dnsmasq.service? Ошибка Failed
К комментариюЦитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные
К комментариюМожт быть дело в dnsmasq.service? Ошибка Failed to set DNS configuration: Unit
К комментариюКакой дистрибутив Linux вы часто используете?
Календарь
« Декабрь 2024 » | ||||||
---|---|---|---|---|---|---|
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |