PPTP | linux PPTP VPN记录登陆信息

一、简介

pptpd的日志主要是在/var/log/messages,/var/log/pptpd.log等文件里面,但是仔细看了下并没有发现登陆信息,也就不清楚具体有哪些用户登陆上来了。

于是就看了一下pppd的man,里面发现了一些环境变量如:IPLOCAL, IPREMOTE等,经过测试发现 PEERNAME就是用户名,这样在/etc/ppp/ip-up和/etc/ppp/ip-down里面记录一下就可以了,另外没有发现用户的ip。后来发现pppd是spawn出一个子进程来控制pptpd连接的,子进程的命令行里面已经带有了用户的ip,经过多次试验,发现ip-up被调用的时候是有命令行参数的。

二、相关参数

PEERNAME: 用户名
$1: 分配的ppp设备
$4: VPN的IP
$5: 分配的IP
$6: 客户端IP

三、添加参数到ip-up和ip-down脚本

# vim /etc/ppp/ip-up
echo "time: `date -d today +%F_%T` clientIP: $6 username: $PEERNAME device: $1 vpnIP: $4 assignIP: $5 status: connected" >> /var/log/pptpd1.log
...
# vim /etc/ppp/ip-down
echo "time: `date -d today +%F_%T` clientIP: $6 username: $PEERNAME device: $1 vpnIP: $4 assignIP: $5 status: closed" >> /var/log/pptpd1.log

四、日志显示

# vim /var/log/pptpd1.log
time: 2014-04-15_13:44:53 clientIP: 10.20.104.39 username: clavinli device: ppp0 vpnIP: 10.14.36.46 assignIP: 192.168.1.10 status: connected