Как установить openvpn debian

Установка и настройка сервера OpenVPN на Debian

Для работы OpenVPN необходима поддержка TUN/TAP интерфейса на сервере. Если вы устанавливаете OpenVPN на физической машине, либо используете виртуализацию KVM, в с этим не должно возникнуть проблем.
В случае использования OpenVZ, необходимо активировать поддержку TUN/TAP в настройках контейнера.

Проверяем поддержку в системе tun/tap-интерфейсов:

Клиенты будут использовать на сервере аутентификацию по ключу. Для этого создадим директорию в которую будут скопированы сгенерированные ключи:

И скопируем в нее утилиты и конфиги для работы с ключами:

переходим в созданную директорию:

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

Меняем (по желанию) следующие строки:

Остальное оставляем по умолчанию.

После правки vars инициализируем переменные и очищаем каталог keys/serverот старых сертификатов и ключей:

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

Создаем корневой сертификат:

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

Генерируем сертификаты сервера и клиента:

Для каждого клиента должны быть сгенерированы отдельные ключи.

Генерируем ключ Диффи — Хеллмана:

Cоздаем ключ для tls-аутификации:

Все сгенерированные сертификаты и ключи находятся в директории /etc/openvpn/easy-rsa/keys/
Копируем сертификаты и ключи сервера в директорию OpenVPN:

На клиентскую машину OpenVPN необходимо скопировать следующие ключи и сертификаты:

client1.crt
client1.key
ca.crt
ta.key

Для понимания назначения и расположения соответствующих файлов, я сделал небольшую таблицу:

Имя файлаГде необходимНазначениеСекретный
ca.crtсервер + все клиентыКорневой CA-сертификатНЕТ
ca.keyмашина для подписи ключейКорневой CA-ключДА
dh.pemтолько серверПараметры Diffie Hellman’аНЕТ
server.crtтолько серверСертификат сервераНЕТ
server.keyтолько серверКлюч сервераДА
client1.crtтолько клиент1Сертификат клиента1НЕТ
client1.keyтолько клиент1Ключ клиента1ДА
client2.crtтолько клиент2Сертификат клиента2НЕТ
client2.keyтолько клиент2Ключ клиента2ДА

На этом установка сервера OpenVPN завершена, осталось настроить конфигурацию сервера.

Пример конфигурационного файла OpenVPN расположен в директории /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz, копируем и распаковываем его в /etc/openvpn:

В зависимости от потребностей, изменяем настройки сервера OpenVPN:

Вот моя конфигурация:

Для повышения безопасности на linux-системах можно понизить права VPN-сервера, раскомментировав в конфиге сервера следующие строки:

Создаем директорию для клиентских настроек и перезагружаем сервер:

После завершения настройки OpenVPN, перезагружаем сервер:

В случае успешного запуска OpenVPN в системе должен появиться новый tun0 интерфейс:

Наличие данного интерфейса означает, что OpenVPN Запущен и работает. Если по каким-либо причинам он не появился, то смотрим лог-файл на наличие ошибок:

После подключения клиента к серверу OpenVPN, если он (клиент) находится в локальной сети, нужно дополнительно настроить маршрутизацию для доступа к ресурсам внутри сети. Для этого создаем файл в каталоге ccd с тем же именем ключа клиента:

Добавим в файл следующие параметры:

Включаем NAT на OpenVPN сервере

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

Чтобы включить поддержку IP forwarding, нужно в файле /etc/sysctl.conf раскомментировать строчку:

Применяем изменения (загружаем переменные ядра):

Не забываем прописать правила iptables. Нам нужно разрешить клиентам из подсети 10.10.10.0/24 доступ в интернет, разрешить принимать пакеты из интернета и пропустить трафик клиентов через NAT.

Замените eth0 на имя своего внешнего интерфейса. Следует отметить, что MASQUERADE создает нагрузку на процессор. Поэтому, предпочтительнее использовать SNAT:

Разница между SNAT и MASQUERADE:
Маскарадинг постоянно запрашивает IP адрес у интерфейса, тем самым создавая нагрузку на процессор, в то время как SNAT «знает» IP (в нашем случае мы его указываем явно, т.к он статический).

Сохраняем правила и добавляем их в автозагрузку:

Настройка клиента OpenVPN

Если OpenVPN не установлен, то установим его::

Копируем на компьютер клиента следующие ключи и сертификаты:

Копируем и распаковываем пример конфигурационного файла в содержимое директории OpenVPN:

Добавим в содержимое файла следующие параметры:

Для Windows-машин нужно положить файл client.ovpn в папку:

C:\Program Files\OpenVPN\config\

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

На этом настройка OpenVPN в Debian закончена, проверяем его работоспособность:

Если пинг проходит, то все хорошо, если же нет, то смотрим логи и проверяем настройки маршрутизации.

P.S. Если у вас на сервере динамический IP, то можете воспользоваться скриптом замены IP в конфиге OpenVPN, и последующей его отправкой на email.

Источник

Установка и настройка сервера и клиента OpenVPN на Debian

