UFW 與 Fail2Ban 常用技巧分享

學習如何有效地保護你的伺服器,是每個網站架設者和伺服器管理員都必須具備的重要技能。而 UFW (Uncomplicated Firewall) 和 Fail2Ban 這兩個強大的工具,能幫助你輕鬆建立起一道堅固的防線,抵禦各種網路攻擊。這堂課將深入探討 UFW 和 Fail2Ban 的進階技巧,讓你更有效率地管理伺服器安全,並提升你的網站防護能力。 例如,透過進階的 UFW 配置,我們可以限制每分鐘的 SSH 連線次數,有效防止暴力破解攻擊,即使面對 DDoS (分散式阻斷服務) 攻擊,也能減輕其影響。 UFW 進階規則 UFW 是一個簡單易用的防火牆,但它也提供許多進階功能,讓你更精細地控制伺服器網路流量。

  • 限制連線速率: 你可以限制特定服務的連線速率,例如限制每分鐘 SSH 連線數量,避免暴力破解攻擊。 設定方法通常需要用到 ufw rate-limit 選項。例如,限制每分鐘 SSH 連線不超過 5 次的指令如下: sudo ufw rate-limit logprefix="LIMIT SSH" ssh 這條指令會記錄超過限制的嘗試,並將其封鎖一段時間。
  • 允許特定 IP 範圍: 你可以設定 UFW 允許特定 IP 地址或 IP 範圍存取你的伺服器,提高安全性並防止來自不受信任來源的訪問。 你可以使用 IP 網段表示法(例如 192.168.1.0/24)指定 IP 範圍。
  • 拒絕特定埠號: 除了允許特定連線,你也可以主動拒絕特定埠號的連線,以提升安全性。 例如,如果你不需要使用 22 埠以外的 SSH 連線,就可以設定 UFW 拒絕其他埠號的 SSH 連線。 Fail2Ban 客製化監獄 Fail2Ban 能自動封鎖惡意 IP 地址。 透過客製化監獄檔案 (jail),我們可以針對特定服務設定不同的封鎖規則。
  • 創建自訂 jail 檔案: 你可以針對 WordPress 的 wp-login.php 檔案建立一個客製化的監獄,監控錯誤登入嘗試。 這需要編輯 Fail2Ban 的 jail 配置檔案,例如 /etc/fail2ban/jail.local,新增一個監獄,指定要監控的日誌檔案、過濾器和封鎖時間。
  • 監控 Nginx 日誌: 你可以設定 Fail2Ban 監控 Nginx 的錯誤日誌,偵測異常的請求並封鎖來源 IP。這需要在 jail 配置檔案中指定正確的日誌檔案路徑和過濾器。 一個簡單的例子: [nginx-bruteforce] enabled = true port = http,https filter = nginx-badbots logpath = /var/log/nginx/error.log 日誌分析與監控 定期檢查日誌能幫助你及時發現問題。
  • UFW 日誌: /var/log/ufw.log 檔案記錄了 UFW 的所有活動,包含被封鎖的連線。 學習閱讀 UFW 日誌能幫助你瞭解你的伺服器面臨的網路攻擊類型。
  • Fail2Ban 日誌: /var/log/fail2ban.log 檔案記錄了 Fail2Ban 的活動,包含被封鎖的 IP 地址和原因。 你可以使用 fail2ban-client status 指令查看 Fail2Ban 的狀態和被封鎖的 IP。 故障排除技巧 即使設定再仔細,也可能遇到問題。
  • UFW 規則衝突: 如果 UFW 規則衝突,可能會導致某些連線無法正常運作。 仔細檢查你的 UFW 規則,並使用 sudo ufw status 檢查現有規則,找出衝突的地方。
  • Fail2Ban 誤封合法用戶: 如果 Fail2Ban 誤封了你的合法 IP,你可以使用 fail2ban-client unban <IP> 解除封鎖。 也可以調整 Fail2Ban 的設定,例如調整 maxretry 參數來降低誤判率。 課堂練習 為了讓各位更熟悉 UFW 和 Fail2Ban 的操作,我們將進行以下練習:
    1. 為 WordPress 配置一個 Fail2Ban 自訂監獄,監控 wp-login.php 的錯誤登入嘗試。
    2. 使用 UFW 設定限制每分鐘 SSH 連線不超過 3 次的速率限制。
    3. 檢查 UFW 和 Fail2Ban 日誌,確認規則是否生效。 結語 學習 UFW 和 Fail2Ban 的進階技巧,能有效提升你的伺服器安全性。 希望透過今天的課程,你們能對伺服器安全有更深入的了解。 未來,可以進一步探索更進階的安全工具,例如 SELinux (Security-Enhanced Linux) 或入侵檢測系統 (IDS),持續提升你的伺服器安全防護能力。 記住,伺服器安全是一個持續學習和改進的過程,唯有持續關注和精進,才能確保你的伺服器長期安全穩定地運作。

Ubuntu 上 UFW 與 Fail2Ban 的使用與設定教學

大家好!今天我們要學習兩個非常重要的工具:UFW 和 Fail2Ban,它們是守護你的 Ubuntu 伺服器安全的重要防線。想像一下,你辛辛苦苦架設了一個網站,例如一個 WordPress 網站,卻因為沒有做好安全防護,被駭客入侵,網站資料被竊取或遭到破壞,甚至網站被用來發送垃圾郵件,這將會造成巨大的損失和困擾。學習 UFW 和 Fail2Ban,就能有效防止這種情況發生! UFW 和 Fail2Ban 的作用分別是:UFW 像是伺服器的城牆,控制哪些網路流量可以進出你的伺服器;Fail2Ban 則像是城牆上的守衛,監控可疑的活動,自動封鎖惡意入侵的企圖。學會運用這兩個工具,就能大幅提升你的伺服器安全性。 什麼是 UFW UFW,全名 Uncomplicated Firewall,是一個簡單易用的防火牆工具。它不像其他防火牆軟體那樣複雜難懂,UFW 提供了簡潔的指令和設定方式,讓你輕鬆管理伺服器的網路流量。使用 UFW,你可以指定哪些網路服務可以被訪問,例如 SSH、HTTP、HTTPS 等,並阻擋其他不必要的連線,有效防止未授權存取。 安裝與配置 UFW

  • 使用終端機輸入以下指令安裝 UFW: sudo apt install ufw
  • 安裝完成後,輸入 sudo ufw enable 啟用 UFW。
  • 啟用後,你需要設定一些基本的規則。例如,允許 SSH 連線 (預設端口 22):sudo ufw allow ssh
  • 如果你使用 Nginx 作為網頁伺服器,則需要允許 HTTP 和 HTTPS 連線 (預設端口 80 和 443):sudo ufw allow httpsudo ufw allow https
  • 設定完成後,你可以使用 sudo ufw status 檢視目前的防火牆規則。 這一步驟非常重要,可以讓你確認設定是否正確,並且了解哪些端口被允許連接。 任何未被允許的連接嘗試都會被 UFW 阻擋。
  • 針對 Nginx 伺服器,如果你使用非標準端口,記得修改指令中的端口號。例如,如果你將 Nginx 的 HTTP 端口設定為 8080,則指令應為 sudo ufw allow 8080。 什麼是 Fail2Ban Fail2Ban 是一個入侵防護工具,它會監控伺服器的日誌檔案,找出重複嘗試登入失敗的 IP 位址,並自動將這些 IP 位址加入防火牆的封鎖名單。這能有效防止暴力破解攻擊,保護你的伺服器免受惡意攻擊。 安裝與配置 Fail2Ban
  • 使用終端機輸入以下指令安裝 Fail2Ban: sudo apt install fail2ban
  • Fail2Ban 的主要設定檔為 /etc/fail2ban/jail.local。 你可以使用文字編輯器 (例如 nano 或 vim) 開啟這個檔案進行編輯。
  • 在這個檔案中,你可以設定 Fail2Ban 監控哪些服務,以及設定封鎖的條件 (例如,連續幾次登入失敗後封鎖)。 初學者可以先針對 SSH 服務進行設定,例如修改 [ssh] 區段的 enabledtrue,並調整 maxretry (最大嘗試次數) 和 findtime (時間範圍) 等參數來控制封鎖策略。
  • 對於 WordPress 網站的登入頁面,你可以新增一個 jail 設定,監控 WordPress 的錯誤日誌,並設定自動封鎖重複嘗試登入失敗的 IP。 這需要你找到 WordPress 的錯誤日誌路徑並調整 jail.local 檔案中的設定。
  • 設定完成後,可以使用 sudo systemctl restart fail2ban 重啟 Fail2Ban 服務以套用新的設定。 課堂練習 現在,讓我們來實際操作一下!請你在你的 Ubuntu 伺服器上完成以下步驟:
  • 安裝 UFW 和 Fail2Ban。
  • 設定 UFW 允許 SSH 和 HTTP 連線。
  • 設定 Fail2Ban 保護 SSH 服務。
  • 模擬多次錯誤的 SSH 登入,觀察 Fail2Ban 是否成功封鎖你的 IP 位址。 結語 恭喜你完成今天的學習!你已經學會了如何使用 UFW 和 Fail2Ban 來保護你的 Ubuntu 伺服器。 記得定期檢查你的防火牆規則和 Fail2Ban 設定,確保它們仍然符合你的需求。 UFW 和 Fail2Ban 只是伺服器安全的第一步,未來你可以學習更進階的安全技巧,例如 SSL 憑證設定、定期備份、以及使用入侵偵測系統等等,來打造更安全的伺服器環境。 請記住,伺服器安全至關重要,只有做好安全防護,才能確保你的網站和資料的安全。

優惠推廣

優惠推廣
不再顯示

確定今天不再顯示提示