Руководство по установке и настройке OpenVPN / Хабр

Руководство по установке и настройке OpenVPN / Хабр ЭЦП
Содержание
  1. Введение
  2. 2 генерация ключей и сертификатов
  3. Перенос готовых сертификатов в /etc/openvpn
  4. 4 настройка и запуск сервера
  5. Настройка NAT в Firewalld
  6. Подключение клиента к серверу OpenVPN
  7. Mas os
  8. Windows
  9. Безопасность и шифрование
  10. Библиотека pkcs#11
  11. Генерация файла диффи-хелмана
  12. Готовим оборудование для установки openvpn
  13. Добавление пользователя openvpn
  14. Задача
  15. Запуск openvpn сервера
  16. Запуск openvpn-gui
  17. Запуск демона openvpn
  18. Запуск клиента openvpn
  19. Использование токена для аутентификации
  20. Настройка firewall
  21. Настройка openvpn клиента на пк windows
  22. Настройка openvpn клиента на смартфоне android
  23. Настройка openvpn сервера
  24. Немного теории
  25. Обмен данными по сети
  26. Особенности установки на freebsd
  27. Подготовка сертификата и ключа для клиента openvpn
  28. Подготовка файлов конфигурации
  29. Полезные ссылки
  30. Получение сертификата от удостоверяющего центра ca
  31. Проверка результата запуска демона openvpn
  32. Работа с инфраструктурой pki
  33. Ревизия файлов перед запуском openvpn
  34. Сертификаты и удостоверяющий центр ca
  35. Скорость
  36. Создание запроса на сертификат
  37. Создание инфраструктуры публичных ключей pki
  38. Создание ключей и сертификатов
  39. Создание сертификата на токене
  40. Создание статического ключа hmac
  41. Создание файла конфигурации клиента openvpn
  42. Созданные файлы и каталоги pki
  43. Справка по утилите easy-rsa
  44. Статический ключ hmac
  45. Управление пользователями
  46. Установка openvpn
  47. Установка openvpn server
  48. Установка openvpn-gui
  49. Установка squid
  50. Установка прокси-сервера squid
  51. Установка сервера и клиента openvpn
  52. Установка утилиты easy-rsa
  53. Файл диффи-хелмана
  54. Фильтрация доступных хостов для клиентов
  55. Список отзыва сертификатов
  56. Отзыв сертификата
  57. Создание списка отзывов сертификатов
  58. Выводы

Введение

Построение VPN и «туннелирование» нестандартного метода инкапсуляции пакетов — совсем не сложные задачи для любого системного администратора или DevOps. Если OpenVPN предполагается использовать постоянно, его можно использовать для этого время от времени.

Существуют также предприятия и организации, которые предъявляют строгие требования к передаче данных. Такие требования, например, предъявляются к банкам и микрофинансовым организациям. Во всех законах и нормативных актах личная информация называется «защищенной информацией».

A CS со всеми необходимыми лицензиями и сертификатами, которые придерживаются требований к юридическим требованиям, требуются для шифрования. Одним из примеров такого программного обеспечения является Cryptopro CSP. Мы объясним, как использовать шифрование для шифрования сети.

2 генерация ключей и сертификатов

Инициализируем PKI (архив публичных ключей)

./easyrsa init-pki

Руководство по установке и настройке OpenVPN / Хабр
в текущем каталоге появится каталог pki.

Выполняете команду: CA

./easyrsa build-ca

Установите пароль, когда появится запрос «Введите новую парольную фразу ЦС». Кроме того, каждый раз, когда вы подписываете сертификат OpenVPN, требуется пароль.

./easyrsa build-ca nopass

При выполнении команд будут сгенерированы два ключа, которые хранятся в каталоге pki:

./pki/private/ca.key
./pki/ca.crt

Закрытый ключ центра, ca.key, остается на сервере и никому не передается.

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

./easyrsa gen-dh

При этом файл /usr/share:easy-rrsa/3/pki/dh.ppem

Создавая сертификат сервера, вы должны сначала сделать диспетчер файлов, прежде чем вы сможете сделать запрос на файл для веб -сайта.

./easyrsa gen-req vpn-server nopass