Обновлённая и более универсальная инструкция по настройке OpenVPN на всех основных платформах теперь в статье « Инструкция по настройке сервера и клиента OpenVPN ».

В данной статье подробно описывается, как получить подключение на OpenVPN с использованием Debian Linux. Эти команды запускаются от рута.

Что такое OpenVPN?

OpenVPN – это VPN программа, которая использует SSL/TLS для создания безопасных, зашифрованных VPN соединений для маршрутизации вашего интернет трафика, тем самым предотвращая слежку (снупинг). OpenVPN имеет высокую способность прозрачности для прохода через файерволы. На самом деле, если ситуация требует этого, вы можете запустить его на том же TCP порту как HTTPS (443), что делает трафик неразличимым и практически невозможным для блокировки.

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

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

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

Если вы в одной из тех стран, которые постоянно мониторят весь ваш трафик и блокируют по своему желанию веб-сайты, вы можете использовать OpenVPN через TCP порт 443, чтобы сделать его неотличимым от HTTPS трафика. Вы даже можете комбинировать ваши стратегии безопасности, например, туннелировать ваш OpenVPN трафик через SSL туннель, чтобы отбиться от техник Deep Packet Inspection (глубокого анализа пакетов), которые могут быть способными идентифицировать сигнатуры OpenVPN.

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

Для работы OpenVPN нужны минимальные требования. Система с 64 MB оперативной памяти и 1 GB места на жёстком диске достаточно для OpenVPN. OpenVPN работает почти на всех основных системах.

Установка и настройка OpenVPN на Debian

Установка OpenVPN on Мастер-сервер

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

По умолчанию скрипты easy-rsa scripts устанавливаются в директорию ‘/usr/share/easy-rsa/‘. Поэтому нам нужно скопировать эти скрипты в нужное расположение, например /root/easy-rsa.

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

Откройте файл ‘vars‘ и сделайте следующие изменения, но перед внесением изменений я предлагаю сделать резервную копию.

Используя ваш текстовый редактор измените значения по умолчанию для easy-rsa.

Например, добавьте в самый низ:

Здесь я использую 4096 битный ключ. Вы можете по своему использовать 1024, 2048, 4096 или 8192 битный ключ.

Экспортируем величины по умолчанию выполнив.

Очистим все сертификаты, которые были сгенерированы ранее.

Далее запустите следующую команду для генерации сертификата CA и ключа CA.

Сгенерируйте сертификат сервера следующей командой. Вместо «server» можно подставить любое имя сервера.

Сгенерируйте PEM сертификат Diffie Hellman PEM.

Сгенерируйте клиентский сертификат. Вместо «client» можно подставить ваше имя клиента.

Сгенерируйте код HMAC.

Скопируйте сертификаты на машины клиента и сервера следующим образом.

Для установки сертификатов на сервере запустите команды.

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

Теперь вам нужно настроить OpenVPN. Откройте фйл ‘/etc/openvpn/server.conf‘. Пожалуйста, сделайте изменения, как написано ниже.

Запустите следующую команду для настройки OpenVPN запускаться при загрузке.

Запустите службу OpenVPN.

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

Создайте файл vpn_firewall.sh

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

Проверить работу файла:

ОБЯЗАТЕЛЬНО проверьте работу файла ДО добавления его в автозагрузку. Отключитесь и подключитесь по SSH чтобы убедиться, что всё действительно работает.

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

Запустите следующую команду для установки OpenVPN на клиентской машине.

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

Используя текстовый редактор, настройте конфигурацию OpenVPN клиента в ‘/etc/openvpn/client.conf‘ на клиенте. Пример конфигурации ниже:

Обратите внимание на строку remote 185.117.153.79 – вам обязательно нужно заменить это значение на IP вашего собственного VPN сервера!

Запустите следующую команду для настройки OpenVPN запускаться при загрузке.

Запустите службу OpenVPN на клиенте.

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

Для наших настроек это делается так:

Ещё это можно делать, например, командой:

Настройка входа в OpenVPN по логину и паролю

Принцип работы с подключением по логину и паролю следующий:

Схема работы, мягко говоря, так себе. Поскольку предусматривает хранение паролей в открытом виде и на сервере и на клиенте…

Внесём изменения в конфигурационный файл сервера:

Добавим туда следующие строки:

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

Делаем файл исполнимым:

Файл с паролями /etc/openvpn/user.pass выглядит так:

то есть идёт через пробел пара логин:пароль. Пароль находится в открытом виде!

В конфигурационный файл клиента добавляем такую строку:

и создаём соответственно файл pass.txt, где будет находится логин и пароль в таком виде:

Примечание: Если в параметре auth-user-pass убрать путь к файлу, будет запрашиваться логин/пароль.

Полные конфигурационные файлы в моём случае. Для сервера:

Источник

Установка и настройка OpenVPN-сервера в Debian

Список разделов

В данном руководстве мы будем настраивать VPN на основе OpenVPN под управлением Linux Debian 6. Кроме того в тексте приведены длинные выдержки из логов, так как когда настраиваешь первый раз не известно как должно выглядеть нормальное содержимое лога. Также будем рассчитывать, что вы уже настроили сеть.

Проверка

Вторая команда не дала никакого вывода на моем сервере, но работе VPN это не помешало.

Установка OpenVPN-сервера

Предполагаем, что на сервере все действия производятся из-под рута.

В итоге на сервере использовались следующие версии ПО: Debian 6.0.7, OpenVPN 2.1.3-2, OpenSSL 0.9.8o

Генерация ключей

Создаём директорию под ключи:

В нее копируем утилиты и конфиги для работы с ключами:

UPD. Если у вас более новая версия OpenVPN и easy-rsa в поставке нет, то вы можете увидеть следующее сообщение об ошибке:

cp: cannot stat '/usr/share/doc/openvpn/examples/easy-rsa/2.0/*': No such file or directory

Не стоит пугаться. Достаточно установить его из репозитория:

и скопировать файлы из другой директории:

Делается это для того, чтобы после обновления OpenVPN-сервера сделанные нами изменения не перезаписались.

Переходим в эту директорию:

В файле vars настраиваем параметры ключа:

Нас интересует только следующий блок:

Меняем на что-нибудь вроде:

Очищаем от старых сертификатов и ключей папку keys/server:

Generating a 1024 bit RSA private key
. ++++++
. ++++++
writing new private key to ‘ca.key’
——
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
——
Country Name (2 letter code) [RU]:
State or Province Name (full name) [Leningradskaya]:
Locality Name (eg, city) [SaintPetersburg]:
Organization Name (eg, company) [Firm]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) [Firm CA]:debgate
Name []:vasya
Email Address [[email protected]]:

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

Генерируем ключ сервера:

Generating a 1024 bit RSA private key
. ++++++
. ++++++
writing new private key to ‘server.key’
——
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
——
Country Name (2 letter code) [RU]:
State or Province Name (full name) [Leningradskaya]:
Locality Name (eg, city) [SaintPetersburg]:
Organization Name (eg, company) [Firm]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) [server]:
Name []:
Email Address [[email protected]]:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName :PRINTABLE:’RU’
stateOrProvinceName :PRINTABLE:’Leningradskaya’
localityName :PRINTABLE:’SaintPetersburg’
organizationName :PRINTABLE:’Firm’
commonName :PRINTABLE:’server’
emailAddress :IA5STRING:'[email protected]’
Certificate is to be certified until Mar 24 14:50:43 2023 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

По ходу дела можно задать пароль для сертификата для большей безопасности.

Генерируем сертификат клиента:

Generating a 1024 bit RSA private key
. ++++++
..++++++
writing new private key to ‘user.key’
——
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
——
Country Name (2 letter code) [RU]:
State or Province Name (full name) [LO]:
Locality Name (eg, city) [SaintPetersburg]:
Organization Name (eg, company) [Firm]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) [user]:
Name []:
Email Address [[email protected]]:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName :PRINTABLE:’RU’
stateOrProvinceName :PRINTABLE:’LO’
localityName :PRINTABLE:’SaintPetersburg’
organizationName :PRINTABLE:’Firm’
commonName :PRINTABLE:’user’
emailAddress :IA5STRING:'[email protected]’
Certificate is to be certified until Mar 28 13:30:46 2023 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

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

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

Генерируем ключ Диффи — Хеллмана:

Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time

Наконец, последний ключ для tls-аутификации:

Копируем серверные ключи в директорию /etc/openvpn:

Клиенту же понадобятся следующие ключи:

user.crt
user.key
ca.crt
ta.key

Ключ ta.key понадобится для tls-аутентификации, которую мы будем настраивать на втором этапе.

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

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

Правим конфигурационный файл VPN-сервера в Debian:

Задаем следующие параметры:

За счёт указанных параметров мы выбираем порт, протокол, тип соединения, указываем сертификаты, задаём параметры VPN-сети, указываем файл в котором хранить параметры соединений (чтобы можно было их восстановить после переподключения клиента), задаём параметры поддержания соединения, просим использовать сжатие передаваемых данных, указываем серверу при перезагрузке не подключаться к ресурсам которые могут быть недоступны из-за понижения привилегий, задаём файл статуса (содержит информацию о подключенных клиентах), лог-файл и уровень подробности отладочной информации.
Если нужно больше отладочной информации, то для параметра verb можно установить значение вплоть до 9. В большинстве случаев вам должно хватить значения 5 или максимум 6.

После этого для проверки запустите сервер из командной строки:

Хотя скорее всего после установки openvpn в Debian, демон будет уже запущен и чтобы он нам не мешался, его стоит остановить:

Если все хорошо, после запуска сервера в логе должно оказаться примерно следующее:

Настройка OpenVPN-клиента

Я использовал дистрибутив Linux Mint 14 основанный на Ubuntu, который в свою очередь основан на Debian. На клиенте действия выполнялись под непривилегированным пользователем с применением команды sudo.

Напомню, клиенту нужно передать следующие ключи:

