CentOS中×××的配置安装 (一)pptp-×××


一、前言


没有什么前言,就是简单介绍一下标题中提到的一些名词

1、Linode VPS:很有名的一家Linux专业VPS供应商,国内访问速度还不错。http://www.linode.com

2、CentOS:著名的Linux发行版。http://www.centos.org

3、pptp:与Open×××齐名的×××服务器。


二、安装环境


我购买的是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、执行如下命令即可:

  yum makecache

  yum -y update

  yum -y install ppp wget iptables iptables-devel perl gcc make lib lsb

  Yum clean all


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

注意:这里先安装的是ppp而不是pptp,不要打错了。另:PPP是一种数据链路层协议类似我们熟知的pppoe

接下来就是一大堆的信息,无非是寻找最快的源,找到后下载相关安装包,下载完成自动安装。

如果回到提示符状态,并且安装结果为Complete!,说明安装成功。

……

……

Complete!

[root@HOSTNAME ~]#


然和需要安装

kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

ftp://rpmfind.net/linux/sourceforge/p/po/poptop/mppe%20module%20builder/kernel_ppp_mppe-1.0.2%20dkms-2.0.6/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

dkms-2.0.20.2-1.noarch.rpm

http://freecode.com/urls/f3274ee5f35c3e1a7fc4094ce676f764

http://linux.dell.com/dkms/permalink/dkms-2.0.20.2-1.noarch.rpm


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位系统使用)

下载和安装过程都很快,安装包很小


如果安装的时候报如下错误:

warning: pptpd-1.3.4-1.rhel5.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY

error: Failed dependencies:

       ppp = 2.4.4 is needed by pptpd-1.3.4-1.rhel5.1.x86_64


在安装包后面加上两个参数就好,如下:

rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm --nodeps --force

加上那两个参数的意义就在于,

安装时不再分析包之间的依赖关系而直接安装,

也就不会再提示error: Failed dependencies:这样的错误了


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范围是用来给远程连接使用的。如果您远程访问×××,×××就会在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

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

按照:“用户名 pptp 密码 ip地址”的格式输入,每一项之间用空格分开

例如:***user 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


7、添加iptables转发规则  (可以先不用配置,***不能连上在打此配置)

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

(适合于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

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


注:蓝色字体为自定义,安装本机的网络进行相应的修改


8、重启pptp服务

/etc/init.d/pptpd restart

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


查看日志信息 tail -f /var/log/messages


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

chkconfig pptpd on

chkconfig iptables on


Pptp的三个配置文件

/etc/ppp/chap-secrets      配置用户名密码文件

/etc/ppp/pptpd.conf        

/etc/ppp/option.pptpd      

/etc/sysconfig/iptables      转发规则



保存转发规则

#/etc/sysconfig/iptables save

然后我们重启iptables:

#/etc/init.d/iptables restart

8、重启pptp服务.输入下面的指令重启pptp:

#/etc/init.d/pptpd restart


iptables -t nat –L 查看地址映射命令

查看日志信息 tail -f /var/log/messages


10、当使用pptp***登录,所有流量都走×××通道,导致不能上网,修改windows 拨号客户端配置,
PPTP *** -> 网络-> tcp/ip -> 属性-> 高级-> 常规:去掉“在远程网络上使用默认网关”

wKioL1LPUAbAdVp5AAIRMV7X0R8742.jpg




………………………………………我是一条分割线……………………………………


CentOS中×××的配置安装 (一)pptp-×××


CentOS中×××的配置安装 (二)问题解决


CentOS中×××的配置安装 (三)L2TP-×××


CentOS中×××的配置安装 (四)PPTP-×××多用户多出口接入