使用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