Linux下搭建PPTP VPN服务

1.安装PPP

PPTP使用PPP协议对用户数据进行封装,然后将PPP数据帧封装在IP数据报里,经由IP网络传播。因此首先需要支持PPP协议,我们使用的完整版CentOS已经自带了ppp这个软件包,如果你安装的是Minial CentOS之类的精简系统,则可能需要下面命令安装ppp:

[root@vps ~]# yum install ppp

 

2.安装pptpd

有了PPP协议支持,接下来安装pptpd。首先到这里找到最新版适合你的平台的pptpd。CentOS与RHEL通用,Fedora系统则可以使用后缀含fc字样的包,然后还需要根据内核选择32位或者64位的包。找到正确的软件包以后,复制其URL,然后用wget下载到root的家目录(或者用rpm -ivh URL直接安装也行)。

pptpd下载地址:http://poptop.sourceforge.net/yum/stable/packages/

 

[root@vps ~]# wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.rhel5.i386.rpm

[root@vps ~]# rpm -ivh pptpd-1.4.0-1.rhel5.i386.rpm

 

3.配置PPP

配置ppp需要编辑它的两个配置文件,一个是option(选项)文件,一个是用户账户文件。首先编辑option文件

[root@vps ~]# vim /etc/ppp/options.pptpd

 

配置完如下所示:

 

name pptpd

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

ms-dns 8.8.8.8

ms-dns 8.8.4.4

proxyarp

lock

nobsdcomp

novj

novjccomp

nologfd

 

其中name后面的pptpd是服务名称,可以任意修改成你喜欢的名字,在后面的配置中将对应的pptpd替换为你在这里修改的名字即可。

接下来的几行以refuse或者require开头的指令,是配置拒绝和接受的加密方式,这里接受的mschap-v2和mppe-128都是较新的比较安全的加密方式,其中mppe-128需要第一步中验证的内核模块支持。

另外两个比较重要的行就是ms-dns了,它们指定VPN使用的DNS服务器。毕竟VPS位于国外,所以推荐使用上面通用的Google Public DNS,当然也可以修改为你的VPS所在ISP提供的DNS。

 

 

接下来修改另一个,存储着用户账户的文件

[root@vps ~]# vim /etc/ppp/chap-secrets

这个文件非常简单,其中用明文存储VPN客户的用户名、服务名称、密码和IP地址范围,每行一个账户。

其中第一第三列分别是用户名和密码;第二列应该和上面的文件/etc/ppp/options.pptpd中name后指定的服务名称一致;最后一列限制客户端IP地址,星号表示没有限制。

# client        server  secret         IP addresses

ruzuojun        pptpd   12345678         *

wade            pptpd   12345678         *

 

 

4.配置PPTP

下面编辑pptpd的配置文件:

[root@vps ~]# vim /etc/pptpd.conf

 

option /etc/ppp/options.pptpd

logwtmp

localip 192.168.0.1

remoteip 192.168.0.100-108

 

其中option选项指定使用/etc/ppp/options.pptpd中的配置;logwtmp表示使用WTMP日志。

后面两行是比较重要的两行。VPN可以这样理解,Linux客户端使用一个虚拟网络设备ppp0(Windows客户端也可以理解成VPN虚拟网卡),连接到服务器的虚拟网络设备ppp0上,这样客户端就加入了服务器端ppp0所在的网络。localip就是可以分配给服务器端ppp0的IP地址,remoteip则是将要分配给客户端ppp0(或者虚拟网卡)的。

这两项都可以是多个IP,一般localip设置一个IP就行了,remoteip则视客户端数目,分配一段IP。其中remoteip的IP段需要和localip的IP段一致。

localip和remoteip所处的IP段可以随意些指定,但其范围内不要包含实际网卡eth0的IP地址。一般情况下,使用上面配置文件中的配置就好使了,你需要做的只是把192.168.0.207-217这个IP区间修改成你喜欢的192.168.0.a-b,其中1<a<b<255。

 

 

5.打开内核的IP转发功能

要使VPN服务器可以作为网络请求的中转代理,能够使客户端通过VPN访问Internet,还需要开启内核的IP转发功能。可以编辑配置文件:

[root@vps ~]# vim /etc/sysctl.conf

找到其中的行:

net.ipv4.ip_forward = 0

修改为:

net.ipv4.ip_forward = 1

然后执行下面命令使上述修改生效:

sysctl -p

 

6.启动pptpd守护进程

[root@vps ~]# /etc/init.d/pptpd start

Starting pptpd:                                            [  OK  ]

[root@vps ~]# chkconfig –level 35 pptpd on

 

7.客户端连接使用

请按照该文档配置即可 http://www.niceru.com/topic/1541.html

 

最好需要加一条防火墙转发规则,否则无法上外网

[root@vps ~]# iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j SNAT –to 103.246.246.66

 

共有 0 条评论

Top