авторизация по логину и паролю для клиентов openvpn? — хабр q&a

Почему использовать openvpn?

Термин “защищенные соединения” относится к OpenVPN. Используйте OpenVPN для маршрутизации всего вашего интернет-трафика через высокошифрованный туннель, если вы не хотите, чтобы ваша интернет-активность отслеживалась (прослушивалась).

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

Основные механизмы и возможности

В данном случае “рукопожатие” защищено с помощью протокола Диффи-Хелманна.

На этом “обычные” функции заканчиваются, и начинается локальная настройка.

Почему python модуль ?

Python C-api Reference загружает только некорректно загруженные библиотеки и работает с Python файлами напрямую.

Безопасность и шифрование

Библиотека Security TLS протокола транспортного уровня (TLS) обеспечивает безопасность и шифрование для OpenVPN. Библиотека PolarSSL может использоваться с последней версией OpenVPN. Протокол Secure Socket Layers (SSLA) улучшен TLS.

Симметричная и асимметричная криптография поддерживается OpenSSL.

Во втором сценарии передача данных не может начаться до тех пор, пока на каждом узле сети не будет установлен один и тот же секретный ключ. Это поднимает вопрос о безопасной передаче ключей по незащищенной сети, такой как Интернет.

У каждого участника обмена данными в первом сценарии есть два ключа: секретный ключ и открытый ключ.

Данные шифруются с помощью открытого ключа, а расшифровываются с помощью закрытого ключа. Математика, лежащая в основе шифрования, может быть довольно сложной. В SSL/TLS используется только открытый ключ.

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

Для безопасной передачи данных необходимо идентифицировать стороны, участвующие в обмене данными. В противном случае вы рискуете стать объектом атаки “человек посередине” (MITM). При такой атаке злоумышленник устанавливает соединение с каналом передачи данных и прослушивает его. Он может изменить или удалить данные.

В T LS используется асимметричная криптография и инфраструктура открытых ключей (PKI).

Мы должны понимать, что информация может быть расшифрована без закрытого ключа. Только время покажет, как будут расшифрованы данные, но это не потребует больших вычислительных мощностей.

Однако размер ключа не полностью обеспечивает безопасность данных. Операционные системы и прикладное программное обеспечение, в частности, имеют недостатки в безопасности.

Шифрование данных приводит к увеличению объема трафика и замедлению обмена данными. Длина ключа шифрования будет тем меньше, чем длиннее ключ.

Безопасность сетей/packet filtering

OpenVPN имеет два типичных режима работы, поскольку маршрутизирует трафик процессора. Межинтерфейсная маршрутизация ядра – это второй режим, который представляет собой маршрутизацию внутри сервера OpenVPN. Любой системный фильтр (pf), поддерживаемый на хосте и т.д., отвечает за коммутацию пакетов между клиентами/сетями в первом сценарии.

Мало кто знает, что OpenVPN имеет пакетный фильтр для включения или отключения пользовательских соединений. Вы все правильно прочитали. Собственный пакетный фильтр является частью OpenVPN. В 2022 году возможность фильтрации трафика уже была заложена.

[CLIENTS DROP|ACCEPT]
{ |-}common_name1
{ |-}common_name2
. . .
[SUBNETS DROP|ACCEPT]
{ |-}subnet1
{ |-}subnet2
. . .
[END]

Включение перенаправления и iptables

Для создания файла vpn_firewall.sh

vim /root/vpn_firewall.sh


B этот файл скопируйте следующее содержимое, отредактировав его под свои нужды. Обратите внимание на:

  • PRIVATE=10.8.0.0.0/24 – измените подсеть в соответствии с вашими настройками. Если вы следовали этим инструкциям, вам не нужно ничего менять.
  • Имя интерфейса – eth0, у вас может быть другое значение, измените его на ваше значение там, где оно появляется
  • I iptables -A INPUT -p tcp –dport 22 -j ACCEPT дает вам доступ к порту 22, чтобы вы могли подключиться через SSH, если у вас есть собственный порт, не забудьте отредактировать его, так как вы не сможете подключиться к вашему серверу по сети после использования этого файла, добавьте достаточно строк с нужными вам портами

