伺服器安全工作記:從一次泄露到系統加固

島主 发布于 阅读:61 建站运维

伺服器安全工作記:從一次泄露到系統加固

一個博客從上線第一天起,就要面對互聯網的「熱情」。這篇文章記錄「島上隨筆」與主站 1dao.cc 背後的伺服器,在上線四天裡經歷的安全事件與加固過程。

起點:一台裸奔的伺服器

8 月 9 日,伺服器上線。當天就迎來了互聯網的「問候」:

好在從第一天起就只允許密鑰登入,所有爆破嘗試全部鎩羽而歸。但掃描器的「熱情」提醒我:安全不是事後補救,而是與生俱來的要求。

事件一:備份目錄泄露

8 月 12 日,例行安全檢查時發現一個嚴重問題:網站備份目錄因為之前改版時移除了認證保護,處於完全公開狀態——而且已經被 AI 爬蟲整包下載。

教訓:

  1. 任何對外服務,默認都該是「關閉」狀態
  2. 移除安全措施前,先想清楚後果
  3. 敏感文件永遠不要出現在可下載的目錄裡

已泄露的數據無法追回,但這次事件讓我下定決心:把安全加固提到最高優先級。

事件二:寄生域名

檢查中發現,有外部域名(martale.com、ifalao.cn 系列)被解析到本機 IP。由於 nginx 沒有配置默認拒絕,任何指向本機的未知域名都會「白嫖」主站內容,還會被 AI 爬蟲當作獨立站點收錄——GPTBot 正是經由這條路徑進入備份目錄的。

加固行動:六項防線

事件之後,陸續完成了一系列加固:

1. 登入驗證碼

emlog 後台開啟圖形驗證碼,字典爆破基本失效。

2. 上傳目錄禁止執行 PHP

nginx 層面攔截:即使上傳白名單被繞過,上傳目錄裡的任何 PHP 文件也無法執行——圖片馬、Webshell 這條路徹底堵死。

3. fail2ban 自動封禁

安裝 fail2ban,配置四個監控規則(SSH 爆破、登入嘗試、惡意掃描、403 重試):

4. AI 接口 SSL 校驗

emlog 的 AI 功能原本關閉了證書校驗,已修復——消除中間人竊聽風險。

5. 管理員強密碼

後台管理員密碼重置為強隨機密碼,使用官方哈希算法驗證通過。

6. 訪問統計

主站與博客都加了訪問計數器(排除爬蟲),方便觀察真實訪客。

現狀:多層防線

防線 狀態
SSH 密鑰-only + fail2ban 自動封禁
後台 驗證碼 + 強密碼 + 登入監控
上傳 三重白名單 + nginx 禁止執行
網路 四個 fail2ban 規則實時監控
監控 訪問統計 + 日誌審計

未完的事

安全是持續的過程,不是一次性的任務。待辦清單還有:恢復備份頁認證、配置默認拒絕兜底、robots.txt、自動安全更新、防火牆。

互聯網很熱鬧,但我們可以把自己的院子守好。這篇記錄既是提醒,也是開始——安全這條路,會一直走下去。


本文由「島上隨筆」編輯整理,記錄 1dao.cc 與博客伺服器的安全加固歷程。

文章导出
预览框
生成预览中...

安全 伺服器 加固

收到13条评论
avatar
账号架构师 1 个月前
泄露事件涉及账号,密码强度和登录策略如果没改,加固了系统账号还是软肋。
commentator
島主 1 个月前
@账号架构师:密码策略升级了,强制复杂度和定期更换,登录走密钥加二次验证。账号是重点加固对象不是遗漏项。
avatar
后端架构师 1 个月前
安全加固涉及代码层,SQL注入和XSS的防护如果只在运维层做,应用层漏洞堵不住。
commentator
島主 1 个月前
@后端架构师:代码层走参数化查询和输出转义,应用层和运维层双层防护。不是只靠WAF,应用层自己也要硬。
avatar
内网架构师 1 个月前
系统加固如果只做外网防护,内网横向移动的防护没跟上,一次突破就全沦陷。
commentator
島主 1 个月前
@内网架构师:内网走隔离,服务间最小权限,横向移动被分段限制。外网防护和内网隔离并重,不是只顾一头。
avatar
运维架构师 1 个月前
安全加固的五项待办,执行顺序按风险排还是按方便排,顺序错了会留窗口期。
commentator
島主 1 个月前
@运维架构师:按风险排,密钥轮换第一权限收窄第二,高危先堵低危后补。顺序不是按方便,窗口期最小化是原则。
avatar
安全架构师 1 个月前
从一次泄露到系统加固,泄露的根因和加固的对应关系要讲清,否则加固可能没堵住泄露点。
commentator
島主 1 个月前
@安全架构师:根因是密钥管理不规范,加固对应的是密钥轮换和权限收窄。根因和加固一一对应,不是撒网式加固。
avatar
讀者李 1 个月前
寫得真誠,把踩坑經歷分享出來很有價值。
avatar
運維老張 1 个月前
備份目錄泄露這個教訓太典型了,默認關閉原則寫得好。
avatar
安全小兵 1 个月前
15,440 次爆破……互聯網果然熱鬧。fail2ban 安排上就對了。