做这个的目的是公司研发部门要通过香港的服务器访问国外的网站,纯粹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 ,每条记录只有一样,更方便查看。