@ZEAL Blog·厉
We stand alone,
TOGETHER.
原文地址: http://my.oschina.net/ohcoding/blog/13957 by Jacky Wang
如侵害您的权益恭请告知立即删除
Linode VPS CentOS 5.5 安装 pptpVPN

一、前言
没有什么前言,就是简单介绍一下标题中提到的一些名词
1、Linode VPS:很有名的一家Linux专业VPS供应商,国内访问速度还不错。http://www.linode.com
2、CentOS:著名的Linux发行版。http://www.centos.org
3、pptp:与OpenVPN齐名的VPN服务器。

二、安装环境
我购买的是Linode 512MB内存的VPS,安装了CentOS 5.5 64bit。

三、注意事项
1、安装过程需要root权限
2、需要注意的地方加粗显示

四、服务端安装步骤
1、用secureCRT登录CentOS。为了安全起见,可以先用普通用户登录,而后再使用su -命令及root密码切换到root用户。

2、因为pptp需要MPPE的支持,所以首先检测系统是否符已经编译了MPPE。如果没有,那请您别往下看了。
下面介绍两种检测方法,只要符合其中的一条就可以

zgrep MPPE /proc/config.gz

返回

CONFIG_PPP_MPPE=y

或者

cat /dev/net/tun

返回

cat: /dev/net/tun: File descriptor in bad state

恭喜您,可以安装了!
网上大多数资料还提到了另一个测试命令

modprobe ppp-compress-18 && echo ok

如果返回“OK”说明可以安装PPTP,我查了一下,这个命令是在CentOS 4.4版本中有人提出的,但是经过实际测试,发现在我的环境中非但没有效果,而且报错,运行后结果如下:

[root@HOSTNAME ~]# modprobe ppp-compress-18 && echo ok
FATAL: Module ppp_mppe not found.
[root@HOSTNAME ~]#

一开始我傻掉了,内牛满面,原以为无法安装了。
后来用上面提到的zgrep MPPE /proc/config.gz命令查看后表明可以安装,而事实证明确实如此。
所以如果modprobe ppp-compress-18 && echo ok没有显示“OK”甚至报错,并不代表不能安装。最好还是用zgrep MPPE /proc/config.gz命令查看。

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

yum install -y ppp iptables

注意:这里先安装的是ppp而不是pptp,不要打错了。另:PPP是一种数据链路层协议类似我们熟知的pppoe
接下来就是一大堆的信息,无非是寻找最快的源,找到后下载相关安装包,下载完成自动安装。
如果回到提示符状态,并且安装结果为Complete!,说明安装成功。

……
……
Complete!
[root@HOSTNAME ~]#

 

4、安装pptp
由于pptp没有存放在CentOS的源中,所以用yum命令安装返回的是找不到安装包

[root@HOSTNAME ~]# yum install pptp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: mirrors.cat.pdx.edu
 * base: mirrors.easynews.com
 * extras: mirrors.xmission.com
 * updates: mirrors.versaweb.com
addons                                                                                          |  951 B     00:00   
base                                                                                            | 2.1 kB     00:00   
extras                                                                                          | 2.1 kB     00:00   
updates                                                                                         | 1.9 kB     00:00   
Setting up Install Process
No package pptp available.
Nothing to do
[root@HOSTNAME ~]#

安装pptp需要使用rpm命令直接从网站上下载并安装,这里要注意的是:pptp分为32bit版和64bit版,大家可以根据需要下载
rpm -ivh http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)
rpm -ivh http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)
下载和安装过程都很快,安装包很小

5、配置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.0.1
remoteip 192.168.0.234-238,192.168.0.245

即将这两行第一个字符“#”去掉
保存退出
注意:此处的remoteip指定的IP范围是用来给远程连接使用的。如果您远程访问VPN,VPN就会在remoteip范围内分配一个ip地址给你。localip的值直接影响到后面要说的iptables转发规则的编写,所以建议不要随意改动

