使用 Nginx 阻止恶意 IP 访问】的更多相关文章

找到具有明显特征的访问记录,比如: /Dec/::: +] "-" "Ouija_x.86/2.0" "-" 也许是某个开源框架的漏洞,执行参数上带的方法,达到下载指定文件然后执行的目的,由于危险性,所以 shell_exec 这类函数默认在 php.ini 是禁用的. 匹配特征找出不重复的 IP,写入文件: $ cat /data/nginx_xxx/access.log | grep shell_exec | awk '{print $1}'…
现在我们在布署好了一个网站,发布到外网后就意味着将会接受来自四面八方的黑客攻击,这个情况很常见,我们的网站基本上每天都要接受成千上万次的攻击,有SQL注入的.有代码注入的.有CC攻击等等...而我作为一个程序员出生的,其实对于服务器管理方面是懂得很少的,而公司现在基本上我就是站长,我必须什么都得弄,什么都得去学会.我们曾经也被攻击成功后,大量网页被注入代码,文件中也注入了大量的后门,为此公安局还找上门过,那个痛苦啊...自那以后,我明白我必须要去学一些关于服务器安全方面的东西了.后来我们找了一个…
nginx拒绝国外IP访问方法很多,比如iptables,geoip模块,域名解析等等.这些方法不会相互冲突,可以结合起来一起使用. 今天来教大家利用两个小方法解决  域名解析禁止掉海外IP访问网站. 域名解析方法: 绝大多数域名解析服务商都是提供电信联通移动海外线路区分解析的,所以我们可以充分利用这个功能,来禁止海外访问. 以阿里云DNS解析为例:       设置A记录类型       解析线路:境外       记录值:127.0.0.1 设置后等30分钟后我们再用ping工具测试下境外解…
来源 : http://www.ttlsa.com/nginx/nginx-deny-ip-access/   闲来无事,登陆服务器,发现有个IP不断的猜测路径.试图往服务器上传文件(木马).于是查看了之前的日志,无奈鄙站被攻击者盯上了,不断的有不同的IP试图上传木马.看来坏人还是有的.由于不想让鄙站沦为肉鸡,所以就想写个简单的脚本,来阻止攻击者的IP访问. 攻击者: 195.154.216.165 - - [28/Nov/2015:23:10:40 +0800] "POST /wp-conte…
思考了几种方案,最终考虑使用ip黑名单的方式: 处理方法: 一.nginx黑名单方式: 1.过滤日志访问API接口的IP,统计每10分钟调用超过100次的IP,直接丢进nginx的访问黑名单 2.具体步骤: 编写shell脚本: vim /shell/nginx_cutaccesslog.sh #!/bin/bash log_path=/xxx/nginx/logs date=`date -d "10 min ago" +%Y%m%d-%H:%M:%S` nginxpid=`cat $…
Nginx虚拟主机配置,vhosts下面有很多域名的配置: [root@external-lb01 vhosts]# pwd/data/nginx/conf/vhosts [root@external-lb01 vhosts]# ls443-bpm.veredholdings.com.conf 80-www.bigtreefinance.com.conf fax.bigtreefinance.com.conf443-www.bigtreefinance.com.conf 80-www.bigtr…
首先建立下面的配置文件放在nginx的conf目录下面,命名为blocksip.conf: deny 95.105.25.181; 保存一下. 在nginx的配置文件nginx.conf中加入:include blocksip.conf; 重启一下nginx的服务:/usr/local/nginx/sbin/nginx -s reload 就可以生效了. blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问: deny IP; allow IP; # block…
在nginx的访问日志中,会出现只显示IP,而不出现域名的情况,在经过尝试之后,是因为没有设置禁止IP访问导致的. 下面就是在配置文件中设置禁止IP访问,来实现日志文件中$host显示域名. vim /etc/nginx/nginx.conf server { listen 80 default; return 404; } nginx -t systemctl reload nginx 或者:nginx -s reload 查看日志.能够成功即可.…
在nginx.conf中的server限制段中.deny IP.表示需要限制该IP不可访问.allow IP表示权该IP可以访问. 如上图.表示阻止192.168.1.122的IP的访问.那当然也可以编辑成192.168.1.1/24网段.…
可能你想要在各种情形下阻止有人通过IP地址访问你的Linux系统.比如说,作为最终用户,你可能想要保护自己,避免已知的间谍软件或跟踪者的IP地址.或者如果你在运行P2P软件,可能想要把来自与违反P2P的活动有关的网络的连接过滤掉.如果你是名系统管理员,可能想要禁止发送垃圾邮件的IP地址访问你的生产环境邮件服务器.或者你可能因某个原因而希望阻止从某些国家访问网站服务器.不过在许多情况下,你的IP地址阻止列表可能迅速扩大到成千上万个IP地址或IP地址区段.那么你该如何应对这种情况? 在Linux上如…
最近公司做了一个砸金蛋的活动,经过几天的发酵宣传后,每天以几万的的用户数在增长,后面才发现原来有人专门为此开发了一个全自动注册的软件 一时间网站被刷得打开异常缓慢,查看日志发现大部分都是用软件在刷,于是想到了在nginx层面去限制用户访问,百度加上自身情况改了下,大致的配置信息如下: 在nginx的http中添加如下语句 http { limit_req_zone $binary_remote_addr zone=site_com:10m rate=2r/s; ..... } 设置一个限制区域,…
我们可以通过GeoIP模块和MaxMind免费数据库来实现.MaxMind具有新版本的数据库GeoLite2,它仅支持CSV和mmdb格式.可以支持mngx_http_geoip2_modulemdb格式,但是当我检查Nginx by时nginx -V,我发现它是使用编译的with-http-geoip_module=dynamic.因为我的nginx版本是低版本 检查geoip模块是否安装 nginx -V 下载GeoIP MaxMind GeoCity和GeoCountry数据库 我们可以从…
下面是我截取一段nginx日志 /Jan/::: +] "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" /Jan/::: +] "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" /Jan/:::…
server { listen 80 default_server; server_name localhost; location / { rewrite ^ http://www.xxx.com/?from-xxx; }}…
server { listen default_server; server_name _; server_name localhost; ; }…
if ($host ~* "\d+\.\d+\.\d+\.\d+"){ ; } 其实说白了, 就是进行host主机头过滤,使用正则来判断下.…
我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时 候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回50…
nginx配置location总结及rewrite规则写法 Nginx Location配置总结 Nginx 禁止某个IP访问 server { listen 443; root /webroot/; server_name serverName; access_log /data/log/nginx/access_web_domain.log main buffer=32k flush=5s; charset utf-8; client_max_body_size 200m; ssl on;…
前几天网站收到了一些CC攻击,比较郁闷...这里分享一下,防止网页自动刷新的方法以及阻止代理IP访问网站的方法,代码是分开的,两个功能,需要那个用那个,可以自定义时间间隔,这个代码不止可以防CC攻击,也可以防止各种东西 只要加入header就可以统统使用了,灰常给力,废话不多说了,直接上代码: <?php /** * @无作为 * www.wuzuowei.com */ //代理IP直接退出 empty($_SERVER['HTTP_VIA']) or exit('Access Denied')…
前段时间刚搭建好个人网站,一直没有关注一个问题,那就是IP地址也可以访问我的网站,今天就专门研究了一下nginx配置问题,争取把这个问题研究透彻. 1. nginx配置域名及禁止直接通过IP访问 先来看nginx的默认配置,ubuntu默认位置 /etc/nginx/sites-enabled . (注意:sites-enabled里的配置其实是软链接,链接到sites-available下的真实配置,这是nginx的一种最佳实践,希望我们在sites-available下修改配置,等修改好以后…
做过面向公网WEB的运维人员经常会遇见恶意扫描.拉取.注入等图谋不轨的行为,对于直接对外的WEB服务器,我们可以直接通过 iptables .Nginx 的deny指令或是程序来ban掉这些恶意请求. 而对于套了一层 CDN 或代理的网站,这些方法可能就失效了.尤其是个人网站,可能就一台VPS,然后套一个免费的CDN就行走在互联网了.并不是每个CDN都能精准的拦截各种恶意请求的,更闹心的是很多CDN还不支持用户在CDN上添加BAN规则,比如腾讯云CDN. 因此,就有了本文的折腾分享. 一.真假难…
做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描.拉取.注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables . Nginx 的deny指令或者是程序来ban掉这些恶意请求. iptables 需要root权限配置 下面介绍使用nginx 来配置ip禁用 首选需要我们熟悉nginx 的deny指令 allow 语法:     allow address | CIDR | unix: | all; 默认值:     - 配置段:     http, server…
前言 承接前文<短信发送接口被恶意访问的网络攻击事件(二)肉搏战-阻止恶意请求>,文中有讲到一个定位非法IP的shell脚本,现在就来公布一下吧,并没有什么技术难度,只是当时花了些时间去写这个东西,类似于紧急修复线上bug一样的赶这个小脚本,虽然现在看来挺简单的,但是在当时紧张的情景中,赶这个小脚本儿的过程确实是很有趣的. 前一篇文章发布后,有朋友留言问了一下脚本的事,于是整理了一下. 需求分析 目标: 通过日志定位并记录攻击者的IP,然后封掉此IP的所有请求 借助工具: shell脚本 日志…
Nginx禁止IP访问,只允许域名访问 我们在使用nginx的过程中会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了. 1.直接返回403错误 server { listen default_server; server_name _; return 403; } 或者返回500错误 server { listen default_server; server_name _; return 500; } 2.通过301跳转到主页 如果直接显示500或者403页面,导致用户体验…
在nginx中为了防止,通过ip地址或者没有备案的域名代理到nginx上,可以在nginx中配置来阻止这一操作 #只可以用域名访问(此处的server是新增,并不是在原有的server基础上修改),默认监听80端口    server    {     listen 80 default;     server_name _;     return 403;    } 那我们已经配置好了的域名的就还是会走以前配置好的相关的设置,用IP访问过来的时候就会直接返回403,这样就起到了隔离的效果.…
限制某个IP同一时间段的访问次数 如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包, 造成对方服务器资源耗尽,一直到宕机崩溃. cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZo…
要求:对网站的信息,比如某个访问节点不想国内或者国外的用户使用,禁止国内或者国外或者精确到某个城市的那种情况. 解决方式:1.Cloudfalre来实现禁止特定国家的ip访问,比较简单,但是需要money!!! 2.nginx,直接使用geoip模块,现在我们使用最新的ngx_http_geoip2,该模块可以精确到国家.省.市等一级的IP,并且全部由Nginx执行识别和阻止访问,但是Nginx编译起来比较费事. 最终解决方式,使用nginx的geoip模块: 部署操作: 一:安装geoip2扩…
转载于互联网     iptables直接针对ip进行封禁,在ip数量不大的时候是没什么问题的,但当有大量ip的时候性能会严重下降,iptables是O(N)的性能.而ipset就像一个集合,把需要封闭的ip地址写入这个集合中,ipset 是O(1)的性能,可以有效解决iptables直接封禁大量IP的性能问题. 1. 如果是RedHat/CentOS,首先用yum(Ubuntu/Debian用将yum换为apt-get既可 )安装ipset. yum install ipset -y 2.ip…
1.大家有过这方面的困扰,就是自己的网站给其他人恶意域名解析到自己的服务器ip上. 特别不爽,那大家可以用用空主机头的方法. 先给大家看下我的nginx.conf配置 http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"…
之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只是对特定的人提供服务,而且局域网IP和MAC都是固定的,所以可以直接用白名单,其他的全部拒绝 /**************************************使用nginx做访问权限控制*********************************/ 先在nginx做设置 在/et…