Linux 服務器因其靈活性、成本效益和強大的性能而在企業和個人中獲得了極大的普及。 但是,確保這些服務器的安全至關重要。

在本文中,我們將探索如何使用 CSF(ConfigServer Security & Firewall)或類似軟件保護 Linux 服務器,並為您提供鏈接和示例來強化您的服務器。

什麼是腦脊液?

CSF 是一款功能強大的狀態防火牆,專為 Linux 服務器設計。 它提供易於使用的界面和全面的安全功能,使其成為系統管理員的熱門選擇。

CSF 不僅是防火牆,還是入侵檢測系統,主動監控和阻止惡意活動。

您可以在其官方網站上了解有關 CSF 及其功能的更多信息:ConfigServer Security & Firewall

為什麼選擇 CSF?

為您的 Linux 服務器選擇 CSF 而不是其他防火牆解決方案的原因有以下幾個:

  • 易於安裝和設置
  • 定期更新和積極的社區支持
  • 與大多數 Linux 發行版和控制面板兼容
  • 全面的安全功能,包括入侵檢測和登錄失敗跟踪
  • 可定制的配置選項

如何安裝和配置 CSF

在安裝 CSF 之前,必須卸載或禁用服務器上的任何其他防火牆。 按照以下步驟安裝和配置 CSF:

  1. 通過 SSH 以 root 用戶身份登錄到您的服務器。
  2. 使用命令下載最新版本的 CSF:
1wget https://download.configserver.com/csf.tgz
  1. 解壓縮下載的存檔:
1tar -xzf csf.tgz
  1. 導航到提取的目錄並運行安裝程序腳本:
1cd csf
2sh install.sh
  1. 使用您喜歡的文本編輯器(例如 nano 或 vim)打開位於 /etc/csf/csf.conf 的配置文件。 自定義設置以滿足您的安全要求。
  2. 配置 CSF 後,運行以下命令測試服務器的兼容性:
1perl /usr/local/csf/bin/csftest.pl
  1. 如果測試成功,通過將配置文件中的 TESTING 設置更改為 0 來啟用 CSF。
  2. 重新啟動 CSF 以應用更改:
1csf -r

有關更詳細的說明和配置選項,請參閱 CSF 官方文檔

增強安全性的最佳 CSF 配置

以下是優化 CSF 配置的一些推薦設置,可增強 Linux 服務器的安全性。

請記住,這些設置可能並不適合所有服務器環境,因此根據您的特定需求定制它們很重要。 在生產服務器上實施之前始終測試任何更改。

  1. 限制傳入和傳出連接

通過在 TCP_INTCP_OUTUDP_INUDP_OUT 部分中指定它們,將傳入和傳出連接限製到僅必要的端口。 例如:

1TCP_IN = "22,80,443"
2TCP_OUT = "22,80,443,53"
3UDP_IN = "53"
4UDP_OUT = "53"
  1. 啟用登錄失敗檢測

通過啟用配置文件中的“LF_*”選項,確保 CSF 跟踪登錄失敗:

1LF_TRIGGER = "5"
2LF_SSHD = "5"
3LF_FTPD = "10"
4LF_SMTPAUTH = "5"
5LF_POP3D = "10"
6LF_IMAPD = "10"

此示例在指定時間段內對 SSH、FTP、SMTP、POP3 和 IMAP 登錄嘗試失敗 5 次後設置臨時阻止觸發器。

  1. 啟用流程跟踪

通過啟用進程跟踪來監視服務器進程的可疑活動:

1PT_LIMIT = "60"
2PT_USERMEM = "200"
3PT_USERTIME = "1800"
4PT_USERKILL = "1"

此示例設置 60 秒的進程跟踪間隔,內存使用限制為 200 MB,最大進程時間為 1800 秒,並且能夠終止超過這些限制的進程。

  1. 記住在對配置文件進行任何更改後重新啟動 CSF:
1csf -r

在 CSF 中使用配置文件增強安全性

CSF 中的配置文件是為特定用例或安全級別量身定制的預定義配置選項集。 它們允許您在不同配置之間快速切換,而無需手動調整各個設置。

