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

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

 

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

一、下载源码编译

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

centos首先需要安装OpenSSLlibpcre两个开发库

yum install openssl openssl-devel

yum install -y pcre pcre-devel

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

二、配置

打开config.cfg文件,通常是hihttps前端运行443https)端口,后端反向代理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这个关键字,同一IP10秒内超过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安全相当重要,如果不是开源的产品,千万不能随便安装。

猜你喜欢

转载自www.cnblogs.com/hihttps/p/11648338.html