articlesdebian:openvpn:serversetup

Настройка сервера OpenVPN 2.4 с Easy-RSA-3

В данной статье описан процесс развертывания OpenVPN 2.4 с Easy-RSA-3

Имя сервера: OpenVPN

Устанавливаем Ubuntu Server

Обновляем список пакетов

sudo apt update

Ставим приложения:

sudo apt install openvpn easy-rsa

После установки копируем easy-rsa вместе со сценариями в другую папку, у нас установка произошла в /usr/share/easy-rsa

скопируем папку в /root

cp -Rp /usr/share/easy-rsa /root/easy-rsa-3
cd /root/easy-rsa-3

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

sudo nano vars.example

например можно изменить размер ключа, срок действия и тип шифрования:

set_var EASYRSA_KEY_SIZE        4096
set_var EASYRSA_CRL_DAYS        3650
set_var EASYRSA_DIGEST          "sha512"

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

mv vars.example vars

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

./easyrsa init-pki

Здесь мы можем использовать пароль или нет, в зависимости от необязательного параметра nopass:

./easyrsa build-ca [nopass]

Это сгенерирует все файлы, необходимые для управления нашим ЦС. Следующие файлы создаются предыдущими шагами и имеют особое значение:

/root/easy-rsa-3/pki

/root/easy-rsa-3/pki/ca.crt

/root/easy-rsa-3/pki/private/ca.key

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

Сначала делаем запрос:

./easyrsa gen-req OpenVPN [nopass]

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

./easyrsa sign-req server OpenVPN

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

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

/root/easy-rsa-3/pki/private/openvpn.key

/root/easy-rsa-3/pki/reqs/openvpn.req

/root/easy-rsa-3/pki/issued/openvpn.crt

Этот шаг похож на шаг 1. но в этом случае сертификат предназначен для нашего клиента, предположим, что наш клиент называется «client1», это будут шаги для создания сертификата (замените client1 на желаемое имя):

Сначала делаем запрос:

./easyrsa gen-req client1 nopass

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

./easyrsa sign-req client client1

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

Некоторые из сгенерированных файлов:

/root/easy-rsa-3/pki/private/client1.key

/root/easy-rsa-3/pki/reqs/client1.req

/root/easy-rsa-3/pki/выпущено/client1.crt

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

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

./easyrsa gen-crl

Список можно найти по следующему пути:

/root/easy-rsa-3/pki/crl.pem

Теперь пришло время сгенерировать наши параметры Диффи-Хеллмана. Этот шаг может занять много времени в зависимости от выбранной длины и доступной энтропии на машине, поэтому будьте осторожны, идите на кофе.

mkdir /etc/openvpn/ssl -p

openssl dhparam -out /etc/openvpn/ssl/dh.pem 4096

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

cp /root/easy-rsa-3/pki/ca.crt /etc/openvpn/ssl/
cp /root/easy-rsa-3/pki/issued/server.lan.crt /etc/openvpn/ssl/
cp /root/easy-rsa-3/pki/private/server.lan.key /etc/openvpn/ssl/
cp /root/easy-rsa-3/pki/crl.pem /etc/openvpn/ssl/

В случае с моим дистрибутивом файл конфигурации называется /etc/openvpn/server.conf и содержит следующие директивы:

client-to-client
persist-key
persist-tun
ca /etc/openvpn/ssl/ca.crt
cert /etc/openvpn/ssl/server.lan.crt
comp-lzo adaptive
dev tun
dh /etc/openvpn/ssl/dh.pem
ifconfig-pool-persist server-ipp.txt 0
keepalive 10 120
key /etc/openvpn/ssl/server.lan.key
tls-auth /etc/openvpn/ssl/ta.key 0
cipher AES-256-CBC
auth SHA512
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
log /var/log/openvpn/server.log
port 1194
proto udp
server 192.168.10.0 255.255.255.0
verb 3
crl-verify /etc/openvpn/ssl/crl.pem
push "route 192.168.1.0 255.255.255.0"
push "redirect-gateway def1"
push "dhcp-option DNS 192.168.1.1"
  • articlesdebian/openvpn/serversetup.txt
  • Последнее изменение: 2023/08/11 15:21
  • 127.0.0.1