centos7 ipset怎么用?配置黑名单白名单的详细步骤是什么?

在CentOS 7系统中,ipset是一个非常强大的工具,用于高效管理IP地址集合,特别适合需要处理大量IP规则的场景,如防火墙规则优化、DDoS防护等,与传统的iptables规则相比,ipset通过将IP地址或端口等信息存储在集合中,显著提升了规则匹配的效率,尤其适用于需要频繁添加、删除或查询大量IP地址的场景。

centos7 ipset怎么用?配置黑名单白名单的详细步骤是什么?

ipset的安装与基本使用

在CentOS 7中,ipset通常需要手动安装,可以通过以下命令安装:

sudo yum install ipset -y

安装完成后,可以通过ipset --help查看帮助信息,或使用ipset list查看当前已定义的集合。

创建ipset集合

创建ipset集合的基本语法为:

sudo ipset create <集合名> <集合类型>

常见的集合类型包括:

  • hash:ip:存储IP地址或IP段。
  • hash:net:存储CIDR格式的网络段。
  • hash:port:存储端口号。
  • set:存储任意元素的集合。

创建一个存储IP地址的集合:

sudo ipset create blacklist hash:ip

添加与删除元素

向集合中添加IP地址:

sudo ipset add blacklist 192.168.1.100

删除集合中的元素:

sudo ipset del blacklist 192.168.1.100

保存与加载ipset规则

ipset的规则在重启后会丢失,因此需要手动保存或配置为开机自动加载,保存当前规则:

sudo ipset save > /etc/ipset.conf

加载规则:

sudo ipset restore < /etc/ipset.conf

可以通过以下命令将ipset规则设置为开机自动加载:

centos7 ipset怎么用?配置黑名单白名单的详细步骤是什么?

echo "ipset restore < /etc/ipset.conf" | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local

ipset与iptables的结合使用

ipset的真正威力在于与iptables的结合,通过iptables规则引用ipset集合,可以实现高效的流量过滤,以下是一些常见应用场景:

封禁IP地址

假设有一个名为blacklist的ipset集合,可以通过以下iptables规则封禁集合中的所有IP:

sudo iptables -I INPUT -m set --match-set blacklist src -j DROP

--match-set blacklist src表示匹配源IP地址在blacklist集合中的数据包。

封禁IP段

使用hash:net类型存储IP段,

sudo ipset create blocknets hash:net
sudo ipset add blocknets 10.0.0.0/24

然后通过iptables规则封禁该网段:

sudo iptables -I INPUT -m set --match-set blocknets src -j DROP

端口访问控制

使用hash:port类型存储端口,例如限制访问特定端口的IP:

sudo ipset create allowed_ports hash:port
sudo ipset add allowed_ports tcp:80
sudo ipset add allowed_ports udp:53

通过iptables规则允许访问这些端口的IP:

sudo iptables -I INPUT -p tcp --dport 80 -m set --match-set allowed_ports dst -j ACCEPT
sudo iptables -I INPUT -p udp --dport 53 -m set --match-set allowed_ports dst -j ACCEPT

ipset的高级应用

动态更新集合

结合脚本实现动态更新集合,通过日志分析自动封禁恶意IP:

sudo tail -f /var/log/secure | grep "Failed password" | awk '{print $(NF-3)}' | sort -u | while read ip; do
    sudo ipset add blacklist $ip
done

集合的临时性与持久性

ipset集合默认是临时的,重启后会丢失,可以通过-exist选项避免重复添加错误:

sudo ipset add blacklist 192.168.1.100 -exist

集合的查看与清空

查看集合中的元素:

centos7 ipset怎么用?配置黑名单白名单的详细步骤是什么?

sudo ipset list blacklist

清空集合中的所有元素:

sudo ipset flush blacklist

删除整个集合:

sudo ipset destroy blacklist

ipset的性能优势

与直接使用iptables规则相比,ipset在处理大量IP时具有显著优势,以下是两者的性能对比:

场景 iptables规则数量 ipset集合大小 匹配效率
封禁1000个IP 1000条规则 1个集合
封禁100个网段 100条规则 1个集合
端口访问控制 多条规则 1个集合

从表中可以看出,ipset通过将大量IP或规则存储在集合中,显著减少了iptables规则的复杂度,从而提升了匹配效率。

常见问题与解决方案

ipset集合无法被iptables规则匹配

问题:添加了ipset集合并配置了iptables规则,但规则未生效。
解决方案

  • 检查ipset集合是否为空:sudo ipset list <集合名>
  • 确认iptables规则语法正确,特别是--match-set参数的拼写。
  • 确保iptables模块已加载:sudo modprobe ip_set_hash_ip

重启后ipset规则丢失

问题:重启CentOS 7后,ipset集合未恢复。
解决方案

  • 确保已保存规则:sudo ipset save > /etc/ipset.conf
  • 检查/etc/rc.local文件是否包含加载规则的命令,并赋予执行权限。
  • 对于systemd系统,可通过创建ipset.service实现开机自动加载。

FAQs

Q1: 如何在CentOS 7中查看ipset集合的详细信息?
A1: 使用sudo ipset list <集合名>命令可以查看指定集合的详细信息,包括集合类型、元素数量和具体元素,若需查看所有集合,可使用sudo ipset list

Q2: ipset是否支持IPv6地址?
A2: 是的,ipset支持IPv6,创建集合时需指定hash:ip family inet6类型,

sudo ipset create ipv6_blacklist hash:ip family inet6

然后通过iptables的-6参数或直接配置ip6tables规则进行匹配。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-01 07:39
下一篇 2025-10-01 07:45

相关推荐

  • CentOS和Linux到底有何不同,它到底算不算Linux?

    在信息技术领域,尤其是在服务器和系统管理的圈子里,一个常见的问题常常被提起:“CentOS Linux 吗?” 这个问题的答案看似简单,实则蕴含了对操作系统生态系统的深刻理解,简单地回答“是”或“否”都过于片面,更准确的描述是:CentOS 是 Linux,但 Linux 远不止是 CentOS,要理清这层关系……

    2025-10-06
    008
  • CentOS 7 NFS客户端访问挂载目录权限被拒绝,该如何解决?

    网络文件系统(NFS)作为一种经典的分布式文件系统协议,在Linux和Unix环境中被广泛用于在网络上共享目录和文件,在CentOS 7中配置和管理NFS服务时,权限问题是管理员最常遇到的核心挑战,NFS的权限控制并非单一环节,它涉及到服务器端的导出策略、客户端的挂载选项,以及两端系统用户ID(UID)和组ID……

    2025-10-10
    0035
  • CentOS运维手册,新手如何快速上手系统管理?

    CentOS运维手册系统初始化配置网络基础设置CentOS网络配置文件位于/etc/sysconfig/network-scripts/ifcfg-eth0(需根据实际网卡名称调整),关键参数如下:参数说明示例值BOOTPROTO启动协议staticIPADDR静态IP地址168.1.100NETMASK子网掩……

    2025-10-22
    0024
  • CentOS7的root密码忘记了该如何进行重置?

    在CentOS 7系统中,密码是保障系统安全的第一道,也是最重要的一道防线,无论是本地登录还是远程SSH访问,一个强健且管理得当的密码策略能够有效抵御未经授权的访问和暴力破解,本文将系统性地介绍CentOS 7中密码的日常管理、应急重置、安全策略配置以及更高级的认证方式,旨在为系统管理员提供一份全面、实用的参考……

    2025-10-20
    008

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信