centos5.5 vpn 安装配置详解
虚拟专用网络(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就可以用了,如果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