关于使用firewalld禁止特定ip访问的方法,在我的另一篇文章中介绍了使用不同zone区进行过滤的方法,使用firewall-cmd仅允许某个ip访问主机指定端口_firewall-cmd 指定 ip 端口访问-优快云博客
这比直接编写ip规则更容易让人理解,但如果遇到需要对比较多ip进行限制,直接在source进行添加过于零乱,不便于管理。针对这种情况我们需要引用新的管理方法,即ipset.
ipset
是一种高效的数据结构,用于在Linux内核中存储和查找多个IP地址和端口信息,并且可以与firewalld等防火墙服务结合使用以实现更灵活、高效的IP过滤策略。
- ipset是一个内核模块,提供了一种集合(set)数据结构来处理网络流量的IP地址或端口。
- 它允许将一组IP地址或端口定义为一个集合,然后防火墙规则可以通过引用这个集合而不是逐个指定IP地址来提高效率。
所以,可以简单理解为ipset是个设置ip、port、mac、net等的集合,firewalld可以调用这些集合,根据集合进行规则过滤。
- 通过ip集合允许特定ip访问主机端口
# firewall-cmd --new-ipset=in-ip --type=hash:ip --permanent
(添加ipset集合,类型是ip集合,这里必需加--permanent永久写入,请注意后面命令为了测试并没有用--permanent,添加后立