centos5.5 vpn 安装配置详解

张映 发表于 2012-05-08

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

标签:, , ,

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

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

一,安装ppp和pptpd

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

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

二,配置pptpd

1,修改配置文件options.pptpd

  1. [root@localhost ~]# cat /etc/ppp/options.pptpd |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'  
  2. name ads  
  3. refuse-pap  
  4. refuse-chap  
  5. refuse-mschap  
  6. require-mschap-v2  
  7. require-mppe-128  
  8. proxyarp  
  9. lock  
  10. nobsdcomp  
  11. novj  
  12. novjccomp  
  13. nologfd  
  14. idle 2592000  
  15. ms-dns 8.8.8.8  
  16. ms-dns 8.8.4.4  

2,修改配置文件chap-secrets

  1. [root@localhost ppp]# cat /etc/ppp/chap-secrets  
  2. # Secrets for authentication using CHAP  
  3. # client        server  secret                  IP addresses  
  4.   
  5. vpn ads 11111 *  

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

3,修改配置文件pptpd.conf

  1. [root@localhost ppp]# vim /etc/pptpd.conf    //在文件底部加上以下内容  
  2. localip 192.168.10.108  
  3. 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

  1. [root@localhost ppp]# vim /etc/sysctl.conf  
  2. net.ipv4.ip_forward = 1             //找到这行,把0改成1    
  3.   
  4. //保存,退出,使参数生效  
  5. [root@localhost ppp]# sysctl -p  

四,iptables配置

  1. //添加转发规则  
  2. [root@localhost ppp]# iptables -t nat -I POSTROUTING 1 -j SNAT -s 192.168.10.0/24 --to 192.168.10.108  //适合于OpenVZ架构的VPS  
  3.   
  4. [root@localhost ppp]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE    //适合于XEN架构的VPS  
  5.   
  6. //开放1723端口  
  7. [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

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

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

  1. [root@localhost ppp]# iptables -L -t nat -n --line-num    //转发规则OK了  
  2. Chain PREROUTING (policy ACCEPT)  
  3. num  target     prot opt source               destination           
  4.   
  5. Chain POSTROUTING (policy ACCEPT)  
  6. num  target     prot opt source               destination  
  7. 1    SNAT       all  --  192.168.10.0/24      0.0.0.0/0           to:192.168.1.108   
  8.   
  9. Chain OUTPUT (policy ACCEPT)  
  10. num  target     prot opt source               destination  
  11. [root@localhost ppp]# iptables -L -n --line-num |grep 1723  //端口已开放  
  12. 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连接了上不网了,怎么办,这个问题我就遇到,并且挡我一整天的时间。

  1. [root@localhost ppp]# iptables -L -n  
  2.   
  3. Chain FORWARD (pllicy ACCETP)  
  4. target     prot  opt source    destination  
  5. 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