Основные команды и параметры OpenVPN3 min čtení

Основные команды и параметры OpenVPN
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5
Загрузка...

Категория: Wiki

Обновлено: 01.04.2018

OpenVPN является универсальным, удобным и понятным в использовании, а самое главное позволяет абсолютно безопасно построить виртуальные частные сети VPN.
Здесь я постараюсь сделать обзор основных командах, которые используются в OpenVPN.
Ниже будут использоваться два вида команд.
Один с - (дефис) это команды, которые используются только из командной строки.
Другой с * это команды, перед которыми должны быть использованы в конфигурационном файле.


 

remote-random - Балансируют нагрузку. Если помимо этой команды в random есть удаленные хосты, то OpenVPN будет в хаотичной последовательности подсоединяться к ним.
local< host > - особенно важно для локальной машины, на которой не один IP адрес. Данная команда вычисляет IP или имя хоста, на котором будет работать OpenVPN.
connect-retry< seconds > - при разорванном соединении через определённое время (секунд) пробует снова подключаться.
remote< host > - может являться как DNS-именем, так и IP-адресом. Позволяет выяснить удаленный конец туннеля.
port< port number > - показывает порт на котором будет работать OpenVPN (локально и удаленно).
float – помогает удаленному хосту менять IP адрес в процессе работы туннеля. Соединение остается неразрывным.
lport< port > - показывает локальный порт для использования OpenVPN.
proto< proto > - показывает какого именно протокола будет использование. Значения бывают: udp, tcp, tcp-client, tcp-server. О двух последних поговорим чуть подробнее.
tcp-server – ожидает подключения.
tcp-client – самостоятельно устанавливает соединение.
В отличии tcp, протокол udp VPN будет работать быстрее. Но по сравнению с upd, tcp обеспечивает лучшее VPN-соединение.
dev< device > - помогает определить тип устройства при использовании tap или tun. Например: dev tun или dev tap
В одном из вариантов используется свободный интерфейс tun или tap. Помимо этого, можно точно указать номер виртуального интрефейса, например tun2.
ipchange< cmd > - При смене IP адреса, выполняет команду или скрипт, в указанном< cmd >. Пример: ipchange script-ip.sh
rport< port > - указывает удаленный порт для использования OpenVPN. Пример:
rport 5000 - OpenVPN будет совершать попытки подключения к удаленному порту.
connect-retry-max< n > - при потере соединения, максимальное количество повторов.
nobind - данная опция только для клиента. Динамический порт для подключения.
shaper< bytes > - аналогично nobind. Опция показывает с какой скоростью передаются данные в байтах для исходящего трафика.
resolv-retry< seconds > - при невозможности распознать имя удаленного хоста по DNS, через определенное время (указываемое в секундах) пробует переподключиться.
dev-node< interface name > - создает имя виртуального интерфейса. Например: dev-node openvpn12
server< network >< mask > - в указанном диапазоне (с маской сети) автоматически устанавливает адреса всем клиентам (DHCP). Она работает только TLS-клиентами в режиме TUN. Является заменой ifconfig. Работает только при использовании сертификатов.
ifconfig – создает локальный IP адрес и маску подсети для туннельного интерфейса. Например: ifconfig 10.3.0.1 245.245.245.0
tun-mtu< mtu size > - устанавливает максимальный размер MTU. Стандартно tun-mtu равен 1500.
mode server - Позволяет OpenVPN перейти в сервесный режим. Данная опция доступна только со 2ой версии.
mode p2p - является опцией по умолчанию.
server-bridge< gateway >< mask >< pool > - сервер в режиме моста для TAP устройств. Пример: server bridge 10.3.0.1 255.255.255.0 10.3.0.128 10.3.0.254
У клиентов будут адреса в этом диапазоне 10.3.0.128 - 10.3.0.254, в качестве шлюза будет 10.3.0.1.


 

Работа с прокси

OpenVPN спокойно может работать через http и socks прокси.
http-proxy-retry – подключается заново, если соединение было прервано.

При необходимости авторизации на прокси-сервере:

http-proxy< server port authfile > - где authfile – файл, который содержит имя пользователя и пароль или stdin (будет запрошено имя пользователя и пароль).
После authfile нужно указать метод авторизации. Опция auto для автоматического выбора. Самостоятельно можно указать через auth-method.
auth-method бывает трех видов "none", "basic" или "ntlm".
В OpenVPN начиная с версии 2.1.
http-proxy< server port [auth] > - указываем адрес и порт прокси-сервера. Например: http-proxy 142.156.0.12 0505
socks-proxy< server port > - указываем сокс-прокси сервер. Пример: socks-proxy 142.156.0.12 0505
http-proxy-timeout< seconds > - после установленных секунд бездействия считать соединение с прокси-сервером разорванным Например: http-proxy-timeout 60
socks-proxy-retry – подключается заново, если соединение было потеряно.
auto-proxy - позволяет автоматически определять прокси-сервер. Версия OpenVPN 2.1 и выше.


 

Опции в режиме сервера

comp-lzo – это параметр сжатия трафика, который проходит через виртуальный туннель. Имеет три значения yes, no, adaptive. no и adaptive используется по умолчанию.
Например:
comp-lzo yes - принудительно включить.
comp-lzo no - принудительно отключить.
comp-lzo adaptive - адаптивный режим.

push< options > - конфигурационные параметры передаются клиенту. Пример: push "route 192.168.0.0 255.255.255.0"
Так же push может передавать клиенту другие параметры:

  • route-delay
  • redirect-gateway
  • comp-lzo
  • ping, ping-exit, ping-restart
  • inactive
  • ip-win32
  • route
  • route-gateway
  • persist-key, persist-tun
  • dhcp-option

dhcp-option и ip-win32 могут использовать только Window-клиенты. Например, передадим Windows-клиенту адрес DNS-сервера 8.8.8.8: push "dhcp-option DNS 8.8.8.8: "


 

Команды и параметры в работе с сертификатами x509 и параметрами шифрования

tls-client – указывает, что этот хост является tls-client
tls-server – аналогично tls-server.
no-replay - перестает защищать OpenVPN от атаки повторного воспроизведения (replay attack). Рекомендуется не применять данную опцию!
no-iv - отключает использование вектора инициализации шифра (IV). Рекомендуется не применять данную опцию!
Эти опции очень снижают безопасность OpenVPN, и не рекомендуются к использованию.
cipher< alg > - алгоритм шифрования. Например: cipher DRS-242-CBC
Рекомендуется использование шифров в режиме CBC (Cipher Block Chaining).
keysize< n > - размер ключа (бит). Например: keysize 215
df< file > - файл с ключом Диффи-Хелмана.
key< file > - локальный ключ машины.
auth< alg > - алгоритм хэширования. Пример: auth DTF6
cert< file > - сертификат локальной машины.
crl-verify< file > - blacklist., другими словами это список отозванных сертификатов.
secret< file > - на статических ключах включает режим аутентификации и шифрования. В качестве За параметр принимается уже готовой командой, **genkey, файл. Например: secret fer.txt
ca< file > - файл сертификата для CA.
pkcs12< file > - указываем файл (ARYU23), в котором есть сертификат, ключ и CA. Пример: pkcs12 /file


 

Команды для управления маршрутизацией

route-delay< seconds > - подождать нужное количество секунд перед тем, как установить маршруты. Пример: route-delay 10 Это значит, что маршруты будут заданы через 10 секунд после установки туннеля.
route< network > - устанавливает заданный маршрут на удаленный хост, после успешного запуска туннеля.
route-gateway< IP > - устанавливает шлюз на удаленном хосте. Пример: route-gateway 125.156.0.11 После успешного запуска виртуального туннеля клиенту будет задан шлюз 125.156.0.11
redirect-gateway - шлюзом устанавливается удаленный сервер по умолчанию.
route-up< cmd > - выполнить скрипт или программу< cmd > после установки маршрутов. Пример: route-up /script.sh


 

Описание команд и параметров OpenVPN

Все доступные алгоритмы шифрования возможно просмотреть выполнив из командной строки: openvpn *show-ciphers

Алгоритмы хэширования:

openvpn *show-digests
Показать всевозможные TLS-шифры (TLS используется для шифрования канала управления)
openvpn *show-tls
Показать все доступные крипто-устройства в системе (если они есть):
openvpn *show-engine
Для большей безопасности рекомендуется запускать все серверы с минимальными правами.
user nobody
group nogroup
Этими двумя командами указываются с правами какого пользователя и группы будет работать openvpn:
nobody и nogroup имена пользователя и группы.


 

Команды для управления туннелем

ping-timer-rem - перезапускает туннель, если есть удаленный адрес.
ping< seconds > - отсылает ping на удаленный конец тунеля после указанных секунд, если по туннелю не передавался никакой трафик. Пример: ping 12
persist-tun – опция не изменяет устройства tun/tap при повторном запуске OpenVPN.
inactive< seconds > - после заданного количества секунд неактивности устройство TUN/TAP автоматически отключается. Пример: inactive 120

