Iptables

iptables 命令参数

Iptables参数

iptables 是从上到下匹配规则的链表,上面规则的优先级最高,所以可以使用 -I 参数加在头部。

也可以使用 -A 参数添加一个在尾部兜底的规则。

1
2
# INPUT规则链默认策略改为拒绝
iptables -P INPUT DROP
1
2
# INPUT规则链设置环回地址放行
iptables -I INPUT -i lo -j ACCEPT
1
2
# INPUT规则链删除第一个规则
iptables -D INPUT 1
1
2
# 永久保存当前的iptables规则
iptables-save

Firewalld

firewalld

Nftables

规则记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
chain input {
type filter hook input priority filter; policy drop; # 设置默认策略为拒绝所有入站流量

# 允许回环接口的流量
iif "lo" accept
# 允许已建立的或相关的连接
ct state established,related accept

# 允许IPv6的ICMP协议 以支持ipv6的网络正常工作
ip6 nexthdr icmpv6 accept
# 允许ICMP协议
ip protocol icmp accept

# 允许SSH端口的流量
tcp dport 22 accept


# 记录并丢弃所有其他入站流量
# log prefix "nftables input drop: " drop
}

chain forward {
type filter hook forward priority filter; policy drop; # 设置默认策略为拒绝所有转发流量
}

chain output {
type filter hook output priority filter; policy accept; # 设置默认策略为接受所有出站流量
}
}
1
nft -f /etc/nftables.conf
  1. table
    表(table)是 nftables 规则集的最高级别的组织单位。一个表可以包含多个链和规则。表的名字和协议族(如 inet)一起定义。

  2. chain
    链(chain)是表中的一个组件,用于组织具体的防火墙规则。链可以有不同的类型,定义在不同的钩子点。

  3. rule
    规则(rule)是链中的具体指令,定义了数据包在进入、转发或输出时的处理方式。

  4. hook
    钩子(hook)是指内核处理数据包的不同阶段。常见的钩子包括:

    input:处理进入系统的数据包。
    forward:处理被转发的数据包。
    output:处理系统发出的数据包。

  5. priority
    优先级(priority)决定了规则的应用顺序。优先级数值越小,规则越先匹配。

  6. policy
    策略(policy)是链的默认行为。常见的策略包括:

    accept:接受数据包。
    drop:丢弃数据包。

  7. flush ruleset
    清空规则集(flush ruleset)命令会清除当前加载的所有规则。这是为了确保加载新的规则集前没有遗留的规则干扰。

  8. iif 和 oif
    iif:输入接口(input interface),指定数据包进入的网络接口。
    oif:输出接口(output interface),指定数据包离开的网络接口。

  9. ct state
    连接追踪状态(connection tracking state),用于匹配数据包的连接状态。常见的状态包括:

    established:表示连接已经建立。
    related:表示与已建立的连接相关的数据包。

  10. icmp
    ICMP协议(Internet Control Message Protocol),用于网络设备间传递控制消息,如ping命令。

  11. tcp dport
    TCP目标端口(TCP destination port),指定数据包的目标端口号。

  12. log
    日志记录(log)指令用于记录匹配的数据包信息,通常用于调试和监控。可以使用 prefix 参数为日志添加前缀。

  13. inet
    inet协议族是指既支持IPv4也支持IPv6的数据包处理。