Настройка простой конфигурации OpenVPN клиент-сервер

Оцените статью

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

Базовая настройка OpenVPN сервера и клиента

Включаем маршрутизацию IPv4 на уровне ядра Linux

Текущее состояние режима маршрутизации.

# cat /proc/sys/net/ipv4/ip_forward
  • 0 — маршрутизация отключена.
  • 1 — маршрутизация включена.

Чтобы временно включить маршрутизацию (до перезагрузки):

# sysctl -w net.ipv4.ip_forward=1

Проверка:

# sysctl net.ipv4.ip_forward
# sysctl net.ipv6.conf.all.forwarding

Постоянное включение маршрутизации в файле /etc/sysctl.conf добавляем или раскоментируем строки.

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

Применяем настройки.

# sysctl -p

Установка необходимых пакетов

# apt-get install easy-rsa
# apt-get install openvpn

Генерация RSA-ключей OpenVPN сервера и клиента

Настраиваем конфигурацию пакета easy-rsa

На хосте который будет выступать сервером пакет для генерации сертификатов скопируем из /usr/share/easy-rsa/ в /opt/easy-rsa/.

# mkdir /opt/easy-rsa
# cp -r /usr/share/easy-rsa/ /opt/

Копируем файл vars.example в vars.

# cp ./vars.example ./vars

Настраиваем параметры которые будут подставляться при генерации сертификатов:

set_var EASYRSA_REQ_COUNTRY     "RU"
set_var EASYRSA_REQ_PROVINCE    "NSK"
set_var EASYRSA_REQ_CITY        "Novosibirsk"
set_var EASYRSA_REQ_ORG         "Rain"
set_var EASYRSA_REQ_EMAIL       "chernousov@interlan.xyz"
set_var EASYRSA_REQ_OU          "IT"
set_var EASYRSA_CA_EXPIRE       3650
set_var EASYRSA_CERT_EXPIRE     3650
set_var EASYRSA_CRL_DAYS        3650

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

# ./easyrsa init-pki
# ./easyrsa build-ca nopass
# ./easyrsa gen-dh
# ./easyrsa gen-req srv-prod-rain-02 nopass
# ./easyrsa sign-req server srv-prod-rain-02
# openvpn --genkey --secret pki/ta.key

Генерируем сертификаты и ключи клиентов

# ./easyrsa gen-req srv-prod-rain-01 nopass
# ./easyrsa sign-req client srv-prod-rain-01

или

# ./easyrsa build-client-full srv-prod-rain-01 nopass

Базовая конфигурация сервера

Базовая конфигурация сервера OpenVPN.

port 1194
proto udp
dev tap-ovpn

ca /opt/easy-rsa/pki/ca.crt
cert /opt/easy-rsa/pki/issued/srv-prod-rain-02.crt
key /opt/easy-rsa/pki/private/srv-prod-rain-02.key
dh /opt/easy-rsa/pki/dh.pem

server-bridge 10.134.80.1 255.255.255.0 10.134.80.2 10.134.80.254

ifconfig-pool-persist ipp.txt

client-to-client
tun-mtu 1400
keepalive 10 120

tls-auth /opt/easy-rsa/pki/ta.key
cipher AES-256-GCM

user nobody
group nogroup

persist-key
persist-tun

status openvpn-status.log
verb 3

Выполняем тестовый запуск.

# openvpn --config ./rain-server.conf

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

client
dev tap-ovpn
proto udp
remote 45.155.204.127 1194

resolv-retry infinite
tun-mtu 1400
remote-cert-tls server

cipher AES-256-GCM

verb 3

persist-key
persist-tun

<ca>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----
</key>

<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----

-----END OpenVPN Static key V1-----
</tls-auth>

Настройка автозапуска сервера и клиента OpenVPN

Автозапуск клиента

# systemctl start openvpn-client@client-rain
# systemctl enable openvpn-client@client-rain
# systemctl status openvpn-client@client-rain

Автозапуск сервера

# systemctl start openvpn-server@rain-server
# systemctl enable openvpn-server@rain-server
# systemctl status openvpn-server@rain-server

Related Posts

Работа с APT-репозитариями через HTTP/HTTPS прокси

Основные способы настройки Есть несколько вариантов задать прокси для apt — от временного (для одной команды) до постоянного (системного). Вариант 1. Временный прокси (в командной строке) Используйте параметр -o при…

Установка OlnyOffice DocSpace в Ubuntu Linux

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

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

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

You Missed

Работа с APT-репозитариями через HTTP/HTTPS прокси

Работа с APT-репозитариями через HTTP/HTTPS прокси

Установка OlnyOffice DocSpace в Ubuntu Linux

Установка OlnyOffice DocSpace в Ubuntu Linux

Диагностика работы камеры (USB или интегрированная) в Ubuntu Linux

Диагностика работы камеры (USB или интегрированная) в Ubuntu Linux

Настройка простой конфигурации OpenVPN клиент-сервер

Настройка простой конфигурации OpenVPN клиент-сервер

Установка Windows Server 2012/2012R2 в качестве гостевой виртуальной машины в Proxmox

Установка Windows Server 2012/2012R2 в качестве гостевой виртуальной машины в Proxmox

Создание бесплатной виртуальной машины в облаке Cloud.ru

Создание бесплатной виртуальной машины в облаке Cloud.ru