• iptables学习


    iptables不算是一个真正的防火墙,它是一个配置Linux内核防火墙的命令行工具。将用户的安全设置同步到对应的安全框架–Netfilternetfilter位于内核空间,iptables位于用户空间。

    在这里插入图片描述

    iptables用于ipv4ip6tables用于IPv6

    netfilter/ptables 一起组成了linux平台下的包过滤防火墙。其功能包括:网络地址转换(NAT)、数据包内容修改、数据包过滤等功能。

    • 主机型防火墙
    • 网络型防火墙


    原图:https://thermalcircle.de/lib/exe/fetch.php?media=linux:netfilter-packet-flow.png

    Netfilter Hooks

    iptables是与协议栈中具有包过滤功能的hook交互完成工作的,而这些hook就构成了netfilter框架。

    netfilter框架包含5个hook点:

    • NF_IP_PRE_ROUTING:在数据包进入协议栈后,再决定对此数据包进行路由判断之前,触发此HOOK

    • NF_IP_LOCAL_IN:通过路由判断,此数据包是给本机的,触发此HOOK

    • NF_IP_FORWARD:通过路由判断,此数据包是给其他机器的,触发此HOOK

    • NF_IP_LOCAL_OUT:本机触发即将发送的数据包在进入协议栈后,触发此HOOK

    • NF_IP_POST_ROUTING:本机触发即将发送或要转发的数据包,在路由判断之后,触发此HOOK

    在注册这些钩子函数时,同时需要提供优先级,以便在触发HOOK时确定调用顺序。

    IPTables 表和链(Tables and Chains)

    Iptables中有四表五链。

    在这里插入图片描述

    Iptables处理流程

    在这里插入图片描述

    iptables配置规则

     iptables [-t table] {-A|-C|-D} chain rule-specification
     iptables [-t table] command [链名] [条件匹配] [-j 目标动作]
    
    • 1
    • 2
    • -t table,指明要是使用的表。

      filter(默认)、natmanglerawsecurity(强制访问控制(MAC)网络规则)

    • 通用选项

      • -p:匹配协议类型

        -p TCP/UDP/ICMP
        
        • 1
      • -sport:匹配源端口

      • -dport:匹配目的端口

      • -s:匹配源地址

      • -d:匹配目的地址

      • -m limit:匹配转包速率

      • -m mac:匹配MAC地址

    • command

      • -L--list [chain]查看规则列表

      • -A: --append chain rule-specification追加一条规则

      • -D--delete chain rule-specification删除指定规则

      • -I--insert chain [rulenum] rule-specification在指定位置插入一条规则

        在这里插入图片描述

      • -R--replace chain rulenum rule-specification替换所选链中的规则

      • -C: --check chain rule-specification

      • -E--rename-chain old-chain new-chain 给链重命名

      • -F--flush [chain]清空规则

        在这里插入图片描述

      • -N--new-chain chain 用给定的名称创建一个新的用户定义的链

      • -P--policy chain target 对某条链设置默认规则

      • -X: --delete-chain [chain]删除用户自定义链,如果该链被使用,需要先删除规则

      • -Z: --zero [chain [rulenum]]将指定链的所有计数器归零,默认所有链

      • -h: Help

    • -j 目标动作

      -j ACCEPT:允许通过
      -j DROP:丢弃数据包,不允许通过
      -j SNAT:源地址转换
      -j DNAT:目的地址转换
      -j MASQUERADE:动态源IP转换
      
      • 1
      • 2
      • 3
      • 4
      • 5

    iptables规则备份

    由于我们在执行iptables命令时,规则只是保存在内存中,机器重启后规则就没了。因此我们在规则设定完毕后,可以使用命令保存规则。

    iptables-save – 保存规则

    iptables-restore – 恢复规则

  • 相关阅读:
    VALSE2022天津线下参会个人总结8月24日-3
    Java编程练习题Demo61-Demo70
    mybatis入门
    [Cortex-M3]-4-如何在内嵌RAM中运行程序
    【710. 黑名单中的随机数】
    时间复杂度与空间复杂度
    C专家编程 第3章 分析C语言的声明 3.5 typedef可以成为你的朋友
    Windows 上下载并提取 Wikipedia
    Jeston ros1 环境下 编译RealSense SDK
    [SpringBoot系列]基础过渡与夯实(创建Boot项目的新方式、Boot简化核心)
  • 原文地址:https://blog.csdn.net/Ghost_199503/article/details/128064450