All In One WP Security & Firewall 外掛設定

security, protection, antivirus

All In One WP Security & Firewall 是一個適合想加強網站安全,但不知如何開始的初學者使用。

隨著網路攻擊問題日漸嚴重,當網站累積的資料愈來愈多,愈來愈有價值後,更易受到攻擊,因此一個好的網站,更應該注重網站安全性問題。

這個外掛的安全性功能非常廣泛,透過全方面 WordPress 安全性的簡單設定,不只能學習了解網站安全基礎,也可輕鬆完成網站保護,甚至很多人在懷疑為什麼這個好的外掛竟然完全免費。

All In One WP Security & Firewall 外掛特色介紹

帳號安全

  • 檢測管理者名稱,避免使用 “admin” 當作管理者名稱。
  • 檢測是否有登入名稱和管理者名稱相同。
  • 提供密碼產生器,提升密碼強度。
  • 帳號監控管理:
    • 可新增或解除帳號黑名單。
    • 強制惡意帳號登出。
    • 監控帳號登入活動。
    • 顯示目前已登入帳號清單。

登入安全

  • 防護暴力破解
  • 攻擊通知
  • 自動封鎖 IP 範圍
  • IP 白名單設定
  • 監控帳號登入錯誤的 IP,名稱,時間等等
  • 在登入表單新增 Google reCaptcha
  • 在忘記密碼表單處新增 Google reCaptcha

註冊安全

  • 提供審核帳號註冊功能
  • 在帳號註冊表單處新增 Google reCaptcha

資料庫安全

  • 設定 WordPress 預設資料庫名稱前贅字
  • 自動排程資料庫備份,或一鍵即時資料庫備份

系統檔案安全

  • 辨認檔案或目錄是否有不安全的權限設定
  • 防止 PHP 程式修改
  • 提供方便檢視系統 LOG
  • 防止使用者讀取 readme.html, license.txt, wp-config-sample.php

.htaccess 和 wp-config.php 備份和還原

  • 可以備份原始 .htaccess 和 wp-config.php
  • 可以簡易修改 .htaccess 和 wp-config.php

黑名單功能

  • 依據 IP 或範圍封鎖使用者
  • 依據範圍封鎖使用者
  • 依據瀏覽器代理 (User Agents) 封鎖

防火牆功能

WordPress 在執行任何程式,顯示網頁前,會先經過 .htaccess,防火牆規則主要設定在 .htaccess 檔案,以防止惡意程式執行 WordPress 程式,防火牆的功能非常多,以下僅列出部分:

  • 存取控制機制
  • 禁止讀取 debug log
  • 拒絕錯誤或惡意的查詢 URL 字串
  • XSS 防護
  • 阻擋偽裝的機器人爬蟲
  • 阻擋網站的圖檔被盜連
  • 404 監控,也可以阻擋過多 404 的連線

暴力破解防護

  • 即時阻擋暴力攻擊
  • 可新增數學問題驗證碼在登入表單
  • 可變更登入表單網址
  • 可使用登入蜜罐

檔案安全掃描

  • 監控任何檔案是否被變更或注入惡意代碼

評論與垃圾留言

  • 監控最常發送垃圾留言的 IP 並阻擋
  • 禁止不是從自己網域來的留言(留言機器人)
  • 新增驗證碼在留言表單
  • 自動阻擋超過留言限制的 IP

防止文章拷貝

  • 禁止滑鼠右鍵,防止選擇挑選文字拷貝

其它特色功能

  • 刪除 WordPress 版本訊息
  • 刪除 WordPress Generator Meta information 
  • 防止網站被顯示在 iframe
  • 備份/回復設定

要做到以上列出的所有安全性防護,不太容易,但 All In One WP Security 只需簡單設定就可完成。

All In One WP Security & Firewall 外掛設定說明

搜尋All In One WP Security, 安裝啟用。

Dashboard

安裝完後請進入左側選單 WP Security -> Dashboard

這裏顯示目前 WordPress 的安全狀態:

Security Strength Meter 顯示目前的安全分數,當一個一個安全設定啟動後分數就會提高。

Critical Feature Status – 這邊有四個主要的安全設定,建議都開啟 ON,這樣就有最低建議的基本安全了。

Security Points Breakdown – 顯示目前的各類安全設定比重

Settings

[General Settings]

  • Disable All Security Features: 如果啟動了這個安全外掛導致不正常,可以先暫時禁用所有安全性功能,再看看是否回復正常。
  • Disable All Firewall Rules: 如果認為有些防火牆規則造成其它外掛不正常,可以先禁用所有防火牆規則。

[.htaccess File]

備份或回復 .htaccess 檔案。

[wp-config.php File]

備份或回復 wp-config.php 檔案。

[WP Version Info]

  • Remove WP Generator Meta Info: WordPress 會自動產生版本資訊等,並放在網頁的 meta 標籤中,這些資訊會有安全性隱憂,建議勾選提升安全性。

[Import/Export]

這裡用Export 功能備份或Import 功能回復外掛設定值。

