Shell脚本防攻击的方法与实例
遭遇CC攻击,服务器负载飙升
某个深夜,nagios的警报声打破了寂静,我意识到我们的网站正在遭受CC攻击。服务器的负载一度飙升至40+,网站访问速度变得异常缓慢。我知道,如果不迅速采取行动,后果将不堪设想。
我立刻查看了nginx的访问日志,发现大量的异常访问请求。这些请求的状态似乎都相同,每个攻击者的IP后都带有"HTTP/1.1 "499 0 "-" "Opera/9.02"的标识。我迅速手动封锁了一些明显的攻击源IP。
攻击者似乎无穷无尽,新的IP不断涌现。我意识到,必须出绝招。于是,我编写了一个shell脚本,任何尝试攻击的IP都会被自动封锁。
脚本的核心逻辑如下:
1. 每隔一段时间(例如1秒),检查最近的访问日志,寻找带有特定标识的异常请求。
2. 提取这些请求的源IP,并进行排序和去重。
3. 对于每一个新的IP,检查是否已经在防火墙规则中被封锁。如果没有,则立即将其封锁,并将其写入一个记录已封锁IP的文件中。
运行脚本后,服务器的负载逐渐降低,脚本也在不断地封锁那些CC攻击的IP。看着负载逐渐降至正常,我松了一口气,终于可以安心睡觉了。
让我们来详细一下这个脚本:
建立一个名为"all"的文件,用于记录已经被封锁的IP。
脚本的主要循环将持续一段时间(例如到早上9点),每隔一段时间检查一次日志。
使用一系列命令从访问日志中提取异常请求的源IP。
如果某个IP是新的(即未在"all"文件中),则使用iptables命令将其封锁,并将其写入"all"文件。
这个脚本简单而有效,对于应对CC攻击非常有帮助。在编写和运行过程中,我参考了许多网络安全的最佳实践,确保脚本的稳定性和安全性。现在,我可以安心地睡觉了,知道服务器已经得到了保护。这个经历也让我更加深刻地认识到网络安全的重要性,以及编写有效脚本的价值。
网站源码
- Shell脚本防攻击的方法与实例
- 如何创建本地连接 创建本地连接的方法
- html让局部强制出现滚动条不破坏整体的样式和布
- 徕卡发布新一代M系列相机M10-纯德味样张惊艳
- cdr简单制作一个牌匾
- 3ds max怎么设计带有铜钱的花纹图案-
- 给无线路由器散热的N种方法分享
- css 书写技巧 CSS 技巧教程
- CSS hover不起作用的原因
- xml语法详解
- Win10预览版1909 KB4535996累积补丁今日更新 更新内
- 如何用输入法打出你不认识的汉字实例讲解
- win10录屏快捷键操作方法 win10自带录屏软件使用教
- 微软公布Win10正式版服务生命周期为十年-2025年结
- cdr2018怎么绘制打开的雨伞- cdr雨伞平面图的画法
- 纯CSS实现隐藏滚动条但仍具有滚动的效果(移动