中小型企业如何快速构建自己的VPN服务器
2013-03-26 51cto 编辑:轶名
VPN服务是所有互联网企业中不可或缺的一个服务,它的存在大大方便了我们的办公效率。服务器出故障了,工程师们再也不用火急火燎的打车来公司处理问题了,可以在家拨号连到公司,轻松愉快的就把问题处理好了。当然这里我所说的是非硬件设备故障,真要是物理故障还是得打车去公司的⊙﹏⊙b汗。
目前VPN分为软件和硬件两种,有实力的大公司会选择硬件VPN,稳定且配置简单。小公司为节约成本可以选择用软件来搭建。
今天我们以PPTPD为例,学习如何在linux下快速构建属于我们自己的VPN服务器。
操作系统:centos 5.8 x86_64
单网卡和双网卡均可。
安装前系统环境检查:
检查系统内核是否支持MPPE补丁, 显示ok说明系统支持MPPE补丁,如果不支持,需要先安装kernel-devel
modprobe ppp-compress-18 && echo ok
检查系统是否开启TUN/TAP支持
cat /dev/net/tun
上述两条均通过,才能安装pptp。否则就需要考虑使用其它的VPN服务软件了。
检查ppp和iptables是否安装,没有的话则需要安装一下,pptpd依赖这些软件。
安装命令如下:
安装pptpd:
rpm -ivh http://acelnmp.googlecode.com/files/pptpd-1.3.4-2.rhel5.x86_64.rpm
配置pptp。首先我们要编辑/etc/pptpd.conf文件:
vim /etc/pptpd.conf
把下面字段前面的#去掉即可,这里设置默认网关和vpn客户端所可以获取到的ip地址范围:
localip 192.168.66.1
remoteip 192.168.66.101-130
接下来再编辑/etc/ppp/options.pptpd:
vim /etc/ppp/options.pptpd
去掉ms-dns前面的#,并修改成如下字段,这里主要设置需要用到的DNS服务器:
ms-dns 211.147.6.3
ms-dns 202.106.0.20
设置pptp VPN账号密码。我们需要编辑/etc/ppp/chap-secrets这个文件:
vim /etc/ppp/chap-secrets
直接输入如下字段,星号代表允许任意IP连接VPN服务器:
testuser pptpd testpass *
修改内核设置,使其支持转发。编辑/etc/sysctl.conf文件:
vim /etc/sysctl.conf
将“net.ipv4.ip_forward”改为1:
net.ipv4.ip_forward=1
保存退出,并执行下面的命令来生效它:
sysctl -p
添加iptables转发规则。
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -I INPUT -p tcp --dport 47 -j ACCEPT
iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
iptables -I INPUT -p gre -j ACCEPT
保存刚刚的防火墙设置。
/etc/init.d/iptables save
设置开机自动运行服务。
chkconfig pptpd on
chkconfig iptables on
关于PPTPD服务器的控制方法:
启动pptpd服务: /etc/init.d/pptpd start
停止pptpd服务: /etc/init.d/pptpd stop
重启pptpd服务: /etc/init.d/pptpd restart
关闭服务并踢掉已经在线的vpn客户端: /etc/init.d/pptpd restart-kill
查看pptpd当前运行状态: /etc/init.d/pptpd status
客户端连接测试:
详细客户端VPN配置方法请百度相关文章。