思路
第一步:
服务器想通过外网,除了映射之外,就是在安装系统的时候需要连接一些软件仓库啥的,这需要服务器主动去外网,这是一个需求;假设我在西安,此外还有一个需求,就是有时候杭州研发要连接到这台服务器。所以由此在内网防火墙上就要配置两条策略,服务器所在区域到to_FW,to_FW到所在区域的。还有研发到所在区域的,这是第三个需求。
第二步:到AC上排除这个地址,排除时最好用直通,如果用策略的话,其实还是有的限制,而用直接就不会用任何的限制了。
第三步:在外网防火墙的NAT,ACL加上这个IP
前言
之前给杭州一家公司做过网络建设项目,至于是哪个公司这里就不提了。这是一家互联网公司,由于这家公司初建,并没有专业的网络运维人员,网络较复杂,分为研发内网、研发大网、SERVER区、DMZ等区,经常有网络改动的需求,每当网络改动时就给我们打电话,这么说吧,不堪其扰。
在此奉上拓扑,此处隐去了公网地址,如下所示:
在内网防火墙下接四个交换机,这四个交换机四个虚拟三层接口分别对应一个网络。他们经常有一种需求,就是经常在某一个区加上一台服务器,新安装的服务器在安装软件时有上网的需求,这就要求区域里面的服务器能与外网联通,平时是不允许这些区域里面的主机和外网联通的。
这个需求其实很好办?下面把步骤写下一来,AC的配置略过,因为那不是我们公司的,两台防火墙是我们公司做的。
第一步:内网防火墙策略放行
在内网防火墙的策略里面,有一条策略为to_internet
,这个策略里面加入了多个区域,有local、dmz、rnd,nrnd,而目的区域只有一个那就是untrust,那源区域怎么设置这么多?因为这里面区域里面或多或少都有主机上网,当然,默认dmz、rnd是不允许有人上网的,但是,但是,但是,总有些例外,比如研发区域就有那么几个主机就得上网!源区域就得设置这么多,并不是说这些区域里面的所有的主机都能通过untrust了,这仅仅代表有需要去往untrust的主机来自于这些区域,至于是哪些主机,策略后面还有源地址呢!我们可以指定源地址,而源地址如果我们用具体的IP来指定的话,时间长了,策略一多我们可能会都不会记得这个IP是干嘛的!所以,厂商想到了一个好的办法,就是将具体相同特性的IP放到一个组里面,比如有三个主机比较特殊:A、B、C,但这三个主机有共同特性,比如它们都是用来远程的,那就将这三个主机放到一组里面,然后给这个组起一个名字,名字可以随便起了,假如说就叫远程组
,这三台主要来自dmz区,我们在添加策略在选择源IP时,就可以调用这个组,调用这个组就相当于调用这三台主机,这样时间长了,我们一看组名就知道这三台主机是干啥的,也不会忘掉,而目的地址也可以添加对象组的,但是如果是上网的话,我们怎么知道这三台主机要访问哪些目标主机呢?这总不能一个个写吧,干脆就写成any。我们总结一下思路。
- 将A、B、C主机加入到
远程组
对象组,在添加策略的时候也可以添加对象组。 - 然后设置策略,源区域(这三台主机来自于哪个区域,假设是unv区域),要去哪个区域(上网的话肯定是untrust区域),还没完呢?还要写源地址和目标地址,源地址调用
远程组
,而目标地址不写,不写默认就是any,最后是动作,是拒绝还是放行,防火墙默认是白名单,所谓白名单就是不允许全都拒绝,那我们肯定是要放行的。
但我们工程师在配置的时候,把研发、非研发、dmz、local区域所涉及的网段都放行了,为什么这么搞呢?其实还是因为有AC,把是否能上网的工作交给AC去管理。
AC由于不是我们公司的设备,我也不知道里面配置了啥?但我推测一下,里面应该有一个上网认证功能,就是收到研发网段的流量直接丢弃,而收到非研发网段的流量回执一个认证界面,当用户输入正确的用户名和密码之后才放行。那其余网段的主机呢?比如linux主机,是无法弹出输入用户名和密码的浏览器界面的,怎么办呢?无法做用浏览器做认证,对于无法弹出界面的主机,不做认证,肯定还是白名单,允许通过的才能放行。
第二步:外网防火墙策略放行
到了untrust之后,下面一个设备就是AC了,AC不是我们公司的,所以也不归我们管。这里不介绍了。再下一个设备又到了我们的设备,一个外网防火墙,外网防火墙没有那么多的区域,因为外网防火墙它与内网防火墙不一样了,内网防火墙的的主要作用是控制报文之间的数据流动,而外网防火墙上的主要作用是些偏于保护和路由,所以就策略数量而言,内网防火墙的策略比外网防火墙的策略要多得多。
外网防火墙上有只有三个区域,对内的trust,对外的untrust,还有两个vlan20对应的三层口。当远程组
的报文上来之后,就是从trust到untrust,那么这个地方放行一下子,都放行吗?肯定不行,如果都放行的岂不是所有的流量都能到达untrust了,这也可以呀!怎么不可以呢?因为内网防火墙有对象组呀,内网防火墙不同意的报文根本过不来,而内网防火墙同意的,在外网防火墙也没有必要阻拦了,所以在这里面策略当中,源区域肯定是trust,而目的区域是untrust,源地址的话可以是any,目标地址也可以是any,下面是截图。
这样就完了吗?还没有,别忘记了,我们的目的是让远程组
能上网,到此时,远程组还是内网地址,内网地址想要上外网还要NAT转换。
第三步:NAT和ACL
常见的NAT类型有两种:
- 静态NAT,一对一的,很少用,哪有那么多IP地址
- 动态的,一对多的,这个常用,此外还有一个名字easy-ip nat
easy-ip有一个特点,就是它需要先定义一个ACL,被ACL匹配上的源地址才能被转换成公网地址,所以还要从这些把远程组
里面的主机加入到这个ACL当中,并应用到防火墙的外网出接口,outbound方向,意为出去的时候被转换。