Nginx 解决被恶意解析域名到自己服务器的 IP

浏览: 549 次浏览 作者: 去年夏天 分类: Ubuntu,技术文章 发布时间: 2023-07-29 11:39

目的有两个、1、禁止通过IP访问我的网站。2、禁止通过其他域名访问我的网站。从而解决被其他人恶意解析域名到自己的的服务器 IP

什么是服务器IP被别人恶意解析域名

恶意解析域名是指非站长通过将域名A记录直接解析站长服务器的IP地址,从而得到一个在访问者眼中完全相同网站,这样会造成搜索引擎收录非站长的域名。

域名被恶意解析的危害

可能你感觉并不需要介意通过别人的域名访问到您的网站,但是

  • 这个域名是未备案域名呢,你是备案域名,机房和网监可没法区分这是不是你故意的,将来封IP、拔线,罚款都需要站长自己承担了。

  • 这个域名是不友善的域名,比如曾经指向非法网站,就容易引发搜索引擎,浏览器,其他安全软件的惩罚,连带IP受到牵连。

  • 域名本身确实没什么问题,但是使用非绑定域名,是一些广告联盟或者收费软件(比如一些博客主题,安全插件,功能性扩展等)所禁止的事项,会导致站点授权被封杀。

Nginx解决域名被人恶意解析

  1. 在Nginx配置文件的server项内增加一个,非指定域名访问跳转到域名页或者直接回报403的配置,(记得把自己同服务器上的所有网站域名都加进去)
server
{
    listen 80 XXXXXXXXXXX;
    listen 443 XXXXXXXXXX;
    server_name XXXXXXXXXXX;
    index XXXXXXXXXXX;
    root XXXXXXX;
#一般将下方代码按自己需求修改后,插入在你网站上边这一坨配置的后面就行

   #非指定域名访问回报444开始
    if ($host !~* '^((www|img|pic|api)\.)?tjsky\.net$') {
       return 444;
    }
   #非指定域名访问回报444结束

#你网站的其他配置
}

这个是什么意思呢?就是如果访问方提交的host不匹配后面的正则,既不是tjsky.net,也不是www、img、pic、api等子域时,则 Nginx 会阻断连接,也不作任何回复,相当于对方访问了一个完全不存在的网站。对于恶意扫描和恶意自动化爬虫,444可以显著减少他们的回访率。

  • 注意:HTTP 444 并不是一个标准的 HTTP status code ,而是Nginx自己设立的状态码。
  • 据说是当恶意提交的页面已经被搜索引擎索引后,对正常的搜索引擎爬虫,这个时候执行地址屏蔽,大量回报 403 比大量回报 444 直接不回复要对SEO要相对友好一点,搜索引擎会认为这只是特定页面问题,而不是整站的问题。所以可以把前边的 444 改成 403 。
  1. 一般做完上一步等着就好了,搜索引擎,浏览器,安全软件等发现这个域名一直无响应或者403后自然会解决这个域名。如果你想更快速的结局问题,可以向搜索引擎提交死链,向安全软件提交网站已经修复等。加快消除恶意域名在网络上对自己网站的影响。
6 条评论
  • XY

    2023-08-11 17:24

    其实还有一个默认站点的功能, 通常来说是配置文件内第一个 server 块, 也可以用 default_server 显式指定, 当请求的域名或者 IP 是所有 server 都不能匹配时就会返回这个站点.
    另外个人感觉这样分离更好, HTTP 现在应该是没人用了, 也不利于 SEO.

    # 强制 HTTPS
    server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
    }

    # 非法主机名 403
    server {
    listen 443 ssl default_server;
    server_name _;
    return 403;
    }

    1. 去年夏天

      2023-08-12 09:27

      嗯,这样也可以,不过直接对IP访问的一般都不会是活人,而这些扫描器,回报任何状态无论是301,还是403,都会让对方知道这个IP是活的从而进一步扫描试探,纯IP访问还是直接444断开连接为好。

  • 林师傅

    2023-08-10 19:12

    音乐下载怎么打不开,被充值了吗?大神能给个能转换mp3音乐的链接吗?

    1. 去年夏天

      2023-08-11 10:11

      因为不想被网易叫去喝茶

  • w4j1e

    2023-08-04 13:22

    之前刚接触 nginx 的时候有朋友教过我,但是自从我对恶意请求直接返回 444 之后就尝到了甜头,所以返回 444 可以一定程度上减少恶意的解析和请求,在应对恶意爬虫的时候好像更有效。
    403 禁止,但是机器知道这台服务器是活的,返回 444 久了就不再请求了。

    1. 去年夏天

      2023-08-04 14:18

      是的,对于恶意爬虫最好返回444,之前为此还写过文。被恶意爬虫爬的时候发现只有返回444,他们才会停止爬取,
      据说是当恶意提交的页面已经被正常索引后,对正常搜索引擎爬虫,这个时候执行屏蔽清除,大量回报403比大量回报444要对SEO要相对友好一点。
      你说的很有道理,如果本来就不存在异常抓取,不如直接返回444,让扫描和爬虫认为这个IP是废的更好。这就改一下教程~

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据