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

Так-как у меня похоже склероз от переизбытка технологий которыми я пользуюсь, то напишу несколько заметок по настройке разных сервисов и начнем с 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

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

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