Linux openvpn посмотреть состояние

Обновлено: 07.07.2024

Команды OpenVPN

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

Приведенные в статье команды без "--" (двумя знаками дефиса) перед командой должны быть использованы в конфигурационном файле, команды с "--" в начале используются только из командной строки. Подробности использования команд и их параметры - man openvpn.

remote < host > - определяет удаленный конец туннеля. Могут использоваться записи IP и DNS.

local < host > - определяет локальный ip или имя хоста, на котором будет работать OpenVPN. Актуально, если на локальной машине несколько адресов.

dev < device > - определяет какой использовать тип устройства tun или tap. Например:
dev tun
или
dev tap
При одном из таких указаний будет использован свободный интерфейс tun или tap. Так же можно явно указывать номер виртуального интрефейса, например tun0.

port < port number > - указывает на каком порту будет работать OpenVPN (локально и удаленно).

proto < proto > - какой протокол будет использоваться. Возможные значения: udp, tcp, tcp-client, tcp-server. С первыми двумя все ясно, а на последних двух остановимся чуть подробнее:
tcp-client - сам пытается установить соединение
tcp-server - только ждет подключений
Примечательно, что с использованием протокола udp VPN будет работать чуть быстрее, чем tcp. Но в плане стабильности работы лучше выбирать tcp (как показывает практика, VPN-соединение более устойчиво)

remote-random - если указана данная опция и в random перечисленно несколько удаленных хостов, то OpenVPN в случайном порядке будет к ним подключаться. Применяется для балансировки нагрузки.

float - позволяет удаленному хосту изменять IP во время работы туннеля. Соединение при этом не разрывается.

ipchange < cmd > - выполняет скрипт или команду указанную в < cmd >, если IP сменился. Пример:
ipchange script-ip.sh

connect-retry < seconds > - пробует переподключиться через указанное время в секундах, если соединение было разорвано.

connect-retry-max < n > - максимальное количество повторов если соединение было разорвано

resolv-retry < seconds > - если OpenVPN не удалось узнать имя удаленного хоста по DNS, то через указанное количество секунд попытаться переподключиться.

lport < port > - указывает на локальный порт для использования OpenVPN

rport < port > - аналогично для удаленного порта. Пример:
rport 8000 - OpenVPN будет пытаться подключится к удаленному порту 8000

nobind - использовать динамический порт для подключения (только для клиента)

shaper < bytes > - указывает скорость передачи данных в байтах для исходящего трафика (только для клиента)

tun-mtu < mtu size > - устанавливает максимальный размер MTU. По умолчанию tun-mtu равен 1500. Использование:
tun-mtu 1200

dev-node < interface name > - устанавливает имя виртуального интерфейса. Например:
dev-node openvpn1

ifconfig - устанавливает локальный IP и маску подсети для туннельного интерфейса. Например:
ifconfig 10.3.0.1 255.255.255.0

server < network > < mask > - автоматически присваивает адреса всем клиентам (DHCP) в указанном диапазоне с маской сети. Данная опция заменяет ifconfig и может работаеть только с TLS-клиентами в режиме TUN, соответственно использование сертификатов обязательно. Например:
server 10.3.0.0 255.255.255.0
Подключившиеся клиенты получат адреса в диапазоне между 10.3.0.1 и 10.3.0.254.

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.

mode server - переключает OpenVPN в режим сервера (начиная с 2-й версии)

mode p2p - данная опция идет по умолчанию.

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

push < options > - передача клиенту конфигурационных параметров. Пример:
push "route 192.168.0.0 255.255.255.0"

Аналогично с помощью push клиенту могут передаваться следующие параметры:

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

Последние две опции применимы только для Window-клиентов. Например передадим Windows-клиенту адрес DNS-сервера 11.11.11.11:
push "dhcp-option DNS 11.11.11.11"

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

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

cipher < alg > - указываем алгоритм шифрования. Например:
cipher AES-256-CBC
Рекомендуется использование шифров в режиме CBC (Cipher Block Chaining).

