Настройка OpenVPN на FreeBSD

Материал из Bas Wiki
Перейти к навигации Перейти к поиску

Установка и настройка производилась на хостинге DigitalOcean с минимальной конфигурацией (память 512 MB / диск 10 GB) и под управлением операционной системы FreeBSD 13.2.

Установка

Производим установку пакета openvpn с помощью пакетного менеджера pkg:

pkg install openvpn

Автоматически папка с конфигами не создаётся, поэтому создаём её вручную:

mkdir /usr/local/etc/openvpn

Копируем шаблон конфига, который находится в /usr/local/share/examples/openvpn/sample-config-files в рабочую папку:

cp /usr/local/share/examples/openvpn/sample-config-files/server.conf /usr/local/etc/openvpn/server.conf

По умолчанию openvpn ищет конфиг с именем openvpn.conf, поэтому есть 2 опции:

  • Переименовать конфиг:
mv /usr/local/etc/openvpn/server.conf /usr/local/etc/openvpn/openvpn.conf
  • Указать имя конфига через параметр в rc.conf:
sysrc openvpn_configfile="/usr/local/etc/openvpn/openvpn.conf"

Не забываем добавить строку для старта openvpn и указываем название интерфейса:

sysrc openvpn_enable="YES"
sysrc openvpn_if="tun"


Настройка ключей и сертификатов

Для начала необходимо провести инициализацию пакета:

cd /usr/local/etc/openvpn
easyrsa init-pki

Редактируем файл с переменными:

vi /usr/local/etc/openvpn/pki

Нас интересует блок с настройками сертификата. Необходимо раскомментировать эти переменные и настроить под себя:

set_var EASYRSA_REQ_COUNTRY    "DE"
set_var EASYRSA_REQ_PROVINCE   "Frankfurt"
set_var EASYRSA_REQ_CITY       "Frankfurt"
set_var EASYRSA_REQ_ORG        "Applied Internet Projects"
set_var EASYRSA_REQ_EMAIL      "admin@bas.gg"
set_var EASYRSA_REQ_OU         "vpn2.bas.gg"

Генерируем корневой сертификат. Указываем имя сервера:

root@do:/usr/local/etc/openvpn# easyrsa build-ca nopass

* Using SSL: openssl OpenSSL 1.1.1t-freebsd  7 Feb 2023

* Using Easy-RSA configuration: /usr/local/etc/openvpn/pki/vars

..........................................+++++
................................+++++
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.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:vpn2.bas.gg

Запоминаем, где расположен файл сертификата. Он нам пригодится для настройки openvpn:

Notice
------
CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/usr/local/etc/openvpn/pki/ca.crt

Настройка openvpn

3