Нажмите Enter, чтобы ответить на запрос ввода общего имени. В результате был произведен файл частного ключа с именем/usr/share/easy -rrsa/3/pki/private/vpn -server.

./easyrsa sign-req server vpn-server

Введите yes для проверки точности данных после ввода команды. После этого назовите пароль и код подтверждения, чтобы создать корневой сертификат для vpn-сервера /usr/share-easy rsa/3/pki/, используя поле команды.

Руководство по установке и настройке OpenVPN / Хабр2.5Создание TA ключа
Для активации tls-auth необходимо сгенерировать дополнительный секретный ключ.
Сделать это можно с помощью команды:

openvpn --genkey --secret pki/ta.key

Пакеты Handshake SSL/TLE теперь включают вторую подпись HMAC благодаря LS-Auth. Теперь посылка будет отклонена сразу же, если в реестре нет подписи (подписано вручную). Дополнительная защита от атак с использованием протокола PHP будет предложена SSL/TLS.

— Несанкционированные машины сканируют порты, слушающие VPN -серверы (TLSAuth завершает их намного раньше, чем с OpenVPN).

Перенос готовых сертификатов в /etc/openvpn

Сертификаты сервера можно найти в каталоге PKI и подготовлены. Создайте новый каталог сертификатов в /и т. Д.

mkdir -p /etc/openvpn/server/keys

Мы идем в каталог PKI:

cd /usr/share/easy-rsa/3/pki/

В /etc/openvpn server/keys должны содержаться перечисленные ниже сертификаты:

cp ca.crt issued/vpn-server.crt private/vpn-server.key dh.pem ta.key /etc/openvpn/server/keys/

4 настройка и запуск сервера

4.1. Мы предоставляем файл A. ASL для сервера OpenVPN.

nano /etc/openvpn/server/server.conf

Server.conf Файл Содержание

local 10.10.0.2
# Сетевой порт сервера
port 1194
# Работа по протоколу UDP
proto udp
dev tun
ca keys/ca.crt
cert keys/vpn-server.crt
key keys/vpn-server.key
dh keys/dh.pem
tls-auth keys/ta.key 0
# Область Ip-адресов виртуальных хостов
server 192.168.10.0 255.255.255.0
# Назначение шлюза клиентам
push "redirect-gateway def1"
push "route-gateway 192.168.10.1"
# Указывается DNS
push "dhcp-option DNS 1.1.1.1"
ifconfig-pool-persist ipp.txt
keepalive 10 120
max-clients 15
client-to-client
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 0
mute 20
daemon
mode server
tls-server
# Компрессия трафика
comp-lzo yes
# Алгоритм шифрования трафика
cipher BF-CBC

4.2 Запуск сервера

mkdir /var/log/openvpn

Разрешаем автоматический старт сервиса OpenVPN:

systemctl enable openvpn-server@server

Запускаем openvpn-server

systemctl start openvpn-server@server

Настройка NAT в Firewalld

Если вы хотите, чтобы клиенты могли использовать nAT и VPN для доступа в Интернет? Для этого мы настроим Nat

nano /etc/sysctl.conf

Добавить строку:

net.ipv4.ip_forward=1

Мы используем параметры SYSCTL:

sysctl -p /etc/sysctl.conf

Создайте новые правила брандмалда. Интерфейсы OpenVPN: ETH0 (внешний) и TUN0 (внутренний).

firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i tun0 -o eth0 -j ACCEPT
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Подключение клиента к серверу OpenVPN

Передайте файл client1.ovpn на клиентский компьютер, чтобы подключить клиент к серверу VPN. Импорт файла client1.ovpn в свойства сетевого подключения сохранит настройки соединения на сервере OpenVPN.

Установка пакета NetworkManager-Openvpn Gnaome со следующей командой необходима в версии PS 7.3:

dnf install NetworkManager-openvpn-gnome

Mas os

Пользователь — это единственный бесплатный клиент, доступный для Mac OS.

Windows

При установке КриптоПро CSP необходимо скопировать контейнер, содержащий серверный ключ и сертификаты.

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

