服务器按时间段提供服务

admin 2024年1月28日11:57:46评论20 views字数 2186阅读7分17秒阅读模式

医院的系统并非所有业务都是7x24小时不停对外提供服务的。特别是夜晚或凌晨,除了值班医生或窗口人员,大部分人是不访问系统的。映射到互联网上的业务更是如此,夜间时段对于服务器来说是威胁非常大的时段。

因为时差的原因,国外攻击IP在夜间段会非常活跃,大部分有效攻击都是发生在夜晚。即使发生因攻击导致的系统业务中断,因为使用人少也不会第一时间被发现。黑客有充裕时间扩大战果。

如果服务器夜间或非工作时间无人访问,可以通过写主机策略定时触发的方式关闭端口,等到了工作时间再开放端口。这样可以在不停业务服务进程的情况下,临时“断网”,预防夜间发生的网络入侵。

“断网”的面积也可以进行控制,比如只关停部分端口,或全部关停。网络防火墙也可以做到这一点,但影响面太大,一旦出现失误将引起大面积网络瘫痪。建议这种“断网”策略在主机层面做,不要在网络防火墙上做,即使出问题也只影响部分主机。

Linux 下可以基于 crond 服务实现定时触发,Windows 可以使用计划任务。当然也可以写一个轮询程序,到点触发相应动作。

Linux 下如果要实现 17:00 “断网”,08:00 恢复,可以如下写 crontab :

# crontab -l 0 17 * * * bash /root/firewall/deny.sh0  8 * * * bash /root/firewall/allow.sh

断网脚本 deny.sh 可以简化为:

#!/bin/bash
iptables -I INPUT 1 -s 10.2.2.2 -j ACCEPTiptables -I INPUT 2 -j DROP

恢复网络的脚本 allow.sh 为:

#!/bin/bash
iptables -D INPUT 2iptables -D INPUT 1

在写断网或恢复脚本时一定要把管理员IP放行,不然就无法通过网络管理服务器了。

为保证脚本多次执行可重入,可以写一些判断条件,如果 iptables 策略已存在则放弃写入或删除。

加了条件检查的 deny.sh 脚本为:

#!/bin/bash
tmpfile=`mktemp`
# 作为对照的 iptables 规则default_rule='/root/firewall/default.iptables'
# 添加 iptables 策略function deny{ iptables -I INPUT 1 -s 10.2.2.2 -j ACCEPT iptables -I INPUT 2 -j DROP}
# 清理临时文件function clean{ rm "$tmpfile"}

# 重复执行前的检查function redo{ iptables -nL INPUT | sed -n '3,4p' >$tmpfile diff "$tmpfile" "$default_rule" ret=$?
if [ $ret -eq 0 ]; then true else deny fi}

# 初次执行要创建对照文件if [ -e "$default_rule" ]; then redoelse deny parent_directory=$(dirname "$default_rule") mkdir -p "$parent_directory" iptables -nL INPUT | sed -n '3,4p' >"$default_rule"fi
clean

第一次执行 deny.sh 脚本时会生成对照文件,如果 iptables 中的规则存在,则不再写入。

同样在执行恢复脚本 allow.sh 时,也可以对已有的规则进行验证,如果规则存在则删除,否则跳过。修改过的 allow.sh 脚本如下:

#!/bin/bash
tmpfile=`mktemp`
# 作为对照的 iptables 规则default_rule='/root/firewall/default.iptables'
# 删除 iptables 策略function recover{ iptables -D INPUT 2 iptables -D INPUT 1}
function clean{ rm "$tmpfile"}
# 重复执行前的检查function redo{ iptables -nL INPUT | sed -n '3,4p' >$tmpfile diff "$tmpfile" "$default_rule" >/dev/null 2>&1 ret=$?
if [ $ret -eq 0 ]; then recover else true fi}# 初次执行要创建对照文件if [ -e "$default_rule" ]; then redoelse truefi
clean

脚本初次执行可以使用 bash -x deny.sh 检查每一条命令的执行结果,当验证无误后再写入 crontab 定时任务。

Windows 无法像 Linux 一样灵活配置防火墙策略顺序,只能使用防火墙策略导入导出的方式来定义阻断或放行策略。可以提前将预定义的策略写好,导出后作为备用。在不同时间段触发加载不同的防火墙策略。

Widnows 防火墙常用操作:

导出配置:

netsh advfirewall export "d:a.wfw"

导入配置:

netsh advfirewall import "d:a.wfw"

删除所有入出站配置:

netsh advfirewall firewall delete rule name=all
已删除 12 规则。确定。

全文完。

如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

       

原文始发于微信公众号(生有可恋):服务器按时间段提供服务

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月28日11:57:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   服务器按时间段提供服务http://cn-sec.com/archives/2439020.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息