最近在折腾服务器监控面板,相信很多朋友都装了各种花里胡哨的探针,比如 Komari、哪吒或者 ServerStatus 之类的。看着这些仪表盘上一跳一跳的数据,确实很有成就感,直接展示出来也挺酷的。

但是!把这种详细的服务器负载、带宽、地址信息直接公网裸奔,心里总有点发虚。毕竟咱们谁也不想被不知名的扫描器盯上,更不想让竞争对手把自己的服务器底裤看个精光。今天就来聊聊,怎么把你的探针面板藏起来,只允许你自己访问。

第一种方案:Nginx/Apache 层面做访问限制

Nginx 配置文件 allow deny 示意图

Nginx 配置文件中 allow 和 deny 指令的示例截图,展示如何限制 IP 访问。

这是最稳妥、性能损耗最小的方法。前提是你的探针是通过 Web 服务器(如 Nginx)反向代理的。如果你用的宝塔面板,操作就更简单了。

核心思路:只允许你自己的 IP 地址访问。

在你的 Nginx 配置文件中,找到探针对应的 location 块(或者 server 块),加入以下配置:

HTTP 基础认证登录弹窗

浏览器访问受保护的目录时弹出的 HTTP 基础认证登录窗口示意图。

location / {
    # 允许你的固定 IP
    allow 1.2.3.4;
    # 如果你有多个 IP 或出口,多写几行
    allow 5.6.7.8;
    # 拒绝其他所有 IP
    deny all;

# 下面是你原本的代理配置
    proxy_pass http://127.0.0.1:xxxx;
    ...
}

注意:如果你家里没有公网 IP,或者 IP 经常变动,这个方案可能会频繁把你自己挡在门外,这时候就需要结合下面的密码保护方案。

第二种方案:加上一道“防盗门”——HTTP 基础认证

如果不想被 IP 限制绊住手脚,那就给整个页面加个密码弹窗。这个不需要修改探针的代码,Web 服务器原生支持。

配置步骤如下:

  1. 生成密码文件:在服务器上使用 htpasswd 工具生成一个存放用户名和加密密码的文件。如果没有这个命令,通常通过 yum install httpd-toolsapt-get install apache2-utils 安装。

    htpasswd -c /etc/nginx/.htpasswd your_username
    # 输入两次密码后生成文件
    
  2. 修改 Nginx 配置

    location / {
        auth_basic "Restricted Area"; # 弹窗上的提示文字
        auth_basic_user_file /etc/nginx/.htpasswd;
    
    

原有代理配置

    proxy_pass http://127.0.0.1:xxxx;
    ...
}
```

这样配置后,任何人访问你的探针链接,都会先蹦出一个需要输入账号密码的框。虽然多了一步操作,但安全性提升了一个档次,而且不受 IP 变动影响。

第三种方案:利用 Cloudflare 进行访问控制

如果你刚好用了 Cloudflare 给域名做 CDN 或者防 C 护盾,那恭喜你,还有个更优雅的无侵入式方案。

你可以利用 Cloudflare 的“WAF 自定义规则”或者“Zero Trust(零信任)”服务。

简单做法(WAF 规则):

在 Cloudflare 的 Dashboard 中,添加一条防火墙规则:

  • 字段:URI Path
  • 运算符:equals
  • :你的探针路径(例如 /status
  • 然后选择“然后”
    • (IP 地址) 不等于 你的 IP -> Block (拦截)
    • 或者 (国家) 不等于 你的国家 -> Block (粗略限制)

进阶做法(Email 验证/零信任):

使用 Cloudflare Access,设置为仅允许特定邮箱登录后才能访问。这样哪怕你在出差,只要能收邮件,就能安全登录查看服务器状态,完全不需要暴露服务器 SSH 或固定 IP。

避坑指南

在实施上述方案时,有几个小细节需要注意:

  1. 缓存问题:如果你配置了 CDN 缓存页面,有时候即便加了密码,CDN 缓存命中了还是会直接吐出内容。记得把探针页面的缓存策略设置为“绕过缓存”或“不缓存”。
  2. SSL 强制开启:既然加了密码保护,如果还用 HTTP 明文传输,那密码等于是白给。一定要配合 Let's Encrypt 证书强制开启 HTTPS。
  3. 拒绝默认路径:不要把探针安装在大家都猜得到的目录,比如 /monitor/server,稍微改个长一点的随机路径名,能挡住绝大多数脚本小子的扫描。

总结

服务器监控探针本来是为了方便我们运维,别让它反而成了安全隐患。无论你是选择简单的 Nginx IP 拦截,还是经典的密码弹窗,亦或是利用 Cloudflare 的现代守门人服务,目的都是为了把数据掌控在自己手里。

动手试试吧,把你的“后花园”藏好,只留给自己欣赏!

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