Затем на клиентской машине расположить их в директории /etc/openvpn/.

Копируем файл с примерной конфигурацией клиента в нужную директорию:

Далее приведён список базовых директив позволяющих подключиться к настроенному ранее серверу:

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

После этого, если все нормально то в консоли ничего не должно появляться и не должно отображаться приглашения командной строки. В логе клиента /var/log/openvpn.log долно появиться примерно следующее:

В логе сервера добавится следующее:

При этом с клиента должен пинговаться адрес 10.8.0.1 (можно открыть еще одну консоль):

Мы настроили OpenVPN-сервер в Debian по минимуму, проверили его работоспособность. Осталось добавить tls-шифрование и завернуть на VPN-сервер весь трафик клиента.

Добавляем tls-шифрование

На сервере пишем в /etc/openvpn/server.conf:

На клиенте в /etc/openvpn/client.conf:

Снова соединяемся, пингуем 10.8.0.1. Если пинг проходит, значит все хорошо.

Если VPN-сервер перезапустить, то после соединения с клиентом в логе будет примерно следующее:

Как видно, появились строки про ключ ta.key, также изменились строки про cipher.

Заворачиваем весь трафик на VPN-сервер

Тут требуется заменить конфигурационный файл только на сервере. Добавляем строки:

Первая строка меняет шлюз по умолчанию на заданный на VPN-сервере. После отключения будет возвращён шлюз, который был задан на клиенте ранее.

Вторая строка задает DNS-сервер, который будет использоваться после подключения к VPN-серверу.

Также нам необходимо на сервере задать правило для маршрутизации трафика из сети VPN-сервера в локальную сеть или сеть интернет-провайдера. В debian это можно сделать правилом для iptables:

Теперь можно по нормальному запустить openvpn-сервер и клиент:

Единственное неудобство, при запуске демона на клиенте будет постоянно поддерживаться VPN-соединение. О том, как отключить автозагрузку демона можно прочитать в статье про управление автозагрузкой в debian.

Если вы используете Linux на вашем рабочем компьютере, то для удобного подключения к VPN можно использовать модуль к Network-Manager.

Дополнительные параметры

Для повышения безопасности на linux-системах можно понизить права VPN-сервера:

Источник

Настройка сервера OpenVPN в Debian 10

Нужен безопасный доступ к Интернету со смартфона или ноутбука при подключении к незащищенной сети (например, к WiFi в отеле или кафе)? Виртуальная частная сеть (VPN) позволяет находиться в ненадежных сетях так, как если бы вы были подключены к частной сети. Трафик исходит от VPN-сервера и передается до места назначения.

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

OpenVPN – это полнофункциональное открытое средство VPN SSL, которое поддерживает широкий диапазон конфигураций. В этом мануале вы научитесь настраивать сервер OpenVPN на вашем выделенном сервере Debian 10, а также настраивать доступ к Windows, OS X, iOS и Android.

Требования

Для работы вам понадобится сервер Debian 10, полностью настроенный по этому мануалу. Все действия по настройке OpenVPN нужно будет выполнять в сессии пользователя sudo.

Кроме того, вам понадобится отдельный компьютер, который будет служить вашим центром сертификации (ЦС или CA). Технически для этого возможно использовать сервер OpenVPN или локальную машину, но этого делать не рекомендуется, так как это подвергает VPN некоторым уязвимостям безопасности. По официальной документации OpenVPN вы должны разместить свой ЦС на автономной машине, предназначенной для импорта и подписания запросов на сертификаты. Потому в этом мануале предполагается, что ваш ЦС находится на отдельном сервере Debian 10, который также настроили по этому мануалу.

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

1: Установка OpenVPN и EasyRSA

Сначала установите пакет OpenVPN на сервер. Пакет OpenVPN доступен в репозиториях Debian по умолчанию, поэтому для установки можно использовать apt.

Обновите локальный индекс пакетов и установите OpenVPN:

sudo apt update
sudo apt install openvpn

OpenVPN – это протокол TLS/SSL VPN. Это значит, что для шифрования трафика между сервером и клиентами он использует сертификаты. Чтобы выдавать доверенные сертификаты, нужно создать собственный центр сертификации (ЦС). Для этого понадобится последняя версия пакета EasyRSA, который позволяет собирать инфраструктуры открытых ключей ЦС (PKI). Этот пакет можно найти на GitHub.

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

Примечание: Это нужно сделать на обоих серверах.

tar xvf EasyRSA-unix-v3.0.6.tgz

Вы успешно установили все необходимое программное обеспечение на обе машины. Теперь пора настроить переменные, используемые EasyRSA, и подготовить каталог CA, где вы будете генерировать ключи и сертификаты, необходимые для доступа к VPN.

2: Настройка переменных EasyRSA и сборка ЦС

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

На машине CA перейдите в каталог EasyRSA:

В каталоге найдите файл vars.example. Скопируйте его и назовите копию vars без расширения.

cp vars.example vars

Откройте новый файл в текстовом редакторе:

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

Раскомментируйте следующие строки и укажите в них свои данные (только не оставляйте пустых полей):

Сохраните и закройте файл.

В каталоге EasyRSA есть скрипт easyrsa, который вызывается для выполнения задач, связанных с созданием и управлением CA. Запустите этот скрипт с параметром init-pki, чтобы инициировать инфраструктуру открытого ключа на сервере CA:

После этого вызовите скрипт easyrsa с опцией build-ca. Это создаст ЦС и два важных файла – ca.crt и ca.key, открытую и закрытую часть SSL-сертификата.

Если вы не хотите указывать пароль при каждом взаимодействии с ЦС, вы можете ввести команду build-ca с параметром nopass:

./easyrsa build-ca nopass

В выводе будет предложено подтвердить Common Name для вашего ЦС:

Common Name – это имя для ссылки на этот компьютер в контексте центра сертификации. В качестве Common Name для CA можно ввести любую строку символов, но для простоты нажмите Enter, чтобы принять имя по умолчанию.

Теперь центр сертификации готов подписывать запросы на сертификаты.

3: Создание сертификата, ключа и файлов шифрования

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

На сервере OpenVPN откройте каталог EasyRSA:

Теперь запустите сценарий easyrsa с параметром init-pki. Ранее вы уже выполняли эту команду на машине CA, а сейчас необходимо запустить ее здесь, потому что ваш сервер и CA будут иметь отдельные каталоги PKI:

Затем снова вызовите сценарий easyrsa, на этот раз с параметром gen-req, после которого укажите common name машины. Опять же, common name может быть что угодно, но удобнее использовать описательное имя. В данном мануале в качестве имени сервера OpenVPN будет использоваться просто server. Обязательно включите опцию nopass. Иначе пароль будет защищать файл запроса, что впоследствии может привести к проблемам с правами.

./easyrsa gen-req server nopass

Эта команда создаст закрытый ключ для сервера и файл запроса сертификата server.req. Скопируйте ключ сервера в каталог /etc/openvpn/:

Используя безопасный метод (например, SCP, как в примере ниже), передайте файл server.req на ваш компьютер CA:

Теперь на сервере CA нужно открыть каталог EasyRSA:

Снова примените сценарий easyrsa, импортируйте файл server.req, указав common name после пути файла:

./easyrsa import-req /tmp/server.req server

Затем подпишите запрос, запустив сценарий easyrsa с параметром sign-req, а после введите тип запроса и common name. Тип запроса может быть client либо server; для запроса сертификата сервера OpenVPN обязательно используйте тип запроса server:

./easyrsa sign-req server server

В выводе будет предложено подтвердить, что запрос поступает из надежного источника. Введите yes, затем нажмите Enter:

You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
Request subject, to be signed as a server certificate for 1080 days:
subject=
commonName = server
Type the word ‘yes’ to continue, or any other input to abort.
Confirm request details: yes

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

Затем передайте подписанный сертификат обратно на VPN-сервер через безопасный метод:

scp pki/issued/server.crt 8host@your_server_ip:/tmp

Перед выходом с сервера CA переместите файл ca.crt на свой сервер:

scp pki/ca.crt 8host@your_server_ip:/tmp

Затем вернитесь на сервер OpenVPN и скопируйте server.crt и ca.crt в каталог /etc/openvpn/:

Перейдите в каталог EasyRSA:

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

Эта операция займет несколько минут.

Затем можно создать подпись HMAC, чтобы усилить функции проверки целостности TLS:

После этого скопируйте два новых файла в каталог /etc/openvpn/:

/EasyRSA-v3.0.6/ta.key /etc/openvpn/
sudo cp

4: Генерирование ключей клиента

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

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

Создайте структуру каталогов в домашнем каталоге для хранения сертификата клиента и файлов ключей:

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

Затем вернитесь в каталог EasyRSA и запустите скрипт easyrsa с опцией gen-req и nopass, указав common name клиента:

/EasyRSA-v3.0.6/
./easyrsa gen-req client1 nopass

Нажмите Enter, чтобы подтвердить common name. Скопируйте client1.key в /client-configs/keys/:

Передайте файл client1.req на сервер CA:

scp pki/reqs/client1.req 8host@your_CA_ip:/tmp

Войдите на машину CA, перейдите в каталог EasyRSA и импортируйте запрос на сертификат:

ssh 8host@your_CA_ip
cd EasyRSA-v3.0.6/
./easyrsa import-req /tmp/client1.req client1

Затем подпишите запрос, как и для сервера. Но на этот раз укажите тип запроса client:

./easyrsa sign-req client client1

В ответ введите yes, чтобы подтвердить, что вы хотите подписать запрос сертификата и что он пришел из надежного источника:

Type the word ‘yes’ to continue, or any other input to abort.
Confirm request details: yes

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

Это создаст клиентский сертификат client1.crt, который нужно передать на сервер:

scp pki/issued/client1.crt 8host@your_server_ip:/tmp

По SSH подключитесь обратно на сервер OpenVPN и скопируйте сертификат клиента в каталог /client-configs/keys/:

Затем скопируйте ca.crt и ta.key в каталог /client-configs/keys/:

/client-configs/keys/
sudo cp /etc/openvpn/ca.crt

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

5: Настройка сервиса OpenVPN

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

Для начала нужно скопировать образец файла OpenVPN в каталог конфигурации, чтобы его можно было использовать в качестве основы для установки:

Откройте файл в текстовом редакторе:

sudo nano /etc/openvpn/server.conf

Сначала найдите раздел HMAC и директиву tls-auth. Удалите точку с запятой в начале строки, чтобы раскомментировать tls-auth. Под этим параметром добавьте key-direction со значением «0»:

tls-auth ta.key 0 # This file is secret
key-direction 0

Затем найдите раздел шифров, а в нем закомментированные строки cipher. AES-256-CBC обеспечивает хороший уровень шифрования и хорошо поддерживается. Удалите точку с запятой, чтобы раскомментировать AES-256-CBC:

Ниже вы можете добавить строку auth, чтобы выбрать алгоритм HMAC. SHA256 – хороший выбор:

Затем найдите директиву dh, которая определяет параметры Диффи-Хеллмана. Из-за недавних изменений, внесенных в EasyRSA, имя ключа Диффи-Хеллмана может отличаться от того, что указано в файле конфигурации сервера. Если нужно, измените имя файла, указанное здесь, удалив 2048 – имя должно совпадать с ключом, сгенерированным на предыдущем этапе:

Теперь найдите настройки user и group и удалите “;” в начале этих строк:

user nobody
group nogroup

Принудительное перенаправление трафика на VPN (опционально)

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

Вы можете сделать это, раскомментировав несколько директив в server.conf, которые настраивают клиентские компьютеры для перенаправления всего веб-трафика через VPN. Найдите раздел redirect-gateway и удалите точку с запятой в начале строки redirect-gateway, чтобы раскомментировать ее:

push «redirect-gateway def1 bypass-dhcp»

Ниже найдите раздел dhcp-option. Удалите “;” в начале строк, чтобы раскомментировать их:

push «dhcp-option DNS 208.67.222.222»
push «dhcp-option DNS 208.67.220.220»

Это должно помочь клиентам переконфигурировать DNS для использования туннеля VPN в качестве шлюза по умолчанию.

Изменение порта и протокола (опционально)

По умолчанию сервер OpenVPN использует порт 1194 и протокол UDP для приема клиентских подключений. Если вам нужно использовать другой порт из-за ограничений сетевой среды, вы можете изменить параметр port. Если вы не размещаете веб-контент на своем сервере OpenVPN, можете использовать порт 443, поскольку он обычно разблокирован в брандмауэре.

Часто протокол ограничивается этим портом. Если это так, измените значение proto с UDP на TCP:

# Optional!
proto tcp

Если вы переключили протокол на TCP, вам нужно будет изменить значение директивы direct-exit-notify с 1 на 0, так как эта директива поддерживается только UDP. В противном случае TCP вызовет ошибки при запуске службы OpenVPN:

# Optional!
explicit-exit-notify 0

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

Настройка нестандартных учетных данных (опционально)

cert server.crt
key server.key

Сохраните и закройте файл.

6: Конфигурации сети сервера

Затем нужно настроить некоторые моменты в работе сервера, чтобы OpenVPN мог правильно маршрутизировать трафик.

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

Эта настройка находится в файле /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

Найдите строку net.ipv4.ip_forward и удалите символ #, чтобы раскомментировать ее.

Сохраните и закройте файл.

Чтобы обновить настройки в текущей сессии, введите:

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

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

ip route | grep default

Открытый интерфейс будет указан в выводе после dev. Например, в этом случае это интерфейс wlp11s0:

default via 203.0.113.1 dev eth0 proto static

Определив интерфейс, связанный с маршрутом по умолчанию, откройте файл /etc/ufw/before.rules, чтобы добавить соответствующую конфигурацию:

sudo nano /etc/ufw/before.rules

Сохраните и закройте файл.

Также UFW нужно разрешить пересылать пакеты по умолчанию. Для этого откройте /etc/default/ufw:

sudo nano /etc/default/ufw

Внутри найдите директиву DEFAULT_FORWARD_POLICY. Измените DROP на ACCEPT:

Сохраните и закройте файл.

Затем нужно настроить брандмауэр для поддержки трафика OpenVPN. Если вы не изменили порт и протокол в файле /etc/openvpn/server.conf, вам нужно будет открыть UDP-трафик на порт 1194. Если вы изменили порт и/или протокол, откорректируйте здесь эти значения.

Также нужно добавить SSH-порт, если вы забыли добавить его, следуя инструкциям в предварительных требованиях:

sudo ufw allow 1194/udp
sudo ufw allow OpenSSH

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

sudo ufw disable
sudo ufw enable

Теперь сервер может правильно обрабатывать трафик OpenVPN.

7: Запуск и автозагрузка сервиса OpenVPN

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