Генерация файла диффи-хелмана

Вы можете сгенерировать ключи Диффи-Хеллмана с помощью приведенной ниже команды:

$ cd /home/vpnoperator/easy-rsa-master/easyrsa3
$ ./easyrsa gen-dh

Выполнение команды gen-dh занимает некоторое время. Когда она будет выполнена, появится сообщение:

DH parameters of size 2048 created at /home/vpnoperator/easy-rsa-master/easyrsa3/pki/dh.pem

Скопируйте файл/home/vpnoperator/easy-rsa-master/easyrsa3/pki/dh.pem в каталог /etc/openvpn/ :

# cp /home/vpnoperator/easy-rsa-master/easyrsa3/pki/dh.pem /etc/openvpn

Генерируем ca сертификат и ca ключ

Внесите любые изменения в файл “vars”, открыв его.

cd /root/easy-rsa
cp vars{,.orig}

Вы можете изменить значение для easy-rsa, сделав это.

vim ./vars

.

Готовим оборудование для установки openvpn

Если вы впервые используете VPN, лучше всего протестировать виртуальные машины. VDS можно создать локально на серверах, подключенных к вашей сети, или на вашем компьютере, или арендовать у провайдера. Перед арендой VDS убедитесь, что драйвер TUN/TAP поддерживается. За подключение TUN/TAP некоторые провайдеры могут взимать дополнительную плату.

На рис. 1. показано, как будет функционировать тестовый стенд, на котором мы установим хосты и компоненты OpenVPN (названия IP хостов могут отличаться).

Изображение 1. Таблица исследований OpenVPN

Объекты на этом изображении представлены как узлы (хосты), и каждому из них требуется уникальный VDS:

Хосты клиента и VPN-сервера связаны через стандартный, незащищенный канал. В проекте это может быть Интернет; в реальности это будет канал Интернета. Рис. Канал на рисунке 1 с красной стрелкой обозначен зеленым маркером.

Ц С может подключаться к локальной сети в макете ЦС. Для работы хоста CA его необходимо отключить от сети и передать по USB.

Хост ЦС должен располагаться в комнате безопасности, если существуют более строгие требования к безопасности.

Клиенты Microsoft Windows и среды Debian Linux и FreeBSD были настроены с серверами OpenVPN.

Установка компонентов OpenVPN для Debian Linux рассматривается в этой статье. Мы начнем с рассмотрения особенностей установки FreeBSD и Windows.

При работе в сети OpenVPN используйте самые последние версии операционной системы.

# apt-get update
# apt-get upgrade

Если zip-пакет еще не установлен, установите его на каждый узел:

# aptitude install zip

Для создания ключей и сертификатов мы воспользуемся утилитой Easy-RSA, которая требует, чтобы мы сначала распаковали ее архив.

Установите синхронизацию и обновление времени на каждом узле.

# apt-get install ntpdate
# apt-get install -y ntp
# /etc/init.d/ntp stop
# ntpdate pool.ntp.org
# /etc/init.d/ntp start

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

Сначала будет настроен узел CA. После этого мы настроим сервер OpenVPN и клиентские узлы.

Добавление пользователя openvpn

Добавьте непривилегированного пользователя и группу OpenVPN, под которой будет работать демон сервера.

Дополнительные возможности openvpn

Что касается дополнительных функций OpenVPN, о которых некоторые люди могут не знать или не использовать.

Запуск openvpn-gui

Используйте кнопку Пуск, чтобы запустить OpenVPN-GUI как обычную программу Windows (служба также может быть запущена таким образом). В системном трее (также известном как панель System Tray) появится значок OpenVPN-GUI вместе с висячим замком.

Выберите имя файла конфигурации, созданного на вашем компьютере в каталоге C:Program FileOpenVPIconfig, выполнив щелчок правой кнопкой мыши на этом значке. Если все настроено правильно, появится окно подключения.