User Accounts

[WP Username]

WordPress 預設以 admin 當作管理者登入名稱,為避免機器人用該帳號嘗試登入,最好使用不同的名稱可以降低安全疑慮。

[Display Name]

WordPress 文章會顯示作者 nickname,WordPress nickname 和 login name 在預設是一樣的,這樣就會讓人知道登入名稱,最好是變更不同的 nickname,降低安全疑慮。

[Password]

這裏提供密碼強度工具,可以預估你的密碼需要多少時間就可以破解。

User Login

[Login Lockdown]

  • Enable Login Lockdown Feature: 建議勾選,自動封鎖登入錯誤次數太多的 IP。
  • Max Login Attempts: 設定最多登入錯誤次數,預設 3 次。
  • Login Retry Time Period: 這個設定值與 Max Login Attempts 配合,意思為設定幾分鐘內,錯誤次數最多為 N次。
  • Time Length of Lockout: 設定 IP 鎖定時間(分鐘)。

另外可以設定 IP 白名單,也可以在這裡看到被鎖住的 IP 清單。

[Failed Login Records]

顯示登入錯誤的 IP 記錄

[Force Logout]

  • Enable Force WP User Logout: 勾選後,會將登入者在指定的時間後強制登出。
  • Logout the WP User After XX Minutes: 設定時間(分鐘),預設 60,登入時間超過設定時間就會強制登出。

[Account Activity Logs]

顯示最近 100 筆登入 LOG。

[Logged in Users]

顯示目前已登入帳號。

User Registration

[Manual Approval]

  • Manually Approve New Registrations: 勾選後,新註冊的使用者帳號必須經由管理者審核才可以登入。

[Registration Captcha]

  • Enable Captcha On Registration Page: 勾選後會在帳號註冊表單插入驗證碼。

[Registration Honeypot]

  • Enable Honeypot On Registration Page: 啟用後會在註冊表單中新增一個隱藏欄位,這個欄位一般使用者是看不到的,這是為了防範機器人自動註冊的機制。

Database Security

[DB Prefix]

資料庫是 WordPress 最重要的部分,最簡單保護資料庫的方式就是不要使用預設的資料庫名稱,這裏可以簡單的修改資料庫名稱,請注意在使用這個功能前請先執行資料庫備份。

  • Generate New DB Table Prefix: 自行設定或自動產生 6 個隨機字符當作資料庫名稱前缀字。

[DB Backup]

  • Enable Automated Scheduled Backups: 啟用後系統會定期備份資料庫。
  • Backup Time Interval: 備份間隔時間。
  • Send Backup File Via Email: 將資料庫備份檔案寄到指定 Email 信箱。

Filesystem Security

[File Permissions]

WordPress 預設檔案與目錄讀寫權限設定,有可能因為其它外掛的安裝,或不小心修改了權限而造成安全疑慮,這邊會顯示一些重要檔案或目錄的權限,與建議的權限設定,依照建議的指示設定即可。

[PHP File Editing]

  • Disable Ability To Edit PHP Files: 禁止從 WordPress Dashboard 編輯 PHP 檔案。

[WP File Access]

  • Prevent Access To WP Default install Files: 禁止讀取 readme.html, license.txt, wp-config-sample.php。

[Host System Logs]

查看系統 LOG。

Blacklist Manager

[Ban Users]

設定 IP 黑名單,請注意這個功能可能會讓你也無法進入管理介面,當發生無法進入管理 WordPress 時,請先回復原始 .htaccess 檔案再試試看。更多資訊

Firewall

防火牆規則主要是在 .htaccess 檔案新增規則,在啟用防火牆規則前請先備份原始檔案。

[Basic Firewall Rules]

  • Enable Basic Firewall Protection: 啟用最基本的防火牆規則。
  • Max File Upload Size: 設定上傳檔案的最大限制。
  • Completely Block Access To XMLRPC: 如果沒有使用 XML-RPC 的話,建議啟用。
  • Disable Pingback Functionality From XMLRPC: 如果有安裝 Jetpack 或其他外掛需要使用 XML-RPC,請啟用。
  • Block Access to debug.log File: 禁止讀取 debug.log

[Additional Firewall Rules]

  • Disable Index Views: 禁止瀏覽網頁目錄。
  • Disable Trace and Track: 防止 HTTP Trace 攻擊。
  • Forbid Proxy Comment Posting: 禁止經由代理發送留言。
  • Deny Bad Query Strings: 防護 XSS 攻擊。
  • Enable Advanced Character String Filter: 防護 XSS 攻擊。

[Internet Bots]

  • Block Fake Googlebots: 禁止非 Google 的網路爬蟲機器人,就是只允許 Google 來爬網站,其它禁止。

[Prevent Hotlinks]

  • Prevent Image Hotlinking: 禁止圖片盜連 。

[404 Detection]

攻擊者會猜測網站有哪些網址,並且頻繁的測試這些可能不存在的網址。