keysize < n > - размер ключа в битах. Например:
keysize 128

auth < alg > - алгоритм хэширования. Пример:
auth SHA1

df < file > - файл с ключем Диффи-Хелмана

ca < file > - файл сертификата для CA

cert < file > - сертификат локальной машины

key < file > - локальный ключ машины

tls-server - явно указывает, что данный хост является tls-server

tls-client - соответственно tls-client

pkcs12 < file > - указываем файл (PKCS12), который содержит в себе сертификат, ключ и CA в одном файле. Пример:
pkcs12 /file

crl-verify < file > - список отозванных сертификатов, т.е. blacklist.

no-replay - отключает защиту OpenVPN от атаки повторного воспроизведения (replay attack). Крайне не рекомендуется отключать!

no-iv - отключает использование вектора инициализации шифра (IV). Крайне не рекомендуется отключать!

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

secret < file > - включает режим шифрования и аутентификации на статических ключах. В качестве параметра использует заранее сгенерированный, командой --genkey, файл. Например:
secret key.txt

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

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

Показать все доступные TLS-шифры (TLS используется только для шифрования канала управления)
openvpn --show-tls

Показать все доступные крипто-устройства в системе (если такие имеются):
openvpn --show-engines

Для улучшения безопасности рекомендовано запускать все сервисы с минимальными правами. Следующими двумя командами мы укажем с правами какого пользователя и группы будет работать openvpn:

user nobody
group nogroup

Где, соответственно, nobody и nogroup имена пользователя и группы.

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

Обозначение: VPN-хост - удаленная сторона (удаленный хост)

route < network > - устанавливает указанную маршрутизацию на VPN-хосте, после успешного запуска туннеля. Пример:
route 10.0.10.0 255.255.255.252

route-gateway < IP > - устанавливает шлюз на VPN-хосте. Пример:
route-gateway 192.168.0.22
После успешного запуска виртуального туннеля клиенту будет задан шлюз 192.168.0.22

route-delay < seconds > - указывает подождать n-секунд перед установкой маршрутов. Пример:
route-delay 5
Т.е. через 5 секунд после установки туннеля будут заданы маршруты.

route-up < cmd > - выполнить скрипт или программу < cmd > после установки маршрутов. Пример:
route-up /script.sh

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

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

ping < seconds > - указывает отсылать ping на удаленный конец тунеля после указанных n-секунд, если по туннелю не передавался никакой трафик. Пример:
ping 10

ping-restart < seconds > - если за указанное время не было получено ни одного пакета с удаленной стороны, то перезапускать туннель. Пример:
ping-restart 60 - если в течении 60 секунд не было получено ни одного пакета, то туннель будет перезапущен.

ping-timer-rem - позволяет перезапускать туннель, только когда указан удаленный адрес.

persist-tun - данная опция оставляет без изменения устройства tun/tap при перезапуске OpenVPN.

persist-key - указывает не перечитавать файлы ключей при перезапуске туннеля.

resolv-retry < seconds > - устанавливает время в секундах для запроса об удаленном имени хоста. Актуально только если используется DNS-имя удаленного хоста. Пример:
resolv-retry 86400
inactive < seconds > - после n-секунд неактивности устройство TUN/TAP автоматически отключется. Пример:
inactive 120

ping-exit < seconds > - если за указанные n-секунд не было получено ни одного пакета, то отключать OpenVPN. Пример:
ping-exit 120

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

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

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

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

auth-user-pass-verify < script > < method > - указывается только на серверной стороне.
< script > - путь к скрипту, который будет производить авторизацию. Скрипт должен возвращать 0 если авторизация успешна, и соответственно, 1 если авторизация не успешна.
< method > - метод авторизации, может быть двух типов: via-env и via-file

auth-user-pass < file >- указывается на клиентской стороне. Параметр не обязателен, если он отсутствует то будет предложено ввести пару логин/пароль.
должен содержать имя пользователя и пароль в двух строчках:
username
password