Когда соединение будет установлено, изображение заблокированного окна станет зеленым. Канал VPN теперь установлен, это означает. Проверьте сообщения окна соединения и журнал сервера OpenVPN в случае возникновения проблем. Чаще всего проблемы возникают из-за ошибок при создании сертификатов и ключей.

Щелкните правой кнопкой мыши на значке GUIN и выберите в меню опцию Disconnect, чтобы отключить канал OpenVPN-GUI.

Запуск демона openvpn

В поле Журнал демона OpenVPN введите имя.

# mkdir /var/log/openvpn

Добавьте в файл /etc/rC.conf строки:

openvpn_enable="YES"
openvpn_configfile="/usr/local/etc/openvpn/server.conf"

Здесь находится рабочий конфигурационный файл демона OpenVPN.

Запустите демон OpenVPN

# /usr/local/etc/rc.d/openvpn start

Интерфейс TUN должен появиться при успешном запуске сервера OpenVPN и клиентского приложения. Для подтверждения этого используйте команду ifconfig:

# ifconfig
 ...
 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
 options=80000<LINKSTATE>
 inet6 fe80::20c:29ff:fe28:d4be%tun0 prefixlen 64 scopeid 0x3
 inet 10.15.0.1 --> 10.15.0.1 netmask 0xffffff00
 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
 Opened by PID 493

Убедитесь, что порт 1194 используется демоном OpenVPN:

# sockstat | grep 1194

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

Запуск клиента openvpn

Начните демона со следующей командой:

# /etc/init.d/openvpn start

Если у вас возникли проблемы с запуском клиента, проверьте содержимое журнала /var/log/openvpn-client.blog

В случае, если клиентский демон запустился без проблем, но не смог найти интерфейс TUN в своем окне.

# ifconfig
...
 tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
 inet addr:10.15.0.2 P-t-P:10.15.0.2 Mask:255.255.255.0
 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:100
 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Выполните Ping сервера OpenVPN по адресу 10.15.1, чтобы убедиться, что он отвечает:

# ping 10.15.0.1

Как просматривать логи openvpn

Для наших условий это осуществляется следующим образом:

cat /var/log/openvpn.log
cat /var/log/openvpn-status.log

Если вы работаете в группе, вы тоже можете:

grep VPN /var/log/syslog

Как это работает ?

Плагин возвращает маскированный список всех функций, когда он инициализируется в OpenVPN. OpenVPN вызывает соответствующие функции из плагина, когда происходит последующая фаза соединения или внутреннее событие. В соответствии с процедурой python модуля, плагин превращает переменную окружения и параметры переданных функций в структуру.

Все вызовы в модуле являются “stateless”, что означает, что процессы не помнят о вызовах, которые были до них. Можно перейти только к переменной среды, которую OpenVPN передал плагину.

Любая логика может быть реализована в модуле Python путем добавления необходимых библиотек и ресурсов. Используйте “отложенные” подтверждения, если вы не уверены в скорости проверки.

С помощью Filespoke можно достаточно точно настроить сетевое взаимодействие между пользователями и другими ресурсами. Через OpenVPN всегда можно управлять клиентскими транзакциями, используя плагин для отслеживания и управления сессиями.

В ходе тестирования в рамках проекта был создан механизм генерации паролей меньшей размерности, аналогичный jwt-токенам.

Суть проста. Токен включает в себя идентификационный номер клиента и дату истечения срока доступа. Для подписи токена используется закрытый ключ и HMAC_SHA1. После подписи на токене текстовое содержимое преобразуется в base64. Таким образом токен “запечатывается”.

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

Я надеюсь, что эта статья оказалась для вас полезной. Я ценю ваше время, потраченное на ее прочтение.

Компоненты сети openvpn

Перейдем от теории к практике.

Сертификационный центр ca

В настоящее время выдает сертификаты с подписью документа центра сертификации по запросу узлов сети VPN. собирает свой собственный сертификат для проверки аутентифицирующей стороной. управляет списком отзыва CRL.

