ChatGPT 带你学习 iptables

linux 2023-02-16 805 次浏览 次点赞

对于 iptables 学习,反复看过 man iptables 命令,但是缺乏归纳总结,不用就忘了。现在好了,直接让 ChatGPT 帮我画一些系统框图辅助记忆。

Q:帮我用 Mermaid 画一个系统框图描述 iptables 所有 Chain 的处理顺序,并且描述其生效范围。
graph LR
    INPUT --> PREROUTING
    PREROUTING --> ROUTING
    ROUTING --> FORWARD
    FORWARD --> POSTROUTING
    POSTROUTING --> OUTPUT

ipatbles Chain 框图

这个图表演示了 iptables 中 5 个 Chain 处理的先后关系,其中:

  • INPUT Chain 用于处理进入本地计算机的网络数据包;
  • PREROUTING Chain 用于处理数据包路由前的操作,例如修改目标 IP 地址;
  • ROUTING Chain 用于处理数据包的路由过程,例如根据路由表进行转发;
  • FORWARD Chain 用于处理转发给其他计算机的网络数据包;
  • POSTROUTING Chain 用于处理数据包路由后的操作,例如修改源 IP 地址;
  • OUTPUT Chain 用于处理从本地计算机发出的网络数据包;
Q:再帮我给每一个 Chain 规则生成一个详细的命令。
  • INPUT Chain:允许来自特定 IP 地址的 SSH 连接

     iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
  • PREROUTING Chain:将来自特定 IP 地址的数据包重定向到另一台计算机

    iptables -t nat -A PREROUTING -s 192.168.1.100 -j DNAT --to-destination 192.168.1.200
  • ROUTING Chain:将来自特定 IP 地址的数据包标记为优先级 1

    iptables -t mangle -A PREROUTING -s 192.168.1.100 -j MARK --set-mark 1
  • FORWARD Chain:允许从特定网卡转发特定端口的数据包

    iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT
  • POSTROUTING Chain:将来自特定 IP 地址的数据包修改为指定 IP 地址并从指定网卡发出

    iptables -t nat -A POSTROUTING -s 192.168.1.100 -o eth0 -j SNAT --to-source 10.0.0.1
  • OUTPUT Chain:允许从本地计算机发出到特定 IP 地址和端口的数据包

    iptables -A OUTPUT -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT
Q:再帮我用 Mermaid 描述下 Table 和 Chain 之间的系统关系。
graph LR
    subgraph Table_Chain_Relationships
    Filter_Table -->|Table| INPUT
    Filter_Table -->|Table| OUTPUT
    Filter_Table -->|Table| FORWARD
    Mangle_Table -->|Table| PREROUTING
    Mangle_Table -->|Table| INPUT
    Mangle_Table -->|Table| OUTPUT
    Mangle_Table -->|Table| FORWARD
    Mangle_Table -->|Table| POSTROUTING
    Raw_Table -->|Table| PREROUTING
    Raw_Table -->|Table| OUTPUT
    Security_Table -->|Table| INPUT
    Security_Table -->|Table| OUTPUT
    Security_Table -->|Table| FORWARD
    NAT_Table -->|Table| PREROUTING
    NAT_Table -->|Table| OUTPUT
    NAT_Table -->|Table| POSTROUTING
    end


本文由 Jay 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处,点赞0

还不快抢沙发

添加新评论