Вам нужно запустить сервер OpenVPN, указав имя конфигурационного файла в качестве переменной экземпляра после имени unit-файла systemd. Файл конфигурации сервера называется /etc/openvpn/server.conf, поэтому мы добавим @server после unit-файла:

sudo systemctl start openvpn@server

Убедитесь, что сервис успешно запущен:

sudo systemctl status openvpn@server

Если все работает, вы увидите:

Вы также можете проверить, доступен ли интерфейс OpenVPN tun0, набрав:

Вы должны увидеть результат:

mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::dd60:3a78:b0ca:1659/64 scope link stable-privacy
valid_lft forever preferred_lft forever

Если все работает правильно, добавьте сервис в автозагрузку:

sudo systemctl enable openvpn@server

8: Создание инфраструктуры клиентской конфигурации

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

Создайте в своем домашнем каталоге структуру каталогов для хранения файлов:

Затем скопируйте образец конфигурации клиента в каталог, чтобы использовать его в качестве базовой конфигурации:

Откройте этот новый файл в текстовом редакторе:

В него нужно внести несколько поправок.

Сначала найдите директиву remote. Она указывает клиенту адрес сервера OpenVPN. Это должен быть внешний IP-адрес вашего сервера OpenVPN. Если вы изменили порт, который прослушивает сервер OpenVPN, замените 1194 новым номером порта.

Убедитесь также, что протокол указан правильно.

Затем раскомментируйте директивы user и group, удалив “;”:

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

Найдите директивы ca, cert и key. Закомментируйте эти директивы, так как сертификаты и ключи нужно добавить внутри самого файла:

Также раскомментируйте директиву tls-auth, чтобы добавить ta.keyпрямо в конфигурационный файл клиента:

# If a tls-auth key is used on the server
# then every client must also have the key.
#tls-auth ta.key 1

Параметры cipher и auth должны отражать значения из файла /etc/openvpn/server.conf.

cipher AES-256-CBC
auth SHA256

Затем добавьте где-нибудь в файле директиву key-direction. Для работы с сервером должно быть установлено значение «1»:

# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf

Сохраните файл, когда закончите.

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

Создайте и откройте файл make_config.sh:

Вставьте в него такой сценарий, вместо 8hostукажите имя своего пользователя:

Сохраните и закройте файл.

Сделайте его исполняемым.

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

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

9: Генерирование клиентской конфигурации

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

/client-configs и использовать созданный вами сценарий:

Если все сработало правильно, в каталоге

/client-configs/files появится файл client1.ovpn.

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

Приложения, используемые вами для осуществления этой передачи, зависят от вашего выбора и операционной системы устройства. Но лучше бы приложение использовало SFTP (SSH file transfer protocol) или SCP (Secure Copy). Это позволяет передать конфиденциальные данные клиента по зашифрованному соединению.

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

10: Клиентская конфигурация

Теперь мы обсудим, как установить клиентский профиль VPN в Windows, OS X, iOS и Android. Эти разделы не зависят друг от друга, поэтому их не нужно выполнять последовательно – просто выберите нужную вам систему и следуйте инструкциям.

Система Windows

Установка

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

Примечание: Для установки OpenVPN требуются административные права.

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

OpenVPN должен запускаться как администратор каждый раз, когда он используется даже с помощью административных учетных записей. Чтобы не кликать правой кнопкой мыши и не выбирать Run as administrator каждый раз, когда вы используете VPN, вы можете настроить такой запуск, но это должно быть сделано из учетной записи администратора. Это также означает, что стандартным пользователям необходимо будет ввести пароль администратора для использования OpenVPN. С другой стороны, стандартные пользователи не могут правильно подключиться к серверу, если у приложения OpenVPN на клиенте нет прав администратора, поэтому необходимы повышенные привилегии.

Чтобы приложение OpenVPN всегда запускалось как администратор, кликните по нему правой кнопкой мыши и выберите Properties. В нижней части вкладки Compatibility нажмите Change settings for all users. В новом окне установите флажок Run this program as an administrator.

Подключение

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

После запуска OpenVPN инициируйте соединение; для этого войдите в апплет панели задач и кликните правой кнопкой мыши по значку OpenVPN. Откроется контекстное меню. Выберите client1 в верхней части меню (это наш профиль client1.ovpn) и нажмите Connect.

Откроется окно состояния, показывающее вывод лога при установлении соединения, а после подключения клиента появится сообщение.

Отключить VPN можно так же: зайдите в апплет панели задач, кликните правой кнопкой мыши по OpenVPN, выберите профиль клиента и нажмите Disconnect.

macOS

Установка

В конце установки Tunnelblick спросит, есть ли у вас файлы конфигурации. Легче ответить No и дать Tunnelblick закончить установку. Откройте окно Finder и дважды щелкните client1.ovpn. Tunnelblick установит профиль клиента. Для этого требуются административные привилегии.

Подключение

Запустите Tunnelblick, дважды кликнув по Tunnelblick в папке Applications. После запуска в строке меню в верхней правой части экрана появится значок Tunnelblick для управления соединениями. Нажмите на значок, а затем выберите пункт меню Connect, чтобы начать VPN-соединение. Выберите соединение client1.

