iptables设置防火墙规则

防伪码:学而不思则罔,思而不学则殆!

前言:大家都知道Michael Rash这个人吧!世界级的安全技术专家,以防火墙、***检测系统等方面的造诣享誉安全界。所以可以看出防火墙的重要性!下面为大家说一下防火墙策略的使用!


理论知识:

1. Linux防火墙:

    netfiler :位于linux内核中的包过滤功能体系。

                称为linux防火墙的“内核态”

    iptables :位于/sbin/iptables,用来管理防火墙规则的工具

                称为linux防火墙的“用户态”

 2.   包过滤的工作层次:

        主要是网络层,针对ip数据包

        体现在对包内的ip地址、端口等信息的处理上

3、  iptables的表、链的结构

        raw表:PREROUTING链、OUTPUT链

        mangle表:PREROUTING链、POSTROUTING链、INPUT链、OUTPUT链、FORWARD链

        nat表:PREROUTING链、POSTROUTING链、OUTPUT链、

        filter表:INPUT链、OUTPUT链、FORWARD链

4.   规则链:

        规则的作用:对数据包进行过滤或处理

        链的作用:容纳各种防火墙规则

        链的分类依据:处理数据包的不同时机

5.  五种规则链:

         默认包括5种规则链

           INPUT:处理入站数据包

           OUTPUT:处理出站数据包

           FORWARD:处理转发数据包

           POSTROUTING:在进行路由选择后处理数据包

           PREROUTING:在进行路由选择前处理数据包

6.   规则表:

         表的作用:容纳各种规则链

         表的划分依据:防火墙规则的作用相似

      默认包括4个规则表

          raw表:确定是否对该数据包进行状态跟踪

          mangle表:为数据包设置标记

          nat表:修改数据包中的源、目的ip地址或端口

          filter表:确认是否放行该数据包(过滤)

7.   规则表之间的顺序

          raw、mangle、nat、filter

8.   规则链之间的顺序

          入站:PREROUTING、INPUT 

          出站:OUTPUT、POSTROUTING

          转发:PREROUTING、FORWARD、POSTROUTING

9. 规则链内的匹配顺序:

          按顺序依次检查,匹配即停止(log策略例外)

          若找不到相匹配的规则,则按该链的默认策略处理

10、.匹配流程图:

      wKioL1hrSxiAaxMnAACiHN1LWF8811.png-wh_50 








一般raw和mangle表很少使用

及匹配后的流程图如下:

wKiom1hrS1XyrVtjAACAvegyzFo545.png-wh_50

11、注意事项:

        不指定表时,默认指filter表

        不指定链名时,默认指表内的所有链

        除非设置链的默认策略,否则必须指定匹配条件

        选项、链名、控制类型使用大写字母,其余均为小写


如何设置防火墙规则呢?下面我们来学习一下如何设置防火墙策略!

一、COMMAND

1、列出所有链的规则:iptables -L ,显示某条链的规则就是iptables -L INPUT

wKiom1hrEwvhM65vAABtQkVMAsE852.png-wh_50

更加详细的查询防火墙设置的规则:iptables -vnL 

wKioL1hrE1_DYkbjAABt2iZ8MyI557.png-wh_50

那么我们应该如何清除所有链的规则:iptables -F ,清楚完毕后,我们用iptables -L 可以看到之前的规则已全部被清除。

wKioL1hrE5eyfCEdAAA9isjWgmM920.png-wh_50

设置默认规则策略:(我要拒绝所有的数据包),上一步我们使用-F 清理了所有的规则,设置了拒绝所有数据包的规则之后,我们使用-L 查看到防火墙状态全部为DROP。

wKiom1hrFDTwxKEYAAA-qMP_GR8394.png-wh_50

PS:如果要是想要远程连接,首先需要改成 iptables -P INPUT ACCEPT 

下面让我们来添加一些规则,

添加防火墙规则,在INPUT链上添加,协议为tcp,目的端口为21和22:

wKiom1hrGGuib4--AABKUIfLAH8753.png-wh_50

wKiom1hrGPfjJuIUAABLeqFK6Q4371.png-wh_50

插入规则,在INPUT链上,端口号23,设置规则号为1

wKioL1hrGKrw3OsKAABQ5Z1S9v0291.png-wh_50

替换规则,在INPUT链上替换规则号为1的规则,将端口替换为24

wKiom1hrGVCy5bwpAABK0MeGoUU173.png-wh_50

删除规则,在input链上删除规则号为1的规则

wKiom1hrGn2Rxb5CAABP1wd2vUU450.png-wh_50

二、match:基本规则匹配

指定协议:

wKioL1hrH6fy0LfdAABCyT6QbL8200.png-wh_50

指定icmp类型,设置规则

wKiom1hrH7aizIhoAABPRZ8N8Qc223.png-wh_50

指定ip地址,设置规则

wKiom1hrH8PyUNyAAABj_YdC5Ts523.png-wh_50

指定网络接口,设置规则

wKioL1hrH-fRNH_yAABZUjLEkU4610.png-wh_50

指定端口号,设置规则

wKioL1hrIASjxS1AAABqSxQ-VhM666.png-wh_50

三、match 扩展规则匹配

limit:限制速率

wKiom1hrNTThf3wBAACE5urAJ6Q565.png-wh_50

iprange :针对一整段连续的ip设置防火墙某种策略

wKioL1hrNXHyurJtAACO4g6D1pk060.png-wh_50

time指定某个时间范围内设置防火墙策略

wKioL1hrNaPDMnkzAACDvMHc_0w412.png-wh_50

multiport 针对多个端口设置防火墙策略

wKioL1hrNcvw_i3VAACWoen2sdM352.png-wh_50

string:可以对某个报文中的字符串做匹配检查,比如一些敏感词汇等

wKiom1hrPJWTQuK5AACTZUQJjRk442.png-wh_50

state 可以根据“连接追踪机制”去检查连接的状态情况

wKiom1hrPhuhni1KAAAgOd9oWzw863.png-wh_50

wKioL1hrPhyyi60_AACOgp4KOeY545.png-wh_50

以上iptables防火墙的一些简单实用,希望大家都可以学会!如有新的规则,我会为大家继续更新!