Где хранятся логи openvpn linux

Обновлено: 06.07.2024

По умолчанию в директории /etc/openvpn/ конфигурационных файлов нет, но есть две директории для них — server и client . Файл конфигурации нужно создать самостоятельно и поместить в директорию server (для сервера) или client (для клиента). Образец файла конфигурации OpenVPN можно взять из документации:

Приведем файл конфигурации к следующему виду:

Директива server является макрокомандой и имеет синтаксис:

Она будет преобразована по следующему алгортиму:

Директива route-gateway используется совместно с директивой route и задает шлюз по умолчанию для VPN-сети. Если параметр gateway директивы route не задан — он будет получен из директивы route-gateway .

Директива topology приобретает смысл совместно с dev tun и предусматривает три варианта: net30 , p2p , subnet .

Универсальным решением для VPN-сервера является net30 — это значение по умолчанию. Сервер будет работать со всеми версиями Windows, Linux, Mikrotik. Недостатком топологии является избыточное расходование адресного пространства — четыре ip-адреса на каждого VPN-клиента. Топология net30 фактически «устарела» и сохраняется исключительно для поддержки старых Windows клиентов.


Значение subnet рекомендуется для VPN-сервера, клиентами которого являются Linux и Windows 8.2 и выше. Устройство tun настроено на использование ip-адреса и маски сети как «традиционная» широковещательная сеть. Сетевой и широковещательный ip-адреса не должны использоваться — хотя tun не имеет понятия о широковещании, клиенты Windows не смогут правильно использовать эти адреса. Все остальные ip-адреса в сети доступны для использования.

Значение p2p не может использоваться в системах Windows и не подходит, если сервер или любой клиент может быть Windows. В этой топологии все узлы настроены как настоящие двухточечные ссылки — каждый ip-адрес может использоваться, включая первый и последний. Другими словами, в сети 10.8.0.0/24 в топологии p2p можно использовать все 256 ip-адресов. Но Windows считает первый и последний ip-адреса сетевым и широковещательным адресами.

Директивы persist-key и persist-tun обеспечивают правильную работу после понижения прав, т.е. при использовании nobody и nogroup .

Директива keepalive является макрокомандой и будет преобразована в директивы ping и ping-restart

Кроме того, эта макрокоманда отправит две директивы на клиент (так что в файле конфигурации клиента они не нужны)

Все готово, можно запускать VPN-сервер (подробности здесь):

Здесь config — это имя файла конфигурации в директории server , но без расширения .conf . Чтобы VPN-сервер запускался при загрузке системы:

Смотрим статус запущенной службы:

Смотрим наличие сетевого интерфейса tun0 :

Файл конфигурации клиента

Первым делом нужно установить пакет OpenVPN:

Создаем директорию keys и копируем ключи:

Копируем образец файла конфигурации клиента:

Приведем файл конфигурации к следующему виду:

Все готово, можно запускать VPN-клиент (подробности здесь):

Здесь config — это имя файла конфигурации в директории client , но без расширения .conf . Чтобы VPN-клиент запускался при загрузке системы:

Смотрим статус запущенной службы:

Смотрим наличие сетевого интерфейса tun0 :

Пингуем сервер по адресу 10.8.0.1 :

Дополнительные настройки сервера

1 Если нужно использовать VPN-туннель для маршрутизации всего трафика клиентов, добавляем в файл конфигурации еще три строки.

Теперь клиенты будут использовать туннель VPN в качестве шлюза по умолчанию и DNS-сервера 208.67.222.222 и 208.67.220.220 . В этом случае надо внести изменения и в файл конфигурации клиента. Какие изменения — зависит от того, используется systemd-resolved или нет.

При подключении к серверу сетевые настройки клиента будут изменяться, а при отключении от сервера — настройки будут возвращаться в нормальное состояние, как было до подключения. Скрипт update-resolv-conf доступен сразу после установки пакета openvpn , чтобы получить скрипт update-systemd-resolved — надо установить пакет openvpn-systemd-resolved .

2 По умолчанию сервер OpenVPN использует порт 1194 и протокол UDP — но это всегда можно изменить.

При переключении протокола на TCP, нужно изменить значение директивы explicit-exit-notify с 1 на 0, так как эта директива используется только для UDP. Иначе, при использовании TCP, эта директива вызовет ошибки при запуске службы.

Кроме того, при изменении протокола и порта сервера в файле конфигурации сервера, надо внести изменения в файл конфигурации клиента — указать тот же порт и протокол.

