Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

防止域名被恶意解析 #16

Open
wall-wxk opened this issue Jul 10, 2019 · 0 comments
Open

防止域名被恶意解析 #16

wall-wxk opened this issue Jul 10, 2019 · 0 comments

Comments

@wall-wxk
Copy link
Owner

一、何为域名恶意解析

外部未知的域名持有者,将域名解析到非其所持有的服务器公网IP上,间接或直接造成损害他人利益的行为。

二、借刀杀人

域名的恶意解析,可以用于借刀杀人。
这个手法很骚,轻则可以将对手的SEO排名拉低,重则可以让工信部封杀其站点。

具体实现条件如下:

  • 未备案的域名或已被接入工信部黑名单的域名
  • 获取要攻击的站点,其源服务器使用的公网IP
  • 确认要攻击的网站80端口和443端口可以直接用IP直接访问
  • 将黑域名解析到该公网IP

危害如下:

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

三、解决方法

将无效域名的HTTP请求,全部拒绝响应

以下是我的个人站点的nginx配置

server{
    listen 80 default_server;
    server_name _;
    access_log off;
    return 444;
}

server{
    listen 443  default_server;
    server_name _;
    ssl_certificate   cert/www.wangxiaokai.vip.pem;
    ssl_certificate_key  cert/www.wangxiaokai.vip.key;
    access_log off;
    return 444;
} 

3.1 筛选无效域名

server_name _;

这个代表的就是无效域名,_符号可以用-!@#代替,都可以达到相同的效果。

3.2 不记录访问日志

access_log off;

访问日志是需要存储空间的,如果没有设置自动清理脚本,也是可以把服务器存储空间打爆的。

3.3 不处理无效域名的请求

return 444;

444是Nginx服务器扩展的HTTP错误状态码,为非标准HTTP状态码。
它的作用是:服务器不向客户端返回任何信息,并关闭连接, 断开客户端和服务器的连接,防止恶意软件攻击威胁。

3.4 一些细节

这两个server模块,应该放在最前,优先处理。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant