Как отследить, спарсить, визуально мониторить подключившихся пользователей по OpenVPN?

Добрый день!

Для подключения удаленных сотрудников в компании был поднят OpenVPN.
Необходимо мониторить кто и когда подключался из удаленных сотрудников к серверу OpenVPN.
Где на сервере лежит лог файл?
Как и чем парсить этот лог файл и визуально отображать для руководства(отдела кадров)?
  • Вопрос задан
  • 1667 просмотров
Решения вопроса 2
@res2001
Developer, ex-admin
В конфиге openvpn есть директива status - в ней можно задать путь к файлу куда openvpn будет складывать текущую информацию по подключенным соединениям. Чем парсить - фиг знает, разбирайте его сами, лог простой.

В директивах log или log-append - указываете общий файл лога, туда льется вся остальная инфа от openvpn.
Уровень логирования задается с помощью verb.
Ответ написан
Комментировать
hugeous
@hugeous
Системный администратор
Привет хабровчане.
Использую у себя такой скрипт на проде:
#!/bin/sh

export INDEXTXT=/etc/openvpn/easyrsa3/easyrsa3/pki/index.txt
export LOGFILE=/var/log/openvpn.log
echo -e "\nOpenVPN users last connection mac/ip list tool\n"
validusers=$(grep -E "V{символ табуляции}" $INDEXTXT|cut -d'=' -f2)
#echo Users last mac/ip addresses:
echo LastLogin Timestamp        /       User    /       mac     /       ip
for usr in ${validusers}
    do
    if [ $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|wc -l) -gt 0 ]
        then
        echo $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|cut -c 1-24)    /       $usr    /       $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|cut -d':' -f6-11|cut -c 2-18)    /       $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|cut -d'/' -f3|cut -d':' -f1)
    fi
done

Стоит обратить внимание на символ табуляции в команде выборки валидных пользователей.
5ecfab7c94f53371987570.jpeg
Принцип работы:
Парсинг файла БД сертификатов openssl - index.txt, выборка валидных пользователей.
Цикл с проходом по списку валидных пользователей, и парсинга лог-файла openvpn.log
Выхлоп скрипта примерно следующий:
5ecfacd8224ea870716817.jpeg
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Bronn
У меня под FreeBSD логи от трёх процессов OpenVPN лежат в /var/log/openvpnN.log
Для простейшего мониторинга есть пишутся текстовые файлы
/usr/local/etc/openvpn-statusN.log
Формат у них вполне прост, например:
OpenVPN CLIENT LIST
Updated,Thu May 28 16:31:18 2020
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
vasya,136.132.117.53,3181220962,117704860,Wed May 27 12:33:50 2020
petya,136.132.11.27,633201412,33079349,Wed May 27 13:07:01 2020
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.114,petya,136.132.117.53,Thu May 28 16:31:17 2020
10.8.0.18,vasya,136.132.112.27,Thu May 28 16:31:17 2020
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы