Відповіді:
Повинен бути журнал статусу, який ви можете подивитися, щоб показати вам, моє, для іспиту:
cat /etc/openvpn/openvpn-status.log
Редагувати:
Як альтернатива, додавання прапора --management IP port [pw-file]
або додавання цієї ж директиви до вашого server.conf
, наприклад:
management localhost 7505
Це дозволить вам надіслати телнет до цього порту і запропонувати вам список команд для запуску:
telnet localhost 7505
help
/etc/openvpn/openvpn-status.log
не працював для мене на Debian, він ніколи не змінювався, натомість /var/run/openvpn/server.status
працював ідеально.
Щоб заповнити @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 , у файлі конфігурації сервера).
Щоб отримати точну кількість клієнтів, ви можете зробити:
Тоді ви отримаєте безліч журналів:
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
У моєму випадку, оскільки у мене дуже велика кількість клієнтів, використання файлу журналу, безумовно, не дуже практично.
Ви також можете надіслати сигнал usr2 до процесу openvpn, щоб змусити його записувати статистичну інформацію в syslog. Це безпечно, вам не потрібно перезавантажувати, якщо ви раніше не вмикали інтерфейс управління.
killall -USR2 openvpn
. Потім стежте за журналами. Це може бути /var/log/syslog
або /var/log/messages
залежно від дистрибутива.
kill
команда може надсилати різні сигнали, USR2 не буде вбивати, це просто сигнал. Список можна переглянути тут: linux.org/threads/kill-signals-and-commands-revision.11625 або запустивши kill -l
.
Я керую нашими серверами OpenVPN-серверами, і те, як я бачу активні з'єднання, виглядає таким чином,
додати в /etc/openvpn/server.conf
management 127.0.0.1 5555
перезапустити сервер openvpn
systemctl restart openvpn@server.service
додайте пакет OpenVPN Monitor Python - це запуститься через веб-сервер Gunicorn і покаже активні з'єднання,
mkdir /opt/openvpn-monitor
створити віртуальну програму env (не потрібно, але хороша практика з py-пакетами)
cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate
встановити необхідні пакети
pip install openvpn-monitor gunicorn
додати конфігураційний файл Monitor
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
Просто використовуйте саклі з наступною командою. Тут буде вказано список підключених клієнтів VPN.
/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}
Щоб побачити всі IP-адреси, використовуйте цю опцію. ./sacli VPNStatus