当前位置: 首页 > 科技观察

如何使用PoW-Shield防御DDoS和垃圾邮件攻击

时间:2023-03-14 00:59:02 科技观察

关于PoW-ShieldPoW-Shield是一款强大的网络安全防御工具,可以帮助研究人员和用户抵御DDoS攻击和垃圾邮件攻击。此外,PoW-Shield还具备Web应用防火墙功能,并提供Docker镜像,方便快速轻量部署。PoW-Shield可以充当代理并利用后端服务和最终用户之间的工作量证明,在OSI应用程序层提供DDoS保护。该项目旨在提供一种替代常见验证码方法的方法,例如谷歌的ReCaptcha,这一直是社区的头疼问题。访问受PoW-Shield保护的Web服务也非常简单,只需打开浏览器并填写目标站点的URL,浏览器就会自动为我们完成剩下的安全验证。PoW-Shield旨在通过单个Web应用程序或Docker镜像提供以下服务:工作量证明访问频率限制和IP黑名单Web应用程序防火墙功能介绍Web服务结构代理功能PoW实现Docker部署IP黑名单功能访问频率限制单元测试Web应用防火墙实现多实例同步(Redis)工具下载&使用Node.js首先我们可以使用如下命令将项目源码克隆到本地:gitclonehttps://github.com/RuiSiang/PoW-Shield.git接下来安装工具需要的依赖组件:npminstall然后配置工具相关信息:cp-n.env.example.env#edit.envnano.env运行如下命令执行代码构建:npmrunbuild执行并同时启动数据库(推荐使用LightweightRedis):#installredisfirst#sudoapt-getinstallredis-servernpmstart执行但不启动数据库se:npmrunstart:standalone#linuxnpmrunstart:standalone-win#windows测试工具功能(可选):npmtestDocker(库)Docker运行Redis数据库:dockerrun-p3000:3000-eBACKEND_URL="http://example.com"-druisiang/pow-shieldDocker在没有数据库的情况下运行:dockerrun-p3000:3000-eBACKEND_URL="http://example.com"-eNODE_ENV="standalone"-druisiang/pow-shieldDocker-Compose首先我们需要使用下面的命令来配置docker-compose.example.yaml:cp-ndocker-compose.example.yamldocker-compose.yaml#editdocker-compose.yamlnanodocker-compose.yaml接下来,我们可以启动容器A:docker-composeup工具配置配置方法:nodejs:(例:.env.example)docker-compose:docker-compose.yaml(例:docker-compose.example.yaml)dockerrun:-e参数环境变量常用配置:PORT:要监听的端口,默认3000SESSION_KEY:cookie签名需要的keyBACKEND_URL:代理验证流量的目的地址,接受IP和URL数据库选项(Redis):DATABASE_HOST:Redis服务主机地址,默认值为127.0。0.1DATABASE_PORT:Redis服务端口,默认为6379DATABASE_PASSWORD:Redis服务密码,默认为空PoW选项:POW:是否开启PoW功能,默认开启(on)NONCE_VALIDITY:指定Nonce生成后多久发送到服务器之前,默认为60000INITIAL_DIFFICULTY:初始难度,生成的hash中前导0的位数,默认为13访问频率选项:RATE_LIMIT:是否开启频率限制,默认为on)RATE_LIMIT_SAMPLE_MINUTES:指定session/ip统计重置间隔的分钟数,默认为60RATE_LIMIT_SESSION_THRESHOLD:触发令牌撤销前单个session可以发送的请求数,默认为100RATE_LIMIT_BAN_IP:是否启用IP黑名单功能,默认开启(on)RATE_LIMIT_IP_THRESHOLD:指定地址被屏蔽前的session/ip发送的请求数,Morneville500RATE_LIMIT_BAN_MINUTES:IP地址封锁时间,默认15分钟WAF选项:WAFWAF_URL_EXCLUDE_RULES:是否开启web应用防火墙,默认开启(on)WAF_HEADER_EXCLUDE_RULES:扫描请求URL时引入附加规则requestbodyLicenseAgreement本项目的开发和发布遵循BSD3-Clause开源许可协议功能演示视频视频地址:https://you*tu.be/zeNKUDR7_Jc项目地址PoW-Shield:[GitHub传送门]