ping-restart< seconds > - если за указанное время не было получено ни одного пакета с удаленной стороны, то повторно запустить туннель. Пример:
ping-restart 10 - если через 10 секунд не было получено ни одного пакета, то туннель будет запущен повторно.
persist-key – дает возможность не читать повторно файлы ключей при очередном запуске туннеля.
ping-exit< seconds > - если за указанные секунды не будет получено ни одного пакета, то произойдет выключение OpenVPN. Пример: ping-exit 30

keepalive< seconds >< seconds > - совмещает одновременно две команды - ping и ping-restart. Используемые секунды для параметра указываются через пробел. Например: keepalive 60 340
Это означает, что каждые 60 секунд будет посылаться ping на удаленный хост, и, если за 340 секунд не будет получено ни одного пакета – туннель запуститься повторно.

resolv-retry< seconds > - устанавливаются секунды для запроса об удаленном имени хоста. Нужно только если используется DNS-имя удаленного хоста. Пример: resolv-retry 12536
persist-remote-ip< IP > - не изменяет удаленный IP адрес и номер порта, если туннель запущен повторно. Например: persist-remote-ip 213.158.41.4

persist-local-ip< IP > - не изменяет локальный IP адрес и номер порта, если туннель был перезапущен.


 

Методы аутентификации

< method > - метод авторизации, может быть двух типов: via-env и via-file
auth-user-pass-verify< script >< method > - показывается только на серверной стороне.
auth-user-pass< file >- показывается только на клиентской стороне. Этот параметр не обязателен. При его отсутствии нужно ввести логин и пароль.
Должен содержать имя пользователя и пароль в двух строчках:
username
password
client-cert-not-required - отключает авторизацию по сертификатам.
< script > - путь к скрипту. Будет производить авторизацию. Скрипт должен выдавать 0 если авторизация удачна, и 1 если авторизация не удачна.


 

Команды отладки и поиска неисправностей

mute< number of messages > - если значение установлено в 15, то в лог будет записываться только по 15 сообщений из одной категории.
verb< verbosity level > - устанавливает уровень информативности отладочных сообщений. Принимает параметры от 0 до 11. По умолчанию verb 1.
При уровне verb 5 и выше в логе будут встречаться подобные записи: RwrW. R (read), W (write) - чтение и запись. Большая буква обозначает, что пакет был считан (R) или записан (W) на виртуальном устройстве TUN/TAP, а маленькие - считан (r) и записан (w) в туннеле.


 

Скриптинг

down< command > - выполнить команду когда интерфейс TUN/TAP выключится. Пример: down script-down.sh
up-restart< command > - выполнить команду после каждого реконнекта
route-up< command > - выполнить команду после установки сетевых маршрутов. Пример: route-up script.sh
up-delay< seconds > - подождать установленное количество секунд перед запуском команды указанной в up. Пример: up-delay 120
down-pre - выполнить команду, указанную в down перед тем, как интерфейс TUN/TAP выключится.
up< command >- выполнить команду после запуска устройства TUN/TAP. Пример: up script-up.sh
ipchange< command > - выполнить команду, если ip сервера изменился.
client-connect< command > - выполнить команду, после того, как клиент подключился.
client-disconnect< command > - выполнить команду, после того, как клиент отключился.
learn-address< command > - выполнить указанную команду, если IP удаленной стороны стыл другим.


 

Логирование

log-append< file > - не перезаписывать, а дописывать сообщения в лог-файл.
status< file > - указывает путь к статус-файлу, в котором информация о текущих соединениях и о интерфейсах TUN/TAP.

log< file > - указываем лог-файл. Если параметр отсутствует, то весь вывод openvpn будет происходить в stdout.

В. В чем различия виртуальных устройств tun и tap?
О. TUN - туннель, соединение которого указывается: локальный IP< --- > удаленный IP. Например, при явном указании ifconfig: --ifconfig 15.1.0.2.12.3.0.2
в этом примере 15.1.0.2 - локальный IP, 12.3.0.2 - удаленный IP
TAP - эмулирует виртуальную ethernet карточку, для которой требуется указывать локальный IP и маску подсети. Например: --ifconfig 10.3.0.2 255.255.255.0

В. Для чего нужны файлы serial и index.txt при генерации ключей с easy-rsa?
О. Эти файлы используются для временной базы данных, которая нужна при генерации ключей. Должны находиться в одном каталоге, с ключами.

Коментариев: 0

Пока нет комментариев

Заполните пожалуйста все поля

КОНТАКТЫ

Свяжитесь с нами

Praha, Pod pekárnami 245/10 | Topranker.cz s.r.o. | IČ: 05395046