> CentOS > CentOS教程 >

CentOS6.4搭建pptpd(VPN)服务

由于centos本身并没有集成PPTP功能,所以需要安装相关组件以让我们的RedHat支持PPTP,根据内核的版本,下载相应的安装包,所用组件如下:

  dkms-2.2.0.3-1.noarch.rpm

  kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

  pptpd-1.3.4.tar.gz

1.PPTP需要PPP支持,虽然系统本身有PPP功能,但它并不支持MPPE,所以需要更新系统的PPP组件,

[root@htuidc local]# yum -y install gcc gcc-c++ rpm-build make  wget automake

[root@htuidc etc]# yum -y install ppp

 

2.安装内核MPPE(Microsoft Point to Point Encryption,微软点对点加密)补丁,安装命令如下:

[root@htuidc etc]# rpm -ivh dkms-2.2.0.3-1.noarch.rpm

[root@htuidc etc]# rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

用以下命令检查内核MPPE补丁是否安装成功,MPPE module可否载如:

 

[root@htuidc ~]# modprobe ppp-compress-18 && echo success

success

 

[root@htuidc etc]# cd /usr/local/src

[root@htuidc src]#tar zxvf pptpd-1.3.4.tar.gz

[root@htuidc src]#cd pptpd-1.3.4

[root@htuidc pptpd-1.3.4]# ./configure --prefix=/usr/local/pptpd

[root@htuidc pptpd-1.3.4]# make && make install

编译安装完成后,首先需要手工建立一些目录以及复制原始的 pptpd 配置文件:

[root@htuidc pptpd-1.3.4]# mkdir /usr/local/pptpd/etc

[root@htuidc pptpd-1.3.4]# vi /usr/local/pptpd/etc/pptpd.conf

填入内容如下:

# pptpd.conf

option /usr/local/pptpd/etc/options.pptpd

debug

stimeout 30

localip 10.0.0.254

remoteip 10.0.0.200-210

 

说明:

option /usr/local/pptpd/etc/options.pptpd ———— 指定 pptpd 扩展属性配置文件 options.pptpd 的位置。

debug ———— 开启调试模式,有关 pptpd?的信息和错误都会记录在 /var/logs/message 中,方便排错和调试。

stimeout 30 ———— 设置客户端连接 pptpd server 时的最长连接等待时间(连接超时时间),30 秒。

localip 10.0.0.254 ———— pptpd server?所在服务器的 IP 地址,可以设置为服务器上绑定的任意一个 IP 地址。

remoteip 10.0.0.200-210 ———— 设置客户端连接到 pptpd server 后可供分配的 IP 地址范围( 10.0.0.200 – 10.0.0.210 ),可以这样设置:10.0.0.200-208,10.0.0.209,10.0.0.210,效果是一样的。

 

[root@htuidc pptpd-1.3.4]# vi /usr/local/pptpd/etc/options.pptpd

填入内容如下:

# options.pptpd

name htu-VPN

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

ms-dns 202.106.46.151

ms-dns 202.106.0.20

# ms-dns 208.67.222.222 米国用

# ms-dns 208.67.220.220

proxyarp

debug

lock

nobsdcomp

novj

novjccomp

nologfd

 

说明:

name IsMole-VPN ———— pptpd server 的名称。

refuse-pap ———— 拒绝 pap 身份验证模式。

refuse-chap ———— 拒绝 chap 身份验证模式。

refuse-mschap ———— 拒绝 mschap 身份验证模式。

require-mschap-v2 ———— 在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。

require-mppe-128 ———— MPPE 模块使用 128 位加密。

ms-dns 202.106.46.151

ms-dns 202.106.0.20 ———— ppp 为 Windows 客户端提供 DNS 服务器 IP 地址,第一个 ms-dns 为 DNS Master,第二个为 DNS Slave。

proxyarp ———— 建立 ARP 代理键值。

debug ———— 开启调试模式,相关信息同样记录在 /var/logs/message 中。

lock ———— 锁定客户端 PTY 设备文件。

nobsdcomp ———— 禁用 BSD 压缩模式。

novj

novjccomp ———— 禁用 Van Jacobson 压缩模式。

nologfd ———— 禁止将错误信息记录到标准错误输出设备(stderr)。

 

配置好上面的两个文件后,我们开始添加客户端帐号。

客户端帐号控制文件位于:/etc/ppp/chap-secrets

shell> vi /etc/ppp/chap-secrets

# PPTP User Accounts

# username server_name "password" ip

vpnuser1 IsMole-VPN "123456" 10.0.0.201

 

三、启动 PPTPD

[root@htuidc pptpd-1.3.4]# /usr/local/pptpd/sbin/pptpd -c /usr/local/pptpd/etc/pptpd.conf -o /usr/local/pptpd/etc/options.pptpd

[root@htuidc pptpd-1.3.4]# netstat -tnlpu|grep pptp

tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      3719/pptpd  

如果tcp的1723端口是打开的,就说明启动OK。

 

四、打开linux路由转发

echo 1 > /proc/sys/net/ipv4/ip_forward

 

五、开启10.0.0.0/24段的转发:

[root@htuidc ~]# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE

特殊情况注意:

开启pptp vpn转发,vpn服务器和内网路由器

modprobe ip_conntrack_pptp

modprobe ip_nat_pptp

 

出现的问题:

连接出现如下678错误,是因为防火墙没有开启1723端口允许:

解决办法:

[root@htuidc ~]# iptables -A INPUT -p TCP --dport 1723  --sport 1024:65534 -j ACCEPT

(责任编辑:IT)