From 2097ecce83096c39f82500e6b496f1709a488866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D0=B5=D0=BC=D0=B8=D0=B9=20=D0=9A=D1=80?= =?UTF-8?q?=D0=B0=D1=81=D0=B8=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2?= Date: Tue, 27 Jun 2023 16:13:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB(=D0=B0)=20?= =?UTF-8?q?'Openconnect=20server=20(ocserv)=20=D0=B0=D0=B2=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D1=81=D0=B5=D1=80=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=82?= =?UTF-8?q?=D1=83=20FreeIPA'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4%D0%B8%D0%BA%D0%B0%D1%82%D1%83-FreeIPA.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 Openconnect-server-%28ocserv%29-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%83-FreeIPA.md diff --git a/Openconnect-server-%28ocserv%29-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%83-FreeIPA.md b/Openconnect-server-%28ocserv%29-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%83-FreeIPA.md new file mode 100644 index 0000000..43461d5 --- /dev/null +++ b/Openconnect-server-%28ocserv%29-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D1%83-FreeIPA.md @@ -0,0 +1,138 @@ +**Уточнения:** + +ВМ — виртуальная машина. + +vim — текстовый редактор, в командах используется именно он, можно использовать любой удобный вам. + +username — имя учётной записи во FreeIPA. + +host — FQDN ВМ на которой производится настройка службы Ocserv. + +REALM — основная доменная область сервера FreeIPA. + +vpn.example.ru — внешнее доменное имя по которому будут подключаться vpn-клиенты. + +example-name — название соединения. + +**Подготовка к установке:** + +Перед настройкой Openconnect-сервера следует выпустить пользователю сертификат через `FreeIPA`. + +Выпускаем закрытый ключ и генерируем запрос на пользовательский сертификат (CSR): + +Генерируем CSR: +``` +openssl req -new -newkey rsa:2048 -nodes -keyout %username%.key -out %username%.csr +``` + +При генерации закрытого ключа, на шаге генерации CN, указываем имя пользователя: + +`Common Name (eg, your name or your server's hostname) []:%username%` + +Выпускаем через FreeIPA сертификат и сохраняем его себе: +``` +kinit %username% +``` +``` +ipa cert-request --principal=%username% %username%.csr --add && ipa user-show %username% --out=%username%.pem +``` + +Объединяем закрытый ключ + сертификат в pfx сертификат с установкой пароля: +``` +openssl pkcs12 -export -out %username%.pfx -inkey %username%.key -in %username%.pem +``` + +**Перенастройка Openconnect-сервера:** + +!Если ранее этого не делали, то выпускаем новый сертификат для VPN-сервера openconnect в FreeIPA и добавить в него корневой сертификат, создав связку (для этого пользователь должен обладать необходимыми правами в FreeIPA): +``` +openssl req -new -newkey rsa:2048 -nodes -keyout %host%.key -out %host%.csr +sudo ipa cert-request --principal=OCSERV/%host%@%REALM% %host%.csr --add +sudo ipa service-show OCSERV/%host%@%REALM% --out=%host%.pem +``` + + +Добавляем в сертификат VPN-сервера корневой сертификат(создаём цепочку): +``` +ipa cert-show 1 --out=ca.pem && cat ca.pem >> %host%.pem +``` + +Вносим изменения в файл конфигурации ocserv: +``` +sudo vim /etc/ocserv/ocserv.conf && sudo systemctl restart ocserv +``` + +Отредактируем данные записи, указав путь, до нового сертификата +``` +auth = "certificate" + + +ca-cert = /etc/pki/ocserv/cacerts/%host%.pem + +cert-user-oid = 2.5.4.3 + + +cisco-client-compat = true +``` + +**Настройка профиля Cisco Anyconnect на Windows/Mac/Linux:** + +Импортируем подготовленный пользовательский PFX сертификат в личное хранилище сертификатов ОС и создаём профиль подключения с расширением `.xml`: + +Для MAC в каталоге: +`/opt/cisco/anyconnect/profile` + + +Для Windows в каталоге: +`C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Profile` + + +Для Linux в каталоге: +`/opt/cisco/anyconnect/profile` + + +Следующего содержания: +``` + + + + + false + false + false + false + IPSec + false + AllowRemoteUsers + pinAllowed + false + + false + + + ISSUER-O + %REALM% + + + + + + localhost + + + + + + %example-name% + %vpn.example.ru% + + + +``` + +**Подключение через openconnect:** + +При использовании VPN-клиента openconnect требуется указать пусть до PFX сертификата в пунктах сертификата и ключа. Пример подключения к openconnect-серверу(ocserv) через консоль будет выглядеть так: +``` +sudo openconnect%vpn.example.ru% -u %username% -k %username%.pfx -c %username%.pfx +``` \ No newline at end of file