大神之作
http://www.zsythink.net/archives/1199/
http://www.zsythink.net/archives/tag/iptables/
针对iptables详解(11):iptables之网络防火墙做的一些补充,主要是针对环境补充
我们一起来回顾一下之前的知识,在第一篇介绍iptables的文章中,我们就描述过防火墙的概念,我们说过,防火墙从逻辑上讲,可以分为主机防火墙与网络防火墙。
主机防火墙:针对于单个主机进行防护。
网络防火墙: 往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。
在前文的举例中,iptables都是作为主机防火墙的角色出现的,那么,iptables怎样作为网络防火墙呢?这就是我们今天要聊的话题。
回到刚才的概念,网络防火墙往往处于网络的入口或者边缘,那么,如果想要使用iptables充当网络防火墙,iptables所在的主机则需要处于网络入口处,示意图如下。
上图中,橘黄色主机为iptables所在主机,此时iptables充当的角色即为网络防火墙,上图中的浅蓝色圆形表示网络防火墙所防护的网络区域,圆形内的蓝色矩形表示网络内的主机。
当外部网络中的主机与网络内部主机通讯时,不管是由外部主机发往内部主机的报文,还是由内部主机发往外部主机的报文,都需要经过iptables所在的主机,由iptables所在的主机进行"过滤并转发",所以,防火墙主机的主要工作就是"过滤并转发",那么,说到这里,我们则不得不再次回顾之前的iptables报文流程图了,如下:
上图中,橘黄色主机为iptables所在主机,此时iptables充当的角色即为网络防火墙,上图中的浅蓝色圆形表示网络防火墙所防护的网络区域,圆形内的蓝色矩形表示网络内的主机。
当外部网络中的主机与网络内部主机通讯时,不管是由外部主机发往内部主机的报文,还是由内部主机发往外部主机的报文,都需要经过iptables所在的主机,由iptables所在的主机进行"过滤并转发",所以,防火墙主机的主要工作就是"过滤并转发",那么,说到这里,我们则不得不再次回顾之前的iptables报文流程图了,如下:
前文中,iptables都是作为"主机防火墙"的角色出现的,所以我们举例时,只用到了上图中的INPUT链与OUTPUT链,因为拥有"过滤功能"的链只有3条,INPUT、OUTPUT、FORWARD,当报文发往本机时,如果想要过滤,只能在INPUT链与OUTPUT链中实现,而此时,iptables的角色发生了转变,我们想要将iptables所在的主机打造成"网络防火墙",而刚才已经说过,网络防火墙的职责就是"过滤并转发",要想"过滤",只能在INPUT、OUTPUT、FORWARD三条链中实现,要想"转发",报文则只会经过FORWARD链(发往本机的报文才会经过INPUT链),所以,综上所述,iptables的角色变为"网络防火墙"时,规则只能定义在FORWARD链中。
那么为了能够进行实验,我们来设置一下实验场景,如下图所示(后面有对图的解释)
我们假设,上图中圆形所示的网络为内部网络
注:此处所描述的内网、外网与我们平常所说的公网、私网不同。
此处描述的内外部网络你可以理解成两个网段,A网络与B网络,为了方便描述,我们把圆形内的主机称为内部主机,把上图中圆形所表示的网络称为内部网络,把圆形外的网络称为外部网络。
假设,内部网络的网段为10.1.0.0/16,此内部网络中存在主机C,主机C的IP地址为10.1.0.1。
上图中的主机B充当了网络防火墙的角色,主机B也属于内部网络,同时主机B也能与外部网络进行通讯,如上图所示,主机B有两块网卡,网卡1与网卡2,网卡1的IP地址为10.1.0.3,网卡2的IP地址为192.168.1.146,所以,防火墙主机在内部网络中的IP地址为10.1.0.3,防火墙主机与外部网络通讯的IP地址为192.168.1.146。
上图中的主机A充当了"外部网络主机"的角色,A主机的IP地址为192.168.1.147,我们使用主机A访问内部网络中的主机C,但是需要主机B进行转发,主机B在转发报文时会进行过滤,以实现网络防火墙的功能。
我已经准备了3台虚拟机,A、B、C
虚拟机A与虚拟机B的网卡2都使用了桥接模式。
为了能够尽量模拟内部网络的网络入口,我们将虚拟机B的网卡1与虚拟机C同时放在"仅主机模式"的虚拟网络中,虚拟机设置如下图所示
点击vmware编辑菜单,打开虚拟网络编辑器,点击更改设置按钮,添加一个仅主机模式的虚拟网络,下图中的vmnet6为已经添加过的虚拟网络,此处不再重复添加。
编辑中的虚拟网络编辑器主要作用就是添加虚拟交换机,此时加了3种类型的交换机,一个是NAT模式的,一个是仅主机,一个是桥接。NAT和桥接都可以上网,访问外网,只不过桥接会占有一个真实的IP。NAT不会,NAT有方式有自己局域网络,然后通过VMware做了转换到了真实IP上面去。仅主机就是局域网了
可以多次nat,A-B-C
A:外网
B:中间机,2个网卡,内外网
C:局域网
C:局域网SNAT后到B,B的交换机是NAT方式不是桥接方式,B会通过VMware工具在次NAT到和A一个网络上面去
c7-01 :外网主机 10.10.1.118,一个网卡插在桥接的交换机上面
c7-02 :网络防火墙,路由器,供内网统一上网,NAT主机,交换机。2个网卡,一个插在仅主机的交换机上面(192.168.13.131),一个插在桥接的交换机上面(10.10.1.142)
c7-03:局域网192.168.13.132 一个网卡插在桥仅主机的交换机上面
c7-04:局域网192.168.13.133 一个网卡插在仅主机的交换机上面
操作画面c7-01,插在交接虚拟交换机上面
c7-02: 添加一个网卡,然后让2个网卡插在不同的虚拟交换机上面
c7-03/c7-04:插在仅主机虚拟交换机上面
然后就可以了。systemctl disable NetworkManager;systemctl stop NetworkManager;systemctl restart network
其余就可以看大神的佳作了http://www.zsythink.net/archives/1764