教你用免费的hihttps开源WEB应用防火墙阻止暴力破解密码

时间:2021-03-06 10:41:13

教你用免费的hihttps开源WEB应用防火墙阻止暴力破解密码

很多企业都有自己的网站,需要用户登录后才能访问,但有大量的黑客攻击软件可以暴力破解网站密码,即使破解不了也非常恶心。有没有免费的解决办法呢?天本文就是以centos 7服务器为例,教大家怎样用免费的hihttps开源WEB应用防火墙,来阻止黑客暴力破解网站密码。

一、下载源码编译

hihttps是一款完整源码的高性能SSL WEB应用防火墙( SSL WAF),采用epoll模式支持高并发,并且兼容ModSecurity正则规则。访问官网http://www.hihttps.com或者github上搜索hihttps,下载最新源码。

centos首先需要安装OpenSSL和libpcre两个开发库

yum install openssl openssl-devel

yum install -y pcre pcre-devel

然后解压源码到任意目录,直接make即可在当前目录生成可执行文件hihttps

二、配置

打开config.cfg文件,通常是hihttps前端运行443(https)端口,后端反向代理80端口。所以,如果你的WEB服务器已经占用了443端口,请停用或者修改为其他端口。如下设置即可:

# 前端SSL绑定的端口,默认443,注意不要冲突了

frontend = {

host = "*"

port = "443"

}

backend = "[127.0.0.1]:80"    # 后端默认反向连接80端口

#证书文件,建议设置绝对路径

pem-file = "server.pem"

三、规则加载

规则放在和hihttps同一级的rules目录即可,注意后缀是.conf或者.rule, 默认已经开启了DDOS & CC以及暴力破解密码防御规则,打开REQUEST-20-APPLICATION-CC-DDOS.conf这个文件,找到这条规则:

SecRule DDOS "@rx login" \

"id:20,\

phase:2,\

block,\

capture,\

t:none,t:urlDecodeUni,t:lowercase,\

msg:'LOGIN Brute Force Password test',\

logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',\

tag:'application-multi',\

tag:'language-php',\

tag:'platform-multi',\

tag:'attack-injection-php',\

tag:'OWASP_CRS/WEB_ATTACK/PHP_INJECTION',\

tag:'OWASP_TOP_10/A1',\

ctl:auditLogParts=+E,\

ver:'OWASP_CRS/3.1.0',\

severity:'CRITICAL',\

setvar:'ddos_burst_time_slice=10,ddos_counter_threshold=3,ddos_block_timeout=60',\

setvar:'tx.php_injection_score=+%{tx.critical_anomaly_score}',\

setvar:'tx.anomaly_score_pl1=+%{tx.critical_anomaly_score}',\

setvar:'tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/PHP_INJECTION-%{MATCHED_VAR_NAME}=%{tx.0}'"

上面规则基本含义是:任何url中正则匹配到了login这个关键字,同一IP在10秒内超过3次访问,认为是在暴力破解密码,直接*其IP地址60秒。因为正常用户在登录的时候,即使错误输入了密码,也不会在10秒内超过3次请求,如果要修改频率,直接改规则里面的时间即可:

setvar:'ddos_burst_time_slice=10,ddos_counter_threshold=3,ddos_block_timeout=60',

hihttps最厉害的是兼容owasp-modsecurity-core-rule攻击规则,更多的规则说明,请自行百度搜索相关教程。

四、运行

./hihttps直接运行即可,默认读取当前目录下的confg.cfg文件, 或者./hihttps --config /dir/config.cfg

如果成功打印加载了rules目录下的规则,代表运行成功。

五、 测试

浏览器连续刷下访问https://server_ip/login.html?testsql=delete * from test

如果hihttps产生了报警记录,则防御成功,再也没有人能暴力破解你网站密码了。

hihttps还有其他更强大的功能,在后续的文章里面再介绍。总之,服务器web安全相当重要,如果不是开源的产品,千万不能随便安装。