使用pptpd和xl2tpd搭建VPN之后,会发现在/var/log下并没有详细的日志,在syslog中虽然有IP记录和拨入时间,但却没有帐户和连接等信息,当需要查看当前连接的用户,或者之前的使用日志则无从查起。
之前的文章中介绍过利用shell脚本对VPN拨入的PPP连接进行限速,原理是利用ppp拨入时会加载ip-up,事实上在ppp断开时也会加载ip-down。参考pptpd帮助可以得知其中可以使用的参数。因此可以用如下方法:
在ip-up结尾添加
1 2 3 4 5 6 7 8 9 |
echo "##################################" >> /var/log/pptpd.log echo "Now User $PEERNAME is connected!!!" >> /var/log/pptpd.log echo "##################################" >> /var/log/pptpd.log echo "time: `date -d today +%F_%T`" >> /var/log/pptpd.log echo "clientIP: $6" >> /var/log/pptpd.log echo "username: $PEERNAME" >> /var/log/pptpd.log echo "device: $1" >> /var/log/pptpd.log echo "vpnIP: $4" >> /var/log/pptpd.log echo "assignIP: $5" >> /var/log/pptpd.log |
在ip-down结尾添加
1 2 3 4 5 6 7 8 9 10 11 12 |
echo "#####################################" >> /var/log/pptpd.log echo "Now User $PEERNAME is disconnected!!!" >> /var/log/pptpd.log echo "#####################################" >> /var/log/pptpd.log echo "time: `date -d today +%F_%T`" >> /var/log/pptpd.log echo "clientIP: $6" >> /var/log/pptpd.log echo "username: $PEERNAME" >> /var/log/pptpd.log echo "device: $1" >> /var/log/pptpd.log echo "vpnIP: $4" >> /var/log/pptpd.log echo "assignIP: $5" >> /var/log/pptpd.log echo "connect time: $CONNECT_TIME s" >> /var/log/pptpd.log echo "bytes sent: $BYTES_SENT B" >> /var/log/pptpd.log echo "bytes rcvd: $BYTES_RCVD B" >> /var/log/pptpd.log |
之后当连接拨入和断开时则写入日志,如果担心日志过大可以在crontab写一个自动清理脚本即可。
======
kujou_rin