保護 cPanel 服務器的 15 個簡單技巧
已發表: 2017-06-27
服務器安全是一個複雜且多方面的主題,可能需要數年時間才能完全理解和掌握。
大多數管理員必須努力在其服務器上開發和部署大量安全措施,以防止攻擊和破壞。
有問題的安全措施可以簡單到需要更安全的密碼,也可以復雜到為存儲的數據部署更新的加密協議。
然而,幸運的是,cPanel 服務器安全性更傾向於服務器安全範圍的“簡單”端。
這裡有 15 種簡單的方法,可以在幾分鐘內顯著提高服務器的安全性。
1. 保護 SSH
雖然 SSH 是一種加密協議,但它並非不可滲透。 這意味著,作為管理員,您必須在配置過程中進行盡職調查。
以下是提高 SSH 安全性的三個簡單步驟。
1.更改SSH端口
將 SSH 保持在默認端口 22 上會使其容易受到暴力攻擊。 為了防止這些攻擊,您應該為 SSH 選擇一個隨機端口,以使潛在的攻擊者更難識別其位置。
以下是更改 SSH 端口的步驟。
- 通過 SSH 登錄到您的服務器。
- 通過發出以下命令編輯位於/etc/ssh/sshd_config的 SSH 配置文件:
納米 /etc/ssh/sshd_config - 在下面這行設置一個隨機的SSH連接端口。原文:Port 22
新線路:端口 2468 - 現在,通過執行以下命令重新啟動 SSH 服務:
服務 sshd 重啟
2.禁用root登錄
要添加額外的安全層並進一步加強您的 SSH,您可以禁用 root 用戶並創建一個單獨的用戶來訪問服務器。
方法如下:
- 通過 SSH 登錄到您的服務器。 在禁用 root 登錄之前,我們將創建一個用戶來訪問服務器:
adduser new_username_name
passwd new_username_name - 系統將要求您為此新用戶設置密碼。 確保密碼盡可能強(至少 10 個字符,帶有多個數字和符號),然後使用以下代碼行將新用戶添加到輪組中,授予其訪問服務器的權限。
# usermod -aG wheel new_username_name - 現在,禁用 root 用戶。 編輯位於/etc/ssh/sshd_config的 SSH 配置文件。
納米 /etc/ssh/sshd_config - 將行:“PermitRootLogin yes”更改為“PermitRootLogin no”
- 現在,通過執行以下命令重新啟動 SSH 服務。
服務 sshd 重啟
3.禁用SSH V1
隨著 SSHv2 的出現,其前身 SSHv1 幾乎已經過時,強烈建議您禁用不太安全和過時的 SSH,以提高服務器的安全性。
- 通過 SSH 登錄到您的服務器並編輯位於/etc/ssh/sshd_config的 SSH 配置文件。
- 取消註釋以下行。
協議 2,1 - 並將其更改為:
協議 2 - 現在,通過執行以下命令重新啟動 SSH 服務:
# 服務 sshd 重啟
2. 啟用 cPHulk 保護
蠻力攻擊是一種黑客方法,它依賴於自動化系統來猜測您的 Web 服務器的密碼。
cPHulk 是一項易於使用的服務,可以保護您的服務器免受大多數暴力攻擊。
要啟用 cPHulk,請登錄 WHM→ Security Center → cPHulk Brute Force Protection ,然後單擊Enable 。
您現在可以根據 cPanel 用戶名、IP 地址和其他參數設置自定義規則。
一旦達到設定的失敗登錄嘗試次數,cPHulk 將阻止來自正在使用的 IP 地址的任何進一步嘗試。
注意:如果您有靜態 IP,那麼強烈建議您將其添加到白名單管理中,這樣您就不會將自己鎖定在服務器之外。
3. 設置 ConfigServer 防火牆 (CSF)
CSF(ConfigServer 安全和防火牆)是 cPanel 服務器最流行的防火牆之一。
它不僅通過掃描各種身份驗證日誌文件充當防火牆,而且還定期掃描您的服務器,並為您提供個性化的建議以提高服務器的安全性。
除了其主要功能外,CSF 還允許您訪問許多有用的功能,例如“查看系統日誌”、IPTable 日誌、IFD 統計信息等等。
安裝 ConfigServer 防火牆
使用 cPanel 在您的服務器中安裝 CSF 非常容易。 請參閱我們的分步指南,了解如何將 ConfigServer 防火牆安裝到 cPanel/WHM?
遵循我們上述指南中的說明後,您可以直接從 WHM 管理 CSF。
為此,請登錄您的WHM,導航至插件 → ConfigServer 安全和防火牆。
在這裡,您將看到一些可用於進一步加強安全性的選項和措施。
4. 設置 ClamAV 殺毒軟件
雖然 Linux 服務器比基於 Windows 的服務器具有更“自然”的病毒抵禦能力,但安裝額外的防病毒應用程序仍然被認為是明智的。
ClamAV 很容易作為插件安裝在您的服務器上,是 cPanel 服務器上最流行的開源防病毒插件之一,它允許個人用戶掃描他們的主目錄和電子郵件以查找潛在的惡意文件。
同樣,為簡潔起見,請參閱我們的分步指南如何從 WHM 安裝 ClamAV 插件。
安裝 ClamAV 後,您可以掃描具有 cPanel 用戶級別訪問權限的任何特定 cPanel 帳戶。 這是我們關於如何從 cPanel 運行 ClamAV 病毒掃描的指南。
5. 切換到 CloudLinux
CloudLinux 是免費 CentOS 的付費替代品,被認為是 cPanel 服務器最安全的操作系統之一。
使用 CloudLinux,您可以通過保持 cPanel 帳戶彼此隔離來提高服務器密度和穩定性。
它通過使用 LVE(輕量級虛擬化環境)來實現這一壯舉,該環境限制了每個用戶的處理、內存和連接等服務器資源,從而確保單個用戶不會危及服務器穩定性並導致所有站點變慢。
操作系統將用戶相互“關押”以避免任何安全漏洞。 任何不穩定或受感染的腳本或惡意軟件都不能通過任何受感染的帳戶在服務器上傳播。
以下是 CloudLinux 操作系統的主要安全特性:
- CageFS
- 強化PHP
- 安全鏈接
CageFS
CageFS 對每個用戶進行封裝,防止用戶看到對方和讀取敏感信息。 它還可以防止大量攻擊,包括大多數權限提升和信息洩露攻擊。
→ 使用 CageFS,用戶只能訪問安全文件。
→ 用戶看不到服務器配置文件,例如 Apache 配置文件。
→ 用戶無法查看其他用戶,也無法檢測其他用戶的存在。
→ 用戶看不到其他用戶的進程。
強化PHP
舊的 PHP 版本 5.2、5.3、5.4 雖然被廣泛使用,但存在 PHP.net 社區未修補的漏洞。
CloudLinux 中的 HardenedPHP 修復了這些漏洞並保護了舊版本和不受支持的版本。
→ 它通過修補所有 PHP 版本來確保應用程序和服務器的安全。
→ 它為所有用戶提供安全性和靈活性。
→ 它通過不強制升級到較新的 PHP 版本來提高客戶保留率
→ 通過 PHP 選擇器選項從安裝在同一 Web 服務器上的多個版本中選擇 PHP 版本
安全鏈接
SecureLinks 是內核級技術,它通過防止所有已知的符號鏈接 (symlink) 攻擊來加強服務器,同時防止惡意用戶創建符號鏈接文件。
→ 使用 SecureLinks,您可以通過阻止惡意用戶創建指向他們不擁有的文件的符號鏈接和硬鏈接來防止攻擊。
→ 它可以防止惡意用戶創建符號鏈接文件。
→ 增強服務器的安全級別,防止符號鏈接攻擊。
6.禁用Ping請求
ping 是 ICMP(Internet 控制消息協議)請求,應禁用它以避免“Ping of Death”和“Ping Flood”攻擊。
死亡之平
Ping of Death 是攻擊者故意發送大於 IP 協議允許的 IP 數據包而導致的拒絕服務攻擊。
結果,很多操作系統在收到超大數據包時不知道該怎麼辦,機器會死機、死機或重啟。
平洪水
Ping Flood 是一種簡單的拒絕服務攻擊,攻擊者使用 ICMP 數據包淹沒受害者,希望受害者以打包的 ICMP 回復進行響應,從而消耗傳入和傳出帶寬。
如果目標機器速度較慢,則可能會消耗其 CPU 週期,從而顯著降低系統的處理能力。
要禁用 ping 響應,請以 root 用戶身份運行以下命令:
迴聲“1”> /proc/sys/net/ipv4/icmp_echo_ignore_all
迴聲“1”> /proc/sys/net/ipv4/icmp_echo_ignore_all
要使用 IPtables 防火牆禁用 ping 響應,請以 root 用戶身份運行以下命令:
iptables -A INPUT -p icmp -j DROP
7.配置主機訪問控制
在某些情況下,您可能希望僅允許對一個 IP 提供特定服務。 為了實現這個目標,您需要做的就是正確配置您的主機訪問控制,它允許您根據用戶的 IP 地址創建允許或拒絕服務器訪問的規則。
拒絕所有連接並僅允許您希望進行的連接是提高服務器安全性以防止針對特定端口的暴力攻擊的最安全做法。
為了使用主機訪問控製配置規則,您需要三件事。
- 您要為其創建規則的服務
- 您要允許或拒絕權限的 IP 地址
- 以及您想要採取的行動(例如允許或拒絕)
要在主機訪問控制中設置規則,請登錄您的 WHM,導航到安全中心→主機訪問控制。
以下是鎖定 SSH 服務的示例:
守護進程 | 訪問列表 | 行動 | 評論 |
sshd | 192.168.3.152 | 允許 | 允許本地 SSH 訪問 |
sshd | 1xx.6x.2xx.2xx | 允許 | 允許來自我的特定 IP 的 SSH |
sshd | 全部 | 否定 | 拒絕所有其他 IP 的訪問 |
注意:規則有優先順序。 如果您選擇使用少數人的允許,則必須將“允許”規則放在“拒絕”規則之前,然後從所有技術中拒絕。
8. 設置 Mod_Security
2017 年,超過 70% 的惡意服務器攻擊是在 Web 應用程序級別執行的。
為了降低與您的特定服務器相關的風險,行業最佳實踐是部署 WAF 或 Web 應用程序防火牆以提高外部安全性並在攻擊到達 Web 應用程序之前檢測/防止攻擊。
ModSecurity 是最古老和最流行的 Web 應用程序防火牆之一,旨在防止:
- SQL 注入
- iFrame 攻擊
- Webshell/後門檢測
- 殭屍網絡攻擊檢測
- HTTP 拒絕服務 (DoS) 攻擊
安裝 mod_security 可以在幾分鐘內完成,只需對現有基礎架構進行少量更改。
您可以從 Easy Apache 配置中啟用它。
要創建 Mod_Security 規則,請轉到ModSeurity 工具並單擊規則列表。
在新窗口中,它將顯示所有規則。 您可以單擊Add Rule來創建新規則。 請注意,您需要重新啟動 Apache 才能部署新規則。
要了解有關 ModSecurity 工具的更多信息,請單擊此處。
9. 使用 RootKit Hunter 掃描您的系統
Rootkit Hunter 或 rkhunter 是一個基於 UNIX 的工具,用於掃描 rootkit、後門和可能的本地漏洞。
它將重要文件的 SHA-1 哈希值與在線數據庫中的文件進行比較,以確保文件的完整性。
它還會搜索默認的 rootkit 目錄、過多的權限、隱藏文件、內核模塊中的可疑字符串以及大量其他可能危及服務器安全的事物。
安裝 RootKit Hunter
將當前工作目錄更改為所需的安裝目錄。
cd /usr/local/src
使用 wget 命令下載 rkhunter 包。
wget http://dfn.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.4.2.tar.gz
解壓下載的 rkhunter 存檔。
tar -zxvf rkhunter-1.4.2.tar.gz
將當前工作目錄更改為 rkhunter 目錄。 確保將目錄名稱替換為實際的目錄名稱。 在我們的例子中,它是“rkhunter-1.4.2”,可以在發布新更新時進行更改。
cd rkhunter-1.4.2
通過執行安裝腳本來安裝 rkhunter 包。
./installer.sh –layout default –install
這將在服務器中安裝 rkhuter 工具。
配置 rkhunter
您可以在路徑/etc/rkhunter.conf找到 rkhunter 的配置文件。 通過更改該文件中的參數值,我們可以修改 rkhunter 的屬性來保護服務器。 允許通過 SSH 登錄
ALLOW_SSH_ROOT_USER = 是
rkhunter 安裝目錄
INSTALLDIR=/路徑/的/安裝/目錄
rkhunter 數據庫目錄
DBDIR=/var/lib/rkhunter/db
rkhunter 腳本目錄
SCRIPTDIR=/usr/local/lib64/rkhunter/scripts
rkhunter 臨時目錄
TMPDIR=/var/lib/rkhunter/tmp
使用 rkhunter 手動掃描
要使用 rkhunter 運行手動掃描,請運行以下命令。
/usr/local/bin/rkhunter -c
默認情況下,rkhunter 以交互模式運行。 rkhunter 執行一系列掃描,在每組掃描之後,您需要按 Enter 鍵繼續掃描。
要跳過交互模式運行,並掃描所有設置,請使用以下命令。 請注意,-c 是檢查本地系統,-sk 是跳過按鍵。
/usr/local/bin/rkhunter -c -sk
要掃描整個文件系統,請運行以下命令。
rkhunter –檢查
使用 Rkhunter 安排自動掃描
要創建計劃的自動掃描,請創建一個執行 rkhunter 掃描並通過電子郵件發送掃描結果的腳本。
如果您想每天運行 rkhunter 掃描,請將腳本上傳到/etc/cron.daily目錄和/etc/cron.weekly以進行每週掃描。
在編輯器中打開一個文件並編寫以下腳本以每天安排它。
vi /etc/cron.daily/rkhunter.sh
安排每日掃描的腳本
#!/bin/sh
(
/usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter --cronjob --report-warnings-only
) | /bin/mail -s 'rkhunter Daily Run (HostnameOfServer)' youremail@address
注意:確保將HostnameOfServer和yourremail@address更改為實際的服務器主機名和腳本中要發送通知的電子郵件地址。
rkhunter 更新和選項
檢查 rkhunter 當前版本。
/usr/local/bin/rkhunter –版本檢查
更新 rkhunter 版本。
/usr/local/bin/rkhunter –更新
如果數據庫文件被更新,檢查並保存更新的值和屬性。
/usr/local/bin/rkhunter –propupd
rkhunter 日誌存儲應用程序完成的所有活動和遇到的錯誤。 檢查 rkhunter 日誌。
/var/log/rkhunter.log
您可以參考其他 rkhunter 選項。
/usr/local/bin/rkhunter –幫助
10. 使用 Maldet 掃描您的系統
Maldet,也稱為 Linux Malware Detect (LMD) 是一種用於 Linux 系統的惡意軟件掃描程序,旨在有效檢測 php 後門程序、暗郵件程序以及可能存在於受感染網站上的許多其他惡意文件。
安裝 Maldet
- SSH 到服務器並下載 tar 文件。
wget href=”http://www.rfxn.com/downloads/maldetect-current.tar.gz”> - 提取文件。
tar -xzf maldetect-current.tar.gz - 轉到maldet文件夾。
cd 惡意檢測-* - 要安裝 maldet,請運行以下命令。
sh ./install.sh
在 Linux 服務器中使用 Maldet
您應該始終打開一個新的屏幕會話並運行掃描,因為根據系統的磁盤空間使用情況,掃描可能需要數小時。 要運行掃描,請使用以下命令。
maldet -a /path/to/scan 或
maldet –scan-all /path/to/scan
您也可以簡單地運行以下命令來掃描整個系統
馬爾代特-a /
服務器掃描完成後,您將在最後獲得 SCAN ID。 要查看掃描的報告,請使用以下命令。 請注意,您需要將 SCAN ID 替換為實際 ID。
maldet – 報告掃描 ID
例如:maldet——報告 062617-2220.1771
要隔離先前掃描的所有惡意軟件結果,請運行以下命令。
maldet -q 掃描 ID
前任。 maldet-檢疫 062617-2220.1771
自動化 Maldet
您可以編輯 maldet 配置文件conf.maldet以自動化流程,例如,
- 將email_alert設置為1以將報告發送到配置的電子郵件帳戶。
- 在email_addr中,設置您要接收掃描報告的電子郵件帳戶。
- 將 quar_hits更改為1 ,以便將發現的任何惡意軟件移動到目錄“ /usr/local/maldetect/quarantine ”,並且您會收到有關配置的電子郵件地址的通知。
- 將quar_susp更改為1 ,這將啟用 cPanel 用戶的帳戶暫停或將非 cPanel 用戶的外殼訪問權限設置為“ /bin/false ”。
11. 設置 Cron 作業以每天運行 ClamAV
由於添加、更新和刪除操作對駐留在服務器上的文件進行迅速,因此確保所有新更改都安全並使用防病毒應用程序正確掃描至關重要。
您可以使用 ClamAV 掃描程序 cron 作業運行每週掃描,這些掃描將在“非工作時間”期間自動啟動。
使用以下命令運行此 cron。
for i in awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq
awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq
awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq
; 做 /usr/local/cpanel/3rdparty/bin/clamscan -i -r /home/$i 2>>/dev/null; 完成 >> /root/infections&
此命令遞歸搜索主目錄中的垃圾郵件和受感染文件。
12.禁用Apache頭信息
由於您的服務器簽名包含 Apache 和操作系統版本等信息,因此使用 WHM 登錄隱藏此信息以防止公眾窺探是很重要的。
- 登錄 WHM 後。 導航到服務配置→ Apache 配置→全局配置。
- 設置以下值。
服務器簽名 = 關閉
服務器令牌 = 僅限產品
13.隱藏PHP版本信息
與 Apache 標頭一樣,您也不應該公開 PHP 版本信息。 以下是隱藏此信息的步驟。
- 登錄 WHM 後。 導航到服務配置→ PHP 配置編輯器。
- 設置以下值。
暴露_php =“關閉”
14.禁用FTP並改用SFTP
儘管您不會從它們的名稱中猜到它,但 FTP 和 SFTP 協議彼此之間的區別再大不過了。
使用標準 FTP,客戶端和服務器之間傳輸的所有數據都是純文本。 這使得竊聽者可以檢索您的機密信息,包括登錄憑據和其他“私人”消息。
與標準 FTP 不同,SFTP(SSH 文件傳輸協議)對命令和數據進行加密,防止密碼和敏感信息以純文本形式通過網絡傳輸。
單擊此處了解生成 SSH 密鑰並通過 SFTP 客戶端連接到服務器的步驟。
如果您只想允許 SFTP 連接並禁用計劃 FTP,請按照 WHM/cPanel 中的以下步驟操作。
- 以 root 用戶身份登錄到您的 WHM/cPanel。
- 導航到FTP 服務器配置。 在TLS Encryption Support中將其更改為Required (Command) 並單擊Save button 。
15. 保護 cPanel 和 WHM 訪問
強制 HTTPS URL 訪問 cPanel/WHM
要使用基於 SSL 的加密保護您的 cPanel 或 WHM 登錄,請執行以下兩個簡單步驟。
- 登錄 WHM 並導航Home → Server Configuration → Tweak Settings 。
- 滾動右側到重定向選項卡並使用下圖所示的設置。
禁用 cPanel-ID 登錄
cPanel 服務器允許兩種類型的登錄。
第一個是默認/標準用戶名和密碼登錄,第二個是使用cPanel ID 登錄服務器。
cPanel ID 允許用戶部署單個用戶名和密碼來訪問各種 cPanel 服務。
雖然此方法非常適合管理大型數據中心並經常僱用新技術人員的組織,但如果您只有一台服務器,則應使用以下步驟禁用它。
- 登錄 WHM 並導航到Home → Security Center → Manage External Authentication 。
- 將 cPanel-ID 登錄更改為禁用,如下圖所示。
結論
通過在您的 VPS 或專用服務器上實施這 15 條簡單的技巧,您將立即減少對內部和外部攻擊的脆弱性,並在幾個小時內提高系統的安全性。
雖然這些技巧會減少對您服務器的威脅數量,但它們並不是萬能的。
為了優化系統的安全性,您需要盡職調查並定期更新自己在服務器安全領域的最新動態。
但是,每月只需進行幾個小時的研究,您就可以保持在 cPanel 安全性的最前沿,並確保您和您的公司在未來幾年內保持安全。
您對上面列出的 15 個提示有任何疑問嗎? 您是否找到了想要分享的 cPanel 服務器的任何新安全功能? 請在下面的評論中告訴我們。