client-cert-not-required - отключает авторизацию по сертификатам.

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

Если требуется авторизация на прокси-сервере:

Так же после authfile требуется указать метод авторизации. Можно оставить auto для автоматического выбора метода авторизации или указать явно через auth-method.
auth-method может быть трех видов "none", "basic" или "ntlm".
Используется в OpenVPN начиная с версии 2.1.

socks-proxy < server port > - указываем сокс-прокси сервер. Пример:
socks-proxy 192.168.0.12 8080

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

auto-proxy - автоматически определять прокси-сервер. Требуется версия OpenVPN 2.1 и выше.

Скриптинг

up < command >- выполнить команду после запуска устройства TUN/TAP. Пример:
up script-up.sh

up-delay < seconds > - подождать n-секунд перед запуском команды указанной в up. Пример:
up-delay 5

down < command > - выполнить команду когда интерфейс TUN/TAP выключится. Пример:
down script-down.sh

down-pre - выполнить команду, указанную в down перед выключением интерфейса TUN/TAP

up-restart < command > - выполнить команду после каждого реконнекта

route-up < command > - выполнить команду после установки сетевых маршрутов. Пример:
route-up script.sh

learn-address < command > - выполнить указанную команду, если ip удаленной стороны изменился.

ipchange < command > - выполнить команду, если ip сервера изменился.

client-connect < command > - выполнить команду, когда клиент подключился.

client-disconnect < command > - выполнить команду, когда клиент отключился.

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

Логирование

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

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

Разные вопросы

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

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

Если клиент получил ошибку AUTH_FAILED
то он перестает переподключение и тупо гасит демона/сервис, помогает только перезапуск ОС или ручной запуск клиента

Опция "connect-retry" в данном случае поможет заставить клиента переподключаться принудительно даже при ошибке AUTH_FAILED ?

Как узнать подключен ли процесс openvpn к туннельному интерфейсу или висит просто так?
ps -ax выводит 18 процессов openvpn, а ifconfig только 15 tap интерфейсов. Значит какие-то отвалились. Как узнать какие это процессы?
Для получения процессов на python использую psutils, а для соединений netifaces.



psutil выдает информацию в следующем виде:


Как оттуда вытащить status? Парсингом? или pconn - какой- то объект и можно получить доступ по названиям как-то?



Рассказал бы, тут вон минимум два человека за тредом следят.


Qwentor ★★★★★ ( 30.07.16 11:11:15 )
Последнее исправление: Qwentor 30.07.16 11:12:46 (всего исправлений: 1)


неа не всегда работает(
Вот такой код:


Короче, нихера не понимаю. Не решено.
Это status - это не то
ПАМАГИТИ, плиз


может, если pid.connections() пуст то и статуса нет? if pid.connections() and pid.connections()[0].status ?

trashymichael ★★★ ( 30.07.16 15:30:00 )
Последнее исправление: trashymichael 30.07.16 15:30:14 (всего исправлений: 1)


Да, я туплю по жесткому. Похоже что изначально думал правильно. А если пуст, то и соединения нет)


Разобрался и все сделал. Если интересно, могу завтра выложить код скрипта на поругание

Qwentor ★★★★★ ( 31.07.16 00:53:36 )
Последнее исправление: Qwentor 31.07.16 00:54:12 (всего исправлений: 1)


давай сделаем ревью, только выкладывай в соответствующее место, если кода больше чем ничего, гитхаб подойдет, можешь гистом если один файл

Как посмотреть список активных подключений к серверу

И так в моем случае сервер OpenVpn настроен на Linux. Для просмотра конфигов я буду использовать файловый менеджер mc. И так открываем файл конфигурации который расположен по следующему пути.

И открываем его.

OpenVpn как открыть конфиг

И видим что лог храниться в корне папки openvpn.

status openvpn-status.log

Открываем его и видим список подключений.

OpenVpn сервер как посмотреть кто подключен

Если у вас нет такой строчки добавляем и перезапускаем службу openvpn.

