penglongli / blog

18 stars 1 forks source link

ipset 与 iptables 自定义链 #132

Open penglongli opened 3 years ago

penglongli commented 3 years ago

ipset

使用如下命令创建一个 ipset 集合

ipset create test-set hash:ip

# 如上命令创建了一个 hash:ip 类型的 IPSet

然后使用如下命令添加一条记录

ipset add test-set 192.168.165.65

iptables

如下命令创建一条自定义链 test-reject:

iptables -t filter -N test-reject

使用这条命令与 filter 表的 INPUT 链建立关联关系

iptables -t filter -A INPUT -j test-reject

在建立关联关系后,test-reject 相当于一条子链挂到了 INPUT 上边。 添加具体规则:

iptables -t filter -A test-reject -m set --match-set test-set src -j DROP

# 为 filter 表的 test-reject 链增加一条规则:DROP 掉所有 src 为 test-set 的流量

删除此规则:

iptables -t filter -D test-reject -m set --match-set test-set src -j DROP

# -A 是 append,-D 是 delete

参考文档:https://sleeplessbeastie.eu/2018/06/21/how-to-create-iptables-firewall-using-custom-chains/