- Введение
- 2 генерация ключей и сертификатов
- Перенос готовых сертификатов в /etc/openvpn
- 4 настройка и запуск сервера
- Настройка NAT в Firewalld
- Подключение клиента к серверу OpenVPN
- Mas os
- Windows
- Безопасность и шифрование
- Библиотека pkcs#11
- Генерация файла диффи-хелмана
- Готовим оборудование для установки openvpn
- Добавление пользователя openvpn
- Задача
- Запуск openvpn сервера
- Запуск openvpn-gui
- Запуск демона openvpn
- Запуск клиента openvpn
- Использование токена для аутентификации
- Настройка firewall
- Настройка openvpn клиента на пк windows
- Настройка openvpn клиента на смартфоне android
- Настройка openvpn сервера
- Немного теории
- Обмен данными по сети
- Особенности установки на freebsd
- Подготовка сертификата и ключа для клиента openvpn
- Подготовка файлов конфигурации
- Полезные ссылки
- Получение сертификата от удостоверяющего центра ca
- Проверка результата запуска демона openvpn
- Работа с инфраструктурой pki
- Ревизия файлов перед запуском openvpn
- Сертификаты и удостоверяющий центр ca
- Скорость
- Создание запроса на сертификат
- Создание инфраструктуры публичных ключей pki
- Создание ключей и сертификатов
- Создание сертификата на токене
- Создание статического ключа hmac
- Создание файла конфигурации клиента openvpn
- Созданные файлы и каталоги pki
- Справка по утилите easy-rsa
- Статический ключ hmac
- Управление пользователями
- Установка openvpn
- Установка openvpn server
- Установка openvpn-gui
- Установка squid
- Установка прокси-сервера squid
- Установка сервера и клиента openvpn
- Установка утилиты easy-rsa
- Файл диффи-хелмана
- Фильтрация доступных хостов для клиентов
- Список отзыва сертификатов
- Отзыв сертификата
- Создание списка отзывов сертификатов
- Выводы
Введение
Построение VPN и «туннелирование» нестандартного метода инкапсуляции пакетов — совсем не сложные задачи для любого системного администратора или DevOps. Если OpenVPN предполагается использовать постоянно, его можно использовать для этого время от времени.
Существуют также предприятия и организации, которые предъявляют строгие требования к передаче данных. Такие требования, например, предъявляются к банкам и микрофинансовым организациям. Во всех законах и нормативных актах личная информация называется «защищенной информацией».
A CS со всеми необходимыми лицензиями и сертификатами, которые придерживаются требований к юридическим требованиям, требуются для шифрования. Одним из примеров такого программного обеспечения является Cryptopro CSP. Мы объясним, как использовать шифрование для шифрования сети.
2 генерация ключей и сертификатов
Инициализируем PKI (архив публичных ключей)
./easyrsa init-pki
в текущем каталоге появится каталог 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/, используя поле команды.
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 миллиона рублей меньше.
Вы можете что -то написать, конечно;Это не так дорого. Предварительные решения будут более дорогими, чем готовые.