Linux的防火墙工作在网络层,属于典型的包过滤防火墙。


  netfilter和iptables都是指linux防火墙的,但是他们的区别在于:

1. netfilter指的是linux内核中实现包过滤的结构,称为“内核态”

2. iptables指的是管理linux防火墙的命令程序,称为“用户态”


iptables采用了表和链的分层结构,

包括4个表:filter 主要用于包过滤

           nat    主要用于地址转换


和5个链:INPUT       入站口

      (表中包含链,链中包含规则)

  自定义的链是不能单独使用的,必须由默认链调用才可以。



如今最常用的防火墙分为:

主机型防火墙: 主要用到了filter表的INPUT OUTPUT

网络型防火墙: 主要用到了nat表的PREROUTING FORWARD POSTROUTING



1.规则表的应用顺序:raw--mangle--nat--filter

2.规则链的应用顺序:

1)入站时 PREROUTING -- INPUT

2)出站时 OUTPUT -- POSTROUTING

3)转发时 PREROUTING -- FORWARD -- POSTROUTING

3.规则的应用顺序:匹配即停止,log策略除外,如果找不到相符的规则就按照默认策略


iptables的语法结构:

iptables (-t表名,如果不指定则默认是filter表) 选项 链 匹配条件 -j 控制类型

控制类型有:ACCEPT 允许通过

            DROP 直接丢弃数据包

            REJECT 拒接通过

            LOG 日志类型


iptables配置实例:

1.查看防火墙列表:

iptables 过滤条件为端口 iptables filter nat_操作系统


2.清空filter表中所以规则:

iptables 过滤条件为端口 iptables filter nat_操作系统_02


3.清空filter表中所有自定义的规则链:

iptables 过滤条件为端口 iptables filter nat_包过滤_03


4.删除INPUT链中的第一条规则:

iptables 过滤条件为端口 iptables filter nat_网络_04


5.更改防火墙默认规则:

iptables 过滤条件为端口 iptables filter nat_网络_05


6.允许所有tcp包进入:

iptables 过滤条件为端口 iptables filter nat_iptables 过滤条件为端口_06


7.允许tcp的80端口进入:

iptables 过滤条件为端口 iptables filter nat_iptables 过滤条件为端口_07


8.将各个链中的规则进行保存:

iptables 过滤条件为端口 iptables filter nat_网络_08