前言: 本文主要着重讲解Linux的基于网络层的防火墙的安全架构,实现流程,以及常见的iptables一些实际应用。如下图为常见的网络架构,Internet网第一层隔离为硬件防火墙,第二层为软件防火墙。防火墙总体上可以分为数据包过滤式防火墙,应用级网关防火墙,代理服务防火墙。Linux的网络防火墙就是基于数据包过滤机制的。


Linux的网络防火墙iptables实战_iptables

一>Iptabales网络防火墙的层级关系

Linux的最底层的防火墙机制都是通过一条一条语句规则的机制实现的。而链是规则的容器(这里的容器指的就是一种所属关系),常见的链有INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING五种。表是链的容器,常见的表有filter,NAT,mangle,raw。Iptables则是表的容器。filter表主要和主机自身有关,是真正负责主机防火墙功能的。下图描述了防火墙的层级关系以及各个表包含哪些链的关系。

    Linux的网络防火墙iptables实战_iptables_02

    

二>Iptables的工作流程

    前面已经介绍到,Iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则进行匹配决定是否可以进入主机。

数据包的流向是从左到右边的!

Linux的网络防火墙iptables实战_iptables_03Linux的网络防火墙iptables实战_iptables_04

总结:

    1>防火墙是层层过滤的。实际是按照配置规则从上到下,从前到后进行过滤的。

    2>如果匹配上规则,即明确表明是阻止还是通过,数据包就不在向下匹配新规则了。(注意:匹配上了拒绝了规则也是匹配上了)

    3>如果规则中没有明确表示阻止还是通过,即没有匹配上规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。

    4>防火墙的默认规则是在所有的规则执行完之后才会执行的。


三>iptables命令实战

1>查看当前防火墙规则----默认只有filter表

Linux的网络防火墙iptables实战_iptables_05


2>清除添加的规则

iptables -F


3>实战:禁止ssh端口

A.找出当前机器ssh端口

Linux的网络防火墙iptables实战_iptables_06

B.禁止掉当前ssh端口,这里是22

Linux的网络防火墙iptables实战_iptables_07

发现禁用掉22端口后使劲敲光标回车没反应,重新连也连接不上。只能从虚拟机里面用iptables -F清除掉这条规则后才能重连。

注意:INPUT和DROP要大写.


4>实战:封掉192.168.0.0/24网段

Linux的网络防火墙iptables实战_iptables_08

发现192.168.0.0/24网段的都连接不上了。


















Linux的网络防火墙iptables实战_iptables_03

Linux的网络防火墙iptables实战_iptables_03

Linux的网络防火墙iptables实战_iptables_03

Linux的网络防火墙iptables实战_iptables_03

Linux的网络防火墙iptables实战_iptables_03