温馨提示×

centos7 iptables能设置时间段吗

小樊
81
2025-01-01 02:21:36
栏目: 智能运维

在 CentOS 7 中,iptables 本身不支持直接设置时间段

以下是一个使用 iptablescron 实现时间段限制的示例:

  1. 首先,创建一个脚本文件,例如 /usr/local/bin/iptables_time_based.sh,并添加以下内容:
#!/bin/bash

# 设置时间段,例如:工作时间为周一至周五的 9:00 到 18:00
WORK_START="09:00"
WORK_END="18:00"

# 获取当前时间
CURRENT_TIME=$(date +"%H:%M")

# 检查当前时间是否在工作时间内
if [[ "$CURRENT_TIME" >= "$WORK_START" ]] && [[ "$CURRENT_TIME" <= "$WORK_END" ]]; then
    # 在工作时间内,允许流量
    iptables -A INPUT -j ACCEPT
else
    # 在工作时间外,拒绝流量
    iptables -A INPUT -j DROP
fi
  1. 为脚本文件添加可执行权限:
chmod +x /usr/local/bin/iptables_time_based.sh
  1. 创建一个 cron 任务来定期运行脚本。首先,打开 crontab 配置文件:
crontab -e
  1. crontab 文件中,添加一行以设置定时任务。例如,每天运行一次脚本:
0 * * * * /usr/local/bin/iptables_time_based.sh

这将使得脚本每天凌晨 0 点执行一次,根据当前时间允许或拒绝流量。

注意:这个示例仅适用于 CentOS 7。在其他版本的 CentOS 或类似的 Linux 发行版上,步骤可能略有不同。

0