虚拟专用网络(Virtual Private Network ,简称VPN)指的是在公用网络上建立专用网络的技术。其之所以称为虚拟网,主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台,如Internet、ATM(异步传输模式〉、Frame
Relay (帧中继)等之上的逻辑网络,用户数据在逻辑链路中传输。它涵盖了跨共享网络或公共网络的封装、加密和身份验证链接的专用网络的扩展。VPN主要采用了隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。
VPN属于远程访问技术,简单地说就是利用公网链路架设私有网络。例如公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。怎么才能让外地员工访问到内网资源呢?VPN的解决方法是在内网中架设一台VPN服务器,VPN服务器有两块网卡,一块连接内网,一块连接公网。外地员工在当地连上互联网后,通过互联网找到VPN服务器,然后利用VPN服务器作为跳板进入企业内网。为了保证数据安全,VPN服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样。但实际上VPN使用的是互联网上的公用链路,因此只能称为虚拟专用网。即:VPN实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了VPN技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用VPN非常方便地访问内网资源,这就是为什么VPN在企业中应用得如此广泛。
1. 安装ppp和iptables
安装PPTP需要ppp和iptables这两个软件支持,这里用yum来安装,
输入这个命令:yum
install -y ppp iptables
一般
ppp在centos下是默认安装的。
2.安装pptp
安装包 http://poptop.sourceforge.net/yum/stable/packages/
选择一个最新的
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.x86_64.rpm
如果wget无效,yum install -y wget
rpm
-ivh pptpd-1.3.4-2.rhel5.x86_64.rpm
3.
配置pptp
vi
/etc/ppp/options.pptpd
编辑ms-dns,其余的都不需要改动
ms-dns 208.67.222.222
ms-dns 208.67.220.220
最后两行是dns服务器地址,这里用opendns,你也可以用主机商的dns。编辑完成后保存退出。
opendns
见 http://baike.baidu.com/view/755405.htm
输入vi /etc/pptpd.conf开始编辑,输入以下内容:
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.8.1
remoteip 192.168.8.2-40,
最后两行是vpn的ip地址分配,如果你不熟悉就别改了。编辑完成后保存退出。
这里的配置需要参考本服务器的配置
/sbin/ifconfig
innet addr: 192.168.8.2 bcast 192.168.8.255
输入vi /etc/ppp/chap-secrets开始编辑,输入以下内容:
username1 pptpd password1 *
username2 pptpd password2 *
username3 pptpd password3 *
这个文件用来配置vpn的登陆用户和密码,一行一个。编辑完成后保存退出。
输入vi /etc/sysctl.conf开始编辑,这个文件和上面不同,里面已经有内容:
找到
net.ipv4.ip_forward = 0
改成
net.ipv4.ip_forward = 1
保存并退出,然后执行sysctl -p这个命令。
这时,PPTP基本上配置好了,输入service pptpd start启动。
下面来配置iptables,首先输入service iptables start启动。
然后分别输入下面四条命令,每天输完后要记得按回车:
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp --dport 47 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth0 -j MASQUERADE
完成后输入/etc/init.d/iptables save保存,并且输入/etc/init.d/iptables restart重新启动。
如果你需要服务器启动时候自动启动VPN服务,还需要输入chkconfig pptpd on和chkconfig iptables on这两条命令。
重启pptp service pptpd restart
参考 http://www.linuxidc.com/Linux/2011-06/37430.htm