wake-up-neo.com

如何查看已连接的用户以打开VPN服务器?

我正在开发一个使用Django)框架来管理OpenVPN用户)的网站。但是我需要知道有什么方法可以从OpenVPN中提取活动用户吗?我的服务器正在运行Ubuntu 12.04。

67
hamidfzm

应该有一个状态日志,您可以查看一下,例如:

cat /etc/openvpn/openvpn-status.log

编辑:

或者,添加标志--management IP port [pw-file]或将相同的指令添加到您的server.conf, 例如:

management localhost 7505

这将允许您远程登录到该端口,并为您提供要运行的命令列表:

telnet localhost 7505

help

90
c4urself

完成 @ 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
20
MichaelC

我自己也有同样的需求,发现的最简单的解决方案是使用telnet来连接到管理界面(您必须添加:management localhost 6666,在服务器配置文件中)。

要获得确切的客户数量,您可以执行以下操作:

  • telnet本地主机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
  • 寻找=>> CLIENT:ENV,n_clients = 19361

就我而言,由于我有大量客户端,因此使用日志文件绝对不是很实用。

8
Florent

我管理着我们公司的OpenVPN服务器,看到活动连接的方式是这样的,

添加到/etc/openvpn/server.conf

management 127.0.0.1 5555

重启openvpn服务器

systemctl restart [email protected]

添加一个OpenVPN Monitor Python软件包-该软件包将通过Gunicorn网络服务器运行并显示活动连接,

mkdir /opt/openvpn-monitor

创建一个虚拟环境(不是必需的,但是使用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

启动将显示活动连接的Web服务器,

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

停止监控

pkill gunicorn 

要查看活动的连接,请转到您的VPN服务器的公共IP

http://<ip of openvpn server>

确保为端口80配置适当的防火墙,仅将受信任的入站IP列入白名单

enter image description here

6
perfecto25

您还可以将usr2信号发送到openvpn进程,以使其将统计信息写入syslog。这是安全的,如果您之前未启用管理界面,则无需重新启动。

4
sekrett

只需在以下命令中使用sacli。这将列出连接的VPN客户端。

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

要查看所有IP,请使用此选项。 ./sacli VPNStatus

1
BouncingSoles