快排工具

怎么通过nginx禁止ip或ip段访问网站服务器

作为seoer的一员,做网站是第一步,做完网站就要做网站关键词排名,当我们满心欢喜的把网站排名做起来,被同行一顿攻击,轻点网站排名全掉光,重则服务器崩溃,导致网站无法打开,这个时候,我们就需要对网站进行安全策略配置,接下来快排小灵通就来为大家总结一下!

怎么通过nginx禁止ip或ip段访问网站服务器

一、没有遇到DDOS攻击时的安全策略

我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了。下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时 候生效最关键的一点是,在server的设置里面添加这一行:

listen 80 default;
后面的default参数表示这个是默认虚拟主机。

Nginx 禁止IP访问这个设置非常有用。比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。就可以这样设置:
server {
listen 80 default;
return 500;
}
也可以把这些流量收集起来,导入到自己的网站,只要做以下跳转设置就可以:
server {
listen 80 default;
rewrite ^(.*) http://www.kpxlt.com permanent;
}
按照如上设置后,确实不能通过IP访问服务器了,但是在该应用中出现当server_name后跟多个域名时,其中一个域名怎么都无法访问,设置如下:
server {
listen 80;
server_name www.kpxlt.com kpxlt.com
}
没更改之前,通过server_name 中的www.kpxlt.com zhezi.com均可访问服务器,加入Nginx 禁止IP访问的设置后,通过kpxlt.com无法访问服务器了,www.kpxlt.com可以访问,用 Nginx -t 检测配置文件会提示warning:
[warn]: conflicting server name “kpxlt.com” on 0.0.0.0:80,
ignored
the configuration file /usr/local/Nginx/conf/
Nginx.conf syntax is ok
configuration file /usr/local/Nginx/conf/Nginx.
conf test is successful
最后通过在listen 80 default;后再加server_name _;解决,形式如下:

#禁止IP访问
server {
listen 80 default;
server_name _;
server_name www.kpxlt.com kpxlt.com
return 500;
}
这样,通过zhezi.com就能访问服务器了。

 

二、在遇到DDOS攻击时的安全策略

首先建立下面的配置文件放在nginx的conf目录下面,命名为denyip.conf(名字可以随便起) ,内容格式如下:
deny ip地址;

在nginx的配置文件nginx.conf中加入:include denyip.conf;
#cd /usr/local/nginx/conf/
#vim denyip.conf
deny 192.168.1.241;
按esc键推出编辑模式,输入:wq保存退出
#vim nginx.conf
在最后一个}上面增加如下内容
include denyip.conf;
以上方法是针对这台服务器所有的项目生效,如果只想限制某个项目,可以把include denyip.conf放到响应的server模块的root参数下面即可。
# /usr/local/nginx/sbin/nginx -t //校验nginx配置文件是否正确
#/usr/local/nginx/sbin/nginx -s reload //重启一下nginx的服务就可以生效了。
denyip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问:
deny IP; //禁止ip
allow IP; //允许ip

#deny all ips
deny all; //禁止所有ip
#allow all ips
allow all; //允许所有ip,在默认情况下(不增加denyip.conf),默认是允许所有ip连接的
网段:
其中网段的写法是这样的:192.168.1.0/24这样的形式。
deny 192.168.1.11; //单个ip
deny 192.168.1.123;//单个ip
deny 10.0.1.0/24;//网段

如果你想实现这样的应用,除了几个IP外,其他全部拒绝,那需要你在ip.balcklist中这样写:
allow 1.1.1.1; //允许
allow 1.1.1.2;//允许
deny all; //禁止所有
单独网站屏闭单IP的方法:
在server”{}”在这个大括号内加入:
deny IP地址是限制某IP地址访问;
allow IP地址是只允许某IP地址访问;

屏蔽单个IP的命令是:deny 123.45.6.7
封整个段即从123.0.0.1到123.255.255.254的命令:deny 123.0.0.0/8
封IP段即从123.45.0.1到123.45.255.254的命令:deny 124.45.0.0/16
封IP段即从123.45.6.1到123.45.6.254的命令是:deny 123.45.6.0/24

本网站部分素材来源网络,如有侵犯,请联系删除!作者:wesipy,如若转载,请注明出处:http://www.kpxlt.com/archives/35294