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)
热舞的头像热舞
ad取消drc报错怎么办?如何解决ad取消drc报错问题?
上一篇 2025-10-01 07:39
win7系统安装office2010失败怎么办?解决方法有哪些?
下一篇 2025-10-01 07:45

相关推荐

  • Windows系统怎么装CentOS7详细步骤?

    在现有的 Windows 操作系统上安装 CentOS 7,实现双系统共存,是许多开发者和系统管理员进行学习和测试的常见需求,这个过程虽然不复杂,但需要细心操作,特别是在磁盘分区环节,以下将详细介绍整个流程,帮助您顺利完成安装,准备工作:万丈高楼平地起在开始任何系统安装之前,充分的准备是确保成功的关键,这一步能……

    2025-10-09
    006
  • CentOS 7时间同步,究竟该启动ntpd还是chrony服务?

    在服务器管理和运维中,确保系统时间的准确性至关重要,它不仅影响到日志记录的可靠性,还是许多分布式应用、认证服务和数据库正常工作的基础,在 CentOS 7 系统中,网络时间协议(NTP)的实现与以往版本有所不同,默认采用了更为现代和高效的 chronyd 服务来替代传统的 ntpd,本文将详细介绍如何在 Cen……

    2025-10-25
    0018
  • 服务器cdn加速收费_CDN加速ECS资源

    服务器CDN加速收费,提升网站访问速度与稳定性。通过CDN加速ECS资源,降低延迟,优化用户体验。价格合理,助力业务发展。

    2024-07-10
    0011
  • CentOS 7 minimal版本如何一步步安装X Window System?

    在服务器管理领域,CentOS 以其稳定性和可靠性而闻名,通常以命令行界面(CLI)的形式运行,以最大限度地减少资源消耗,在某些特定场景下,例如运行需要图形界面的应用程序、进行系统管理的可视化操作,或者为了方便不熟悉命令行的用户,在 CentOS 上安装图形化界面(X Window System)是一个合理的选……

    2025-10-10
    0026

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信