Безопасность и шифрование пакета TLS обеспечиваются за счет использования OpenVPN специально созданных библиотек. Polariscal используется в новых версиях OpenVPN вместо библиотеки Polassl. TLS — это усовершенствование протокола безопасности уровня Secure Socket Layers (SSL).

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

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

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

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

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

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

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

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

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

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

Библиотека pkcs#11

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

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

Следующая команда может генерировать ключи Диффа Хелмана:

$ 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

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

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

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

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

Три узла (хоста), каждому из которых требуется свой VDS

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

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

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

Мы проводили установку серверов OpenVPN в среде ОС Debian Linux и FreeBSD, клиентов OpenVPN в ОС Debian Linux, FreeBSD и Microsoft Windows.

В этой статье мы обсудим установку компонента OpenVPN для Debian Linux. Особенности установки FreeBSD и Windows будут обсуждаться в этой статье.

При работе в сети OpenVPN используйте более свежие версии ОС.

# apt-get update
# apt-get upgrade

. Если zip-пакет еще не установлен, установите его на всех узлах:

# aptitude install zip

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

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

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

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

Мы начнем подготовку к работе с хостом CA. Затем будут установлены серверный и клиентский узлы OpenVPN.

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

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

Задача

Сначала вы должны понять, как все будет функционировать, и поставить четкие цели.

АнкетОдин будет работать в рамках Linux (Ubuntu, версия, не важная), чтобы показать, как настраиваются две операционные системы, а другая будет работать под Windows 10. NetCat будет работать в системе Windows, чтобы прослушать конкретный порт, и иПакеты будут отправлены из системы Linux. Компьютер будет служить сервером (также с точки зрения настройки STUNNEL).

Наконец, Netcat используется для подключения к Windows с помощью программы GOST_2022. Простая задача приведена для демонстрации жизнеспособности такого маневра.

Запуск openvpn сервера

Переходим к службам:

services.msc

Мы нашли OpenVpService.

Настраиваем автоматическое закрытие при запуске сервера.

Запускаем (перезапускают) службу.

Журналы должны быть установлены системным администратором в папку C:Program FilesOpenVPNlog. Это инструмент для управления серверами OpenVPN.

OpenVPN Wintun активировался в сети.

I P -адрес 15.07 такой же, как и адрес настройки сервера 10.8.10.1.

Проверяем поднялся ли порт tcp 1194:

netstat -tan | find "1194"

Порт прослушивается.

Запуск openvpn-gui

Нажав кнопку «Пуск», можно запустить OpenVPN-GUI, как любую другую программу Windows. На панели системного трея или на значке системного трея отображается значок OpenVPN-GUI.

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

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

Щелкните правой кнопкой мыши на значке OpenWeb-GUI и выберите в меню пункт Disconnect, чтобы завершить работу канала 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.log, если возникли проблемы с запуском клиента.

Проверьте доступность интерфейса Tun, если демон клиента успешно запустился, точно так же, как мы это делали при запуске серверов OpenVPN.

# 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)

Убедитесь, что сервер OpenVPN по адресу 10.15.1 отвечает на команду ping:

# ping 10.15.0.1

Использование токена для аутентификации


Найти id сертификата, который нужно предъявить серверу:

Настройка firewall

Теперь нужно настроить firewall. Открываем Windows Defender Firewall with Advanced Security.

Мы идем к входящим правилам.

Создаём правило – New Rule.

Тип правила — Port. Next.

Протоколы и порты для TCP/IP 1194. лучший способ изменить настройки сервера. Далее.

Разрешить соединение или экстаз. Следующий.

Для всех сетей.

Задайте OpenVPN в качестве имени правила. Далее.

Порт 1194 больше не заблокирован брандмауэром.

Настройка openvpn клиента на пк windows

Web-клиенту устанавливаем OpenVPN.

Настройка openvpn клиента на смартфоне android

Все файлы клиента следует скопировать на телефон.

Устанавливаем приложение OpenVPN Connect.

Запускаем.

Agree.

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

Чтобы запустить компьютер, введите следующую команду: C:Program FilesOpenVN.

copy "C:Program FilesOpenVPNsample-configserver.ovpn" "C:Program FilesOpenVPNconfig-autoserver.ovpn"

Открываем блокнот и редактируем:

notepad "C:Program FilesOpenVPNconfig-autoserver.ovpn"

Я предоставляю свой собственный конфигурационный файл здесь:.

port 1194
proto tcp
dev tun
ca "C:Program FilesOpenVPNeasy-rsapkica.crt"
cert "C:Program FilesOpenVPNeasy-rsapkiissuedserver.crt"
key "C:Program FilesOpenVPNeasy-rsapkiprivateserver.key"  # This file should be kept secret
dh "C:Program FilesOpenVPNeasy-rsapkidh.pem"
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
duplicate-cn
keepalive 10 120
tls-auth "C:Program FilesOpenVPNeasy-rsapkita.key" 0 # This file is secret
cipher AES-256-GCM
persist-key
persist-tun
status "C:Program FilesOpenVPNlogstatus.log"
log         "C:Program FilesOpenVPNlogopenvpn.log"
verb 4
mute 20
windows-driver wintun

Я использую TCP-порт 1194 и имею путь к ключам и сертификату. Все клиенты могут подключаться, используя один общий сертификат, благодаря параметру duplicate-cn. Не тестируйте с его помощью.

Я подключаюсь к серверу OpenVPN с клиентского устройства, смартфона, используя тот же сертификат. Вы можете использовать драйверы Windows с помощью параметра windows-driver Wintun. что в примере конфигурации Rest of default должно быть указано.

В файлах конфигурации разрешается использовать прямую косую черту:

ca «C:/Program Files/OpenVPN/easy-rsa/pki/ca.crt»

Двойной обратный слеш

ca «C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt»

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

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

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

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

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

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

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

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

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

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

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

Обновите порты FreeBSD, прежде чем начать работу.

# portsnap fetch
# portsnap extract

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

# ntpdate 1.pool.ntp.org

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

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

Сделайте запрос сертификата рабочей станции Developer1 с помощью закрытого ключа.

$ ./easyrsa gen-req client nopass

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

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

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

OpenSSL должен быть готов на начальном этапе. Конфигурационные файлы Server.confi и CNF. Конфигурация OpenSSL определяется первым файлом, а сервера OpenVPN — вторым.

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

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

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

С использованием OpenSL. Файл CNF показывает точное местоположение вновь созданного каталога сертификатов и ключей!

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

Перед запуском сервера OpenVPN необходимо создать каталоги и сертификаты, указанные в файлах server-confi и opensl.cnf.

Для создания журнала OpenVPN:

# mkdir /var/log/openvpn/

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

# mkdir /etc/openvpn/ccd

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

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

HMAC

Шифрование

X.509

Windows используется для создания сервера OpenVPN.

Полномочия по сертификации (CAC)

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

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

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

Проверьте появление интерфейса Tun с помощью команды IFCONFIG, если сервер OpenVPN запустился без проблем.

# 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.1. Этот адрес сервера OpenVPN, который я указал в конфигурационном файле stronger.conf, присутствует в нашем защищенном туннеле.

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

# netstat -ltupn | grep 1194

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

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

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

Установите на сервере OpenVPN утилиту Easy-RSA и запустите инициализацию инфраструктуры публичных ключей PKI:

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

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

Мы требуем либо в/usr/локальный файл/etc/openvpn/для linux или в/usr/log/etc/oapunbsd перед запуском демона OpenVPN.

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

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

Уважаемый орган должен подтвердить сертификат. Управление по сертификации (CAC) существует в этой компании.

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

Скорость

Режим разгона получает больше скорости от режима подъема. Все руководства рекомендуют это. В канале TCP зачем открывать клиентское TCP-соединение? Чтобы обеспечить правильную доставку пакетов, на клиенте требуется только один tcp. Клиентское tcp-соединение будет корректировать доставку, если в канале udp будут пропущены какие-либо пакеты.

Поскольку подтверждение отправителя больше не требуется, скорость доставки пакетов в канале увеличится. Один клиент-клиент TCP пакет, не включенный в одну и ту же сеть VPN-канала, является вторым недостатком. Вы должны включить заголовки в клиентский пакет, даже если IDM не совпадает. Два пакета отправляются на канал VPN Russian Post.

Могут быть времена, когда T CP является единственным вариантом. Когда канал SSH используется для VPN.

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

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

Сначала запустите консоли администратора. Мы использовали программу без затрат Conemu-Maximus5 для удобства.

Выполните следующие команды в каталоге Easy-RSA на консоли:

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

Файлы появляются в результате создания каталога C:Program FilesOpenVPNeasy-rsakeys.

Отредактируйте строки в файле vars.bat, как показано в примере ниже: название города Key_CITT, адрес электронной почты компании KKEI_ORG, код страны KEU_COUNTRS и код региона KEZ-PROVINCE

Создание инфраструктуры публичных ключей 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

Вся PKI, необходимая для генерации открытых ключей, находится в каталоге /home/ca/2easyrsa3/1PKI, созданном после выполнения команды init-pki.

Команда build-ca должна быть использована на втором этапе для создания центра сертификации для регистрации документов.

$ ./easyrsa build-ca

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

Создание ключей и сертификатов

Перейдите в рабочий каталог C: Program Filesopenvpneasy -rsa в командной строке, войдя в систему как администратор.

cd C:Program FilesOpenVPNeasy-rsa

В этой папке находится все необходимое для создания сертификатов.

Windows требует файла easyrsa-start.bat, чтобы функционировать.

Выполняем EasyRSA-Start.bat

EasyRSA Shell запускается в действие.

Мы инициализируем новую конфигурацию:

./easyrsa init-pki

Появляется новая директория C:Program FilesOpenVPNeasy-rsapki.

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

./easyrsa build-ca

Пароль будет запрашиваться дважды. Мы изобрели это и идем туда.

Мы получаем ошибку.

Extra arguments given.
genrsa: Use -help for summary.

Simple-RSA ошибка

Failed create CA private key

Давайте рассмотрим ошибку. Почему мы не можем просто действовать гуманным образом?Вызовите копию C: Progertflassesxrsawers и вставьте файл C: Program FilesoPenvpneasy-rsavars.example в него.

OpenVPNeasy-rsavars — это программа, расположенная в C:. На данном этапе я не буду вдаваться в подробности. Найдите строку:

#set_var EASYRSA_TEMP_DIR	"$EASYRSA_PKI"

Заменяем её на:

set_var EASYRSA_TEMP_DIR	"$EASYRSA_PKI/temp"

Это произошло в результате неспособности оболочки создать временный файл.

.

./easyrsa build-ca

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

Создать пару ключей. Порядковый номер слота ключа представлен параметром id.

pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 01

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

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

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

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

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

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

Вставьте файл C: Program Filesopen Vpnconfig для конфигурации клиента OpenVPN. Имя файла должно быть расширено до 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 FilesOpenVPNconfigkey.

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

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

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

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

Введите параметры для генерации ключа Easy-RSA.

$ ./easyrsa

Полный путь к утилите и список всех доступных команд.

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

$ ./easyrsa help build-ca

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

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

Управление пользователями

Добавлять

Пользователь добавляется с использованием того же сценария, даже если токены не используются. По сути, скрипт создает OVPN-конфиг пользователя и вводит его вместе с корневым сертификатом.

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

Через сценарий установки происходит удаление. VPN-сервер оплачивает новый сервер, и сертификат добавляется в CRL. Сервер CRL не принимает ни одного сертификата.

Как отозвать сертификат вручную

cd /etc/openvpn/easyrsa

# отозвать сертификат
./easyrsa revoke $CLIENT
# сгенерировть новый crl
./easyrsa gen-crl

# удалить старый crl
rm -rf /etc/openvpn/crl.pem
# подменить его новым
cp /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn/crl.pem
# openvpn должен уметь читать crl, когда он уже дропнул привилегии до nobody
chown nobody:nobody /etc/openvpn/crl.pem

Установка openvpn

Взять скрипт

Корень запуска. Я написал сценарий игры.

Я не понимаю, зачем ее использовать.

Установка openvpn server

Скачиваем дистрибутив для установки OpenVPN

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