Должен быть журнал состояния, на который вы можете посмотреть, чтобы показать вам, мой, для примера:

management localhost 7505

Это позволит вам подключиться к этому порту и предложить вам список команд для запуска:

telnet localhost 7505

c4urself 2 февраля 2014, 07:05:07

Чтобы завершить @sekrett ответ:

killall -USR2 openvpn ; tail -f /var/log/syslog

Он будет продолжать работать, это не «обычное» убийство, а просто запрос на печать некоторых статистических данных.

Отображаемые статистические данные очень читаемы.Пример вывода:

Oct 14 07:34:14 vpn2 openvpn[20959]: Updated,Fri Oct 14 07:34:14 2016Oct 14 07:34:14 vpn2 openvpn[20959]: Common Name,Real Address,Bytes Received,Bytes Sent,Connected SinceOct 14 07:26:26 vpn2 openvpn[20959]:10.8.0.132,hostname1,213.219.XXX.XXX:63765,Fri Oct 14 07:25:01 2016Oct 14 07:26:26 vpn2 openvpn[20959]:10.8.0.242,hostname2,213.219.XXX.XXX:62416,Sun Sep 25 03:49:19 2016

MichaelC 14 октября 2016, 08:33:08

У меня была такая же потребность, и самое легкое решение, которое я выяснил, заключалось в том, чтобы использовать как упомянутый telnet для подключения к интерфейсу управления (вам нужно добавить: управление localhost 6666 , в файле конфигурации сервера).

Чтобы получить точный номер клиента, который вы можете сделать:

Затем вы получите много журналов:

10.9.10.11,test-docker,52.58.48.98:56859,Wed May 4 09:37:34 201610.9.7.45,test-docker,52.58.156.80:38774,Wed May 4 09:36:59 201610.9.1.103,test-docker,52.58.161.230:52201,Wed May 4 09:35:47 2016GLOBAL STATSMax bcast/mcast queue length,0END>CLIENT:ESTABLISHED,19845>CLIENT:ENV,n_clients=19361>CLIENT:ENV,time_unix=1462357164

В моем случае, поскольку у меня очень большое количество клиентов, использование файла журнала определенно не очень практично.

Florent 4 мая 2016, 13:24:29

sekrett 6 июля 2016, 18:13:18

Просто используйте sacli со следующей командой. Это будет список подключенных VPN-клиентов.

Установка

Windows

Заходим на официальную страницу загрузки openvpn и скачиваем клиента для нужной Windows:

openvpn-server-windows-01.jpg

Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».

Linux CentOS

Устанавливаем репозиторий EPEL:

yum install epel-release

yum install openvpn

Linux Ubuntu

apt install openvpn

Android

Установка выполняется из Google Play. Набираем в поиске OpenVPN Connect – нажимаем установить и принимаем условия.

Введение

Идея настроить мониторинг openvpn подключений с помощью zabbix витала у меня давно, но никак не доходили руки. Когда выбрал время и сел настраивать, сходу не придумал, а как же лучше это сделать. Так как в задаче много нюансов, то и подходов тоже может быть несколько.

Изначально я думал как-нибудь распарсить лог openvpn и вытаскивать подключенных пользователей оттуда. После того, как внимательно посмотрел на основной лог, понял, что это не самая простая задача, пришлось бы повозиться, чтобы все отладить.

  • Скрипты
  • Конфиги
  • Шаблон с автообнаружением, графиками и триггерами.

Шаблон имеет следующие элементы в своем составе:

  1. Итемы для мониторинга за полученным и переданным трафиком пользователя.
  2. Итемы для мониторинга за статусом подключения, отключения пользователя.
  3. Триггер со срабатыванием на подключение и отключение пользователя.
  4. График полученных, отправленных данных в байтах.
  5. График со статусом подключения пользователя.
  6. Количество подключенных пользователей к openvpn серверу.

Все эти итемы, графики и триггеры создаются автоматически для каждого пользователя.

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

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

С учетом указанных особенностей мониторинга openvpn, переходим к настройке. Возможно, у меня что-то не будет совпадать точь в точь с тем, что есть в репозитории github, так как редактировал под свои реалии, причем достаточно давно. Нюансов уже не помню, буду приводить свои конфиги как есть.

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

  1. Установка CentOS 8.
  2. Настройка CentOS 8.
  3. Установка и настройка zabbix сервера.

То же самое на Debian 10, если предпочитаете его:

  1. Установка Debian 10.
  2. Базовая настройка Debian.
  3. Установка и настройка zabbix на debian.

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

Аналогично с помощью push клиенту могут передаваться следующие параметры:

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

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

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

Для улучшения безопасности рекомендовано запускать все сервисы с минимальными правами. Следующими двумя командами мы укажем с правами какого пользователя и группы будет работать openvpn:

user nobody
group nogroup

Где, соответственно, nobody и nogroup имена пользователя и группы.

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

Доступ к службам компьютера через NAT и с серым IP с помощью OpenVPN

Фух, теперь, когда всё настроено и готово, можно наконец-то перейти к веселью (это для вас от начала статьи прошло несколько минут — для меня прошло несколько дней: пока написал скрипт, отладил на нескольких системах, разобрался с разными техническими вопросами, подправил команды в статье по настройке OpenVPN и, наконец-то, дошёл до этого места).

VPN — виртуальная частная сеть — имеет своё адресное пространство, по умолчанию это 10.8.0.0/24. Каждому устройству (компьютеру, телефону) из этого пространства выдаётся IP адрес. Эти адреса относятся к локальным. И обращаясь по этому адресу можно получить доступ к ресурсам (сетевым службам, файлам) компьютера, у которого нет белого IP.

К примеру, я подключил к моей локальной сети новое устройство — систему Linux с запущенным веб-сервером. Посмотрим список сетевых интерфейсов:


Можно увидеть, что интерфейс eth0 имеет IP адрес 10.0.2.15 — это серый IP и по нему невозможно подключиться к этому компьютеру из Интернета. К тому же, сама система находится за NAT.

После включения OpenVPN создаётся новый сетевой интерфейс tun0, для данной системы у него IP адрес 10.8.0.18. Используя IP адрес интерфейса OpenVPN (tun0), другие участники сети OpenVPN могут подключаться к этому компьютеру. Как я сказал, на этом компьютере запущен веб-сервер. Попробуем его открыть на телефоне, который подключён к этой же сети OpenVPN через совершенно другого провайдера и вообще может находиться за тысячи километров:

Как можно увидеть, это действительно работает. Это может быть веб-сервер, файловый сервер (FTP и другие), рабочие окружения для совместной работы (например, выполненные в виде веб-приложений, запущенных на веб-сервере). При этом доступ к этой рабочей среде будут иметь только участники VPN сети — для всех других она будет полностью закрыта. Любой из участников сети может делиться любыми ресурсами, и любой другой участник может подключаться используя серый IP, присвоенный внутри сети OpenVPN. Чтобы это работало, нужен только один белый (внешний) IP — для самого OpenVPN сервера. Для этих целей обычной ВПСки (VPS — Virtual Private Server) с минимальной конфигурацией по железу хватит за глаза.

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с

в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.Что даст вам этот курс:

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

Проверьте себя на вступительном тесте и смотрите подробнее программу по

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Обход перехватывающего портала с помощью OpenVPN

В статье «Быстрый, простой и рабочий способ обхода Captive Portal (hotspot с авторизацией на web-интерфейсе)» в качестве теоретического способа обхода, я упоминал возможность настройки OpenVPN на 53 UDP порту. Также я написал, что у меня это не получилось. В тот раз у меня не было своего OpenVPN сервера, поэтому я нашёл OpenVPN с тестовым периодом и с возможностью выбрать порт 53 UDP. Но попытки подключиться к OpenVPN серверу закончились неудачей.

Теперь у меня снова появилась возможность потестировать уже другой hotspot с авторизацией на web-интерфейсе и в нём это действительно работает. То есть, если я просто пытаюсь выйти в Интернет, то я получаю:


Но стоит включить OpenVPN, то я сразу могу пользоваться Интернет-доступом без авторизации! То есть это действительно работает, правда, видимо не со всеми Перехватывающими Порталами. Видимо, некоторые из них достаточно интеллектуальны, чтобы понять, что это какие-то неправильные DNS запросы и что их не нужно пропускать.


Без предварительной подготовки, через этот порт вы только сможете на халяву делать DNS запросы… Но если вы настроили ваш OpenVPN соответствующим образом, то через открытый UDP порт 53 вы сможете подключаться к серверу OpenVPN, а уже он будет для вас выходить во внешний мир и точно также, по этому же самому пути возвращать полученную информацию.

Это работает стабильно и, по субъективным ощущениям, когда сеть загружена, трафик UDP 53 имеет приоритет… То есть работает даже лучше, чем если бы я купил доступ и сидел через этот же хотспот на TCP трафике (я сравнивал и так и так). Хотя, возможно, свою роль играет OpenVPN. Я замечал, что при хорошем подключении когда я сижу через OpenVPN, пинги лучше, чем когда я использую Интернет-подключение обычным образом.

Итак, для этого нужен только OpenVPN сервер, настроенный для работы по протоколу UDP (это по умолчанию) с номером порта 53 (его нужно выбрать при создании конфигурационных файлов).

Возможно, работает не для всех хотспотов — буду продолжать тестировать.

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

В данной инструкции подробно описан процесс настройки клиента OpenVPN на примере операционных систем Windows и Linux. Также, с ее помощью можно настроить скиента на Android.

Установка

Windows

Заходим на официальную страницу загрузки openvpn и скачиваем клиента для нужной Windows:


Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».

Linux CentOS

Устанавливаем репозиторий EPEL:

yum install epel-release

yum install openvpn

Linux Ubuntu

apt install openvpn

Android

Настройка

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

В системах Windows создаем файл config.ovpn в папке %programfiles%OpenVPNconfig.

* имя файла может быть любым, расширение должно быть .ovpn.

Для создания конфигурационного файла в Linux выполняем команду:

* чтобы служба openvpn автоматически выполняла соединение, необходимо, чтобы конфигурационный файл назывался client.conf.

Пример конфигурационного файла

client
dev tun
proto udp
remote 192.168.0.15 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
comp-lzo
verb 0

Параметры конфигурационного файла

Сертификаты

Клиентские сертификаты генерируются на стороне сервера. Процедура следующая.


Привет,
Зайти в OpenVPN Management Interface и дать команду:
status

Можно еще и через, к примеру:
netstat | grep openvpn

Openvpn, в отличие, например, от Cisco ASA, ISR, не радует функционалом, позволяющим в realtime получить разного рода информацию о текущих клиентских подключениях к серверу. Тем не менее, кое что узнать можно.

Для этого нужно файле конфигурации openvpn server.conf прописать строчку:

management localhost 7777

Теперь, достаточно с сервера openvpn, используя telnet, подключиться по указанному порту и попасть в некий командный интерфейс:

Если набрать help увидим список возможных команд, одной из которых является команда status:

status
OpenVPN CLIENT LIST
Updated,Mon Mar 24 10:04:15 2014
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
client_25006,93.153.112.236:1194,6328869,2139096,Fri Mar 21 13:35:51 2014
client_25001,78.25.20.93:10193,6194879,2345208,Sat Mar 22 00:31:56 2014
client_50305,78.25.21.192:15360,7530150,2862510,Fri Mar 21 13:50:34 2014
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.104.0.5,client_25001,78.25.20.93:10193,Mon Mar 24 10:04:14 2014
10.104.0.69,client_50305,78.25.21.192:15360,Mon Mar 24 10:04:01 2014
10.104.0.25,client_25006,93.153.112.236:1194,Mon Mar 24 10:04:10 2014
GLOBAL STATS
Max bcast/mcast queue length,0
END

