CentOS 6.x搭建VPN

准备工作

检查机器是否支持VPN

1
2
$ modprobe ppp-compress-18 && echo ok 
ok

如果返回OK则说明内核支持 MPPE,否则内核就没有集成,需要升级内核高于2.6.15。

检查内核TUN虚拟设备状态

1
2
$ cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state

则说明可以安装。

检查系统内核是否已经集成了PPP

1
2
$ rpm -q ppp
ppp-2.4.5-10.el6.x86_64

如果centos6.4内核版本大于2.6.15则可以不做上面的检查,否则需要自行安装PPP

查看PPP是否支持MEEP

1
2
$ strings ‘/usr/sbin/pppd’ | grep -i mppe| wc -l
42

如果返回0则表示不支持;输出为30或更大的数字就表示支持。

安装步骤

安装ppp和iptables

PPTPD要求Linux内核支持mppe,一般来说CentOS安装时已经包含了

1
$ yum install -y perl ppp iptables

安装pptpd

对于32位CentOS,执行

1
2
$ wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
$ rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

对于64位CentOS,执行

1
2
$ wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
$ rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm

安装pptp过程中可能会出现异常,常见的是pptp于ppp版本不兼容,这样就只能选择合适的ppp版本或者pptd 版本来相互兼容了。

修改配置信息

首先修改ppp配置信息,它在/etc/ppp/options.pptpd

1
2
$ cp -r /etc/ppp/options.pptpd /etc/ppp/options.pptpd_bak
$ vi /etc/ppp/options.pptpd

如下图:
options
然后修改配置/etc/ppp/chap-secrets,这里面就是设置vpn账号和密码的文件

1
2
$ cp -r /etc/ppp/chap-secrets /etc/ppp/chap-secrets_bak
$ vi /etc/ppp/chap-secrets

其中格式:username pptpd password **
//username是你的vpn帐号,password是你的vpn的密码,
表示对任何ip,记得不要丢了这个星号。如下图:
secrets
接着需要修改pptp配置信息

1
2
$ cp -r /etc/pptpd.conf /etc/pptpd.conf_bak
$ vi /etc/pptpd.conf

修改内容如下图:
pptpd
另外还需要修改一个内核配置让其支持转发,否则是不能上网的。

1
$ vi /sysctl.conf

修改内容如下图:
sysctl

启动pptp 和防火墙服务iptables

1
$ /sbin/service pptpd start

启动防火墙需要特别注意,我们上面指定了一个专用网络ip段,因此需要设置转发规则
如我的防火墙设置:
iptables
将上面红色圈中的vpsip修改成自己的vps ip即可,如果vps有多个网卡就需要使用-o ethxx来指定可以上网的网卡,如上图最上面红色框中的2行中使用了-o 来指定网卡。
最好保存并重启防火墙。

1
$ /sbin/service iptables start

然后重启pptp服务即可。

1
$/sbin/service pptpd restart

另外也可以将pptp和防火墙设置成开机自启

1
2
$ chkconfig pptpd on
$ chkconfig iptables on

最后展示2张链接成功的图:
showonline

(The End)

坚持原创技术分享,您的支持将鼓励我继续创作!