做这个的目的是公司研发部门要通过香港的服务器访问国外的网站,纯粹mark一下,说不定以后又会用到,不用再花时间研究了。
一、CentOS 5.x/6.x下PPTP ×××服务器安装
1、安装相关软件包
32位版:# yum install -y ppp libpcap iptables
# wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm ##我的就是32位CentOS5.6
# rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm
64位版:# yum install -y ppp libpcap iptables
# wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.x86_64.rpm
# rpm -ivh pptpd-1.3.4-2.rhel5.x86_64.rpm
##64位 6.0系统下载本链接:wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.x86_64.rpm -P /tmp/
2、配置文件编写
①、配置文件/etc/ppp/options.pptpd# mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
# vim /etc/ppp/options.pptpd
输入以下内容:
name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 proxyarp lock nobsdcomp novj novjccomp nologfd idle 2592000 ms-dns 8.8.8.8 ms-dns 8.8.4.4 #这里的DNS可以查看服务器本机使用的DNS地址。
②、配置文件# /etc/ppp/chap-secrets# mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
# vim /etc/ppp/chap-secrets
输入以下内容
# Secrets for authentication using CHAP # client server secret IP addresses myusername pptpd mypassword *
注:这里的myusername和mypassword即为PPTP ×××的登录用户名和密码, 改成你自己的。
③、配置文件/etc/pptpd.conf# mv /etc/pptpd.conf /etc/pptpd.conf.bak
# vim /etc/pptpd.conf输入以下内容:
option /etc/ppp/options.pptpd logwtmp localip 192.168.168.1 remoteip 192.168.168.11-30
#注:为拨入×××的用户动态分配192.168.168.11~192.168.168.30之间的IP。
④、配置文件/etc/sysctl.conf
# vim /etc/sysctl.conf
修改以下内容:net.ipv4.ip_forward = 1
保存、退出后执行:sysctl -p
3、启动PPTP ××× 服务器端:# /etc/init.d/pptpd start
4、设置iptables规则并重启:
# vim /etc/sysconfig/iptables
加入下列规则:
*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -s 192.168.168.0/255.255.255.0 -o eth0 -j MASQUERADE COMMIT # Completed on Mon Jul 1 19:18:47 2013 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A FORWARD -s 192.168.168.0/255.255.255.0 -j ACCEPT -A INPUT -p gre -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2333 -j ACCEPT -A RH-Firewall-1-INPUT -i ppp+ -j ACCEPT -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356
重启防火墙:
# /etc/init.d/iptables start
另外,如果需要将登录、挂断×××的详细信息记录下来,请运用以下脚本,配置有参考网上:
如何开启pptpd默认日志记录功能。
修改/etc/ppp/options.pptpd中的nologfd,默认没有开,把nologfd注释掉,然后添加 logfile /var/log/pptpd.log(将nologfd改成这个,在这个日志里就可以查到pptpd日志)
修改后重启下pptpd服务,就可以了
×××登录断开记录脚本
通过在/etc/ppp/中对ip-up 和 ip-down 脚本进行编辑,添加以下配置:
/etc/ppp/ip-up
echo "---------------Login---------------------------------------" >> /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 "-----------------------------------------------------------" >> /var/log/pptpd.log
/etc/ppp/ip-down
echo "---------------Logout--------------------------------------" >> /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 "-----------------------------------------------------------" >> /var/log/pptpd.log
之后通过查看pptpd.log这个文件就可以查看到vpn登录日志了,当然我们也可以使用另外一种简单的日志格式,在ip-up和ip-down中都进行添加
echo "time:`date -d today +%F_%T`,clientIP:$6,username:$PEERNAME,assignIP:$5" >> /var/log/pptpd.log
这种格式,只记录登录和退出的时间,客户端ip,用户名,分配到的ip ,每条记录只有一样,更方便查看。