現代網站和伺服器經常成為自動化攻擊、漏洞掃描、勒索軟件、暴力破解和數據盜竊行動的目標。中小型網站經常被針對,因為它們往往缺乏適當的安全防護措施。
本文件為系統管理員、DevOps 工程師和網站擁有者提供結構化、實用且著重實施的安全指引。目標是減少攻擊面、保護敏感資訊,並確保業務持續運作。
把「作業系統強化」想像成在安裝保安系統前先清理雜亂的房子。預設情況下,大多數 OS 安裝為了方便,所有功能都開啟,對用戶友好,卻成為攻擊者的寶庫。每一個多餘的套件或開放的埠,都是一扇沒鎖的窗。
「少即是多」原則: 目標是把攻擊面縮到只剩下你真正需要的部分。
清除垃圾: 生產伺服器不需要開發工具或 90 年代的舊 FTP 服務。不用的就卸載。我們一向建議從「最精簡」安裝開始,這樣之後不用再跟 OS 搏鬥關閉多餘功能。
審計你的服務: 在 Linux 上用systemctl或在 Windows 上用服務管理員,檢查背景運行了什麼。如果你解釋不到某個服務為何存在,它大概就不該存在。
保護前門(SSH): 由於 SSH 是我們與 Linux 伺服器溝通的主要方式,通常也是駭客首選攻擊目標。
停用 Root 登入: 絕不可讓任何人直接以 root 登入。
超越密碼: 請使用 SSH 金鑰。它們更難被盜取,而且無法「猜中」。
加設保安: 工具如 Fail2Ban 能自動踢走嘗試暴力破解登入的人,大大減少日誌中的「雜音」。
不用重新發明輪子: 你不用猜「安全」應該是怎樣。遵循 CIS(互聯網安全中心)基準即可。他們已經研究好一個強化系統應該是怎樣,你只需跟著做。
大多數資料外洩並非什麼高科技「職業特工隊」式駭客,通常只是有人走進了敞開的門。保護存取權不是為了增加難度,而是確保只有正確的人才有鑰匙。
在安全領域,我們稱之為最小權限原則,簡單來說就是「不要給每個人萬能鑰匙」。
目標: 開發人員可能需要完全控制測試環境,但不應該有生產環境的 root 權限。
現實檢驗: 如果資料庫用戶不需要管理員權限來完成工作,就不要給他們。這樣即使帳戶被盜,損害範圍也有限。
如果你仍然只靠密碼,那就等於把家門沒鎖。多重認證(MFA)就是你的安全網。
你應該為所有重要項目啟用 MFA:SSH 存取、雲端儀表板和 CMS 控制台。這只是十秒的小麻煩,卻能防止災難發生。
大家都見過「Password123!」——駭客也一樣。
長一點: 目標 12-16 個字元。長度永遠比複雜度重要。
用管理工具: 不要嘗試記住二十組亂碼。請用密碼管理器,也不要在團隊間共用帳號。這樣更乾淨、更安全,也省卻大家的麻煩。
安全不是「設置好就不用理」的任務。定期掃描「幽靈帳戶」——那些舊測試帳號或閒置用戶,等著被盜用。沒人在用就刪掉。
把防火牆想像成你伺服器門口的保安。不在名單上的人不能進來。大多數預設設置太客氣——幾乎讓任何人都能進來。你需要一個默認懷疑的保安。
無論你在 Ubuntu 上用UFW,RHEL 上用Firewalld,還是用Windows Defender,理念都是一樣:全部拒絕,然後逐一開放例外。
保持嚴謹: 你其實只需開幾道門。通常就是80和443給網頁流量。
SSH(22 埠): 這是你的「後門」。不要對全世界開放,只限你(和你的團隊)專屬 IP 才能看到這道門。
靜音其餘: 沒有特定用途的埠就關掉。
如果入侵者進了你的廚房,你不會想他自動有你睡房和保險箱的鑰匙。這就是網絡分段的作用。
你的資料庫絕對不應直接暴露在互聯網。請把網頁伺服器、資料庫和管理系統分開「房間」。這樣即使網頁伺服器被攻擊,你的數據還有另一層防線。
即使有很好的防火牆,還是有人會嘗試破解。入侵偵測(IDS)和防禦(IPS)系統就像智能保安鏡頭。
他們會偵測「可疑」行為:有人嘗試每一道門(埠掃描)、有人每分鐘猜密碼一千次(暴力破解),或有人利用已知漏洞。
你不用 24/7 盯著日誌,這些工具會自動處理,提醒你——甚至更好,直接阻擋威脅,防患於未然。
在科技界,「舊」通常等於「有漏洞」。駭客不一定是天才,很多時只是找一間鎖壞了、主人忘了修的房子。保持更新就是在有人發現前修好鎖。
不要等「清閒一週」才更新——那種日子不存在。你需要有節奏:
每週例行: 每週預留時間安裝標準安全修補。
「緊急」按鈕: 如果出現嚴重漏洞(零日漏洞),立即暫停其他事,馬上修補。
不要只更新作業系統。 你要留意整個「堆疊」——網頁伺服器(Nginx/Apache)、語言(PHP、Python、Node)、資料庫,尤其是 CMS 插件。這些往往是最脆弱的一環。
無壓力更新小貼士:
自動化重複工作: 如果你的 OS 支援自動安全更新,請啟用。這樣就不會忘記。
先測試再更新: 如果可以,千萬不要直接在生產環境推送更新。先在測試環境試行,確保「修補」不會意外令整個網站癱瘓。
安全不只是防止駭客入侵,更是確保即使最壞情況發生——勒索軟件、硬件故障或意外rm -rf——你仍能安睡。
如果你重視你的數據,請遵循這個簡單數學:
3 份副本: 線上數據加兩份備份。
2 種不同媒介: 不要把所有備份都放在同一類型硬碟或同一台伺服器。
1 份異地備份: 至少有一份要實體(或雲端)存放在別處。如果辦公室水浸或數據中心停電,你需要一份不在那棟樓裡的備份。
加密不可妥協: 如果你的備份沒加密,就是親手把數據送給任何找到它的人。
「不可變」防禦: 嘗試使用寫入後不能更改或刪除的儲存裝置。這是對抗勒索軟件的終極防線。
殘酷事實: 沒測試過的備份不是備份,只是幻想。 每季嘗試實際還原數據。如果你不能在幾小時內恢復系統,計劃就需要改進。
如果你網站沒用 HTTPS,就是用大聲公廣播用戶私隱資料。這已不再是「可有可無」——而是現代網絡的入場門票。
重要原因: 除了防止資料被窺探,還能阻止「中間人」攻擊(有人攔截你的流量),並避免 Google 把你網站埋沒在搜尋結果。
專業做法: 不要只申請證書;要強制執行。 請用 HSTS,讓瀏覽器拒絕與你建立不安全連線,並淘汰那些過時又有漏洞的協議如 SSLv3 或 TLS 1.0。
即使伺服器再怎麼強化,如果你的程式碼內建「後門」也救不了你。
把用戶在表單輸入的每一個字都當成有輻射一樣處理。驗證、清理,絕對不要讓它在沒用預備語句的情況下進入資料庫。這是徹底杜絕 SQL 注入的最佳方法。
當你的程式碼在生產環境崩潰時,應該只顯示「發生錯誤」,而不是「/users/admin/config.php 第 42 行出錯」。把細節只記錄在內部日誌,只有你能看到。
你不用猜什麼最危險。只要跟著OWASP Top 10。這是最權威的漏洞清單。
WordPress、Joomla 和 Drupal 因為普及而成為巨大目標。如果你用 CMS,不保持精簡就等於掛了「駭我吧」的招牌。
不用的插件或主題,請刪除。不要只停用——直接從伺服器移除。每一行不需要的程式碼,都是潛在被利用的漏洞。
關閉從控制台直接編輯檔案的功能。如果駭客取得你的登入,不要讓他有內建編輯器完成攻擊。
把權限設成 777 就等於把家門大開,還掛上「內有免費物品」的牌。大多數情況下,請把資料夾設為 755,檔案設為 644。這是「剛剛好」——系統能運作,陌生人卻無法亂改檔案。
如果檔案內有資料庫密碼或 API 金鑰,請設為600。這樣只有擁有者才能查看。
一般防火牆就像你大廈外圍的圍欄,能阻擋不該進來的人。但WAF則像站在前台的專業保安,不只查身份證,還會檢查每個包裹、審查每段對話,確保沒人偷帶危險物品進來。
WAF 坐鎮在你的應用程式前方,「清洗」流量,把惡意內容攔截在你的程式碼之前。這是你對抗以下攻擊的最佳防線:
「注入者」: 能偵測那些偷偷進行 SQL 注入,試圖騙取資料庫機密的攻擊。
Script Kiddies: 能過濾 XSS(跨站腳本)攻擊,防止你自己網站反過來攻擊用戶。
惡霸(DDoS): 能識別你的網站是否被協調的「機械人潮」惡意流量淹沒,導致伺服器癱瘓。
機械人: 它能分辨真正的人類客戶與嘗試以腳本暴力破解進入你管理面板的程式。
如果你使用雲端型 WAF(如 Cloudflare 或 AWS WAF),你獲得的不僅僅是過濾器。你得到的是全球防護盾。 這些服務能看到數百萬個網站上的攻擊,因此能在你察覺前就封鎖新威脅。這就像有個保鑣能與全城其他保鑣溝通,找出麻煩製造者。
你的資料庫就是「保險箱」。如果其他一切是房子,這裡就是存放黃金的地方。你不會把保險箱放在門廊上。
全面隔離: 你的資料庫和網頁伺服器應該在不同的「島嶼」上。絕對不要將資料庫公開於互聯網。它只應透過私有、IP 限制的連線與你的網頁伺服器通訊。
鎖好內部門: 使用「強」密碼,加密敏感欄位,並刪除那些預設安裝時附帶的「測試」資料庫。這些只是駭客用來入侵的雜物。
設置安全伺服器卻從不檢查日誌,就像安裝了監控攝影機卻從不觀看錄像一樣。
要留意什麼: 你要找的是「異常」行為。凌晨三點流量突然飆升?用戶突然嘗試存取管理檔案?來自你沒有客戶的國家多次登入失敗?這些都是警號。
「稽核追蹤」: 集中管理你的日誌,這樣即使伺服器被入侵也無法刪除。至少保留 90 天。如果真的遭到攻擊,這些日誌是你唯一能找出入侵方式的線索。
如果你的 DNS 或電郵被劫持,你品牌的聲譽就會蕩然無存。
「身份證」三寶(SPF、DKIM、DMARC): 這些本質上是數碼簽名,證明電郵確實來自你。沒有它們,騙徒很容易偽冒你的網域,向你的客戶發送釣魚電郵。
DNSSEC: 可以把它想像成你數碼通訊錄上的封印,確保當有人輸入你的網址時,真的會到達你網站,而不是惡意的仿冒站點。
DDoS 攻擊並不是什麼高明的駭客手法;它只是一群機械人同時擠進你家門口,直到大樓倒塌為止。
使用防護盾: CDN(如 Cloudflare)就像緩衝區,能在假流量接觸你的伺服器前先吸收掉。
設置限制: 使用速率限制和連線限制,讓伺服器知道:「如果同一個人一秒內請求同一頁面 500 次,就忽略他們。」
即使是防護最嚴密的公司也會遭受攻擊。「壞日子」和「業務終結災難」的分別,在於是否有應變計劃。
你需要一份文件,明確指示每個人該做什麼。我們要聯絡誰?如何隔離受感染的伺服器?如何通知客戶?
不要等到真正的緊急情況時才第一次閱讀你的「復原計劃」。每年進行一至兩次「消防演習」,確保團隊熟悉流程。
視乎你的業務(如處理信用卡需遵守 PCI-DSS 或處理健康數據需遵守 HIPAA),安全可能是法律要求。合規不僅僅是安全,更是要證明安全。妥善保存審計記錄和私隱文件,當審計員來檢查時會輕鬆得多。
安全不是「設置好就不用理」的項目,更像一個花園——不除草、不澆水就會荒廢。這是一個不斷檢查、修補和學習的循環。主動防禦比事後補救便宜得多,也減少壓力。