當您想要實施更嚴格的安全措施或暫時放寬規則時,這會特別有用。 在本節中,我們將解釋什麼是配置文件、如何使用它們以及實施它們時的一些注意事項。

什麼是 CSF 配置文件?

CSF 配置文件本質上是存儲不同場景的特定設置的配置文件。 這些配置文件可以通過單個命令應用,從而可以輕鬆地在各種安全配置之間切換。

CSF 帶有幾個默認配置文件,每個配置文件都為特定目的而設計,例如 Web 服務器或郵件服務器。

如何使用 CSF 配置文件

  1. 首先,導航到 CSF 配置文件目錄:
1cd /usr/local/csf/profiles
  1. 列出可用的配置文件:
1ls

您應該會看到默認配置文件的列表,例如 webserver.confmailserver.confdefault.conf

  1. 要應用配置文件,請使用以下命令:
1csf --profile <profile_name>
  1. 例如,要應用 webserver.conf 配置文件,請使用:
1csf --profile webserver
  1. 如果要創建自定義配置文件,請將現有配置文件複製到配置文件目錄:
1cp /etc/csf/csf.conf /usr/local/csf/profiles/my_custom_profile.conf

然後,使用您喜歡的文本編輯器編輯my_custom_profile.conf文件,並根據您的需要調整設置。 進行更改後,您可以使用前面提到的相同命令應用自定義配置文件。

使用 CSF 配置文件時的注意事項

  1. 在應用新配置文件之前備份您當前的配置。 這確保您可以在需要時輕鬆恢復到以前的設置。
  2. 在將新配置文件應用到實時服務器之前,在非生產環境中對其進行測試。 這有助於識別可能出現的任何潛在問題或衝突。
  3. 創建自定義配置文件時,確保遵循保護 Linux 服務器的最佳實踐,並考慮您的特定用例和環境。
  4. 定期查看和更新您的個人資料,以了解最新的安全建議和最佳實踐。
  5. 請記住,應用新配置文件將覆蓋當前設置。 確保在應用配置文件之前仔細檢查配置文件的內容,尤其是在您使用自定義配置文件或對默認配置文件進行更改時。

通過了解和利用 CSF 配置文件,您可以有效地管理和切換 Linux 服務器的不同安全配置。 這不僅可以節省時間,還可以確保您的服務器在各種情況下都受到保護。

設置 CSF 用戶界面

CSF 提供了一個基於 Web 的用戶界面 (UI),用於管理和配置防火牆。 此圖形界面對於那些不習慣使用命令行工具或更喜歡以可視化方式管理設置的人特別有用。

在本節中,我們將引導您設置 CSF UI 並討論使用它的一些注意事項。

如何設置 CSF UI

CSF UI 默認可用於流行的控制面板,例如 cPanel、DirectAdmin 和 Webmin。 如果您正在使用這些控制面板之一,CSF UI 應該已經集成到您的面板中。

對於其他控制面板或沒有控制面板的服務器,您可以使用以下步驟設置 CSF UI:

  1. 確保您的服務器上安裝了所需的依賴項:
  • Perl
  • LWP (libwww-perl) 模塊
  • GD (libgd) 模塊
  • GD::Graph 模塊

您可以使用包管理器安裝這些依賴項。 例如,在 Ubuntu 上:

1sudo apt-get install perl libwww-perl libgd-dev libgd-perl libgd-graph-perl
  1. 使用您喜歡的文本編輯器(例如 nano 或 vim)打開位於 /etc/csf/csf.conf 的 CSF 配置文件。
  2. 找到以下設置並進行如下修改:
1UI = "1"
2UI_PORT = "<your_desired_port>"
3UI_USER = "<your_username>"
4UI_PASS = "<your_password>"

<your_desired_port> 替換為未使用的端口號(例如 8080),將 <your_username> 替換為您選擇的用戶名,並將 <your_password> 替換為強而獨特的密碼。

  1. 保存並關閉配置文件。
  2. 重新啟動 CSF 以應用更改:
1csf -r

通過在 Web 瀏覽器中導航到http://your_server_ip:<your_desired_port>來訪問 CSF UI,並使用您在配置文件中指定的用戶名和密碼登錄。

如何為 CSF UI 設置 HTTPS

使用 HTTPS 保護 CSF UI 以保護您的登錄憑據和數據傳輸至關重要。 強烈建議使用 HTTPS,尤其是在通過 Internet 訪問 UI 時。

在本節中,我將向您展示如何使用 Let’s Encrypt、ACME 或 Certbot 為 CSF UI 設置 HTTPS,以及將生成的證書放在哪里以便 CSF 可以讀取它們。

使用 Certbot 的 HTTPS

  1. 確保您的服務器上安裝了 Certbot。 您可以按照 Certbot 網站 上的特定分發說明進行操作。
  2. 使用 Certbot 為您的域生成證書:
1sudo certbot certonly --standalone -d example.com

example.com 替換為您的域。 確保域指向您服務器的 IP 地址。

  1. 生成證書後,您會在/etc/letsencrypt/live/example.com/目錄下找到證書文件。 您需要的文件是 fullchain.pem(證書)和 privkey.pem(私鑰)。
  2. 將證書文件複製到 CSF 可以讀取的位置:
1sudo cp /etc/letsencrypt/live/example.com/fullchain.pem /etc/csf/ui/ssl/cert.pem
2sudo cp /etc/letsencrypt/live/example.com/privkey.pem /etc/csf/ui/ssl/key.pem
  1. 使用您喜歡的文本編輯器(例如 nano 或 vim)打開位於 /etc/csf/csf.conf 的 CSF 配置文件。
  2. 修改以下設置:
1UI_SSL = "1"
2UI_CERT = "/etc/csf/ui/ssl/cert.pem"
3UI_KEY = "/etc/csf/ui/ssl/key.pem"
  1. 保存並關閉配置文件。
  2. 重新啟動 CSF 以應用更改:
1csf -r

現在,您可以在 Web 瀏覽器中導航到https://example.com:<your_desired_port>,通過 HTTPS 安全訪問 CSF UI。

請記住每 90 天更新一次 Let’s Encrypt 證書,因為它們的有效期很短。 您可以使用 cron 作業自動執行此過程。

請記住,HTTPS 是必要的,並且強烈推薦用於保護 CSF UI。 通過執行這些步驟,您可以確保您的登錄憑據和數據傳輸保持安全,免受潛在威脅。

使用 CSF UI 時的注意事項

  1. 為 CSF UI 選擇一個強而獨特的密碼,以防止未經授權的訪問。 請務必定期更新密碼,並避免將相同密碼用於其他服務。
  2. 通過僅允許特定 IP 地址連接到 UI 來限制對 CSF UI 的訪問。 您可以通過修改 CSF 配置文件中的 UI_ALLOW 設置來做到這一點:
1UI_ALLOW = "192.168.1.1,192.168.1.2"

將示例 IP 地址替換為您希望允許訪問 CSF UI 的 IP 地址。

  1. 確保為 CSF UI 選擇的端口未被其他服務使用。 此外,建議選擇非標準端口以減少自動攻擊的機會。
  2. 定期更新 CSF UI 及其依賴項,以防範已知漏洞和安全問題。
  3. 監控訪問日誌以識別任何可疑活動或未經授權的登錄嘗試。 CSF 日誌可以在/var/log/lfd.log中找到。

通過設置和使用 CSF UI,您可以通過易於使用的圖形界面有效地管理和配置防火牆設置。

確保遵循最佳實踐並考慮上述幾點以維護安全可靠的環境。

CSF 防護 DDoS 攻擊

CSF 可以通過實施各種配置和安全措施來幫助保護您的服務器免受分佈式拒絕服務 (DDoS) 攻擊。

在本節中,我將介紹 CSF 如何抵禦 DDoS 攻擊並提供一些示例配置和建議。

SYN泛洪保護

SYN 洪水攻擊是一種 DDoS 攻擊,攻擊者向服務器發送大量 SYN 數據包,導致服務器在嘗試建立連接時耗盡資源。

要在 CSF 中啟用 SYN 洪水保護,請在/etc/csf/csf.conf文件中調整以下設置:

1SYNFLOOD = "1"
2SYNFLOOD_RATE = "100/s"
3SYNFLOOD_BURST = "150"

這些設置將啟用 SYN 洪水保護並配置傳入連接的速率和突發限制。

連接限制保護

通過限制與服務器同時連接的數量,您可以減輕針對特定服務的 DDoS 攻擊。

要啟用連接限制保護,請配置CONNLIMIT設置:

1CONNLIMIT = "22;5,80;50,443;50"

此示例將 SSH (22) 連接數限制為 5,HTTP (80) 連接數限制為 50,HTTPS (443) 連接數限制為 50。

端口泛洪保護

端口泛洪保護有助於抵禦針對服務器上特定端口的 DDoS 攻擊。

要啟用端口溢出保護,請配置PORTFLOOD設置:

1PORTFLOOD = "22;tcp;5;300,80;tcp;30;5,443;tcp;30;5"

此示例將 SSH (22) 的新連接速率限制為每 300 秒 5 個,將 HTTP (80) 和 HTTPS (443) 的新連接速率限制為每 5 秒 30 個。

黑名單

CSF 可以與各種 IP 黑名單集成,以防止已知的惡意 IP 地址訪問您的服務器。

要啟用黑名單集成,請在 CSF 配置文件中配置BLOCKLIST_*設置:

1BLOCKLIST_DE = "1"
2BLOCKLIST_6DE = "1"
3BLOCKLIST_DE_URL = "https://lists.blocklist.de/lists/all.txt"
4BLOCKLIST_6DE_URL = "https://lists.blocklist.de/lists/ipv6/all.txt"

此示例啟用與 IPv4 和 IPv6 地址的blocklist.de阻止列表的集成。

國家級封鎖

CSF 允許您使用 CC_DENYCC_ALLOW_FILTER 設置阻止來自特定國家的訪問。 雖然此方法可能並不適用於所有情況,但在您想要限制來自以發起 DDoS 攻擊而聞名的國家/地區的訪問的情況下,它會很有用。

1CC_DENY = "CN,IR,RU"
2CC_ALLOW_FILTER = "US,CA,GB"

此示例阻止來自中國 (CN)、伊朗 (IR) 和俄羅斯 (RU) 的訪問,並且只允許來自美國 (US)、加拿大 (CA) 和英國 (GB) 的傳入連接。

請記住在對配置文件進行任何更改後重新啟動 CSF:

1csf -r

通過實施這些配置和建議,您可以顯著增強服務器對 DDoS 攻擊的保護。

請記住,沒有任何安全措施是萬無一失的,因此定期監控您的服務器是否存在潛在威脅並相應地調整您的 CSF 設置至關重要。

替代安全解決方案

雖然 CSF 是 Linux 服務器安全的絕佳選擇,但您可能需要考慮提供類似功能的替代解決方案:

  • UFW (Uncomplicated Firewall) :基於 Ubuntu 系統的用戶友好型防火牆。
  • Firewalld :用於使用 systemd 的 Linux 發行版的防火牆管理工具。
  • IPTables :一個強大的命令行工具,用於在 Linux 上進行數據包過濾和網絡地址轉換。

結論

保護您的 Linux 服務器對於保護您的數據和維護服務器的完整性至關重要。 CSF 提供了一個功能強大且用戶友好的解決方案來實現這一目標。

按照本文概述的步驟,您可以輕鬆地在 Linux 服務器上安裝和配置 CSF。 如果您正在尋找其他選項,請不要忘記探索其他安全解決方案,例如 UFW、Firewalld 和 IPTables。

我希望您發現這篇文章對使用 CSF 保護您的 Linux 服務器有幫助和信息。 如果您喜歡這篇文章並覺得它有價值,請隨時與可能從中受益的其他人分享。 我也鼓勵您對您的想法或問題發表評論,我將非常樂意提供幫助。 😊

在 2023 年及以後保持警惕並確保您的服務器安全!