恆訊科技講解:vps搭建教程(五)

恆訊科技發表於2022-11-01

小編已經分享了vps搭建第四部分的教程,今天小編將給大家講解vps搭建需要的額外的安全性,也就是搭建教程的第五部分。


到目前為止,我們安裝的預設設定提供了合理的安全級別,只要我們選擇難以猜測的唯一密碼並快速安裝安全補丁(最好是自

動安裝)。儘管如此,我們的vps會不斷受到駭客和垃圾郵件傳送者的攻擊,因此我們應該儘可能多地刪除漏洞並定期檢查日

志檔案。vps搭建需要額外的安全性有:


1、限制 Virtualmin 登入

Virtualmin介面是駭客獲得對您伺服器的root訪問許可權的另一種方式。我強烈建議為任何超級使用者或“sudo”組成員的使用者

啟用雙重身份驗證。我們可以在Webmin > Webmin Configuration > Two-Factor Authentication中啟用此功能。我發現

選擇Google Authenticator 作為提供者是最簡單的,但實際上使用Authy進行身份驗證(因為它可以避免使用 API 金鑰,而

且如果你丟失了手機,你可以恢復你的帳戶)。

我們可能需要安裝 Perl 模組 Authen::OATH,這在 Ubuntu 中很容易做到:sudo apt install libauthen-oath-perl

我們可以在Webmin > Webmin 使用者 > 密碼限制中強制使用強密碼,建議至少設定10個字元的最小長度。

我們還可以根據使用者限制對某些Webmin模組的訪問,並且在任何情況下刪除不需要的模組以整理 Webmin 選單都很有用。

我建議建立一個名稱為“管理員”的組,然後將自己新增到該組中。然後在 管理員 > 可用的 Webmin 模組 中停用“硬體”和“叢集”組中的幾乎所有內容,以及  左側選單欄中未使用的模組中顯示的所有內容。我透過轉到 Webmin > Webmin Configuration > Reassign Modules將“系統時間”模組移動到“系統”選單。當你在那裡時,訪問系統時間中的“時間伺服器同步”選項卡並配置一個時間伺服器名稱(我使用uk.pool.ntp。 這很重要,因為如果伺服器時間偏離得太遠,兩因素身份驗證將不起作用。


2、禁用不必要的服務

proftpd 、clamav-daemon、clamav-freshclam 和命名服務通常不是必需的,可以透過轉到Webmin > Bootup and 

Shutdown並單擊 Start at boot time > No  > Save 然後 Stop Now和Delete來禁用以節省記憶體。您還可以在 Webmin > 

Networking > Firewalld中禁用 ftp 埠 20 和 FTP 。(不要為 TCP 或 UDP 禁用 DNS 埠 53,因為雖然它可能看起來有

效,但如果對傳出查詢的響應太大,則可能會被阻止。)


3、減輕 cookie 劫持

在 Webmin > 工具 > PHP 配置中的全域性 PHP 配置中,您可以透過單擊左上角的設定齒輪並將列表更改為您使用的版本來設

置 PHP 配置檔案列表(預設值是錯誤的)。例如:

/etc/php/*/fpm/php.ini=配置透過 php-fpm 執行的指令碼

/etc/php/*/cli/php.ini=配置命令列指令碼

要減輕 cookie 劫持,請新增以下設定:

session.cookie_samesite = "寬鬆"

session.cookie_httponly = 1

session.cookie_secure = 1

要使站點以 php-fpm 模式執行,請轉到 Virtualmin > Server Configuration > PHP Options > PHP script execution 

mode。要將此設定設為新站點的預設設定,請轉到 Vitualmin > System Settings > Server Templates > Default settings

 > PHP options。重複設定子伺服器。 


4、限制過時的密碼套件-- PCI DSS、HIPAA和NIST合規性

在Webmin > Servers > Apache Webserver > Global Configuration > Configure Apache Modules 中啟用“ headers ”

和“ expires ”模組。它們在下面是必需的,也經常在“.htaccess”檔案中使用,以提供“友好”的 URL 並控制頁面快取超

時。如果我們看到伺服器的預設 Apache 頁面而不是我們的網站,則可能是這些缺少模組的原因。

要限制使用過時和不安全的 SSL 密碼,啟用OCSP stapling 和 HTTP Strict Transport Security並在瀏覽器中啟用跨站點指令碼

保護,您可以將這些語句新增到根目錄中/etc/apache2/apahe2.conf檔案的末尾伺服器的,也可以從Webmin > Servers >

 Apache Webserer > Global Configuration > Edit Config Files訪問。它們可以透過 ImmuniWeb和Qualys SSL Labs服務

器測試進行檢查,應該足以讓您獲得 A+ 評級。之後不要忘記單擊“應用更改”(Apache Webserver 頁面右上角的重新整理符

號)。



同樣,在 Webmin > Webmin Configuration > SSL Encryption 檢查所有低於 TLSv1.2 的 SSL 協議都被拒絕並選擇“僅符

合 PCI 的強密碼”,同樣在 Webmin > Usermin Configuration > SSL Encryption。 

小心限制與 Postfix (/etc/postfix/main.cf) 或Dovecot (/etc/dovecot/dovecot.conf) 的電子郵件連線太多,因為那裡有許

多舊的電子郵件系統無法處理較新的密碼和你可能會丟失訊息。儘管如此,您仍應確保電子郵件登入密碼不會以純文字形式顯

示。對於外發郵件,請轉到  Webmin > Servers > Postfix Mail Server > SMTP Authentication and Encryption 並選中

Require SASL SMTP authentication並禁止透過不安全的連線進行SASL身份驗證。對於傳入的郵件,請轉到 Webmin > 

伺服器 > Dovecot IMAP/POP3 伺服器 > SSL 配置 並選中 Disallow plaintext authentication in non-SSL mode。

預設情況下,任何系統問題的電子郵件報告都將傳送給使用者“root”。您可以透過轉到Webmin > 系統 > 使用者和組 > root

並單擊“閱讀電子郵件”按鈕來閱讀它們。將它們轉發到外部電子郵件地址通常更方便。您可以透過轉到Webmin > Servers

 > Postfix Mail Server > Mail Aliases進行配置,選擇建立新別名並將地址設定為“root”,並將您的電子郵件地址設定為

“別名到”、“電子郵件地址”。


5、啟用防火牆和fail2ban

防火牆可能沒有您期望的那麼有用,因為vps上的大多數服務必須始終可以公開訪問,並且無論如何都應該禁用不必要的服

務。然而,防火牆有助於防止某些型別的拒絕服務(DoS)攻擊。Firewalld由 Webmin 預設設定並啟用,無需進一步配置,

它適用於IPv6和IPv4。

Fail2ban與firewalld一起使用,自動阻止持續違規者的IP地址。它不再能夠防止“暴力”密碼攻擊,因為殭屍網路只是不斷

地改變他們的 IP 地址來繞過它,但它有時仍然對減少伺服器負載很有用。它可以在 Webmin > Networking > Fail2ban

 Intrusion Detector進行配置。預設設定往往弊大於利,因此需要進行一些調整。

請注意,Webmin 目前存在一個錯誤,該錯誤會阻止fail2ban在重新啟動後自動啟動。輸入以下命令來解決這個問題:

sudo systemctl 啟用 fail2ban

首先,我建議去 Filter Action Jails 並將postfix和dovecot jails 設定為較大的值(例如每天 10,000 次嘗試),因為合法用

戶有時會錯誤配置他們的電子郵件客戶端,如果他們觸發了對共享 IP 地址的禁令,他們可以結束阻止整個建築物的電子郵件。

預設的ssh和webmin-auth 監獄可以保留。

接下來,建議新增WP Fail2Ban Redux外掛中所述的wordpress-hard和wordpress-soft過濾器和監獄, 以及此處所述的

apache-404 過濾器和監獄。

最後,fail2ban 將幾乎完全無效,除非到期時間從 10 分鐘增加到 20 天左右(這似乎是可以達到的最大值)。

在/etc/fail2ban/fail2ban.conf 我更改此設定:

[預設]

dbpurage = 20d

在/etc/fail2ban/jail.conf 我更改了這些設定:

[預設]

bantime = 20d

findtime = 20d

maxretry = 9

在/etc/fail2ban/jail.local 我新增這些設定:




我使用以下內容建立了一個新檔案 /etc/fail2ban/paths-overrides.local  :

[預設]

apache_error_log = /var/log/virtualmin/*_error_log

apache_access_log = /var/log/virtualmin/*_access_log


6、病毒掃描程式

不幸的是,Linux的病毒掃描程式往往非常昂貴或非常無效。ImunifyAV 的免費版本是我找到的最好的。它可以按此處所述進

行安裝,也可以按此處所述進行配置。我們將需要為其建立一個虛擬主機,它可以是一個子域,也可以是我們已經擁有的站點上的一個頁面。然後,我們需要建立一個配置檔案來告訴 Imunify 該站點在哪裡,以及所有者和組是誰。您可以使用以下命令執行此操作:

sudo mkdir /etc/sysconfig/imunify360

sudo nano /etc/sysconfig/imunify360/integration.conf

該檔案應包含 UI 路徑和 UI 路徑所有者,如下所示:

[路徑]

ui_path = /home /[所有者]/domains/[imav.domain]/public_html

ui_path_owner = [所有者]:[組]

儲存檔案並使用 Ctrl+O 然後 Ctrl+X 退出。接下來,下載並執行部署指令碼: 

sudo wget -O imav-deploy.sh

sudo bash imav-deploy.sh

我們可能需要將一個或多個管理員(sudo 使用者)的名稱新增到 auth.admin 檔案中:

須藤奈米/etc/sysconfig/imunify360/auth.admin

(您可以在Webmin > System> Users and Groups中建立或提升其他 sudo 使用者, 方法 是將他們的 Shell設定 為

“/bin/bash”並從 Secondary groups新增組“sudo” 。)儲存此檔案,然後將 Web 瀏覽器指向您在上面建立的用於檢視

 Imunify 儀表板的虛擬主機。

我們可能需要配置通知電子郵件,以便在發現惡意軟體時通知。ImunifyAV(免費版)預設沒有設定任何東西。詳細說明

在這裡 ,但簡單的版本是您首先需要下載一個示例“掛鉤指令碼”並使其可由“_imunify”組執行。

cd /etc/imunify360 && \

      curl -O && \

      chown root:_imunify hook_script.sh && \

      chmod g+x hook_script.sh

編輯此檔案以啟用傳送到您所需地址的電子郵件。

MAIL_ENABLE=yes # 預設否,更改為 "yes" 啟用

MAIL_TO=" your-email@domain " # 對於多個電子郵件地址,使用逗號

在 Imunify 儀表板中,單擊“設定”齒輪並選擇“通知”選項卡。在“自定義掃描:檢測到惡意軟體”和“使用者掃描:檢測

到惡意軟體”下,選擇“啟用指令碼執行”,貼上掛鉤指令碼的位置(本例中為/etc/imunify360/hook_script.sh)並儲存更改。

重新啟動通知服務並安裝“jq”包。

systemctl restart imunify-notifier

sudo apt install jq

單擊“全部掃描”按鈕,幾天後回來檢視結果。這會檢查所有使用者檔案,包括電子郵件。

可以使用這個簡單的命令安裝另一個有用的掃描程式,它不會造成太大的傷害並且可以檢測到對系統檔案的不需要的更改:

sudo apt install rkhunter


以上就是vps搭建教程的第五部分介紹,內容會比較多,希望能幫助到大家參考!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983369/viewspace-2921357/,如需轉載,請註明出處,否則將追究法律責任。

相關文章