Уважаемые пользователи форума, убедительно просим вас переходить в телеграмм продавца, исключительно по предоставленной ссылке. Проверяйте продавца, отправив сообщение на электронную почту, чтобы убедиться в том, что вы общаетесь действительно с ним.

(FAQ) По командам OpenVPN в Windows

Тема в разделе "Безопасность", создана пользователем mirex, 11 июл 2016.

  1. mirex

    mirex Member

    Сообщения:
    40
    Симпатии:
    0
    Режимы работы OpenVPN
    * dev [tun | tap] (сервер, клиент) - указание типа интерфейса и режима работы: tun = L3-туннель, tap = L2-туннель
    * dev-node TAP-interface-Name (сервер, клиент) - указание использование конкретного интерфейса, актуально если их в ситеме несколько и они по разному настроены в ОС (например, один tap и включён в мост, а второй - tun)
    * proto [tcp-server | tcp-client | udp] (сервер, клиент) - протокол, по умолчанию UDP
    * port 1194 (сервер, клиент) - номер порта, default=1194 (на клиенте для tcp-client игнорируется и используется динамический порт) lport (указание локального порта) и rport (указание удалённого порта).
    * mode - задаёт режим работы сервера. По умолчанию OpenVPN работает в p2p-режиме, при указании mode server он работает в режиме сервера с многими клиентами.
    * tls-server, tls-client - использование режима TLS
    * ifconfig Local-IP Remote-IP/NetMask (сервер, клиент) - задаёт конфигурацию интерфейса.
    Для dev tun: ifconfig Local-IP Remote-IP - указывает IP-адрес локального интерфейса и адрес второй стороны туннеля. Важно, что в режиме клиент-сервер в отличие от режима static-key второй стороной туннеля является не адрес сервер и не адрес клиента, а адрес виртуального интерфейса виртуального OpenVPN-роутера
    Для dev tap: ifconfig Local-IP NetMask - указывает IP-адрес и маску локального интерфейса

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

    * server network netmask (сервер) - макрокоманда конфигурации сервера. Задаёт сеть и маску для всей OpenVPN-сети. Первый адрес из этой сети назначается интерфейсу сервера, остальные выделяются клиентам. Не используйте эту макрокоманду для режима L2-моста, для этого есть server-bridge.
    Реально команда, например, server 10.8.0.0 255.255.255.0 раскрывается так (в скобках комментарии)
    Для режима dev tun:
    mode server
    tls-server
    ifconfig 10.8.0.1 10.8.0.2 (серверу назначается первый адрес из первой подсети /30)
    ifconfig-pool 10.8.0.4 10.8.0.251 (остальной блок адресов выделяется клиентам)
    route 10.8.0.0 255.255.255.0 (системе объявляется маршрут на всю OpenVPN-сеть)
    if client-to-client:
    push route 10.8.0.0 255.255.255.0 (если включен режим client-to-client, то клиентам также передаётся маршрут на всю OpenVPN-сеть)
    else
    push route 10.8.0.1 (иначе, если не включен режим client-to-client, клиентам передаётся только маршрут на сервер)

    Для режима dev tap:
    ifconfig 10.8.0.1 255.255.255.0 (серверу назначается первый адрес)
    ifconfig-pool 10.8.0.2 10.8.0.254 255.255.255.0 (остальной блок адресов выделяется клиентам)
    push route-gateway 10.8.0.1 (клиентам объявляется адрес шлюза, через который, при необходимости, они могут назначать маршруты)
    * server-bridge gateway netmask pool-start-IP pool-end-IP (сервер) - макрокоманда конфигурации сервера для режима L2-моста. Важно то, что в этом режиме IP-параметры мостового интерфейса настраиваются в системе! Здесь же параметр gateway может указывать или на этот же IP-адрес мостового интерфейса или на следующий шлюз в этой сети.
    Реально команда, например, server-bridge 10.8.0.4 255.255.255.0 10.8.0.128 10.8.0.254 раскрывается так (в скобках комментарии)
    mode server
    tls-server
    ifconfig-pool 10.8.0.128 10.8.0.254 255.255.255.0 (клиентам выделяется диапазон, указанный в макрокоманде)
    push route-gateway 10.8.0.4 (параметр gateway передаётся клиентам как шлюз)
    * remote host (сервер) - в режиме tcp-server этот параметр на сервере работает как фильтр и принимает соединения ТОЛЬКО от указанного host.
    * client-to-client (сервер) - разрешает обмен трафиком между клиентами для режима dev tun
    * ifconfig-pool-persist File_Name [Time_in_seconds] (сервер) - задаёт файл, в котором на указанное время (по умолчанию 600 сек) кэшируются выданные адреса клиентам, что позволяет при переподключении выдать клиенту тот же адрес.
    * ifconfig-pool-linear (сервер) - задаёт для dev tun режим распределения адресов клиентам не подсетями /30, а поштучно, то есть /32. Несовместим с Windows!
    * management localhost 8329 (сервер, клиент) - открыть порт 8329 на интерфейсе 127.0.0.1 для управления

    Команды настройки маршрутизации
    * route network/IP [netmask] [gateway] [metric] (сервер, клиент) - добавляет указанный маршрут в ОС после установления соединения. Значения параметров по умолчанию:
    netmask по умолчанию равно 255.255.255.255.
    gateway по умолчанию равно параметру, указанному в команде route-gateway или второму параметру команды ifconfig в режиме dev tun. То есть, по умолчанию исользуется шлюз в OpenVPN-сеть. Если же нужно параметр указать (например, если нужно задать метрику), то это же значение можно указать ключевым словом vpn_gateway. Кроме того есть ещё ключевое слово net_gateway - это основной шлюз, который был в ОС до установления OpenVPN-соединения.
    * iroute network [netmask] - применяется в client-connect script или в client-config-dir файле, указывает OpenVPN-серверу, что данная сеть находится за соответствующим клиентом. Важно, что это только указание OpenVPN-серверу, для задания этого маршрута самой ОС надо указывать route или в конфиге сервера или вообще в самой ОС.
    * route-method exe (сервер, клиент) - указывает OpenVPN-у, что добавление маршрута надо делать не через API, а через route.exe.
    * route-delay 10 (сервер, клиент)
    Команды конфигурирования клиентов на стороне сервера

    * client-config-dir Dir_Name (сервер) - использовать из указанного каталога дополнительные индивидуальные файлы для конфигугации каждого клиента, файлы должны называться так же как и CN клиента (Common Name, то есть то что укзывается при конфигурации ключа клиента командой build-key). Расширения у файла быть не должно, то есть, например, для клиента client1 файл так и должен называться - client1
    * push команда - указывает серверу передать команду клиенту. Например, команда в конфиге сервера push ping 10 - это не команда ping 10 самому серверу, а указание серверу передать команду ping 10 клиенту. Описание самих команд для push даны отдельно. Это могут быть route, route-gateway, route-delay, redirect-gateway, ip-win32, dhcp-option, inactive, ping, ping-exit, ping-restart, setenv, persist-key, persist-tun, echo
    * push-reset (сервер, но в client-config-dir-файле) - указывает, что для данного клиента надо проигнорировать все глобальные команды push. Однако все push-команды из самого client-config-dir-файла будут исполнены.
    * ifconfig-push Local-IP Remote-IP/NetMask (сервер) - применяется в client-connect script или в client-config-dir файле, задаёт конфигурацию интерфейса соответствующего клиента.
    Для dev tun: ifconfig Local-IP Remote-IP - указывает IP-адрес локального интерфейса клиента и адрес второй стороны туннеля. Важно, что в режиме клиент-сервер второй стороной туннеля является не адрес сервер и не адрес клиента, а адрес виртуального интерфейса виртуального OpenVPN-роутера
    Для dev tap: ifconfig Local-IP NetMask - указывает IP-адрес и маску локального интерфейса

    Команды конфигурирования клиентов на стороне клиента

    * client - макрокоманда режима клиента, исполняется так:
    pull (указывает клиенту принимать от сервера команды, которые на сервере заданы как push)
    tls-client
    * nobind (клиент) - указание использовать динамический порт на клиенте, актуально только для udp, т.к. для tcp на клиенте всегда используется динамический порт.
    * remote host [port] (клиент) - указание второй стороны, host может быть как DNS-именем, так и IP-адресом. Клиент обязан иметь эту строку, причём она может быть не одна - это обеспечивает возможность подключения к разным интерфейсам сервера (отказоустойчивость) или распределение нагрузки.
    * remote-random (клиент) - использовать в случайном порядке одну из нескольких строк remote
    * resolv-retry infinite (клиент) - пытаться бесконечно определить адрес сервера (при указании его по имени), чтобы обойти проблему с завершением попытки установления соединения при отказе DNS или сбое внешних соединений
    * redirect-gateway [local] [def1] (клиент) - переключение шлюза на удалённый, есть 2 доп.параметра - local и def1 - изменяет маршрут не методом удаления старого маршрута 0.0.0.0/0 и назначением нового, а методом назначения двух более узких маршрутов 0.0.0.0/1 и 128.0.0.0/1
    * dhcp-option DNS 192.168.1.254 (клиент) - использование удалённого DNS
    * dhcp-option WINS 192.168.1.254 (клиент) - использование удалённого WINS

    Другие команды

    * comp-lzo (сервер, клиент) - сжатие трафика
    * status openvpn-status.log (сервер, клиент) - периодически сохранять информ. о текущем состоянии в указанный файл, это текстовый файл.
    * log openvpn.log или log-append openvpn.log (сервер, клиент) - сохранять или добавлять лог в указанный файл
    * keepalive 10 60 (сервер) - макрокоманда пинговать противоположную сторону туннеля с указанным периодом 10 сек, при отсутствии встречных пингов в течение 60 сек считать туннель упавшим и запускать пересоединение. Полезно также для поддержания статуса работающего udp-потока в транзитных NAT-шлюзах.
    Реально исполняется так (в скобках комментарии):
    Для mode server:
    ping 10 (сервер посылает OpenVPN-ping каждые 10 секунд. Не путать с ping в IP - здесь на OpenVPN-ping удалённая сторона не отвечает, поэтому эти пакеты надо отправлять с обеих сторон)
    ping-restart 120 (при отсутствии встречных пакетов, то есть от клиента, в течении 120 сек сервер перезапускает клиентскую сессию. Не путать, перезапускается НЕ ВЕСЬ OpenVPN-СЕРВЕР!)
    push ping 10 (сообщить клиентам пинговать сервер каждые 10 секунд)
    push ping-restart

Поделиться этой страницей