3 По умолчанию клиенты сети VPN могут «общаться» только с сервером OpenVPN. Для того, чтобы клиенты могли взаимодействовать друг с другом через сеть VPN необходимо в конфигурационном файле раскомментировать соответствующую директиву:

4 Сервер динамически выдает клиентам свободные ip-адреса из заданного диапазона. Наличие директивы ifconfig-pool-persist указывает, что перед тем как выдать клиенту свободный адрес из пула, сервер должен свериться с файлом ipp.txt , в котором прописывается привязка Common Name сертификата к ip-адресу.

5 Директива client-config-dir предписывает читать файлы конфигураций клиентов в указанной директории. Имена файлов конфигурации в этой директории совпадают с Common Name сертификатов клиентов. Директивы из каждого файла конфигурации применяются только для конкретного клиента.

6 Директива ccd-exclusive — VPN-клиент, имеющий сертификат с Common Name «sergey-ivanov», может подключиться к VPN-серверу, только если существует файл с именем sergey-ivanov в директории client-config-dir . Этот файл может быть даже пустым — но он должен существовать.

7 Директива duplicate-cn разрешает одновременное подключение нескольких клиентов с одинаковым Common Name. В отсутствие этой директивы сервер отключит экземпляр клиента при подключении нового клиента с таким же Common Name.

Чтобы избежать ошибки Could not determine IPv4/IPv6 protocol. Using AF_INET при запуске VPN-сервера, нужно явно указать версию протокола:

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

Где хранятся журналы OpenVPN

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

Установить mc - apt install mc

После открытия mc переходим в каталог где установлен OpenVpn и открываем файл конфигурации. Для просмотра файла необходимого его выделить и начать F3.

OpenVpn настройка

В файле ищем строчку.

Если у вас указан такой путь то это значить что лиги хранятся в той же папки что и сам OpenVpn.

OpenVpn настройка логов сервера

Ищем данный файл по указанному пути. Для просмотра можно также использовать F3.

OpenVpn как посмотреть логи

Если у вас нет mc то можете открыть файл конфигурации введя команду.

Такой же командой можно и просмотреть сам журнал. Как видите нет ни чего сложного.

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

И так в моем случае сервер 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 на Ubuntu

VPN — виртуальная частная сеть, которая позволяет обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет ).

В нашем случае мы рассмотрим создание надежной и защищенной сети VPN на основе ненадежной сети Интернет при помощи продукта OpenVPN в рамках операционной системы Ubuntu 16.04.

Установка необходимых пакетов

Команды будем выполнять от суперпользователя.

Приступим к установке ПО:

easy-rsa — программа которая служит для создания и ведения инфраструктуры открытых ключей (PKI) в командной строке (CLI). В нашем случае мы будем использовать ее для выполнения действий с ключами и сертификатами, необходимыми для работы OpenVPN .

Демон OpenVPN будет работать у нас от имени непривилегированного пользователя openvpn. Добавим его:

Создание инфраструктуры открытых ключей (PKI)

Далее займемся созданием ключей и сертификатов при помощи easy-rsa. Скопируем необходимые файлы в /etc/openvpn/ и перейдем в эту директорию:

Далее для удобства создания сертификатов в /etc/openvpn/easy-rsa/vars изменим следующие строки:

Производить работу с текстовыми файлами вы можете, используя удобные Вам текстовые редакторы (например, vi или nano).

Изменение данных переменных на работу VPN не повлияет, однако визуально может сделать подключение более информативным.

Затем необходимо инициализировать переменные, используемые при создании публичного ключа командой:

и удалить существующие ключи:

Приступаем к созданию удостоверяющего центра (CA):

В ходе установки Вам потребуется проверить корректность данных, используемых для запроса на создание сертификата (certificate request). Если Вы предварительно изменили значения переменных в /etc/openvpn/easy-rsa/vars, то Вам достаточно будет просто нажимать Enter. Также, по желанию, Вы сможете указать пароль, который будет защищать приватный ключ удостоверяющего центра. Хорошо запомните его или запишите в надежном месте!

Аналогичным образом создаем остальные ключи и сертификаты.

Сертификат сервера OpenVPN, где «server» - имя сервера:

Ключ Диффи-Хеллмана служит для использования одноименного криптографического протокола, который позволяет двум и более сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи (создание ключа может занимать от нескольких секунд до нескольких минут, не прерывайте процесс):

Ключ клиента, где «user_1» - имя клиента:

Ключ HMAC для дополнительной защиты от DoS-атак и флуда:

Сертификаты с ключами будут помещаться в директорию /etc/openvpn/easy-rsa/keys:

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