Сервер ViewNet и сервер OpenVPN являются совместимыми.

В публичной сети, такой как Интернет, программное обеспечение OpenVPN создает туннель. Безопасная связь между узлами сети OpenVPN становится возможной благодаря этому туннелю.

Клиент OpenVPN

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

Сертификаты (публичные когти) X.509

Центр сертификации ЦС проверяет сертификаты X.509, которые используются для шифрования данных. Вы можете определить, кто отправляет конфиденциальные данные, проверив сертификат в ЦС.

В сети создается и подписывается файл запроса сертификата. Хост OpenVPN получает подписанный сертификат, который был создан в результате.

Частные ключи

Эксклюзивные секретные коды. Они используются для расшифровки данных и должны храниться на каждом узле сети OpenVPN. Они никогда не передаются по сети.

На узлах OpenVPN закрытые ключи генерируются одновременно с файлом запроса.

Отзывы сертификатов CRL

В списке есть сертификаты, утратившие доверие. На узле центра сертификации CA он как создается, так и редактируется. Добавив его в список CRL, узел может быть отключен от сети.

Список CRL создается, редактируется, а затем отправляется на сервер OpenVPN.

Файл Диффи-Хелмана

Когда ключи украдены, они используются для предотвращения расшифровки трафика для вора. На сервере OpenVPN это делается.

HMAC Статический ключ

Служит для проверки надежности передаваемых данных. поддерживает защиту от флуда и атак типа “отказ в обслуживании”. На сервере OpenVPN производится.

Настройка openvpn

Создайте каталог файлов.

В файл /etc/openvpn/keys копируются следующие файлы из apk-office:

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

Настройка статических ключей (аналог PSK авторизации). Конечно, есть и недостатки, но они существуют.

  • Ограниченная масштабируемость: один клиент, один сервер.
  • Секретный ключ хранится в виде текста на каждом узле VPN.
  • Нет гарантии полной секретности в будущем: если ключ скомпрометирован, информация из предыдущих сессий также будет раскрыта.

Секретный ключ должен генерироваться на сервере и передаваться клиенту по защищенному каналу.

openvpn —genkey —secret static.key

Настройка openvpn 3 версии в ос windows

Для настройки потребуется приложение OpenVPN Connect.

Установите приложение на компьютер.

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

Теперь вы можете настроить OpenVPN. Откройте файл “/etc/openvpn/server.conf” и внесите в него свои изменения. Используйте форму и расположение ниже.

Немного теории

Для крупных предприятий и организаций больше нет необходимости прокладывать (или арендовать) кабели для безопасного соединения данных. Используя VPN, вы можете создавать безопасные виртуальные соединения, работающие через защищенный туннель Интернета. Такое решение доступно даже для малого бизнеса.

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

Почему виртуальные частные сети являются так называемыми

Виртуальная сеть (VPN), поскольку узлы сети создаются программным обеспечением и не соединены физическими линиями.

В PPN присутствуют только узлы организации, построившей сеть. Каждый узел сети должен поддерживать системный блок VPN. Для того чтобы предоставить узлам доступ к сети VPN, также необходимы ключи и сертификаты.

V PN, в частности, может объединить рабочие станции и серверы предприятия в безопасную виртуальную сеть. Теперь удаленные работники будут подключены к корпоративной сети. VPN – это отличная основа для объединения географически разделенных корпоративных офисов.

Обмен данными по сети

OpenVPN использует UDAP или TCP для передачи данных по сети. Клиенты за NAT могут подключаться к серверу OpenVPN с помощью UDP и драйвера TUN.

Если брандмауэр присутствует и препятствует доступу из локальной сети в Интернет, вы можете обойти его путем выбора произвольного порта.

Особенности установки на freebsd

Перед началом работы обновите порты FreeBSD:

# portsnap fetch
# portsnap extract

На узлах OpenVPN не забудьте также синхронизировать время. Ниже описано, как выполняется однократная синхронизация времени:

# ntpdate 1.pool.ntp.org

