Совместная работа OpenConnect и OpenVPN в среде Windows
Импорт клиентского сертификата windows
Должно быть сделано это продолжение.
Для пользователя server:
$ cd /etc/ocserv/ssl/
$ sudo ocpasswd -c /etc/ocserv/ocpasswd server
Enter password:
Re-enter password:
Запустите следующую команду для создания закрытого ключа клиента server
$ sudo certtool --generate-privkey --outfile server-privkey.pem
$ sudo nano server.cfg
Скопировать ниже, uid = "server", пользователя созданного выше:
# X.509 Certificate options
# The organization of the subject.
organization = "Example Org"
# The common name of the certificate owner.
cn = "server"
# A user id of the certificate owner.
uid = "server"
# In how many days, counting from today, this certificate will expire. Use -1 if there is no expiration date.
expiration_days = 3650
# Whether this certificate will be used for a TLS server
tls_www_client
# Whether this certificate will be used to sign data
signing_key
# Whether this certificate will be used to encrypt data (needed
# in TLS RSA ciphersuites). Note that it is preferred to use different
# keys for encryption and signing.
encryption_key
Сохранить.
Запустите следующую команду для создания сертификата клиента, который будет подписан закрытым ключом CA.
$ sudo certtool --generate-certificate --load-privkey server-privkey.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-privkey.pem --template server.cfg --outfile server-cert.pem
Объедините закрытый ключ клиента и сертификат в файле PKCS # 12, который защищен PIN-кодом.
$ sudo certtool --to-p12 --load-privkey server-privkey.pem --load-certificate server-cert.pem --pkcs-cipher aes-256 --outfile server.p12 --outder
Generating a PKCS #12 structure...
Loading private key list...
Loaded 1 private keys.
Enter a name for the key: server
Enter password:
Confirm password:
$ sudo nano /etc/ocserv/ocserv.conf
Изменить:
config-per-user = /etc/ocserv/config-per-user/
Сохранить.
$ sudo mkdir /etc/ocserv/config-per-user/
$ sudo nano /etc/ocserv/config-per-user/server
explicit-ipv4=10.10.10.2
Сохранить
$ sudo systemctl restart ocserv
Подключение клиента на Ubuntu
Проверка
$ sudo apt install openconnect
Положить сертификат /root/server.p12
$ sudo openconnect -b vpn.example.com -c /root/server.p12
$ sudo /bin/bash -c '/bin/echo -n password | /usr/sbin/openconnect vpn.example.com -c /root/server.p12'
$ sudo nano /etc/systemd/system/openconnect.service
Вставить:
[Unit]
Description=OpenConnect VPN Client
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
#ExecStart=/bin/bash -c '/bin/echo -n password | /usr/sbin/openconnect vpn.example.com -u username --passwd-on-stdin'
ExecStart=/bin/bash -c '/bin/echo -n password | /usr/sbin/openconnect vpn.example.com -c /root/server.p12'
ExecStop=/usr/bin/pkill openconnect
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
Сохранить.
$ sudo systemctl enable openconnect.service
$ sudo systemctl start openconnect.service
Если что то менялось:
$ sudo systemctl daemon-reload
$ sudo systemctl start openconnect.service
Под windows сделать reconnect (если перезагрузка сервера) через 2 с.
start.bat
:again
"c:\Program Files (x86)\OpenConnect-GUI\openconnect.exe" vpn.com -c client.p12 --key-password=password --reconnect-timeout 2
goto again
e:\ubuntu\Openconnect>openvpn --show-adapters
Available TAP-WIN32 adapters [name, GUID]:
'Ethernet 2' {500EBB39-0CC1-4CBB-A1AA-7DECD679C5D5}
'Ethernet 3' {879AEEC2-87B6-4F0B-BFC6-78046DC6A513}
'Ethernet 4' {D64B1550-D033-4810-8F13-03B18992A20C}
'Ethernet 5' {CA18A6B2-4FAF-4247-9A12-17080869463C}
'Ethernet 6' {361E1C54-5E8F-4450-AD13-6FCAF8E9100A}
'Ethernet 7' {D0C959D0-694C-4984-96A9-A6A8869052A8}
"C:\Program Files\TAP-Windows\bin\addtap.bat"
Для совместной работы OpenVPN c OpenConnect через gui совет наделать много tap, (по числу соединений), для OpenVPN с конца, указывая в конфигах:
;dev-node MyTap
dev-node 'Ethernet 7'
Для OpenConnect tap от 'Ethernet 2' и далее.
Комментариев нет:
Отправить комментарий