# 内容摘要

  • iptables 相关概念介绍
  • iptables 相关命令
  • 常用命令解析

# 一、 iptables 相关概念介绍

  • 参考的博客链接 https://aimuke.github.io/linux/2019/05/28/iptables/

  • 功能简介

    根据管理员定义的规则 rules 对数据包进行过滤,在 rules 中可以指定数据包的 源地址目标地址协议类型 等,过滤操作包括 ACCEPTREJECTDROPLOG 等等。

  • Chain

    针对数据包的不同流向,又设置了不同的关卡,术语为 Chain(链) 。当数据包的目标主机为本机时使用 INPUT ,需要经过本机转发给其他服务器使用 FORWORD ,本机数据包发送出去使用 OUTPUT 。还有 PREROUTINGPOSTROUTING ,下面这张图能够很好地说明几个链所处的位置,图片来源见水印

    a

  • table

    不同的规则会对数据包进行不同的操作,相同功能的规则会构成一个 table(表)iptables 提供的表如下所示

    表名 功能
    filter 过滤,防火墙 内核模块: iptables_filter
    nat 网络地址转换 内核模块: iptable_nat
    mangle 拆解报文,做出修改,并重新封装 内核模块: iptable_mangle
    raw 关闭 nat 表上启用的连接追踪功能 内核模块: iptable_raw
  • Chain 和 table

    不同的链中包含不同的表,不同的表执行有优先级,具体可见下图(来源见水印)

    aa

# 二、 相关命令

  • 基本命令

    1
    sudo iptables -L

    列出目前 iptables 中的规则,对于新建立的服务器,没有任何规则,结果如下

    1
    2
    3
    4
    5
    6
    7
    8
    Chain INPUT (policy ACCEPT)
    target prot opt source destination

    Chain FORWARD (policy ACCEPT)
    target prot opt source destination

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination
  • 命令参数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    1. -A  添加规则到规则链
    2. -L 列出当前的过滤规则
    3. -m conntrack 运行过滤规则根据连接状态进行匹配
    4. -p 连接的目标协议
    5. --dport 规则的目标端口
    6. -j 跳转的特定的目标,iptables一般允许4个目标
    - ACCEPT 接收数据包并停止本链规则匹配
    - REJECT 拒绝数据包并提醒发送者,停止规则继续匹配
    - DROP 静默扔掉数据包,停止规则继续匹配
    - LOG 记录数据包,继续运行本链中更多的规则

    7. --log-prefix 记录时,将文本放在日志信息前
    8. --log-level 日志使用的系统日志级别,默认为7
    9. -i 仅匹配来自特定接口的数据包
    10. -I 插入一条规则
    -I INPUT 5 插入INPUT链,使其成为第5条规则

    11. -v 在输出中显示更多信息
    12. -s --source - address[/mask] 指定源地址/掩码
    13. -d --destination - address[/mask] 指定目的地

# 三、常用命令解析

  • 参考博客: https://www.jianshu.com/p/3382735286e0 https://www.cnblogs.com/frankb/p/7427944.html

  • 样例 1

    1
    iptables -I INPUT -d xx.xx.xx.x -p tcp -m multiport --dports 22,80 -j ACCEPT

    结果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    Chain INPUT (policy ACCEPT)
    target prot opt source destination
    ACCEPT tcp -- anywhere xx.xx.xx.x.vultr.com multiport dports ssh,http

    Chain FORWARD (policy ACCEPT)
    target prot opt source destination

    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination

    分析

    INPUT 链中添加了一条规则,接收目标地址为本机地址,端口为 22/80 的数据包,源地址没有指定

  • 持久化保存规则 https://www.cnblogs.com/kaishirenshi/p/11227663.html

  我们的问题不在于电视为我们展示具有娱乐性的内容,而在于所有的内容都以娱乐的方式表现出来,这就完全是另外一回事了。

——《娱乐至死》

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

chaihj15 微信支付

微信支付

chaihj15 支付宝

支付宝