Задание Cron теперь включает команду cron. Для синхронизации возможна установка демона ntpd.

Плагины openvpn

Они либо не знают, либо боятся использовать другую параллельную вселенную. Да, кодирование на C необходимо для создания полезного плагина OpenVPN.

Подготовка сертификата и ключа для клиента openvpn

Выберите кнопку запроса, чтобы получить сертификат и закрытый ключ рабочей станции разработчика1.

$ ./easyrsa gen-req client nopass

Чтобы создать запрос на сертификат рабочей станции и закрытый ключ, введите Общее имя:

Подготовка сертификата и ключа для сервера openvpn

Для использования файлов из таблицы 2, помимо opensSl.cnf и Openvpn.confi, необходимо.

Таблица 3. Письмо для сервера OpenVPN.

Для серверов OpenVPN мы сначала сгенерируем закрытый ключ, файл запроса сертификата и подписанный сертификат. Остальные файлы, перечисленные в таблице 3, мы получим после получения файлов server.crt и server.key.

Установка программы Easy-RSA на сервер OpenVPN необходима для того, чтобы сгенерировать запрос на сертификат и закрытый ключ.

В этом случае пользователь vpnoperator, не имеющий прав администратора, выполнит установку Easy-RSA и запрос сертификата. Пожалуйста, добавьте этого пользователя, прежде чем продолжить:

Подготовка файлов конфигурации

В каталоге /etc/openvpn хранятся конфигурационные файлы, сертификаты и ключи.

Далее мы создаем конфигурационные файлы server_confirm и opensSl.cnf. Первый задает конфигурацию для OpenSSL, а второй – для сервера OpenVPN.

Утилита Easy-RSA поставляется с примером конфигурационного файла OpenSSL, который выглядит следующим образом (предполагается, что программа установлена в домашней директории пользователя ca):

/home/ca/easy-rsa-master/easyrsa3/openssl-1.0.cnf

Однако мы советуем сначала скачать простую версию этого файла из нашей статьи.

Ключи и сертификаты, которые вы только что создали, доступны.

На сайте проекта по адресу http://open-source/documentation/howto?server вы можете найти пример конфигурационного файла openvpn.conf для серверов OpenVPN. Мы советуем начать с сокращенной версии этого файла из нашей статьи.

Для запуска сервера OpenVPN создайте каталоги и ключи, ссылки на которые содержатся в файлах Server.conf и opensl.cnf.

Создайте каталог для журнала OpenVPN

# mkdir /var/log/openvpn/

В разделе для конфигураций клиента (еще не используемых) введите следующее имя:

# mkdir /etc/openvpn/ccd

Полезные ссылки

Протокол Диффи – Хеллмана

HMAC

Шифрование

X.509

Создание Windows Server с помощью OpenVPN

Центр сертификации или орган по сертификации (ОСО)

Получение сертификата от удостоверяющего центра ca

Создайте запрос на сертификат так же, как мы делали это для клиента OpenVPN на базе Debian Linux, скопировав файл запроса сертификата client.csr на флэш-накопитель. Чтобы перенести полученный сертификат в Windows, запишите его на USB-накопитель.

Проверка результата запуска демона openvpn

Если OpenVPN был успешно установлен без каких-либо ошибок, проверьте с помощью команды ifconfig, что нижеприведенное расширение TUN:

# ifconfig 
...
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.15.0.1 P-t-P:10.15.0.1 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Использование TUN/TAP на арендуемых VDS может повлечь за собой дополнительные расходы.

Если все идет по плану, в tun должен появиться IP-адрес 10.15.1. Это адрес сервера OpenVPN в нашем защищенном туннеле, который указан в конфигурационном файле server.conf.

Как только вы найдете интерфейс TUN, подтвердите, что OpenVPN зарезервировал порт 1194:

# netstat -ltupn | grep 1194

Установка клиента OpenVPN для Windows возможна, если демон успешно запустился, а порт 1194 уже занят сервером. Исследуйте журнал /var/log_openvpn-server.gl.

