Шпаргалка по работе с 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

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

Интеграция DevOps (Gitea+Concourse) стека с FreeIPA

По старой схеме продолжаем проект по миграции на отечественное ПО, а именно на RedOS и сегодня настроим интеграцию Gitea и Concourse c доменом FreeIPA. Настройки Gitea для авторизации при помощи…

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

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

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

Интеграция DevOps (Gitea+Concourse) стека с FreeIPA

Интеграция DevOps (Gitea+Concourse) стека с FreeIPA

Шпаргалка по основным командам консоли Ubuntu Linux

Шпаргалка по основным командам консоли Ubuntu Linux

Интеграция Grafana и FreeIPA (авторизация при помощи учетных данных IPA-домена)

Интеграция Grafana и FreeIPA (авторизация при помощи учетных данных IPA-домена)

Linux синхронизация времени (Установка настройка и диагностика chrony)

Linux синхронизация времени (Установка настройка и диагностика chrony)

Интеграция Zabbix и FreeIPA (авторизация пользователей домена)

Интеграция Zabbix и FreeIPA (авторизация пользователей домена)

Собираем корпоративный AI-чат: от выбора модели до работающего прототипа

Собираем корпоративный AI-чат: от выбора модели до работающего прототипа