Развертывание AnyConnect-совместимого VPN-сервера с проверкой сертификата в CentOS 7

AnyConnect - это решение для удаленного доступа, разработанное Cisco. AnyConnect, хорошо известная своей мобильностью и стабильностью, особенно возможностями DTLS, используется многими компаниями. Мы собираемся использовать версию с открытым исходным кодом ocserv, которая совместима с протоколом.

Мы также собираемся развернуть проверку сертификата. Сервер идентифицирует клиентов, проверяя это, если сертификат клиента выпущен настроенным CA. Это значительно упрощает настройку на клиентах, поскольку нам нужно только импортировать сертификат на клиенте (в большинстве случаев это файл pkcs12 ( .pfxили .p12)), и пароли не требуются. Это также более безопасно, поскольку в Интернете нет паролей.

Давайте начнем.

Предпосылки

  • Недавно созданный сервер CentOS 7 с включенным IPv6
  • Работающий компьютер (может быть сам сервер; хотя не рекомендуется (см. Ниже)), см. Примечание 1
  • Некоторые клиенты с установленным клиентским программным обеспечением AnyConnect (или OpenConnect) см. Примечание 2

Заметки:

  1. Хотя можно (и довольно удобно) делать все на сервере, процесс развертывания состоит из генерации закрытых ключей, используемых для подписи, и из-за соображений безопасности этот процесс должен выполняться на вашем собственном компьютере.

  2. Из-за проблем с лицензированием я не буду предоставлять ссылки для загрузки клиентского программного обеспечения. Найти их для вашего клиента довольно легко. AnyConnect - это приложение в App Store на основных мобильных платформах (iOS, Android, BlackBerry OS (v10 или выше), UWP) соответственно, и простой поиск приведет их к вам. Для платформ ПК некоторые Googling предоставит вам подходящее программное обеспечение.

Установка программного обеспечения на стороне сервера

Машины Vultr CentOS 7 сконфигурированы с репозиторием EPEL. Мы просто устанавливаем ocservс yum:

yum update
yum install ocserv

Нам понадобится сертификат сервера, чтобы все работало. Если у вас есть доменное имя, Let's Encrypt будет самым простым выбором.

yum install certbot
certbot certonly

Выберите «ускорить временный веб-сервер» для аутентификации в ACME CA. Если у вас нет домена, самозаверяющий сертификат будет выдан позже.

Генерация и настройка сертификата

Традиционная PKI довольно неудобна в использовании, поэтому мы будем использовать easyrsaутилиту из проекта OpenVPN. Установите git на свою рабочую машину и клонируйте репозиторий:

git clone https://github.com/OpenVPN/easy-rsa
cd easy-rsa/easyrsa3

Мы построим ЦС и выпустим сертификаты. Сделайте следующее и напишите пароль PEM, который вы где-то установили:

./easyrsa init-pki
./easyrsa build-ca

Хранить pki/private/ca.keyгде-нибудь в безопасности. Утечка, которая сделает вашу инфраструктуру бесполезной.

Если вы решите использовать самозаверяющий сертификат сервера, сделайте следующее:

./easyrsa gen-req server

И введите IP-адрес вашего сервера в качестве общего имени.

./easyrsa sign-req server server

Это подпишет сертификат для сервера. Передача pki/issued/server.crtи pki/ca.crtк /etc/ssl/certsи pki/private/server.keyна /etc/ssl/privateна сервере.

Далее мы создадим клиентские сертификаты. Сделайте следующее:

./easyrsa gen-req client_01
./easyrsa sign-req client client_01

Выберите имя клиента и заполните его в поле общего имени. Запомните парольную фразу!

Далее мы собираемся экспортировать сертификат в формате pkcs12 для использования на мобильных платформах. Делать:

./easyrsa export-p12 client_01

Выберите пароль для экспорта, который вам будет предложено ввести при импорте сертификата на телефон. Перевести pki/private/client_01.p12на свой телефон и импортировать его.

Настройка сервера

Мы заполним информацию о сертификате.

vim /etc/ocserv/ocserv.conf

Найдите server-certраздел и заполните следующее:

# If you use Let's Encrypt
server-cert = /etc/letsencrypt/live/example.com/fullchain.pem
server-key = /etc/letsencrypt/live/example.com/privkey.pem

# If you use self-signed server certificate 
server-cert = /etc/ssl/certs/server.crt
server-key = /etc/ssl/private/server.key

ca-cert = /etc/ssl/certs/ca.crt

Обратите внимание, что если вы используете самозаверяющий сертификат, не забудьте сначала удалить фразу-пароль, openssl rsa -in server.key -out server-new.keyчтобы ocservможно было использовать закрытый ключ.

Найдите authраздел. Включить эту строку:

auth = "certificate"

И закомментируйте все остальные authстроки.

Раскомментируйте эту строку:

cert-user-oid = 2.5.4.3

Найдите ipv6-networkи заполните блок ivv6 вашего сервера. Это блок, от которого сервер будет отдавать в аренду.

ipv6-network = 2001:0db8:0123:4567::/64
ipv6-subnet-prefix = 124 

Установите DNS-серверы.

dns = 8.8.8.8
dns = 8.8.4.4

Включите совместимость с клиентами Cisco.

cisco-client-compat = true

Откройте порты, установленные в tcp-portи udp-portи включите маскарад как для IPv4 и IPv6 в firewalld.

Запустите сервер.

systemctl enable ocserv
systemctl start ocserv

Время теста!

Сервер был успешно настроен. Создайте соединение в вашем клиенте и подключитесь. Если что-то идет не так, используйте эту команду для отладки:

journalctl -fu ocserv

Кроме того, IPv6 должен работать на стороне клиента, если ваше клиентское программное обеспечение поддерживает ipv6, даже если сеть вашего клиента не предоставляет вам адрес. Перейти на этот сайт, чтобы проверить.

Все готово! Наслаждайтесь вашим новым VPN-сервером, совместимым с AnyConnect!

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше