创业公司办公网络安全稳定访问机房网络方案

【背景】

办公网络使用ADSL上网,,无固定IP。IDC机房有固定的IP。为了安全,服务器的公网ip只开放了应用的端口,基于这种情况,要访问机房,使用VPN是一个较好方案。

但是给公司每个员工分一个IDC的vpn帐号是一个苦逼的活儿,因为每个客户机会遇到各种问题,vpn本来就不是一个非常稳定的东西。

那么就想到,只要哥哥使用一台linux服务器拨号,之后用这个机器做网关,做snat那么就能让办公网络访问线上服务器了^_^

这个方案已经做出来,实际运行一段时间了,经历了检验,今天成文,和大家分享。

【具体方案】

【各模块功能介绍】

1、IDC一台linux服务器当pptp vpn的SERVER

2、一台linux服务充当pptp client,同时作为访问IDC机房的网关

3、办公网络一台路由器(员工电脑的默认网关)

4、VPN守护脚工具(因为网络原因,VPN就不是很稳定,意味着经常挂,那么需要一个监控工具,守护vpn的状态,一旦vpn挂了,就要再次启动)

网络结构如下

注意:实施环境为centos 6.5 64位服务器

【各模块具体安装配置说明】

第一、#####IDC一台linux服务器当pptp vpn的SERVER#####

1.1具体请yum安装一下组件

ppp-2.4.5-5.el6.x86_64

pptpd-1.4.0-3.el6.x86_64

kernel-devel

1.2配置文件

#grep-v”#”/etc/pptpd.confoption/etc/ppp/options.pptpdlogwtmplocalip10.1.1.101#VPNserver的起始ip,注意不是VPNserver的真实的ipremoteip10.1.253.1-254,10.1.0.254#vpnclient分配的ip/etc/ppp/chap-secrets#grep-v”#”/etc/ppp/options.pptpdnamepptpdrefuse-paprefuse-chaprefuse-mschaprequire-mschap-v2require-mppe-128proxyarplocknobsdcompnovjnovjccompnologfdms-dns8.8.8.8ms-dns8.8.4.4

# cat /etc/ppp/chap-secrets(注意这里格式比较严格,尤其是密码之后的*,密码之后只有一个tab或者空格,否则会导致windows连不上的报错609的报错,但是mac链接这个vpn都是好的)

#SecretsforauthenticationusingCHAP#clientserversecretIPaddressesuserpptpdpasswd*

1.3启动和维护

servicepptpdrestartservicepptpdreload

1.4如果VPN server开了防火墙,请加上

-AFORWARD-mstate–stateRELATED,ESTABLISHED-jACCEPT-AINPUT-mstate–stateNEW-mtcp-ptcp–dport1723-jACCEPT-AINPUT-ptcp-mstate–stateNEW-mtcp–dport47-jACCEPT-AINPUT-pgre-jACCEPT

第二、#####办公网络一台linux服务器当pptp client的client,ip是192.168.1.252####

1、安装及配置

yum-yinstallpptp-setup

实际安装

(libpcap-1.4.0-1.20130826git2dbcaa1.el6.x86_64.rpm

ppp-2.4.5-5.el6.x86_64.rpm

pptp-1.7.2-8.1.el6.x86_64.rpm

pptp-setup-1.7.2-8.1.el6.x86_64.rpm)

初始化拨号

pptpsetup-createidcvpn-servervpn公网ip-username用户名-password密码-encrypt-startpptpsetup-createidcvpn114-servervpn公网ip-username用户名-password密码-encrypt-start#这里,可以多搭建一条备份链路idcvpn114,万一其中一条不行,可以做切换routeadd-net10.1.0.0/16devppp0#添加路由,否则不通,因为服务器的网段是10.1.0.0/16cp/usr/share/doc/ppp-2.4.5/scripts/pon/usr/sbin/cp/usr/share/doc/ppp-2.4.5/scripts/poff/usr/sbin/chmod+x/usr/sbin/pon/usr/sbin/poffponidcvpn#开启VPNrouteadd-net10.1.0.0/16devppp0poffidcvpn#关闭VPN

2、防火墙配置,做SNAT

cat/etc/sysconfig/iptables*nat:PREROUTINGACCEPT[0:0]:POSTROUTINGACCEPT[1:92]:OUTPUTACCEPT[1:92]-APOSTROUTING-d10.1.0.0/16-oppp0-jMASQUERADECOMMIT*filter:INPUTACCEPT[0:0]:FORWARDACCEPT[0:0]:OUTPUTACCEPT[0:0]COMMIT

机器拨号好之后之后是这样的

第三、#####办公网络的路由器配置#####

本地网络是192.168.1.0/24,IDC的网络是10.1.0.0/16具体看下图

第四、VPN client守护工具

具体可以参考这个脚本,本脚本已经经过实践检测

crontab里面

*/1****/scripts/vpn_monitor.sh>>/home/logs/vpn_monitor.log#!/bin/bash#vpn_monitor#byH2O#V1.0_2014.07.23source/etc/profilefunctionJudgeVpn(){#判断VPN是否存活,为了判断准确定,需要判断多次FLAG=1ping-c110.1.1.1-w1>/dev/null2>&1&&FLAG=0ping-c110.1.1.2-w1>/dev/null2>&1&&FLAG=0ping-c110.1.1.103-w1>/dev/null2>&1&&FLAG=0return”$FLAG”}functionRun_Vpn(){Now_Time=`date”+%F_%T”`echo”$Now_Time,vpnisnotrunning”poffidcvpn||poffidcvpn||poffidcvpn#可能失败,多尝试几次ponidcvpn||ponidcvpn||ponidcvpn#可能失败,多尝试几次sleep5#拨号之后,需要有一定时间才能出现设备ppp0,这里等5s,可以自己实践routeadd-net10.1.0.0/16devppp0||routeadd-net10.1.0.0/16devppp0||routeadd-net10.1.0.0/16devppp0#路由可能添加失败,多尝试几次routeadd-net10.1.0.0/16devppp0echo”$Now_Time,vpnrunned”}functionRun_Vpn114(){Now_Time=`date”+%F_%T”`echo”$Now_Time,vpnisnotrunning”poffidcvpn||poffidcvpn||poffidcvpnpoffidcvpn114||poffidcvpn114||poffidcvpn114ponidcvpn114||ponidcvpn114||ponidcvpn114sleep6routeadd-net10.1.0.0/16devppp0||routeadd-net10.1.0.0/16devppp0||routeadd-net10.1.0.0/16devppp0routeadd-net10.1.0.0/16devppp0echo”$Now_Time,vpn114runned”}JudgeVpnStatus=$?if[“$Status”-eq1];thenRun_Vpn#runvpn之后,不一定能马上ping通sleep6JudgeVpnStatus=$?if[“$Status”-eq1];thenRun_Vpn114#第二次拨号就拨号114了elseNow_Time=`date”+%F_%T”`echo”$Now_Time,vpnisrunning”exit0fielseNow_Time=`date”+%F_%T”`echo”$Now_Time,vpnisrunning”exit0fi

本文出自 “H2O's运维&开发路” 博客,转载请与作者联系!

你可以用爱得到全世界,你也可以用恨失去全世界

创业公司办公网络安全稳定访问机房网络方案

相关文章:

你感兴趣的文章:

标签云: