• 【Linux】iptables之防火墙概述及规则匹配+实例(1)


    在这里插入图片描述


    在这里插入图片描述

    一、防火墙的基础概念

    1、防火墙的概念与应用

      网络中的防火墙,是一种将内部网络和外部网络分开的方法,是一种隔离技术。防火墙在内网与外网通信时进行访问控制,依据所设置的规则对数据包作出判断,最大限度地阻止网络中的黑客破坏企业网络,从而加强企业网络安全。

    2、包过滤的工作层次

      主要是网络层,针对IP数据包,体现对包内的IP地址、端口等信息的处理上。

    二、iptables的四表五链

    表中存放的是链,链中存放的是规则

    四表:优先级:filter

    raw表确定是否对该数据包进行状态跟踪;有限级最高,设置raw是一般是为了不在iptables做数据包的链接跟踪处理,提高性能
    mangle表为数据包设置标记;负责对数据包进行修改和追踪
    NAT表修改数据包中的源、目标IP地址或端口;负责地址转发
    filter表确定是否被放行该数据包(过滤);负责包过滤(默认)

    链表结构关系图:

    在这里插入图片描述

    五链:

    小写
    INPUT处理入站数据包input
    OUTPUT处理出站数据包output
    FORWARD处理转发数据包forward
    PREROUTING在进行路由选择前处理数据包prerouting
    POSTROUTING在进行路由选择后处理数据包postrouting

    规则链之间的顺序:

    入站: PREROUTING→INPUT                  路由选择前→入站
    出站:OUTPUT→POSTROUTING               出站→路由选择后
    转发:PREROUTING→FORWARD→POSTROUTING  路由选择前→转发→路由选择后

    不管是路由入站还是转发,都要选择路由选择前
    不管是路由出站还是转发,都要选择路由选择后

    三、iptables命令

    1、语法结构

    iptables [-t 表名] 选项&参数 [链名][匹配条件][-j 动作控制类型]
    
    • 1

    注意事项:
      不指定表名时,默认指filter表
      不指定链名时,默认指表内的所有链
      除非设置链的默认策略,否则必须指定匹配条件
      选项、链名、控制类型使用大写字母,其余均为小写

    数据包的常见控制类型/动作类型:-j

    类型解析
    ACCEPT允许通过
    DROP直接丢弃,不给出任何回应
    REJECT拒绝通过,必要时会给出提示
    LOG记录日志信息,然后传给下一条规则继续匹配

    2、iptables的选项参数及实例

    选项及参数:

    选项&参数解析
    -t指定表,默认filter
    -A追加一条规则 -A 链名 [序号] 匹配条件 -j 动作
    -I插入一条规则 -I 链名 [序号] 匹配条件 -j 动作;默认第一行(也可以自己指定序号)
    -R修改规则 -R 链名 序号 匹配条件 -j 动作
    -D删除指定规则 -D 链名 序号
    -P设置默认规则 -P 链名 动作(ACCEPT,DROP,REJECT,LOG)
    -p指定协议 TCP,UDP,ICMP;–sport 指定源端口 ;–dport 指定目标端口
    -L查看防火墙规则,后可以指定链
    -F清空防火墙规则;也可以指定清空某一个表的所有规则
    -v以更详细的方式显示规则信息
    -n以数字形式显示;要和-L配合看
    –line-numbers或–line显示规则编号;要和-L配合看
    -s指定源地址
    -d指定目标地址
    -i指定网卡
    -m指定模块,没有指定模块,默认使用与-p选项同名的模块

    实例:

    1、-t:指定查看raw表

    iptables -t raw -L
    
    • 1

    2、-A \-s\-j:追加一条规则,使192.168.2.2禁止访问

    iptables -A INPUT -s 192.168.2.2 -j REJECT
    
    • 1

    3、-I\-s\-j:插入一条规则,允许访问192.168.2.2

    iptables -I INPUT -s 192.168.2.2 -j ACCEPT
    
    • 1

    4、-R\-s\-j:第一条规则,修改为丢弃192.168.2.2;将第二条prot的udp改为icmp并且开放

    iptables -R INPUT 1 -s 192.168.2.2 -j DROP
    
    iptables -R INPUT 2 -p icmp -j ACCEPT
    
    • 1
    • 2
    • 3

    5、-D:删除一条指定的规则

    iptables -D INPUT 3
    
    • 1

    6、-L:查看防火墙规则,后可以指定链

    #查看所有防火墙规则
    iptables -L 
    
    #指定链:查看入站防火墙规则
    iptables -L INPUT
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7、-F:清空防火墙规则 ;也可以指定清空某一个表的所有规则

    iptables -F
    
    iptables -t nat -F
    
    • 1
    • 2
    • 3

    8、-n:以数字形式显示;要和-L配合看

    iptables -L -n
    
    • 1

    9、-v:已更详细的方式查看规则信息

    iptables -L -n -v
    
    • 1

    10、–line-numbers或–line:显示规则编号;要和-L配合看

    iptables -L --line-numbers
    
    iptables -L --line
    
    • 1
    • 2
    • 3

    四、iptables规则的匹配类型


    1、通用匹配
      可直接使用,不依赖与其他条件或扩展
      包括网络协议、IP地址、网络接口等条件

    2、隐含匹配
      要求以特定的协议匹配作为前提
      包含端口、TCP标记、ICMP类型等条件

    3、显式匹配
      要求以“-m扩展模块”的形式明确指出类型
      包括多端口、MAC地址、IP范围、数据包状态等条件

    常用管理选项汇总表:

    在这里插入图片描述

    在这里插入图片描述


    1、通用匹配

    常见的通用匹配条件:
      协议匹配:-p 协议名
      地址匹配:-s 源地址、-d 目的地址
      接口匹配:-i 入站网卡、-o 出站网卡

    1.1、协议匹配

    协议匹配:-p 协议名

    允许所有的TCP协议进入

    iptables -A INPUT -p tcp -j ACCEPT
    
    • 1

    在这里插入图片描述

    除了icmp协议其他协议都丢弃

    iptables -I FORWARD ! -p icmp -j DROP
    
    • 1

    在这里插入图片描述

    1.2、地址匹配

    地址匹配:-s 源地址、-d 目的地址

    允许访问ip地址192.168.2.2

    iptables -I INPUT -s 192.168.2.2 -j ACCEPT
    
    • 1

    在这里插入图片描述

    丢弃192.168.1.0/24网段的ip

    iptables -I INPUT -s 192.168.1.0/24 -j DROP
    
    • 1

    在这里插入图片描述

    访问地址将地址转发到目标地址“192.168.2.22”并且开放

    iptables -A FORWARD -d 192.168.2.22 -j ACCEPT
    
    • 1

    在这里插入图片描述

    1.3、接口匹配

    接口匹配:-i 入站网卡、-o 出站网卡

    将eth1的网卡在入站时丢弃

    iptables -I INPUT -i eth1 -j DROP
    
    • 1

    在这里插入图片描述

    将eth1的网卡在出站时丢弃

    iptables -I OUTPUT -o eth1 -j DROP
    
    • 1

    在这里插入图片描述

    2、隐含匹配

    常见的隐含匹配条件:
      端口匹配:-p来指定,–sport 源端口、–dport目的端口
      TCP匹配:–tcp-flags 检查范围 被设置的标记
      ICMP匹配:–icmp-type ICMP类型

    2.1、端口匹配

    端口匹配:-p来指定,–sport 源端口、–dport目的端口

    将源网段设置为udp协议且目标端口为53,并开启地址转发
    将目标网段设置为udp协议且源端口为53,并开启地址转发

    iptables -A FORWARD -s 192.16.2.2/24 -p udp --dport 53 -j ACCEPT
    
    iptables -A FORWARD -d 192.16.2.2/24 -p udp --sport 53 -j ACCEPT
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    将源网段“192.16.2.0/24”设置为tcp协议且目标端口为53,并开启地址转发
    将目标网段“192.16.2.0/24”设置为tcp协议且源端口为53,并开启地址转发

    iptables -A FORWARD -s 192.16.2.0/24 -p tcp --dport 53 -j ACCEPT
    
    iptables -A FORWARD -d 192.16.2.0/24 -p tcp --sport 53 -j ACCEPT
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    开放TCP协议且目标端口为22,允许进入
    开放TCP协议且目标端口为20-21,允许进入

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
    iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2.2、TCP匹配

    TCP匹配:–tcp-flags 检查范围 被设置的标记

    指定eth1网卡,port设置为tcp协议,检查范围为SYN、RST、ACK,监测到的都丢弃

    指定eth1网卡,port设置为tcp协议,除了检查范围中的SYN、RST、ACK,其他都可以进入

    iptables -I INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP
    
    iptables -I INPUT -i eth1 -p tcp ! --tcp-flags SYN,RST,ACK SYN -j ACCEPT
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2.3、ICMP匹配

    ICMP匹配:–icmp-type ICMP类型

    常见的 icmp 类型
      8  Echo request——回显请求(Ping 请求)
      0  Echo Reply——回显应答(Ping 应答)
      3  错误回显

    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

    获取帮助:iptables -p icmp -h

    3、显式匹配

    常见的显式匹配条件:
      多端口匹配:-m multiport --sports | --dports 端口列表
      IP范围匹配:-m iprange --src-range IP范围
      MAC地址匹配:-m mac --mac-source MAC地址
      状态匹配:-m state --state 连接状态

    3.1、多端口匹配

    多端口匹配:-m multiport --sports | --dports 端口列表

    允许22、25、80、110、143端口进入并开启tcp协议

    iptables -I INPUT -p tcp -m multiport --dport 22,25,80,110,143 -j ACCEPT
    
    • 1

    在这里插入图片描述

    3.2、IP范围匹配

    IP范围匹配:-m iprange --src-range IP范围

    允许192.168.1.100-192.168.1.110这个范围的ip进入并设置tcp协议

    iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.100-192.168.1.110 -j ACCEPT
    
    • 1

    在这里插入图片描述

    3.3、MAC地址匹配

    MAC地址匹配:-m mac --mac-source MAC地址

    只要mac地址是00:0c:29:c2:83:32的都丢弃

    iptables -A FORWARD -m mac --mac-source 00:0c:29:c2:83:32 -j DROP
    
    • 1

    在这里插入图片描述

    3.4、状态匹配

    状态匹配:-m state --state 连接状态

    常见的连接状态:
      NEW:新连接,与任何连接无关
      ESTABLISHED:响应请求或已建立连接的
      RELATED:与已连接有相关性的,如 FTP 数据连接

    在这里插入图片描述

    相关文章

    🍎【Linux】iptables之防火墙概述及规则匹配+实例(1)


    🍌【Linux】iptables之防火墙的应用及案例、策略、备份与还原(2)


    🍐【Linux】firewall-cmd之防火墙简介及常用命令+实例

    在这里插入图片描述

  • 相关阅读:
    Scalable Time Series Compound Infrastructure(sigmod2020)
    关于Java Chassis 3的契约优先(API First)开发
    [13] CUDA_Opencv联合编译过程
    python sum()函数
    如何解决Maven依赖冲突?
    内网渗透系列之真实内网环境搭建
    WebFlux异常处理:onErrorReturn和onErrorResume
    1204、基础查询进阶、连接查询
    Redis学习记录------Redis6常用五大数据类型(三)
    热烈祝贺方正璞华两款产品入选2021年度江苏省工业软件优秀产品和应用解决方案拟推广名单
  • 原文地址:https://blog.csdn.net/liu_chen_yang/article/details/125968904