Выберите, что загрузить — Microsoft Visual Basic 64GB или Windows Installer (64-bit). Запустите сгенерированный файл для завершения установки по умолчанию. Папка C:Program FilesOpenVPSconfig должна содержать файлы конфигурации, сертификаты и ключи.

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

Краткую инструкцию по использованию Easy-RSA для Windows вы найдете в файле C:Program FilesOpenVPNeasy-rsaREADME.txt

Мы рассмотрим случай, когда запрос на сертификат создается в Windows и отправляется в ЦС через USB-накопитель. На основе запроса создается подписанный файл сертификата и отправляется через USB-накопитель на хост Microsoft Windows.

Установка squid

Используя порты, мы установили Squid в среде FreeBSD:

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

Вы должны изменить параметры операционной системы при установке Debian Linux, поскольку файл конфигурации Squid расположен в каталоге /usr/local/etc/squid.

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

squid_enable="YES"

Используйте следующую команду для запуска Quid:

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

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

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

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

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

# apt-get install squid3

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

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

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

Выполните следующие команды для установки OpenVPN на серверном узле и клиентов OpenVPN с этих портов:

# сd /usr/ports/security/openvpn
# make install clean

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

Вы можете использовать инструмент OpenSL для генерации клавиш и сертификатов для использования с OpenSL. Тем не менее, вы должны использовать специально разработанную программу easy -RSA для выполнения операций с ключами и сертификатом.

Теперь Easy-RSA можно использовать независимо от OpenVPN.

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

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

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

Чтобы реализовать протокол Diffie-Hellman, который позволяет использовать небезопасную канал при получении общего секретного ключа, необходимо иметь файл Diffie-Hellman. Он будет использовать симметричные алгоритмы шифрования для безопасной связи.

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

Сервер OpenVPN создает файл Diffe Helman.

Фильтрация доступных хостов для клиентов


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

Вручную

Каков план?Прежде чем они достигнут NAT, вы должны перехватить и отфильтровать пакеты, поступающие от клиентов на интерфейсе TUN0. Все они имеют одинаковый IP -адрес во внутренней сети, когда NAT реализован, поэтому вам больше не нужно их фильтровать.

Таблица FORWARD обрабатывает пакеты, которые перемещаются через систему (которые не являются непосредственно входящими и не включены). Правило по умолчанию используется, если ни одно из правил в таблице не определяет, как будет обрабатываться пакет.

Подготовка переднего стола:

# сбросить все
iptables -F FORWARD
# дефолтное правило для таблицы FORWARD - не пропускать ничего
iptables -P FORWARD DROP
# пропускать уже установленные соединения
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Набор рекомендаций для конкретного клиента. Drop — это следующее правило для таблицы. Если вы хотите открыть ее в браузере, доступ к порту на хосте обеспечен.

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

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

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

Список CRL создается C A и затем копируется на сервер OpenVPN. Список CRL необходимо повторно копировать на сервер OpenVPN после внесения изменений.

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

cd C:Program FilesOpenVPNeasy-rsa
EasyRSA-Start.bat
./easyrsa revoke client

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

Когда сотрудник покидает компанию, его доступ к сети VPN должен быть заблокирован. Специально для этого в OpenVPN имеется список отзыва CRL. Его можно составить с помощью команды:

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

Для доступа к закрытому ключу ЦС необходим пароль. В файле /Home/CA/2EASY -RSA3/PKI будет создан ключ от ЦС для получения информации о вашей личности и персональных данных списка отзывов сертификатов. PEM

Этот файл USB-диска необходимо реструктурировать:

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

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

$ ./easyrsa revoke developer5

В этом разделе мы отозвали сертификат клиента developer5. После этого необходимо перезапустить демон и скопировать новый файл CRL на сервер OpenVPN.

Выводы

В данной статье был рассмотрен вопрос получения криптотуннеля с использованием алгоритма шифрования ГОСТ_2022 и действующего ключа от КриптоПро. Благодаря этому мы смогли оплатить всего две лицензии КриптоПро CSP на 2 миллиона рублей меньше.

Вы можете что -то написать, конечно;Это не так дорого. Предварительные решения будут более дорогими, чем готовые.

Оцените статью
ЭЦП64
Добавить комментарий