iptables简单笔记

隐含模块:

1:端口 (一个)

2:ICMP类型

request:8

reply 0

不可达:3

iptables -A INPUT -p tcp -m multiport --dport 80,25 -j ACCEPT{-m multiport 可以匹配多个端口}

显示匹配

-m 指定匹配模块

1:多端口

2:IP范围

3:mac

4:状态匹配:iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT

这个 iptables 命令是用于配置 Linux 系统上的防火墙规则的。具体来说,这条命令是在 INPUT 链(即处理进入系统的数据包的链)中插入(-I 表示插入)一条新的规则。

下面是这条命令的详细解释:

  • iptables: 这是 Linux 系统中用于配置 IPv4 数据包过滤规则的命令行工具。
  • -I INPUT: 这表示在 INPUT 链的开头插入一条新的规则。注意,如果不指定规则编号,它会在链的开头插入,而不是在末尾追加。
  • -p tcp: 这表示该规则仅适用于 TCP 协议的数据包。
  • -m state: 这表示这条规则将使用 state 模块,该模块允许基于数据包的状态(如 NEW、ESTABLISHED、RELATED 等)来过滤数据包。
  • --state ESTABLISHED: 这指定了该规则的条件是数据包的状态必须是 ESTABLISHED。在 TCP 的上下文中,一个 ESTABLISHED 状态的数据包是指一个与已经存在的连接(即之前已经通过三次握手建立的连接)相关的数据包。
  • -j ACCEPT: 这表示如果数据包满足上述所有条件(即它是一个 TCP 数据包,其状态是 ESTABLISHED,并且它是在 INPUT 链上被处理的),那么应该接受这个数据包,允许它进入系统。

综上所述,这条 iptables 命令的意思是:允许所有已建立的 TCP 连接上的进入数据包进入系统。这通常是防火墙配置中的常见做法,因为它允许已经建立的连接上的双向通信,同时阻止未经授权的新的连接尝试。

-A 和 -i的区别:

在iptables中,-A和-i是两个不同的选项,它们分别具有不同的功能和用途。以下是这两个选项的详细解释和区别:

  1. -A (Append)
    • 功能:用于在规则链的末尾附加一条新的规则。
    • 位置:该选项指定了新规则在规则链中的位置,即添加到现有规则的后面。
    • 匹配顺序和优先级:当防火墙进行包匹配时,它会按照规则链中规则的顺序,从上到下依次检查每一条规则。因此,使用-A添加的规则会位于现有规则之后,这意味着它只会影响那些没有在其他规则中匹配到的数据包。
    • 示例:iptables -A INPUT -s 192.168.228.0/24 -p tcp --dport 22 -j ACCEPT 这条命令会在INPUT链的末尾添加一条规则,允许来自192.168.228.0/24网段的TCP数据包(目标端口为22)通过。
  1. -i (Interface)
    • 功能:用于指定数据包进入本机的网络接口。它并不是用来添加规则的,而是用来定义规则中数据包进入的网络接口条件。
    • 位置:这个选项通常与规则的其他部分一起使用,以定义数据包的条件。
    • 示例:iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT 这条命令会在INPUT链的末尾添加一条规则,但只针对从eth0接口进入、来自192.168.1.0/24网段的TCP数据包(目标端口为22)进行匹配。

总结:

  • -A 用于在规则链的末尾添加新规则,影响匹配的顺序和优先级。
  • -i 用于指定数据包进入的网络接口,是定义规则条件的一部分。

在iptables命令中,这两个选项通常与其他选项一起使用,以定义完整的防火墙规则。例如,-A 可以与 -i 一起使用,以在特定网络接口的规则链末尾添加规则。但需要注意的是,-A 和 -i 本身在功能和用途上是不同的。

清空表中所有规则:

iptables -L 清空所有

iptables -t (需要清空的表)-L 清空指定表的所有

显示创建的链

iptables -L INPUT --line-number 命令用于列出  INPUT 链中的所有规则,并显示每条规则的行号。

iptables中的链(Chains)是用于处理数据包的不同阶段或方向的规则集合。以下是对iptables中各个链的详细解释,包括它们的使用场合和目的:

  1. INPUT链:
    • 使用场合:当数据包从网络接口进入主机时,会经过INPUT链。
    • 目的:控制进入主机的数据包。例如,你可以设置规则来允许或拒绝特定的IP地址、端口或协议的数据包进入。
  1. OUTPUT链:
    • 使用场合:当数据包从主机通过网络接口发送出去时,会经过OUTPUT链。
    • 目的:控制从主机发出的数据包。例如,你可以设置规则来限制哪些应用程序或服务可以发送数据包,或者修改数据包的内容。
  1. FORWARD链:
    • 使用场合:当数据包在主机上被路由,从一个网络接口转发到另一个网络接口时,会经过FORWARD链。这通常发生在主机作为路由器或网关时。
    • 目的:控制数据包在主机上的转发。例如,你可以设置规则来决定哪些数据包应该被转发,哪些应该被丢弃。
  1. PREROUTING链:
    • 使用场合:在路由决策之前,数据包会首先经过PREROUTING链。这意味着在数据包被确定目的地之前,你可以对其进行处理。
    • 目的:在路由之前修改数据包。例如,你可以使用PREROUTING链来实施DNAT(目标地址转换),将数据包的目标地址更改为其他地址。
  1. POSTROUTING链:
    • 使用场合:在数据包通过路由决策并确定输出网络接口后,但在数据包被发送出去之前,会经过POSTROUTING链。
    • 目的:在数据包离开主机之前对其进行修改。例如,你可以使用POSTROUTING链来实施SNAT(源地址转换),修改数据包的源地址。

归纳:

  • INPUT 和 OUTPUT 链主要用于控制进入和离开主机的数据包。
  • FORWARD 链用于控制主机上的数据包转发。
  • PREROUTING 和 POSTROUTING 链则用于在路由决策之前和之后修改数据包。

iptables的这些链允许你实现精细的网络流量控制,从简单的允许/拒绝规则到复杂的地址转换和数据包修改。通过结合使用这些链和iptables的其他功能,你可以创建出适应各种网络环境和需求的防火墙规则集。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值