(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 *
保存并退出

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

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


7、添加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.0.0/24 -o eth0 -j MASQUERADE

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

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

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

8、重启pptp服务

/etc/init.d/pptpd restart

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

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

chkconfig pptpd on
chkconfig iptables on

如果出现错误619则输入命令

mknod /dev/ppp c 108 0

注意:我没有遇到619错误,所以以上命令是否有效未知


至此pptp服务端安装全部结束

五、客户端设置
(1)WinXP
a、鼠标右击“网络邻居”在弹出框中选择“属性”
b、在“网络连接”窗口左侧点击“创建一个新连接”,并在弹出框中选择“下一步”
c、选择“连接到我的工作场所的网络”,点击“下一步”
d、选择“虚拟专用网络连接”,点击“下一步”
e、输入VPN的名称,点击“下一步”
f、输入主机名IP,也就是您VPS服务器的IP地址或者域名,点击“下一步”
g、点击“完成”
每次需要使用VPS时只需双击连接图标,然后输入用户名和密码,等待一会儿就可以youtube了

(2)Win7(Vista)
a、点击“开始”,选择“控制面板”
b、选择“网络和Internet”
c、选择“网络和共享中心”
d、选择“设置新的连接或网络”
e、在弹出框里选择“连接到工作区”,点击“下一步”
f、选择“使用我的Internet连接(VPN)(I)”
g、在“Internet地址”中输入VPN服务器的IP地址或者域名,“目标名称”可以随便填,勾选最下面的“现在不连接:仅进行设置以便稍后连接”。点击“下一步”
h、输入VPN的用户名和密码,点击“创建”
创建完成后就可以连接了,连接方法同WinXP。

至此客户端设置全部完成。

六、附录:我遇到的问题

1、在重启iptables时

/etc/init.d/iptables restart
Setting chains to policy ACCEPT: security raw nat mangle fi[FAILED]

出现这个错误的原因是Linode VPS安装CentOS 5.5以后内核版本(Latest 2.6 Paravirt)造成的,需要到Linode的控制面板中将Latest 2.6 Paravirt改成Latest 2.6 Stable。
解决方法:
(1)Navigate to the “Linodes” tab.
(2)Select your Linode from the list.
(3)Click the “My CentOS 5.5 Profile” link on your dashboard.
(4)Select the “Latest 2.6 Stable” kernel from the “Kernel” drop-down menu.
(5)Click the “Save Profile” button.
(6)Click the “Reboot” button located to the right of your configuration profile.

2、在重启iptables时

/etc/init.d/iptables restart
Applying iptables firewall rules: iptables-restore v1.3.5: iptables-restore: una ble to initializetable ‘security’  Error occurred at line: 2 Try `iptables-restore -h’ or ‘iptables-restore –help’ for more information. [FAILED]

主要由于在/etc/sysconfig/iptables下保留了一份有问题的iptables规则文件。
解决方法:将原有的iptables复制备份后删除,而后再重启

mv /etc/sysconfig/iptables /etc/sysconfig/iptables.disabled
/etc/init.d/iptables restart


3、Win7客户端能够连接VPS但不能访问网页(国内的都不行)
网上有资料说在Win7下设定VPN网络连接时需要将“安全”选项卡中的“质询握手身份验证协议(CHAP)”关闭,并且还要关闭VPN网络连接IPv4中的“在远程网络上使用默认网关”。
一开始我是这么操作的,但是VPN可以连接,但就是访问不了网页,连新浪都访问不了。后来没有关闭以上说的两项,反而畅通无阻。我想之所以需要关闭以上的两项可能是和客户端所处的网络环境(就是内网)有关,大家可以多试试,不要一棵树上吊死。


【全文完】
本文参考了许多网络资料以及我的实际操作,如果您觉得某些文字侵犯了您的版权请及时与我联系,我会第一时间修正。

谢谢

Since 2005.04.27  梦想 就像鸡蛋 要么孵化 要么臭掉RSS Feed (Entries) | Back To Home | @ZEAL | 沪ICP备05024379号