Linux

Установка

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

Однако самым универсальным способом подключения является программное обеспечение OpenVPN.

В Ubuntu или Debian вы можете установить его так же, как и на сервере:

sudo apt update
sudo apt install openvpn

В CentOS нужно добавить репозиторий EPEL, после чего можно установить программу.

sudo yum install epel-release
sudo yum install openvpn

Настройка

Проверьте, содержит ли ваш дистрибутив скрипт /etc/openvpn/update-resolv-conf:

ls /etc/openvpn
update-resolv-conf

Затем отредактируйте конфигурационный файл клиента OpenVPN, который вы передали:

Раскомментируйте три строки, которые вы поместили ранее, чтобы настроить параметры DNS, если вы смогли найти файл update-resolv-conf:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

В CentOS нужно изменить значение group с nogroup на nobody:

Сохраните и закройте файл.

Теперь вы можете подключиться к VPN, просто направив команду openvpn в файл конфигурации клиента:

Это должно подключить вас к вашему серверу.

Установка

В iTunes App Store найдите и установите OpenVPN Connect, официальное клиентское приложение iOS OpenVPN. Чтобы перенести конфигурацию клиента iOS на устройство, подключите его непосредственно к компьютеру.

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

Подключение

OpenVPN теперь готов к использованию с новым профилем. Запустите соединение, сдвинув кнопку Connect в положение On. Чтобы прервать соединение, нужно сдвинуть ту же кнопку в положение Off.

Примечание: Переключатель VPN в разделе Settings нельзя использовать для подключения к VPN. Если вы попытаетесь, вы сможете подключаться только с помощью приложения OpenVPN.

Android

Установка

Откройте Google Play Store. Найдите и установите Android OpenVPN Connect, официальное клиентское приложение Android OpenVPN.

Запустите приложение OpenVPN и откройте меню, чтобы импортировать профиль.

Затем перейдите к расположению сохраненного профиля (/sdcard/Download/) и выберите файл. Приложение сообщит, что профиль был импортирован.

Подключение

Чтобы подключиться, просто нажмите кнопку Connect. Программа спросит, доверяете ли вы OpenVPN-приложению. Нажмите OK, чтобы начать соединение. Чтобы отключиться от VPN, вернитесь в приложение OpenVPN и выберите Disconnect.

11: Тестирование VPN-соединения

Примечание: Этот метод проверки работает только в случае, если вы перенаправили весь трафик на VPN в разделе 5.

Теперь, когда все установлено, нужно выполнить простую проверку, чтобы убедиться, что все работает правильно. Без VPN-подключения откройте браузер и перейдите в DNSLeakTest.

Сайт вернет IP-адрес, назначенный вашим провайдером интернет-услуг, так вас видят другие сайты в сети. Чтобы проверить настройки DNS через один и тот же сайт, нажмите Extended Test, и он расскажет вам, какие DNS-серверы вы используете.

Подключите клиент OpenVPN к VPN вашего сервера и обновите браузер. Теперь у вашего VPN-сервера должен появиться совершенно другой IP-адрес и в сети вас видят по-другому. Опять же, расширенный тест DNSLeakTest проверит ваши настройки DNS и подтвердит, что вы используете DNS-резолверы, настроенные вашим VPN.

12: Отзыв клиентских сертификатов

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

Для этого перейдите в каталог EasyRSA на машине CA:

Запустите сценарий easyrsa с опцией revoke:

./easyrsa revoke client2

Чтобы подтвердить отзыв сертификата, введите yes:

Please confirm you wish to revoke the certificate with the following subject:
subject=
commonName = client2
Type the word ‘yes’ to continue, or any other input to abort.
Continue with revocation: yes

После подтверждения действия CA полностью отзовет сертификат клиента. Тем не менее, сервер OpenVPN в настоящее время не имеет возможности проверить, были ли отозваны сертификаты клиентов, и у клиента все равно будет доступ к VPN. Чтобы исправить это, создайте список отзыва сертификатов (CRL) на вашем компьютере CA:

Это создаст файл crl.pem. Перенесите этот файл на ваш сервер OpenVPN:

На сервере OpenVPN скопируйте этот файл в каталог /etc/openvpn/:

sudo cp /tmp/crl.pem /etc/openvpn

Откройте конфигурационный файл OpenVPN:

sudo nano /etc/openvpn/server.conf

В нижней части файла добавьте параметр crl-verify, чтобы сервер OpenVPN проверял список отзыва сертификатов, который создается при каждой попытке подключения:

Сохраните и закройте файл.

sudo systemctl restart openvpn@server

Теперь клиент не сможет подключаться к серверу с помощью старых учетных данных.

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

Так вы сможете отозвать любые сертификаты клиентов.

Заключение

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

Чтобы настроить больше клиентов, повторите разделы 4 и 9-11 для каждого дополнительного устройства. Чтобы отнять доступ у клиентов, выполните раздел 12.

Источник

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

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