最新消息:重新回归WordPress,我要比较认真的开始更新我的博客了。

自定义xl2tpd登录日志

服务器相关 hanlei 8991浏览

自己服务器上建vpn,虽然就几个人用,但也希望尽可能的记录下每个人的登录记录。之前研究过,也实现了简单的记录,但是太简单了。但能查到的资料很少,而且大部分又是英文,看不懂。不过刚才看到一篇文章,正是我要的东西。看完了还是不明所以,但试了一下很好用,就抄过来了。

根据原文博主说的,这些相关的脚本配置都能在man里面找到,但英文不好的我也不想去看了,直接把原文的代码简化剩下有用的部分贴过来了。

/etc/ppp/ip-up

#!/bin/sh 
echo "****************************************************" > /var/log/pptpd-${1}.log
echo "username: $PEERNAME" >> /var/log/pptpd-${1}.log 
echo "clientIP: $6" >> /var/log/pptpd-${1}.log 
echo "device: $1" >> /var/log/pptpd-${1}.log 
echo "vpnIP: $4" >> /var/log/pptpd-${1}.log 
echo "assignIP: $5" >> /var/log/pptpd-${1}.log 
echo "logintime: `date -d today +%F_%T`" >> /var/log/pptpd-${1}.log

/etc/ppp/ip-down

#!/bin/sh 
echo "downtime: `date -d today +%F_%T`" >> /var/log/pptpd-${1}.log 
echo "bytes sent: $BYTES_SENT" >> /var/log/pptpd-${1}.log 
echo "bytes received: $BYTES_RCVD" >> /var/log/pptpd-${1}.log 
echo "connect time: $CONNECT_TIME" >> /var/log/pptpd-${1}.log 
echo "****************************************************" >> /var/log/pptpd-${1}.log 
cat /var/log/pptpd-${1}.log >> /var/log/pptpd.log

原理就是用户登录时会执行ip-up,这时保存一部分登录日志到一个用户单独的文件,到登录注销时会执行ip-down,再保存另外一部分的日志到用户单独文件,最后把这个用户单独文件内的日志添加到总日志内。最后的日志效果如下:

**************************************************** 
username: vpn_user
clientIP: 111.222.111.2
device: ppp0
vpnIP: 10.10.10.1
assignIP: 10.10.10.2
logintime: 2018-03-31_14:39:56
downtime: 2018-03-31_14:41:39
bytes sent: 178746
bytes received: 120125
connect time: 103
****************************************************

具体的操作请BAIDU,或在我的blog内搜x2ltp。本文参考链接https://www.nenew.net/pptp-vpn-log-user-time-ip-net-traffic-info.html

转载请注明:HANLEI'BLOG » 自定义xl2tpd登录日志