IT学习网 - 爱学习 - 最具影响力综合资讯网站 -- 中国IT界的领航者!
热门关键字:      88888  as  xxx
站外
广告
站外
广告

NGINX安全配置和限制访问

发布时间:2017-08-11 15:21文章来源:互联网文章作者: 佚名点击次数:
说起网络攻击,可能很多人只知道大名鼎鼎的DDOS攻击,这种攻击廉价且效果出众,直接通过第四层网络协议用他的带宽把你的带宽顶掉,造成网路阻塞,防不胜防,就连腾讯这种大鳄公司也被大流量DDOS搞过焦头烂额。暂时的解决方法只有三种,第一种就是你的带宽足

说起网络攻击,可能很多人只知道大名鼎鼎的DDOS攻击,这种攻击廉价且效果出众,直接通过第四层网络协议用他的带宽把你的带宽顶掉,造成网路阻塞,防不胜防,就连腾讯这种大鳄公司也被大流量DDOS搞过焦头烂额。暂时的解决方法只有三种,第一种就是你的带宽足够大,无视这些网络流量。第二种是个别有技术的大牛公司(阿里),开发出流量清洗服务,把垃圾网络包过滤掉,不过同时也会影响正常的网络包,增加延时。第三种就是换ip了(废话)。

不过还有一种网络攻击其实比起DDOS更频繁出现,就是CC(Challenge Collapsar)攻击,一般来说是利用网站代码漏洞,不停地发大量数据包请求,造成对方服务器回应这些请求导致资源耗尽,一直到宕机崩溃。这种攻击属于第七层的网络协议,一方面在服务器层面是正常的请求,所以这种情况想根本解决问题,只能从代码入手。但是另一方面,也就可以用其他来限制他访问,例如nginx的配置上也是能稍微防一下。

nginx基本安全配置

先说一些基本安全设置,由开始发展到现在,其实nginx的安全做得比以前已经好不少,不过有些还是要强调一下。

Nginx默认是不允许列出整个目录的,不过,我们为了安全,最好还是确认这个真的关闭了,不然代码被拉走了就悲剧了。

http {

autoindex off;

}

nginx默认是会在返回的数据包中显示版本号,原本这个并不是大问题,但是被别有用心的人专门攻击这个版本的话,那就不好了,所以,我们还是隐藏好一点。

http {

server_tokens off;

}

毫无疑问,nginx是可以做访问限制的,allow就是允许访问的ip和ip段,deny就是禁止访问的ip和ip段,不过这个需要看你网站的需求,现在满天飞的家用宽带IP,谁敢说IP一直是那一个。

#设置网站根目录的访问权限

location / {

allow 192.168.1.1/24;

allow 120.76.147.159;

deny 119.23.19.240;

deny 192.168.3.1/24;

deny all;

}

所以,我们再细化一点,限制访问个别目录或文件后缀名。

#在访问uploads、images目录时,访问php|php5|jsp后缀的文件会返回403代码,也就是不给执行代码了

location ~ ^/(uploads|images)/.*\.(php|php5|jsp)$ {

allow 192.168.1.1/24;

return 403;

}

#禁止访问所有目录下的sql|log|txt|jar|war|sh|py后缀的文件,这些是什么文件就不详细说了。

location ~.*\.(sql|log|txt|jar|war|sh|py) {

deny all;

}

#如果想用户体验好一点,可以建立一个报错页面,然后让这个页面跳转到其他页面

error_page 403 http://www.example.com/errorfile/404.html;

再高级一点,判断特定条件,然后拒绝服务

#判断当http_user_agent返回的结果中包含UNAVAILABLE关键字,则返回403错误。

location / {

if ($http_user_agent ~ UNAVAILABLE) {

return 403;

}

}

再次强调,这些要跟网站实际情况相结合,要不然影响范围被扩大,造成一些莫名其妙的事,那可不是好事,不过一般403都是自己控制,比较好判断,所以最好别直接deny all。

nginx高级安全配置

访问权限控制:

想更精准控制访问权限,其实还有auth_basic指令,用户必须输入有效的用户名和密码才能访问站点。而用户名和密码应该列在 auth_basic_user_file指令设置的文件中。

server {

...

auth_basic "closed website";

auth_basic_user_file conf/htpasswd;

}

auth_basic的off参数可以取消验证,比如对于一些公共资源,则可以取消验证。

server {

...

auth_basic "closed website";
NGINX安全配置和限制访问
本文由 IT学习网 整理,转载请注明“转自IT学习网”,并附上链接。
原文链接:http://www.ourlove520.com/Article/diannao/wangluo/1040068.html

标签分类:

上一篇:上一篇:来无影去无踪:无文件恶意软件的危害
下一篇: 下一篇:没有了
无觅关联推荐,快速提升流量