Новые ядра Linux не будут включать OpenVPN. В журналах обнаружена ошибка:

Работа с инфраструктурой pki

Активируйте Easy-RSA и запустите механизм специальной конфигурации PKI:

Ревизия файлов перед запуском openvpn

Мы получили сертификат сервера OpenVPN, список отзыва и ключ HMAC из центра сертификации.

Мы должны разместить следующие файлы в /etc/openvpn для запуска демона OpenVPN:

Сертификаты и удостоверяющий центр ca

Асимметричная криптография шифрует данные с помощью открытого ключа, а печатает с помощью закрытого ключа. Открытый ключ должен быть сертифицирован третьей стороной для предотвращения фальсификации. В этом процессе используются сертификаты открытых ключей.

Сертификат должен быть заверен надежным органом. Такая компания признана центром сертификации (CAC).

Если открытый ключ предоставляется для общего пользования, сертификационный центр должен быть авторитетной частной или государственной организацией. Открытый ключ предоставляется для общего пользования этой организацией.

Системные требования

Для работы OpenVPN необходим самый минимум. Для работы OpenVPN необходимо 64 МБ оперативной памяти и 1 ГБ места на жестком диске. Все популярные системы поддерживают OpenVPN.

Создание запроса на сертификат

Теперь мы вместе составим запрос на получение сертификата.

Прежде всего, запустите консоль с правами администратора. Для удобства вместо стандартной консоли Microsoft Windows мы использовали бесплатный эмулятор консоли ConEmu-Maximus5.

Выполните команды:

cd C:Program FilesOpenVPNeasy-rsa
init-config.bat
clean-all 

: Бат для создания скриптов для программных прогфунков CP.

Используйте код страны KEU_COUNTR и регион KEZ-PROVINCE в качестве примеров при редактировании строк в файле vars.bat.

Создание инфраструктуры публичных ключей pki

Создание инфраструктуры открытых ключей (PKI) – первый шаг.

$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa init-pki

Вы увидите сообщение:

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/ca/easy-rsa-master/easyrsa3/pki

В результате выполнения команды init-pki был создан каталог /home/ca/easy-rsa-master/easyrsa3/pki, где и находится инфраструктура публичных ключей PKI.

На втором шаге с помощью команды build-ca создайте удостоверяющий центр CA:

$ ./easyrsa build-ca

В ответ на эту команду вы должны ввести пароль и “Общее имя”:

Создание сервера openvpn

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

Создание статического ключа hmac

Используйте команду openvpn с опциями –genkey и -secret для генерации HMAC-ключа:

# cd /etc/openvpn
# openvpn --genkey --secret ta.key

Запишите файл ta.key на USB диск:

# cp /etc/openvpn/ta.key /mnt/flash

Создание удостоверяющего центра ca

Сертификаты для сервера и клиентов OpenVPN выпускаются компанией C A.

Сервер или клиент на своем хосте генерирует файл запроса для получения сертификата. УЦ хоста принимает и подписывает сертификат после получения этого файла запроса. Запрашивающий хост получает подписанный сертификат.

Когда запрашивается сертификат, генерируется закрытый ключ. Для ЦС, сервера и клиентов создаются закрытые ключи, как и для всех других узлов в сети OpenVPN.

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

На рис. 2 показан процесс получения подписанного сертификата для сервера OpenVPN.

Рис. 2. Получение сертификата для сервера OpenVPN

Создается файл запроса сертификата и закрытый ключ для сервера OpenVPN. Файл запроса отправляется, например, на флэш-накопителе USB в центр сертификации.

На основе запроса центр сертификации создает сертификат, который нужно отправить на сервер OpenVPN.

Вы можете использовать инструменты SFTP и SSR или подключить машину CA, если нет особых требований к безопасности. В качестве альтернативы, один хост может выполнять функции CA и OpenVPN.

Сертификаты должны быть выпущены для каждого узла в сети, а также для каждого узла связи в клиентских узлах для каждого клиента (Рисунок 2).

