转:Linode VPS CentOS 6.2 安装 pptp VPN


6.2 32bit系统下安装pptp的正确方法。

这里仅记录关键步骤,其中与原文有出入之处以红色标注,其他步骤如检测MPPE模块请参考原文,也非常感谢原作者详细的记录和注释。

Linode VPS CentOS 5.5 安装 pptpVPN – Jacky.Wang的个人空间 – 开源中国社区.

1、由于pptp需要iptables支持,所以需要安装iptables。如果您的服务器上已经安装了iptables,那么可以只安装pptp

yum install -y ppp iptables

2、安装pptp

由于上述命令安装的ppp是新版本的,因此pptp也需要装一个新版本

rpm -ivh
http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.i686.rpm (32位系统使用)
rpm -ivh
http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.x86_64.rpm (64位系统使用)

3、配置pptp

(1)编辑/etc/pptpd.conf

vi /etc/pptpd.conf

#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245

修改成

localip 192.168.10.1
remoteip 192.168.10.234-238,192.168.10.245

即将这两行第一个字符“#”去掉

保存退出

注意:为了避免与Windows客户机局域网地址冲突,特意把默认的0.1改成了10.1网段

(2)编辑/etc/ppp/options.pptpd

vi /etc/ppp/options.pptpd

#ms-dns 10.0.0.1
#ms-dns 10.0.0.2

改成

ms-dns 8.8.8.8
ms-dns 8.8.4.4

即将这两行第一个字符“#”去掉,而后修改DNS的IP。

这里使用的是Google发布的Public DNS,您也可以修改为OpenDNS的IP,即

ms-dns 208.67.222.222
ms-dns 208.67.220.220

保存并退出

(3)设置使用pptp的用户名和密码

vi /etc/ppp/chap-secrets

打开后只有两行,而且一个账号都没有

# Secrets for authentication using CHAP
# client server secret IP addresses

根据您的需要添加账号,每行一个。

按照:“用户名 pptpd 密码 ip地址”的格式输入,每一项之间用空格分开,例如:vpnuser pptpd 123456 *

保存并退出

注意:原文中写的pptp,经过测试需要写成pptpd,要不然拨号的时候会出现691错误。

4、修改内核设置,使其支持转发。

vi /etc/sysctl.conf

net.ipv4.ip_forward=0

改成

net.ipv4.ip_forward=1

net.ipv4.tcp_syncookies = 1

改成

#net.ipv4.tcp_syncookies = 1

即行首添加“#“

保存并退出

执行以下命令使修改后的内核生效

sysctl -p

5、添加iptables转发规则

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT –to-source 12.34.56.78

(适合于OpenVZ架构的VPS,12.34.56.78为您VPS的公网IP地址)

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

(适合于XEN架构的VPS)

以上两条命令分别对应OpenVZ架构和XEN架构的VPS,您的VPS是什么架构需要询问供应商。Linode采用的是XEN架构,所以输入

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

添加好转发规则后保存一下并重启iptables

注意:这里根据前面所定义的localip修改了命令,另外原文中高亮命令最后少了一个“E“。

/etc/init.d/iptables save
/etc/init.d/iptables restart

注意:这里我遇到过两个错误,具体见附录

6、重启pptp服务

/etc/init.d/pptpd restart

这里要注意一下,其实此时pptp还没运行起来。所以使用restart重启,会显示Shutting down pptp
[FAILED]。还会有一个警告,可以忽略。如不放心可以再用以上命令重启一下pptp就非常顺利的运行了。

7、设置pptp和iptables随系统启动

chkconfig pptpd on
chkconfig iptables on

8,iptables重启错误

Setting chains to policy ACCEPT: security raw nat [FAILED] filter

注意:我们的出错信息和原文的略有不同,根据Linode官方回应,这个出错信息可以忽略,不过如果想消除,可以执行以下命令。(不需要按照原文所说更换内核)

cd /etc/init.d/
cp iptables ~/iptables.backup
wget http://epoxie.net/14857.txt
patch -p1 < 14857.txt # if prompted, specify /etc/init.d/iptables as the file to be
patched
rm 14857.txt

Archives