Самая адекватная статья:
Set up OpenConnect VPN Server (ocserv) on Ubuntu 16.04/18.04 with Let’s Encrypt
Вариант с самоподписанным сертификатом
--request-ip option to explicitly request a specific IPv4 addresses
How to Configure a Built-in VPN Client for Linux
Pseudo-Bridge setup with Proxy ARP
Вариант с псевдомостом
Настройка OCServ на CentOS 7 в качестве псевдомоста с использованием прокси ARP
Пример подготовки сертификатов
Recipes for Openconnect VPN
Install OpenConnect Server on Ubuntu 16.04 (самоподписанный сертификат)
Настройка OpenConnect VPN Server (ocserv) на Ubuntu 16.04 / 17.10 с Let’s Encrypt
Настройка аутентификации по сертификату в OpenConnect VPN Server (ocserv)
Use TLS1.3 with Ocserv anyconnect on Debian
Install Cisco anyconnect VPN on Debian 9 with SSL ready
Совместимый с CISCO AnyClient VPN сервер на Linux
Бесплатный аналог AnyConnect VPN Server
Инсталляция и настройка клиента Cisco VPN на Windows 10
Download latest Cisco AnyConnect Mobility Client
Install OpenConnect Server on Ubuntu 16.04
Клиент Windows 10:
After installing the GUI in Windows 10 ...
Windows 10 - invalid routes
Ссылка на рабочий клиент 1.51 !!! (не старше)
Установка с картинками
# sudo apt update
# sudo apt upgrade
# sudo apt install mc
# adduser user
# usermod -aG sudo user
# su user
$ cd ~
$ mkdir ~/.ssh
$ cd ~/.ssh
Скачать и использовать для входа /home/user/.ssh/id_rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/.ssh/id_rsa.pub
$ exit
# nano /etc/ssh/sshd_config
Проверить:
PasswordAuthentication no
.....
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Сохранить.
$ sudo systemctl reload sshd
После проверки входа и sudo
Отключть вход root по ssh
$ sudo nano /etc/ssh/sshd_config
Исправить:
PermitRootLogin no
Сохранить.
$ sudo systemctl reload sshd
# отключим ipv6
$ sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
$ sudo sysctl -p
=========================================================
#Еще добавим nat (если нужна маршрутизация интернет-трафика) :
# Обратить внимание что бы была одна сеть !!!
$ sudo nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
exit 0
Сохранить.
$ sudo chmod +x /etc/rc.local
$ sudo nano /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
Сохранить.
$ sudo chmod +x /etc/rc.local
$ sudo systemctl enable rc-local
$ sudo systemctl start rc-local
$ sudo systemctl status rc-local | head -n5
#$ sudo reboot
$ sudo iptables -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.10.10.0/24 anywhere
=========================================================
$ sudo apt install ocserv
$ sudo systemctl status ocserv
# Ниже закомментировано для 18.04
#$ sudo apt install software-properties-common
#$ sudo add-apt-repository ppa:certbot/certbot
#$ sudo apt update
$ sudo apt install certbot
$ certbot --version
certbot 0.31.0
$ sudo apt install apache2
$ sudo nano /etc/apache2/sites-available/vpn.example.com.conf
<VirtualHost *:80>
ServerName vpn.example.com
DocumentRoot /var/www/vpn.example.com
</VirtualHost>
Сохранить.
$ sudo mkdir /var/www/vpn.example.com
$ sudo chown www-data:www-data /var/www/vpn.example.com -R
$ sudo a2ensite vpn.example.com
$ sudo systemctl reload apache2
$ sudo certbot certonly --webroot --agree-tos --email your-email-address -d vpn.example.com -w /var/www/vpn.example.com
$ sudo nano /etc/ocserv/ocserv.conf
Изменить:
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem
ca-cert = /etc/letsencrypt/live/vpn.example.com/chain.pem
max-clients = 16
max-same-clients = 0
tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1"
try-mtu-discovery = true
default-domain = vpn.example.com
ipv4-network = 10.10.10.0
ipv4-netmask = 255.255.255.0
tunnel-all-dns = true
dns = 1.1.1.1
route = default
#no-route = 192.168.5.0/255.255.255.0
Сохранить.
$ sudo systemctl restart ocserv
$ sudo cp /lib/systemd/system/ocserv.service /etc/systemd/system/ocserv.service
$ sudo nano /etc/systemd/system/ocserv.service
[Unit]
Description=OpenConnect SSL VPN server
Documentation=man:ocserv(8)
After=network-online.target
#Requires=ocserv.socket
[Service]
PrivateTmp=true
PIDFile=/var/run/ocserv.pid
ExecStart=/usr/sbin/ocserv --foreground --pid-file /var/run/ocserv.pid --config /etc/ocserv/ocserv.conf
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
#Also=ocserv.socket
Сохранить.
$ sudo systemctl daemon-reload
$ sudo systemctl stop ocserv.socket
$ sudo systemctl disable ocserv.socket
$ sudo systemctl restart ocserv.service
$ systemctl status ocserv
$ sudo ocpasswd -c /etc/ocserv/ocpasswd username
Можно проверерять вход с клиента
На клиенте:
$ sudo apt install openconnect
$ sudo apt install net-tools
$ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 enp0s3
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s3
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
$ sudo openconnect -b vpn.example.com:443
$ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default 0.0.0.0 0.0.0.0 U 0 0 0 tun0
default _gateway 0.0.0.0 UG 100 0 0 enp0s3
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s3
XXX.XXX.XXX.XXX _gateway 255.255.255.255 UGH 0 0 0 enp0s3
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
user@ud1804:~$ wget -O - -q icanhazip.com
XXX.XXX.XXX.XXX
Set up OpenConnect VPN Server (ocserv) on Ubuntu 16.04/18.04 with Let’s Encrypt
Вариант с самоподписанным сертификатом
--request-ip option to explicitly request a specific IPv4 addresses
How to Configure a Built-in VPN Client for Linux
Pseudo-Bridge setup with Proxy ARP
Вариант с псевдомостом
Настройка OCServ на CentOS 7 в качестве псевдомоста с использованием прокси ARP
Пример подготовки сертификатов
Recipes for Openconnect VPN
Install OpenConnect Server on Ubuntu 16.04 (самоподписанный сертификат)
Настройка OpenConnect VPN Server (ocserv) на Ubuntu 16.04 / 17.10 с Let’s Encrypt
Настройка аутентификации по сертификату в OpenConnect VPN Server (ocserv)
Use TLS1.3 with Ocserv anyconnect on Debian
Install Cisco anyconnect VPN on Debian 9 with SSL ready
Совместимый с CISCO AnyClient VPN сервер на Linux
Бесплатный аналог AnyConnect VPN Server
Инсталляция и настройка клиента Cisco VPN на Windows 10
Download latest Cisco AnyConnect Mobility Client
Install OpenConnect Server on Ubuntu 16.04
Клиент Windows 10:
After installing the GUI in Windows 10 ...
Windows 10 - invalid routes
Ссылка на рабочий клиент 1.51 !!! (не старше)
Установка с картинками
# sudo apt update
# sudo apt upgrade
# sudo apt install mc
# adduser user
# usermod -aG sudo user
# su user
$ cd ~
$ mkdir ~/.ssh
$ cd ~/.ssh
Скачать и использовать для входа /home/user/.ssh/id_rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/.ssh/id_rsa.pub
$ exit
# nano /etc/ssh/sshd_config
Проверить:
PasswordAuthentication no
.....
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Сохранить.
$ sudo systemctl reload sshd
После проверки входа и sudo
Отключть вход root по ssh
$ sudo nano /etc/ssh/sshd_config
Исправить:
PermitRootLogin no
Сохранить.
$ sudo systemctl reload sshd
# отключим ipv6
$ sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
$ sudo sysctl -p
=========================================================
#Еще добавим nat (если нужна маршрутизация интернет-трафика) :
# Обратить внимание что бы была одна сеть !!!
$ sudo nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
exit 0
Сохранить.
$ sudo chmod +x /etc/rc.local
$ sudo nano /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
Сохранить.
$ sudo chmod +x /etc/rc.local
$ sudo systemctl enable rc-local
$ sudo systemctl start rc-local
$ sudo systemctl status rc-local | head -n5
#$ sudo reboot
$ sudo iptables -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.10.10.0/24 anywhere
=========================================================
$ sudo apt install ocserv
$ sudo systemctl status ocserv
# Ниже закомментировано для 18.04
#$ sudo apt install software-properties-common
#$ sudo add-apt-repository ppa:certbot/certbot
#$ sudo apt update
$ sudo apt install certbot
$ certbot --version
certbot 0.31.0
$ sudo apt install apache2
$ sudo nano /etc/apache2/sites-available/vpn.example.com.conf
<VirtualHost *:80>
ServerName vpn.example.com
DocumentRoot /var/www/vpn.example.com
</VirtualHost>
Сохранить.
$ sudo mkdir /var/www/vpn.example.com
$ sudo chown www-data:www-data /var/www/vpn.example.com -R
$ sudo a2ensite vpn.example.com
$ sudo systemctl reload apache2
$ sudo certbot certonly --webroot --agree-tos --email your-email-address -d vpn.example.com -w /var/www/vpn.example.com
$ sudo nano /etc/ocserv/ocserv.conf
Изменить:
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem
ca-cert = /etc/letsencrypt/live/vpn.example.com/chain.pem
max-clients = 16
max-same-clients = 0
tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1"
try-mtu-discovery = true
default-domain = vpn.example.com
ipv4-network = 10.10.10.0
ipv4-netmask = 255.255.255.0
tunnel-all-dns = true
dns = 1.1.1.1
route = default
#no-route = 192.168.5.0/255.255.255.0
Сохранить.
$ sudo systemctl restart ocserv
$ sudo cp /lib/systemd/system/ocserv.service /etc/systemd/system/ocserv.service
$ sudo nano /etc/systemd/system/ocserv.service
[Unit]
Description=OpenConnect SSL VPN server
Documentation=man:ocserv(8)
After=network-online.target
#Requires=ocserv.socket
[Service]
PrivateTmp=true
PIDFile=/var/run/ocserv.pid
ExecStart=/usr/sbin/ocserv --foreground --pid-file /var/run/ocserv.pid --config /etc/ocserv/ocserv.conf
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
#Also=ocserv.socket
Сохранить.
$ sudo systemctl daemon-reload
$ sudo systemctl stop ocserv.socket
$ sudo systemctl disable ocserv.socket
$ sudo systemctl restart ocserv.service
$ systemctl status ocserv
$ sudo ocpasswd -c /etc/ocserv/ocpasswd username
Можно проверерять вход с клиента
На клиенте:
$ sudo apt install openconnect
$ sudo apt install net-tools
$ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 enp0s3
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s3
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
$ sudo openconnect -b vpn.example.com:443
$ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default 0.0.0.0 0.0.0.0 U 0 0 0 tun0
default _gateway 0.0.0.0 UG 100 0 0 enp0s3
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s3
XXX.XXX.XXX.XXX _gateway 255.255.255.255 UGH 0 0 0 enp0s3
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
user@ud1804:~$ wget -O - -q icanhazip.com
XXX.XXX.XXX.XXX
Комментариев нет:
Отправить комментарий