Рис. 3. Получение сертификата для OpenVPN

Создание файла конфигурации клиента openvpn

Автоматическое создание помещает файл конфигурации клиента OpenVPN в каталог C:Program FilesOpen V PnC. Расширение файла должно быть Ovpn. Вот иллюстрация нашего файла:

client
dev tun
proto udp
remote 192.168.0.54 1194
tls-client
ca "key/ca.crt"
cert "key/developer-w1.crt"
key "key/client.key"
tls-auth "key/ta.key" 1
comp-lzo
tun-mtu 1500
mssfix 1450
verb 3

Следующие файлы были скопированы в каталог C:Program FilesOpenVPSconfigkey:

Созданные файлы и каталоги pki

Краткое описание некоторых файлов и каталогов PKI, созданных в результате наших действий, приведено в Таблице 2.

Таблица 2. Структура каталога PKI.

Справка по утилите easy-rsa

Вы можете активировать Easy-RSA без каких-либо уточнений:

$ ./easyrsa

Будет показан полный путь к программе и ИПК, а также список всех команд утилиты.

Добавьте опцию help к команде, для которой вы хотите получить помощь. Получить поддержку для команды build-ca можно следующим образом:

$ ./easyrsa help build-ca

Статический ключ hmac

Вы можете подтвердить достоверность информации, передаваемой между сторонами, используя статический ключ (хэш-код) для аутентификации сообщений, или HMAC. Сервер OpenVPN генерирует этот ключ для обеспечения дополнительной защиты от флудинга и DoS-атак.

Установка openvpn on мастер-сервер

Остановите установку OpenVPN.

apt-get install openvpn

В каталоге ‘/usr/share /eosyaraba’ по умолчанию установлены скрипты easy-rsa. Для этого скопируйте эти скрипты в нужное место, например, в каталог /root/easy-rsa.

mkdir /root/easy-rsa
cp -prv /usr/share/easy-rsa /root/easy-rsa

Установка openvpn на клиенте

Для установки OpenVPN на клиентском компьютере введите следующую команду.

apt-get install openvpn
mkdir -p /etc/openvpn/certs/


Настройки даны исходя из расположения файлов здесь:

  • /etc/openvpn/certs/ca.crt
  • /etc/openvpn/certs/client.crt
  • /etc/openvpn/certs/client.key
  • /etc/openvpn/certs/ta.key

Настройте конфигурацию клиента OpenVPN для клиентского устройства в “/etc/openvpn/client.conf” в текстовом редакторе. Пример конфигурации приведен ниже.

Установка openvpn-gui

Выберите, что загрузить – Microsoft Word 32 или установщик Windows (64-разрядный). Запустите сгенерированный файл для завершения установки по умолчанию. Папка C:Program FilesOpenVPNconfig должна содержать файлы конфигурации, сертификаты и ключи.

В папку C:Program FilesOpenVPNeasy-rsa устанавливается версия программы Easy-RSA для Windows.

Подробную информацию об использовании EASU RS для Windows можно найти в файле C:Program FilesOpenVPNeasy-RSAREADME.

Мы рассмотрим случай, когда запрос на сертификат делается в Windows и отправляется в ЦС через флэш-накопитель USB. В этой системе создается подписанный файл сертификата и передается в хост-операционную систему еще раз через USB-накопитель (на этот раз из Microsoft Windows).

Установка squid

Мы настроили Squid из портов в среде FreeBSD:

# cd /usr/ports/www/squid33
# make install clean

Файл конфигурации Squid находится в /usr/local/etc/squads.conf, и его нужно настроить аналогично тому, как настраивают Debian Linux.

Для запуска добавьте в файл /etc/rc.conf строку:

squid_enable="YES"

Чтобы запустить Squid, необходимо использовать следующую команду.

/usr/local/etc/rc.d/squid start

Установка прокси-сервера squid

В этой ситуации вы можете подключиться к нам через защищенный туннель, если у вас есть сеть VPN и сервер OpenVPN. Прокси-сервер OpenVPN теперь будет использоваться для предоставления сотрудникам компании доступа к защищенным ресурсам.