Т.е. налицо имена подключенных клиентов, их публичные адреса, их адреса внутри туннелей, длительность подключения, число переданных принятых байт. Досточно удобно и наглядно.

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

С его помощью можно создавать эффективное и надежное соединение между ПК, которые расположены вне зоны NAT-firewall, при чем впоследствии не нужно изменять настройки.

В этой статье мы рассмотрим, как происходит настройка OpenVPN с учетом использовании самых распространенных команд. Они необходимы, чтобы непосредственно подключить технологию и адаптировать ее под собственные потребности, когда вы работаете за компьютером.

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

Зачем нужны команды OpenVPN

Главная задача OpenVPN – это создание защищенного удаленного подключения. Он гарантирует безопасность благодаря своей гибкости и удобству, и все это реализуется благодаря множественным командам, обеспечивающим правильную и эффективную настройку.

Далее мы рассмотрим, как устанавливается технология OpenVPN на различные операционные системы – в частности на Windows, Linux и Android.

Установка OpenVPN (Windows, Linux, Android)

Чтобы установить OpenVPN на Windows, необходимо выполнить следующие действия:

Установка OpenVPN

  • скачать установочный файл;
  • запустить его и дождаться полной инсталляции.

Для установки на Linux порядок действий будет следующим:

  • установить репозиторий EPEL – yum install epel-release;
  • задать инсталляцию OpenVPN – yum install openvpn;
  • для Linux Ubuntu применить apt install openvpn.

На всех Android-гаджетах OpenVPN устанавливается таким образом:

  • скачать приложение OpenVPN Connect из магазина Google Play;
  • дождаться завершения инсталляционного процесса.

Настройка OpenVPN

Когда вы установили программу, вам нужно вручную сформировать конфигурационный файл, поскольку автоматически он не появляется. Для определенной операционной системы будет свой план действий:

  • для всех версий ОС Windows необходимо создать файл config.vpn в папке %programfiles%\OpenVPN\config;
  • для Linux – выполнить команду vi /etc/openvpn/client.conf.
Для обеспечения вашей безопасности и конфиденциальности мы рекомендуем использовать самый надежный и безопасный VPN-сервер для OpenVPN
Пример конфигурационного файла может выглядеть следующим образом:

Настройка OpenVPN

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

Каждый параметр (man openvpn) имеет свое значение и описание. Рассмотрим их более детально:

Абсолютно все команды OpenVPN с соответствующими параметрами по OpenVPN для ОС Windows и Linux вы можете получить, воспользовавшись опцией openvpn —help.

Запуск

Для проверки настроек можно использовать две версии запуска:

Второй вариант рекомендуется использовать для повседневного применения.

Если вы запускаете вручную технологию на Windows, выполните следующие действия:

  • запустить OpenVPN GUI от имени администратора;
  • в правом углу снизу появляется иконка;

опцию подключения OpenVPN

Для Linux порядок действий следующий:

  • перейти в каталог с конфигурационным файлом cd /etc/openvpn;
  • ввести команду openvpn —config /etc/openvpn/client.conf или systemctl start openvpn и service openvpn start;

Если вы запускаете автоматически технологию на Windows, выполните следующие действия:

  • открыть службу и найти OpenVPNService;
  • перевести в режим автозапуска.

Для Linux порядок действий следующий:

  • разрешить автозапуск через команду systemctl enable openvpn;
  • для старых версий CentOS / Red Hat / Fedora актуальна команда chkconfig openvpn on;
  • для Ubuntu / Debian – update-rc.d openvpn defaults.

Заключение

OpenVPN можно назвать универсальным программным обеспечением, которое можно настраивать и адаптировать под личные потребности и цели. При использовании команд и их параметров, рассмотренных в нашем обзоре, вы сможете повысить уровень безопасности виртуальной частной сети, а также обеспечить сохранность всех рабочих элементов – каналов передачи ключей, узлов сети VPN, настроек Firewall и антивирусной программы.

Читайте также: