Шпаргалка по работе с OpenVPN

  • Linux, VPN
  • 13 марта, 2025
  • 0 Комментарии
Оцените статью

Так-как у меня похоже склероз от переизбытка технологий которыми я пользуюсь, то напишу несколько заметок по настройке разных сервисов и начнем с OpenVPN.

Для начала скопипастим у коллег список наиболее часто применяемых параметров конфигурации.

  • remote< host > — определяет удаленный конец туннеля. Могут использоваться записи IP и DNS.
  • local< host > — определяет локальный ip или имя хоста, на котором будет работать OpenVPN. Актуально, если на локальной машине несколько адресов.
  • dev< device > — определяет какой использовать тип устройства tun или tap.
  • port< port number > — указывает на каком порту будет работать OpenVPN (локально и удаленно).
  • proto< proto > — какой протокол будет использоваться. Возможные значения: udp, tcp, tcp-client, tcp-server.
  • remote-random — если указана данная опция и в random перечисленно несколько удаленных хостов, то OpenVPN в случайном порядке будет к ним подключаться. Применяется для балансировки нагрузки.
  • float — позволяет удаленному хосту изменять IP во время работы туннеля. Соединение при этом не разрывается.
  • ipchange< cmd > — выполняет скрипт или команду указанную в < cmd >, если IP сменился.
  • connect-retry< seconds > — пробует переподключиться через указанное время в секундах, если соединение было разорвано.
  • connect-retry-max< n > — максимальное количество повторов если соединение было разорвано
  • resolv-retry< seconds > — если OpenVPN не удалось узнать имя удаленного хоста по DNS, то через указанное количество секунд попытаться переподключиться.
  • lport< port > — указывает на локальный порт для использования OpenVPN
  • rport< port > — аналогично для удаленного порта.
  • nobind — использовать динамический порт для подключения (только для клиента)
  • shaper< bytes > — указывает скорость передачи данных в байтах для исходящего трафика (только для клиента)
  • tun-mtu< mtu size > — устанавливает максимальный размер MTU. По умолчанию tun-mtu равен 1500.
  • dev-node< interface name > — устанавливает имя виртуального интерфейса.
  • ifconfig — устанавливает локальный IP и маску подсети для туннельного интерфейса.
  • server< network > < mask > — автоматически присваивает адреса всем клиентам (DHCP) в указанном диапазоне с маской сети. Данная опция заменяет ifconfig и может работаеть только с TLS-клиентами в режиме TUN, соответственно использование сертификатов обязательно.
  • server-bridge< gateway > < mask > < pool > — сервер в режиме моста для TAP устройств.
  • mode server — переключает OpenVPN в режим сервера (начиная с 2-й версии)
  • mode p2p — данная опция идет по умолчанию.

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

client
proto tcp
remote remote-host 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
auth SHA1
cipher AES-256-CBC
reneg-sec 0
ping-restart 0
key-direction 1
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MIID3zCCAsegAwIBAgIIHs5GRaC8NuswDQYJKoZIhvcNAQELBQAwYzELMAkGA1UE
...
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIDyDCCArCgAwIBAgIIGS/3k1ZW2cQwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UE
...
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDeQGRsWf48/oXb
...
-----END PRIVATE KEY-----
</key>

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

# openvpn --config ./lms-client.conf

Для отключения перенаправления всего трафика в тунель (если это задано на стороне сервера), то добавляем параметр.

route-nopull

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

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

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

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования