上次那篇博文接上次企业邮箱过滤恶意hacker入侵分析,添加BAN名单至邮件服务器的BAN 配置文件,但是Hacker并没有停止攻击,他依然还是能访问服务器,造成Ports大量占用,特别是get_ddos_sessionid = re.findall('[ ]+(.+?)[ ]+This IP frequency too high', thist_line) # 识别DDos攻击 这个邮件系统没办法处理的。
以往的博文:【Python自动化运维】分析企业邮箱日志文件,辨识黑客行为并添加至BAN配置文件
https://blog.csdn.net/haofeng110/article/details/103422618
要彻底杜绝这样的攻击行为,我们可以从本地软体防火墙处理,如果有能力可以链接硬件防火墙处理高防。
本文主要以Windows环境下使用其自带的Windows防火墙做BAN名单,下面是相关代码,其它调用方法请自行补全:
def write_bats_firewall(final_black_list):
list = set(final_black_list)
liststr = ",".join(list)
#pass
cmd1 = 'netsh advfirewall firewall del rule name="BANIPS"'
cmd2 ='netsh advfirewall firewall add rule name="BANIPS" protocol=any dir=in action=block remoteip=%s'%(liststr)
run_cmd(cmd1)
return run_cmd(cmd2)
def run_cmd(cmd):
popen = subprocess.Popen(cmd, stdout=subprocess.PIPE)
lines = popen.stdout.readlines()
return ([line.decode('gbk') for line in lines])
def remove_localip_config(iplist):
#本方法用来忽略或者删除本地局域网ip,地址范围为10.10.10.1-10.10.19.254
ips = iplist
pass
def localip(ips):
ips = int(ips.replace(".",""))
if ips >1010101 and ips < 101019254:
return True
else:
return False
pass
下面是改好后的程序运行效果,直接将数据添加至入站规则阻止外部源地址了。Hacker是无法直接进来了,除非他再次更换IP,这样的代价较高,时间成本也高。