centos OpenVZ/Xen 安装搭建pptp vpn服务

1,因为pptp需要MPPE的支持,所以首先检测系统是否符已经编译了MPPE。

检测是否支持ppp模块

cat /dev/ppp

如果返回信息为:

cat: /dev/ppp: No such file or directory 或者 cat: /dev/ppp: No such device or address

说明PPP模块开启,可以继续安装过程!

如果返回信息为:

cat: /dev/ppp: Permission denied

说明PPP模块禁用,请联系服务商开启!

如图:检测PPP模块开启的返回信息

PPP模块

有的VPS服务商支持通过让你自己选择开启禁止PPP模块,这样我们只要登录SolusVM控制面板,点击:“Enable PPP”(启用PPP)如图,(如果没有这个选项就只能通过联系客服开启了)

开启PPP模块

 

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

yum install -y ppp iptables

或者 yum install -y perl ppp iptables   , 这里安装Perl是为了后面使用

3 ,安装pptp

刚才用了yum安装了ppp,但是这里有个问题,几乎大部分的人都会在这里遇到ppp和pptpd不兼容的错误。因为yum安装ppp,总是安装最新版本的ppp,而由于安装的ppp的版本不同,那么就需要安装对应版本的pptpd才行。

我们要先查看已经安装的ppp的版本,在去找对应的pptpd版本。我手头刚好有两个vps,一个是前年装的pptp vpn,一个是一年后装的pptp vpn,所以,装的yum install ppp的版本不同。

使用下面的命令查看ppp的版本,前提你是yum安装的ppp。

旧的vps上的ppp版本显示:

#yum list installed ppp

显示:

ppp.i386                     2.4.4-2.el5                     installed

新的vps上的ppp版本显示;

#yum list installed ppp

显示:

ppp.i686                       2.4.5-5.el6                       @base

所以,要对根据ppp版本选择对应的pptpd版本。这里我主要列出常用的。

ppp 2.4.4——————>pptpd 1.3.4

ppp 2.5.0——————>pptpd 1.4.0

贴个ppp和pptpd各个版本的下载地址;https://poptop.sourceforge.net/yum/stable/packages/

大家下载的时候注意,分清楚你系统的版本是64位的还是32位的。我个人建议ppp用yum安装,pptpd用rpm的安装,因为如果全都rpm或者源码安装,依赖关系很是烦人。文件名含有数字64的就是64位版本,没有的就是32位版本。可以用下面的命令查看自己的系统是32位还是64位的。

我的系统是PPP 2.5.0, 安装选择1.4.0

rpm -ivh  https://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm

4,配置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
保存并退出

(3)设置使用pptp的用户名和密码
vi /etc/ppp/chap-secrets
打开后只有两行,而且一个账号都没有
# Secrets for authentication using CHAP
# client server secret IP addresses
根据您的需要添加账号,每行一个。 按照:“用户名 pptp 密码 ip地址”的格式输入,每一项之间用空格分开,
例如:vpnuser pptp 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

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.0.0/24 -o eth0 -j MASQUERAD

添加好转发规则后保存一下并重启iptables
/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

如果出现错误619则输入命令
mknod /dev/ppp c 108 0
注意:我没有遇到619错误,所以以上命令是否有效未知
至此pptp服务端安装全部结束

 

 

类别: 技术学习

Leave a Reply

You must be Logged in to post comment.

© 2019 脑壳晕晕. All rights reserved.