解决网站被域名恶意解析

业余时间写了一个工具集合网站,经过漫长的等待,昨天终于收到工信部通过域名备案的邮件,晚上就将域名解析到阿里云服务器上了。今天打开百度统计想看看统计功能是否正常,结果发现了一个陌生的域名(见下图)。

恶意解析的域名

好奇之下,我点击了这个域名发现,竟然打开了我的网站。那一刻我震惊,我实在想不出什么人会这么无聊,把域名解析到我的服务器上。于是在网上搜了一下"域名恶意解析"这个关键词,不搜不知道,一搜吓一跳,借用网友的话说:域名的恶意解析,可以用于借刀杀人。这个手法很骚,轻则可以将对手的SEO排名拉低,重则可以让工信部封杀其站点。

危害如下:
  • 不同域名解析到同个站点,真身域名权重被降低,SEO排名被假域名挤占
  • 非法域名解析,导致源服务器被工信部封杀,网站停止服务

琢磨了一下,应该只有同行会做这么费力不讨好的事情吧,不过我的站点还在开发当中,也没有任何用户呢,他们是怎么下得去手的呢。废话到此为止,下面上干货。

解决方案

服务系统是Ubuntu 22.04.4,技术方案是Nginx + PM2搭建的SSR渲染框架,因此只需要改一下Nginx的配置即可。详细的步骤如下:

Step1. 复制default配置到[your_domain]

cd /etc/nginx/sites-available/
cp default  your_domain

Step2. 修改default配置文件禁用默认server_name

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name _;
        return  444;
}

server {
     listen 443 default_server;
    listen [::]:443 default_server;

     server_name _;
     return 444;
}

Tips: 444是Nginx服务器扩展的HTTP错误状态码,为非标准HTTP状态码,用于指示 Nginx 关闭连接而不向客户端发送响应,最常用于拒绝恶意或格式错误的请求。

Step3 修改[your_domain]配置文件

server {
        listen 80;
        listen [::]:80;

        index index.html index.htm index.nginx-debian.html;

        server_name your_domain *.your_domain;

        location / {
                proxy_pass http://127.0.0.1:3000;
                index  index.html index.htm;
        }
}
注意事项有2点:
  1. listen 80; 后面不能有default_server,否则会报错
  2. server_name 后面要需要跟 your_domain 和 *.your_domain 两个域名,否则一级域名或二级域名无法访问。

Step4 创建[your_domain]软连接到sites-enabled文件夹:

ln -s /etc/nginx/sites-availabl/your_domain /etc/nginx/sites-enabled/your_domain

Tips:ln -s后面的文件要求是绝对路径,否则创建出来的软连接是红色的。

Step5 检查和Reload配置文件:

使用以下命令检查配置文件是否有效:

sudo nginx -t

配置文件检查通过后,使用以下命令重新加载更改的配置文件:

sudo systemctl reload nginx
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容