站长头痛的事情,应该是服务器被DDos,DDos攻击后,网站出现service unavailable的错误。
服务器IIS日志都有1G多,HTTPERR日志几十G,把硬盘爆棚了。
HTTPERR是IIS访问错误的日志。 先关闭HTTPERR,运行里输入 regedit 进入注册表编辑器。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
在右边 点鼠标右键 新建dword值 EnableErrorLogging 重新启动服务器就可以了
"EnableErrorLogging"=dword:00000000
来看服务器日志。
对index.html 的静态页面也这么暴力。根据网站service unavailable判断,看来是基于负载形式的攻击模式, IP源头都是国内,那就没有伪处理。首先要区分开正常访问,和攻击的IP。先把网站停止,修改日志文件,让IIS重新生成一份攻击日志, 再来用VBS处理下处理攻击IP。 '代码开始
targeturl = "/index.html" '受攻击网站的URL地址。
logfilepath = "C:\WINDOWS\system32\LogFiles\W3SVC1\ex120526.log" '受攻击网站的日志路径。
On Error Resume Next
Set fileobj = CreateObject("scripting.filesystemobject")
Set fileobj2 = CreateObject("scripting.filesystemobject")
Set myfile = fileobj2.opentextfile(logfilepath, 1, False) Do While myfile.atendofstream <> True
myline = myfile.readline()
myline2 = Split(myline, " ")
newip = myline2(9)
myurl = myline2(5)
If targeturl = myurl Then
writelog newip
End If
Loop myfile.Close
Set fileobj2 = Nothing
Msgbox "结束." Sub writelog(errmes)
ipfilename = "ip.txt"
Set logfile = fileobj.opentextfile(ipfilename, 8, True)
logfile.writeline errmes
logfile.Close
Set logfile = Nothing
End Sub
'代码结束 生成 ip.txt 文件。用去除文本文件中重复行的程序,对IP进行过滤。这样过滤出来的IP,就是攻击IP了。
接下来用批处理控制ipseccmd写组策略批量屏蔽IP。 @sc config PolicyAgent start= AUTO
@net start PolicyAgent
@for /f %%i in (ip.txt) do (ipseccmd -w REG -p "DDosStop" -r "%%i" -f %%i/255.255.255.255=0/255.255.255.255:: -n BLOCK -x) 网站访问正常。 |