В качестве прокси-сервера мы выбрали программу с открытым исходным кодом Squid, которая часто используется в проектах с высокой нагрузкой. В настоящее время мы используем только ее функцию проксирования.

Для установки Squid следует использовать следующий пакет.

# apt-get install squid3

Squads.conf, файл конфигурации, который необходимо отредактировать, будет создан в /etc/squid3 после завершения установки.

Для начала найдите в файле squid.conf следующую строчку:

Установка утилиты easy-rsa

Для генерации ключей и сертификатов можно использовать инструмент opensl. Однако предпочтительнее использовать специализированную программу Easy-RSA, которая использует opensshl и позволяет взаимодействовать с ключами.

Easy-RSA был выпущен в виде отдельного приложения.

Непривилегированный пользователь может (и должен) провести информацию, введенную при регистрации, через центр сертификации и сертификаты.

Создайте пользователя, скажем, ca, и перейдите в его домашний каталог:

Файл диффи-хелмана

Для реализации протокола Диффи-Хеллмана, который позволяет использовать незащищенный канал в качестве канала с общим ключом, необходим файл Диффи-Хеллмана. Это ключ, который будет использоваться для безопасного обмена данными на основе симметричных алгоритмов шифрования.

Файл Диффи-Хелмана используется в OpenVPN для защиты трафика от расшифровки в случае потери или кражи ключей. До того, как ключи были украдены, этот трафик перехватывался и сохранялся.

OpenVPN-сервер создает файл Диффи-Хелмана.

Файл конфигурации клиента :

dev tunremote 192.168.0.1ifconfig 10.11.11.2 10.11.11.1secret static.keycomp-lzo#redirect-gatewaycipher AES-256-CBC

В конфигурации используется udp:1194. Отмените опцию redirect, чтобы направить весь трафик через VPN-туннель. Задавая каждому демону свой порт во время настройки, вы можете запускать несколько демонов одновременно.

root@debian:/etc/openvpn# openvpn server2.conf

Файлы конфигурации openvpn

При установке на FreeBSD, файлы конфигурации сервера OpenVPN должны быть помещены в /usr/localeetcopenvpn.

Создайте этот каталог:

# mkdir /usr/local/etc/openvpn

Путь к /usr/local/etc/openvpn содержится в конфигурационных файлах opensl.cnf и server.conf.

Создайте каталог для конфигураций клиентов

# mkdir /usr/local/etc/openvpn/ccd

Создание списка отзывов сертификатов

Вы должны предотвратить использование VPN-сети увольняющимся сотрудником. К OpenVPN применяются специальные требования при отзыве сертификатов CRL. Это можно сделать с помощью следующей команды:

$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa gen-crl

Для личной информации о вас и данных, отправленных в виде электронных открыток, необходим пароль для доступа к закрытому ca.key центра сертификации. Он создаст список отзывов в каталоге /home/ca/easy-rsa3/2pki/cRl.

Скопируйте этот файл на USB-диск:

# cp /home/ca/easy-rsa-master/easyrsa3/pki/crl.pem /mnt/flash

Используйте следующую команду, чтобы заблокировать уже выданный сертификат:

$ ./easyrsa revoke developer5

Мы отозвали сертификат клиента developer5 в Москве. Затем новый файл CRL должен быть скопирован на сервер OpenVPN, после чего следует перезапуск демона OpenVpn.

Список отзыва сертификатов

Иногда необходимо ограничить доступ к определенным узлам в сети VPN, например, чтобы уволенный сотрудник не смог войти на свою рабочую станцию.

OpenVPN предлагает список отзыва сертификатов и простые в использовании инструменты для управления этим списком с целью упрощения процесса отзыва сертификатов.

Центр сертификации создает ЦС, который затем копируется на сервер OpenVPN. После внесения изменений сервер OpenVPN необходимо скопировать еще раз.

Похожее:  Личный кабинет «Yota»: регистрация / вход - официальный сайт

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *