如何利用Iptables的Time模块实现非工作时段特定数据库端口闭合

千瑶同学_1982

千瑶同学_1982

2026-06-02

412人浏览

原创

可利用iptables time模块在非工作时段自动阻断外部对数据库端口(如3306、5432)的访问,无需停服务;需验证模块支持、设置本地放行与非工作时间DROP规则、处理跨天及周末场景,并持久化保存规则。

如何利用iptables的time模块实现非工作时段特定数据库端口闭合

可以利用 iptables 的 time 模块,在非工作时段自动阻断对特定数据库端口(如 MySQL 的 3306、PostgreSQL 的 5432)的外部访问,无需停服务,也不依赖应用层逻辑。

确认内核和iptables支持time模块

多数现代 Linux 发行版默认启用该模块,但需验证:

  • 运行 iptables -m time --help,若显示帮助信息说明已就绪
  • 检查内核是否加载:执行 zcat /proc/config.gz | grep CONFIG_IP_NF_MATCH_TIME(若存在 config.gz),或查看 /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/ipt_time.ko*
  • 若缺失,需重新编译内核或安装对应 kernel-modules-extra 包(如 CentOS/RHEL 执行 yum install kernel-modules-extra)

定义工作时段并设置DROP规则

假设工作时间为工作日 09:00–18:00,目标端口为 3306(MySQL),仅限制来自外网(非本地)的连接:

莓图AI
莓图AI

莓图AI是一款AI文本写作工具,专注于AI图片生成与视觉风格复刻的智能创作平台。

下载
  • 先放行本地访问(避免影响本机应用):
    iptables -A INPUT -s 127.0.0.1 -p tcp --dport 3306 -j ACCEPT
  • 再匹配非工作时间并丢弃远程连接:
    iptables -A INPUT -p tcp --dport 3306 ! -s 127.0.0.1 -m time ! --timestart 09:00 --timestop 18:00 --weekdays Mon,Tue,Wed,Thu,Fri -j DROP
  • 注意:! 表示“非”,--weekdays 列出工作日,! --timestart ... --timestop ... 组合即表示“不在该时间段内”

处理跨天与周末场景

若需支持 24 小时值班系统(如仅闭合周末+夜间),可拆分规则或使用多条件:

  • 例:周末全天 + 工作日 18:00–次日 09:00 闭合
    iptables -A INPUT -p tcp --dport 3306 ! -s 127.0.0.1 -m time --weekdays Sat,Sun -j DROP
    iptables -A INPUT -p tcp --dport 3306 ! -s 127.0.0.1 -m time --timestart 18:00 --timestop 09:00 --weekdays Mon,Tue,Wed,Thu,Fri -j DROP
  • 注意:跨天时间段(如 18:00–09:00)iptables 默认按“当日内”解析,因此需配合 --weekdays 明确范围,避免误判
  • 系统时间必须准确(建议启用 chronyd 或 ntpd 同步)

持久化与安全提醒

iptables 规则重启后失效,需保存并开机加载:

  • Debian/Ubuntu:iptables-save > /etc/iptables/rules.v4
  • RHEL/CentOS 7+:iptables-save > /etc/sysconfig/iptables,并确保 iptables-services 已启用
  • 务必测试规则逻辑:用 iptables -L INPUT -v -n 查看匹配计数;模拟非工作时间用 date -s "Sat 20:00:00"(测试后记得恢复系统时间)
  • 切勿直接在生产环境执行无备份的规则变更;建议先加 -C 检查是否存在重复规则,或用 -I 插入到链首便于快速回滚

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3192

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1056

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

949

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

494

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2916

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5472

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

847

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux网络安全之防火墙技术汇总
Linux网络安全之防火墙技术汇总

共31课时 | 4.2万人学习