Назад | Перейти на главную страницу

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

Я разрабатываю веб-сайт для управления пользователями OpenVPN с помощью фреймворка Django. Но мне нужно знать, есть ли способ извлечь активных пользователей из OpenVPN? На моем сервере работает Ubuntu 12.04.

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

cat /etc/openvpn/openvpn-status.log

РЕДАКТИРОВАТЬ:

В качестве альтернативы добавление флага --management IP port [pw-file] или добавив ту же директиву к вашему server.conf, например:

management localhost 7505

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

telnet localhost 7505

help

Завершить @sekrett ответ :

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

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

Отображаемая статистика хорошо читается. Пример вывода:

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

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

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

  • telnet localhost 6666
  • положение дел

Тогда вы получите много логов:

10.9.10.11,test-docker,52.58.48.98:56859,Wed May  4 09:37:34 2016
10.9.7.45,test-docker,52.58.156.80:38774,Wed May  4 09:36:59 2016
10.9.1.103,test-docker,52.58.161.230:52201,Wed May  4 09:35:47 2016
GLOBAL STATS
Max bcast/mcast queue length,0
END
>CLIENT:ESTABLISHED,19845
>CLIENT:ENV,n_clients=19361
>CLIENT:ENV,time_unix=1462357164
  • ищите =>> КЛИЕНТ: ENV, n_clients = 19361

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

Я управляю серверами OpenVPN нашей компании и вижу активные подключения следующим образом:

добавить в /etc/openvpn/server.conf

management 127.0.0.1 5555

перезапустить сервер openvpn

systemctl restart openvpn@server.service

добавьте пакет Python OpenVPN Monitor - он будет работать через веб-сервер Gunicorn и показывать активные соединения,

mkdir /opt/openvpn-monitor

создать виртуальный env (не обязательно, но хорошая практика с пакетами py)

cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate

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

pip install openvpn-monitor gunicorn

добавить файл конфигурации монитора

vi /opt/openvpn-monitor/openvpn-monitor.conf

[openvpn-monitor]
site=your-openvpn-site
#logo=logo.jpg
#latitude=40.72
#longitude=-74
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S

[VPN1]
host=localhost
port=
name=Your VPN Server Name
show_disconnect=False

запустить веб-сервер, который будет показывать активные соединения,

gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon

Чтобы остановить монитор

pkill gunicorn 

чтобы увидеть активные соединения, перейдите на публичный IP-адрес вашего VPN-сервера

http://<ip of openvpn server>

убедитесь, что настроили правильный брандмауэр для порта 80, внесите в белый список только доверенные входящие IP-адреса

Вы также можете отправить сигнал usr2 процессу openvpn, чтобы он записывал статистическую информацию в системный журнал. Это безопасно, вам не нужно перезагружаться, если вы раньше не включали интерфейс управления.

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

/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}

Чтобы увидеть все IP-адреса, используйте эту опцию. ./sacli VPNStatus