在 CentOS 7 中,iptables 本身不支持直接设置时间段
以下是一个使用 iptables
和 cron
实现时间段限制的示例:
/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
chmod +x /usr/local/bin/iptables_time_based.sh
cron
任务来定期运行脚本。首先,打开 crontab
配置文件:crontab -e
crontab
文件中,添加一行以设置定时任务。例如,每天运行一次脚本:0 * * * * /usr/local/bin/iptables_time_based.sh
这将使得脚本每天凌晨 0 点执行一次,根据当前时间允许或拒绝流量。
注意:这个示例仅适用于 CentOS 7。在其他版本的 CentOS 或类似的 Linux 发行版上,步骤可能略有不同。