測試這些不存在的網址,會產生很多 404 回應,因此可以根據這些回應判讀您的網站可能正遭受攻擊。

  • Enable 404 IP Detection and Lockout: 啟用後,自動阻擋產生過多 404 回應的 IP

[Custom Rules]

  • Enable Custom .htaccess Rules: 啟用後可自訂防火牆規則。
  • Place custom rules at the top: 自訂的規則放在檔案的最上面。
  • Enter Custom .htaccess Rules: 啟用後,可以將自定義規則放在此插件使用的所有規則的開頭。

Brute Force

[Rename Login Page]

  • Enable Rename Login Page Feature: 啟用後,預設登入網址會變為指定的網址。
  • Login Page URL: 設定要變更的登入網址。

[Cookie Based Brute Force Prevention]

Enable Brute Force Attack Prevention: 啟用防護暴力破解攻擊,啟用這個選項可能為讓你無法登入管理者,請先備份 .htaccess 檔案。

[Login Captcha]

  • Use Google reCAPTCHA as default: 預設使用 Google 圖形驗證。
  • Site Key: Google 圖形驗證網站金鑰。
  • Secret Key: Google 圖形驗證密鑰。
  • Enable Captcha On Login Page: 在登入表單插入圖形驗證。
  • Enable Captcha On Lost Password Page: 在忘記密碼表單中插入圖形驗證。
  • Enable Captcha On Custom Login From: 在客製登入表單中插入圖形驗證 。

[Login Whitelist]

只有白名單內的 IP 可以使用網站。

  • Login IP Whitelist Settings: 啟用 IP 白名單。
  • Your Current IP Address: 目前的 IP。
  • Enter Whitelisted IP Addresses: 開通後,可以設定一個或多個IP至白名單。

[Honeypot]

  • Enable Honeypot On Login Page: 在登入頁中插入隱藏欄位,只有機器人看得到,阻擋機器人攻擊。

SPAM Prevention

[Comment SPAM]

  • Enable Captcha On Comment Forms: 在留言表單中新增驗證碼。
  • Block Spambots From Posting Comments: 自動阻擋垃圾留言機器人。

[Comment SPAM IP Monitoring]

  • Enable Auto Block of SPAM Comment IPs: 自動阻擋發送垃圾留言的 IP。
  • Minimum number of SPAM comments: 設定垃圾留言觸發的數量,若超過該設定值,將會封鎖發送的IP。

[BoddyPress]

必須安裝 BuddyPress 外掛才能設定。

[BBPress]

必須安裝 BBPress 外掛才能設定。

Scanner

[File Change Detection]

  • Enable Automated File Change Detection Scan: 定期自動檢查檔案是否有變動。
  • Scan Time Interval: 設定多久檢查一次。

Maintenance

[Vistor Lockout]

Enable Front-end Lockout: 禁止使用網站並顯示維護中的訊息,只有管理者帳號可正常登入。

Enter a Message: 設定維護中要顯示的訊息。

Miscellaneous

[Copy Protection]

Enable Copy Protection: 禁止滑鼠右鍵,保護內容被拷貝。

[Frames]

Enable iFrame Protection: 禁止你的網站被顯示在 frame 或 iframe 中。

User Enumeration]

Disable Users Enumeration: 禁止使用網址 /?author=1 這種方式取得使用者資訊。

[WP REST API]

Disallow Unauthorized REST Request: 禁止未登入使用者使用 REST API。

如果設定造成無法登入怎麼辦

如果不小心設定錯誤,連自己都沒辦法登入了,不用擔心,網站一樣正常在運作,只是管理者暫時無法登入。

有幾個解決的方式,可以試試看,首先還是先做一次網站備份,以免又出現失誤。

方法一

使用 cPanel 或 FTP 或是其它虛擬主機提供的檔案管理工具,將外掛目錄名稱改個名字:all-in-one-wp-security-and-firewall -> all-in-one-wp-security-and-firewall-disabled

這樣外掛就暫時關閉,就可以登入了,然後再把目錄名稱改回來,重新設定。

方法二

修改 .htaccess 檔案,把這兩行中間的設定都移除

# BEGIN All In One WP Security
...
# END All In One WP Security

登入看看,修改還原正確的設定。

如果登入時,網址會被轉到 127.0.0.1,可以搜尋有 127.0.0.1 的那一行,前面加上 # 號,就是註解的意思,如下範例:

#RewriteRule .* http://127.0.0.1 [L]

這樣通常就可以登入了。

最後

此外掛的設定多,為了以防萬一,在設定前建議先備份.htaccess 檔案,以免把自已也阻擋在門外。

最近的更新版本 (Version 4.4.11) 有個重置功能,可以重置所有設定選項,想要從頭從新設定,就到 WP Security – Settings,點擊【Reset Settings】,一切從來,你必須從頭開始設定一次。

All In One WordPress Security And Firewall Plugin 真的是一個功能非常多,而且是完全免費的外掛,在學習設定的過程也可以學到很多關於網站安全的知識。關於 WordPress 安全性外掛,真的是安裝這一個就很夠用了。

延伸閱讀: