首页 技术教程建站经验正文

Nginx常用屏蔽规则,让网站更安全

这篇文章分享的有些许晚了,但是还是挺实用的。

在开始之前,希望您已经熟悉Nginx常用命令(如停止、重启等操作)及排查nginx错误日志,以免出现问题不知所措。如无特殊注明,以下的命令均添加到段内, 修改nginx配置之前务必做好备份,修改完毕后需要重载一次nginx,否则不会生效。

防止文件被下载

比如将网站数据库导出到站点根目录进行备份,很有可能也会被别人下载,从而导致数据丢失的风险。以下规则可以防止一些常规的文件被下载,可根据实际情况增减。

location~\.(zip|rar|sql|bak|gz|7z)${return444;}

屏蔽非常见蜘蛛(爬虫)

如果经常分析网站日志你会发现,一些奇怪的UA总是频繁的来访问网站,而这些UA对网站收录毫无意义,反而增加服务器压力,可以直接将其屏蔽。

if($http_user_agent~*(SemrushBot|python|MJ12bot|AhrefsBot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)){return444;}

禁止某个目录执行脚本

比如网站上传目录,通常存放的都是静态文件,如果因程序验证不严谨被上传木马程序,导致网站被黑。以下规则请根据自身情况改为您自己的目录,需要禁止的脚本后缀也可以自行添加。

#uploads|templets|data这些目录禁止执行PHP
location~*^/(uploads|templets|data)/.*.(php|php5)${return444;}

屏蔽某个IP或IP段

如果网站被恶意灌水或CC攻击,可从网站日志中分析特征IP,将其IP或IP段进行屏蔽。

#屏蔽192.168.5.23这个IP
deny192.168.5.23;
#屏蔽192.168.5.*这个段
denu192.168.5.0/24;

其它说明

再次强调, 修改nginx配置之前务必做好备份。

上面大部分规则返回状态码而不是,因为444状态码在nginx中有特殊含义。nginx的444状态是直接由服务器中断连接,不会向客户端再返回任何消息,比返回403更加暴力。若有不足还请补充和指正。

海报 分享

微信扫一扫:分享

Scan me!

微信里点“发现”,扫一下

二维码便可将本文分享至朋友圈。

资源分享 小白日志 各类教程

linux 如何禁止通过IP访问网站,只让用域名访问网站

要实现只用域名访问而不用IP访问,要看所使用的web服务器软件,以nginx为例,可以通过如下方法进行设置:1、用vim打开nginx的配置文件,一般为nginx/conf/2、在server的设置里面添加如下内容即可:#禁止IP访问server{listen 80 default;server_name _;return 500;}或者server {listen 80 dufault;server_name _;rewrite ^(.*) http:// 域名 permanent; }

nginx naxsi 模块

上周项目组的伙伴在灰度访问项目时,发现发送不了消息了。排查各个请求发现有请求被ng拦截了。

于是找到ng拦截日志,路径在ng配置的error日志中,默认在nginx根目录下的log目录下的

如下:

那么我们就知道这个日志表明:该uri请求违反了id=11的naxsi规则,被拦截了。那么id=11的规则是什么呢?让我们了解下naxsi定义的规则,配置在ng的http中规则文件:

5、匹配区域

那么 @MainRule msg:unknown content-type id:11; 就是请求违反的规则,不知名的内容类型。从浏览器此请求header看,它的content-type为text/plain.

对比生产其他ng配置,发现其在naxsi的白名单中放过了id11,故可正常运行。那么,我们再灰度环境配置中,增加此白名单即可解决。让我们来看看,如何配置naxsi的白名单。

其中wl 单独匹配放过某项规则,如:

mz:MATCHZONE 配合wl规则,制定对应匹配区域规则,区域包括: URL, ARGS, HEADERS, BODY.

示例:url为/foo 请求放过BODY请求中参数名中的规则1310,1311

备注:增加|NAME标示对应目标为参数名,而非参数值。

更多示例,可参考

屏蔽海外电话屏蔽海外DDOS

nginx怎么防止ddos攻击cc攻击等流量攻击?

网上也搜过好多方法大概是以下几种方法

1.添加防墙;(由于价格太贵放弃了)

2.更换域名,发现被攻击后,立刻解析到其他域名上,把被攻击的域名停止解析(由于需要人工操作,且dns解析与停止不是实时的需要时间)

3.在nginx中拦截cc攻击

最终讨论方法是在nginx中拦截

下面说一下原理

由ios,Android端写一个对称加密算法且吧时间戳也加密进去;作为user-agent来访问服务器的接口,然后在nginx中去解密这个user-agent来检验这个加密字符串是否合法或者是否过期;如果是合法的则去调用php-fpm运行程序,如果不合法则直接返回403;

那么问题了来了如何在nginx拦截cc攻击了,也就说如何在nginx中编程了,我一个php程序员肯定不会;这个时候需要引入一个lua控件;

单独安装lua插件太麻烦了,后来直接安装了openresty直接在openresty中编写lua脚本,成功防御了cc攻击

网站被攻击,如何查到是谁攻击的?

可以的针对网站的攻击基本上就是变异cc了DDOS也行但是CC的攻击的更适合网站。你看下拦截信息的ip攻击地址。然后收集起来批量渗透下只要随便入侵一台就可以查到黑客控制肉鸡的服务器然后举报或者报警就可以

DDOS攻击是什么?

DoS攻击、DDoS攻击和DRDoS攻击相信大家已经早有耳闻了吧!DoS是DenialofService的简写就是拒绝服务,而DDoS就是DistributedDenialofService的简写就是分布式拒绝服务,而DRDoS就是DistributedReflectionDenialofService的简写,这是分布反射式拒绝服务的意思

更多优质资源请微信扫码访问:盘姬资源网小程序


免责声明

本文仅代表作者观点,不代表本站立场,内容的真实性请自行甄别谨防上当受骗。

本站采用 CC BY-NC-SA 4.0 国际许可协议 进行许可,转载或引用本站文章应遵循相同协议。

  1. 本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

  2. 本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

  3. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。

  4. 如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。

站长邮箱:xm520vip@gmail.com

本文链接:https://123.775n.com/post-153.html

发表评论

评论列表(0人评论 , 145人围观)
☹还没有评论,来说两句吧...

会员中心

歆梦资源网(775n.com)-探索精品网络资源的宝藏之地

https://123.775n.com/

| 京ICP备100000000

Powered By 某某网络科技有限公司

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