centos5.5 vpn 安装配置详解

张映 发表于 2012-05-08

分类目录: 服务器相关, 系统安全

标签:, , ,

虚拟专用网络(Virtual Private Network ,简称VPN)指的是在公用网络上建立专用网络的技术。其之所以称为虚拟网,主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到 端的物理链路,而是架构在公用网络服务商所提供的网络平台

这二天在搞VPN,搞得头都大了。在网上找了好多文章,90%都是一样的,可我都试了没有一个可配置成功的,后来问了一下别人搞定了,下面说一下配置的详细过程。

一,安装ppp和pptpd

yum install ppp
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm
rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm

根据自己的linux版本和位数来选择不同的pptpd,我在网上找这方面文章的时候,发现有安装vpn的sh脚本,这个很方便,不过是centos 64位机器上面用的。

二,配置pptpd

1,修改配置文件options.pptpd

[root@localhost ~]# cat /etc/ppp/options.pptpd |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'
name ads
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4

2,修改配置文件chap-secrets

[root@localhost ppp]# cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses

vpn ads 11111 *

vpn:是登录用户名
ads:自定义的服务器名
11111:是密码
*:是ip,在这里是正则

3,修改配置文件pptpd.conf

[root@localhost ppp]# vim /etc/pptpd.conf    //在文件底部加上以下内容
localip 192.168.10.108
remoteip 192.168.10.11-33

这里的localip我一直很纠结,有人说是公网的ip,有的人说不是,我一开始的理解是公网IP,但是后来想想不对,当我们在windows系统中创建vpn网络连接时,会让你填写公网IP的,在这里根本不需要公网IP。

后来我再想localip这里填写vpn服务器所对应的局域网IP,由公网IP到局域网IP,这样也讲的通,这样配置后,能连接vpn,却上不了网,显示是连接成功,也有收发数据包。

正确的方式是:这里的localip和remoteip都是自定义的IP,vpn的意思就是虚拟专用网络,在公网上建立私有网络。

三,修改sysctl.conf

[root@localhost ppp]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1             //找到这行,把0改成1  

//保存,退出,使参数生效
[root@localhost ppp]# sysctl -p

四,iptables配置

//添加转发规则
[root@localhost ppp]# iptables -t nat -I POSTROUTING 1 -j SNAT -s 192.168.10.0/24 --to 192.168.10.108  //适合于OpenVZ架构的VPS

[root@localhost ppp]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE    //适合于XEN架构的VPS

//开放1723端口
[root@localhost ppp]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT

这里的192.168.1.108是vpn服务端对应的局域网的IP地址。例如:hosting24就是openvz架构的,linode就是xen架构

五,启动pptpd和iptables

[root@localhost ppp]# /etc/init.d/pptpd start
[root@localhost ppp]# /etc/init.d/iptables start

六,查看iptables端口是不是开启,转发规则是不是正常

[root@localhost ppp]# iptables -L -t nat -n --line-num    //转发规则OK了
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    SNAT       all  --  192.168.10.0/24      0.0.0.0/0           to:192.168.1.108 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
[root@localhost ppp]# iptables -L -n --line-num |grep 1723  //端口已开放
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:1723

七,路由器配置

如果用到路由器的话,在路由器开放一下1723端口,登录到路由管理页面,转发规则=》虚拟服务器=》添加新条目,端口添写1723,ip就填写vpn服务端所对应的局域网IP。连接成功后,windows会得到一个vpn服务端分配的IP

vpn分配给客户端的ip

vpn分配给客户端的ip

到这一步vpn就可以用了,如果vpn连接了上不网了,怎么办,这个问题我就遇到,并且挡我一整天的时间。

[root@localhost ppp]# iptables -L -n

Chain FORWARD (pllicy ACCETP)
target     prot  opt source    destination
REJECT     ALL   --  0.0.0.0/0    0.0.0.0/0    reject-with icmp-host-prohibited //如果有这条规则,删除掉

你可以在/etc/sysconfig/iptables里面直接删除,你也可通过命令,iptables -D FORWARD 1这里的1对应是规则对应的编号。然后保存/etc/init.d/iptables save,重启/etc/init.d/iptables restart

vpn配置成功

vpn配置成功



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/server/1401.html