小編已經(jīng)分享了vps搭建第四部分的教程,今天小編將給大家講解vps搭建需要的額外的安全性,也就是搭建教程的第五部分。
到目前為止,我們安裝的默認(rèn)設(shè)置提供了合理的安全級(jí)別,只要我們選擇難以猜測(cè)的唯一密碼并快速安裝安全補(bǔ)?。ㄗ詈檬亲詣?dòng)安裝)。盡管如此,我們的vps會(huì)不斷受到黑客和垃圾郵件發(fā)送者的攻擊,因此我們應(yīng)該盡可能多地刪除漏洞并定期檢查日志文件。vps搭建需要額外的安全性有:
1、限制 Virtualmin 登錄
Virtualmin界面是黑客獲得對(duì)您服務(wù)器的root訪問權(quán)限的另一種方式。我強(qiáng)烈建議為任何超級(jí)用戶或“sudo”組成員的用戶啟用雙重身份驗(yàn)證。我們可以在Webmin > Webmin Configuration > Two-Factor Authentication中啟用此功能。我發(fā)現(xiàn)選擇Google Authenticator 作為提供者是最簡(jiǎn)單的,但實(shí)際上使用Authy進(jìn)行身份驗(yàn)證(因?yàn)樗梢员苊馐褂?API 密鑰,而且如果你丟失了手機(jī),你可以恢復(fù)你的帳戶)。
我們可能需要安裝 Perl 模塊 Authen::OATH,這在 Ubuntu 中很容易做到:sudo apt install libauthen-oath-perl
我們可以在Webmin > Webmin 用戶 > 密碼限制中強(qiáng)制使用強(qiáng)密碼,建議至少設(shè)置10個(gè)字符的最小長(zhǎng)度。
我們還可以根據(jù)用戶限制對(duì)某些Webmin模塊的訪問,并且在任何情況下刪除不需要的模塊以整理 Webmin 菜單都很有用。我建議創(chuàng)建一個(gè)名稱為“管理員”的組,然后將自己添加到該組中。然后在 管理員 > 可用的 Webmin 模塊 中停用“硬件”和“集群”組中的幾乎所有內(nèi)容,以及 左側(cè)菜單欄中未使用的模塊中顯示的所有內(nèi)容。我通過(guò)轉(zhuǎn)到 Webmin > Webmin Configuration > Reassign Modules將“系統(tǒng)時(shí)間”模塊移動(dòng)到“系統(tǒng)”菜單。當(dāng)你在那里時(shí),訪問系統(tǒng)時(shí)間中的“時(shí)間服務(wù)器同步”選項(xiàng)卡并配置一個(gè)時(shí)間服務(wù)器名稱(我使用uk.pool.ntp。 這很重要,因?yàn)槿绻?wù)器時(shí)間偏離得太遠(yuǎn),兩因素身份驗(yàn)證將不起作用。
2、禁用不必要的服務(wù)
proftpd 、clamav-daemon、clamav-freshclam 和命名服務(wù)通常不是必需的,可以通過(guò)轉(zhuǎn)到Webmin > Bootup and Shutdown并單擊 Start at boot time > No > Save 然后 Stop Now和Delete來(lái)禁用以節(jié)省內(nèi)存。您還可以在 Webmin > Networking > Firewalld中禁用 ftp 端口 20 和 FTP 。(不要為 TCP 或 UDP 禁用 DNS 端口 53,因?yàn)殡m然它可能看起來(lái)有效,但如果對(duì)傳出查詢的響應(yīng)太大,則可能會(huì)被阻止。)
3、減輕 cookie 劫持
在 Webmin > 工具 > PHP 配置中的全局 PHP 配置中,您可以通過(guò)單擊左上角的設(shè)置齒輪并將列表更改為您使用的版本來(lái)設(shè)置 PHP 配置文件列表(默認(rèn)值是錯(cuò)誤的)。例如:
/etc/php/*/fpm/php.ini=配置通過(guò) php-fpm 運(yùn)行的腳本
/etc/php/*/cli/php.ini=配置命令行腳本
要減輕 cookie 劫持,請(qǐng)?zhí)砑右韵略O(shè)置:
session.cookie_samesite = "寬松"
session.cookie_httponly = 1
session.cookie_secure = 1
要使站點(diǎn)以 php-fpm 模式運(yùn)行,請(qǐng)轉(zhuǎn)到 Virtualmin > Server Configuration > PHP Options > PHP script execution mode。要將此設(shè)置設(shè)為新站點(diǎn)的默認(rèn)設(shè)置,請(qǐng)轉(zhuǎn)到 Vitualmin > System Settings > Server Templates > Default settings > PHP options。重復(fù)設(shè)置子服務(wù)器。
4、限制過(guò)時(shí)的密碼套件-- PCI DSS、HIPAA和NIST合規(guī)性
在Webmin > Servers > Apache Webserver > Global Configuration > Configure Apache Modules 中啟用“ headers ”和“ expires ”模塊。它們?cè)谙旅媸潜匦璧?,也?jīng)常在“.htaccess”文件中使用,以提供“友好”的 URL 并控制頁(yè)面緩存超時(shí)。如果我們看到服務(wù)器的默認(rèn) Apache 頁(yè)面而不是我們的網(wǎng)站,則可能是這些缺少模塊的原因。
要限制使用過(guò)時(shí)和不安全的 SSL 密碼,啟用OCSP stapling 和 HTTP Strict Transport Security并在瀏覽器中啟用跨站點(diǎn)腳本保護(hù),您可以將這些語(yǔ)句添加到根目錄中/etc/apache2/apahe2.conf文件的末尾服務(wù)器的,也可以從Webmin > Servers > Apache Webserer > Global Configuration > Edit Config Files訪問。它們可以通過(guò) ImmuniWeb和Qualys SSL Labs服務(wù)器測(cè)試進(jìn)行檢查,應(yīng)該足以讓您獲得 A+ 評(píng)級(jí)。之后不要忘記單擊“應(yīng)用更改”(Apache Webserver 頁(yè)面右上角的刷新符號(hào))。
同樣,在 Webmin > Webmin Configuration > SSL Encryption 檢查所有低于 TLSv1.2 的 SSL 協(xié)議都被拒絕并選擇“僅符合 PCI 的強(qiáng)密碼”,同樣在 Webmin > Usermin Configuration > SSL Encryption。
小心限制與 Postfix (/etc/postfix/main.cf) 或Dovecot (/etc/dovecot/dovecot.conf) 的電子郵件連接太多,因?yàn)槟抢镉性S多舊的電子郵件系統(tǒng)無(wú)法處理較新的密碼和你可能會(huì)丟失消息。盡管如此,您仍應(yīng)確保電子郵件登錄密碼不會(huì)以純文本形式顯示。對(duì)于外發(fā)郵件,請(qǐng)轉(zhuǎn)到 Webmin > Servers > Postfix Mail Server > SMTP Authentication and Encryption 并選中Require SASL SMTP authentication并禁止通過(guò)不安全的連接進(jìn)行SASL身份驗(yàn)證。對(duì)于傳入的郵件,請(qǐng)轉(zhuǎn)到 Webmin > 服務(wù)器 > Dovecot IMAP/POP3 服務(wù)器 > SSL 配置 并選中 Disallow plaintext authentication in non-SSL mode。
默認(rèn)情況下,任何系統(tǒng)問題的電子郵件報(bào)告都將發(fā)送給用戶“root”。您可以通過(guò)轉(zhuǎn)到Webmin > 系統(tǒng) > 用戶和組 > root并單擊“閱讀電子郵件”按鈕來(lái)閱讀它們。將它們轉(zhuǎn)發(fā)到外部電子郵件地址通常更方便。您可以通過(guò)轉(zhuǎn)到Webmin > Servers > Postfix Mail Server > Mail Aliases進(jìn)行配置,選擇創(chuàng)建新別名并將地址設(shè)置為“root”,并將您的電子郵件地址設(shè)置為“別名到”、“電子郵件地址”。
5、啟用防火墻和fail2ban
防火墻可能沒有您期望的那么有用,因?yàn)関ps上的大多數(shù)服務(wù)必須始終可以公開訪問,并且無(wú)論如何都應(yīng)該禁用不必要的服務(wù)。然而,防火墻有助于防止某些類型的拒絕服務(wù)(DoS)攻擊。Firewalld由 Webmin 默認(rèn)設(shè)置并啟用,無(wú)需進(jìn)一步配置,它適用于IPv6和IPv4。
Fail2ban與firewalld一起使用,自動(dòng)阻止持續(xù)違規(guī)者的IP地址。它不再能夠防止“暴力”密碼攻擊,因?yàn)榻┦?a target="_blank">網(wǎng)絡(luò)只是不斷地改變他們的 IP 地址來(lái)繞過(guò)它,但它有時(shí)仍然對(duì)減少服務(wù)器負(fù)載很有用。它可以在 Webmin > Networking > Fail2ban Intrusion Detector進(jìn)行配置。默認(rèn)設(shè)置往往弊大于利,因此需要進(jìn)行一些調(diào)整。
請(qǐng)注意,Webmin 目前存在一個(gè)錯(cuò)誤,該錯(cuò)誤會(huì)阻止fail2ban在重新啟動(dòng)后自動(dòng)啟動(dòng)。輸入以下命令來(lái)解決這個(gè)問題:
sudo systemctl 啟用 fail2ban
首先,我建議去 Filter Action Jails 并將postfix和dovecot jails 設(shè)置為較大的值(例如每天 10,000 次嘗試),因?yàn)楹戏ㄓ脩粲袝r(shí)會(huì)錯(cuò)誤配置他們的電子郵件客戶端,如果他們觸發(fā)了對(duì)共享 IP 地址的禁令,他們可以結(jié)束阻止整個(gè)建筑物的電子郵件。默認(rèn)的ssh和webmin-auth 監(jiān)獄可以保留。
接下來(lái),建議添加WP Fail2Ban Redux插件中所述的wordpress-hard和wordpress-soft過(guò)濾器和監(jiān)獄, 以及此處所述的apache-404 過(guò)濾器和監(jiān)獄。
最后,fail2ban 將幾乎完全無(wú)效,除非到期時(shí)間從 10 分鐘增加到 20 天左右(這似乎是可以達(dá)到的最大值)。
在/etc/fail2ban/fail2ban.conf 我更改此設(shè)置:
[默認(rèn)]
dbpurage = 20d
在/etc/fail2ban/jail.conf 我更改了這些設(shè)置:
[默認(rèn)]
bantime = 20d
findtime = 20d
maxretry = 9
在/etc/fail2ban/jail.local 我添加這些設(shè)置:
我使用以下內(nèi)容創(chuàng)建了一個(gè)新文件 /etc/fail2ban/paths-overrides.local :
[默認(rèn)]
apache_error_log = /var/log/virtualmin/*_error_log
apache_access_log = /var/log/virtualmin/*_access_log
6、病毒掃描程序
不幸的是,Linux的病毒掃描程序往往非常昂貴或非常無(wú)效。ImunifyAV 的免費(fèi)版本是我找到的最好的。它可以按此處所述進(jìn)行安裝,也可以按此處所述進(jìn)行配置。我們將需要為其創(chuàng)建一個(gè)虛擬主機(jī),它可以是一個(gè)子域,也可以是我們已經(jīng)擁有的站點(diǎn)上的一個(gè)頁(yè)面。然后,我們需要?jiǎng)?chuàng)建一個(gè)配置文件來(lái)告訴 Imunify 該站點(diǎn)在哪里,以及所有者和組是誰(shuí)。您可以使用以下命令執(zhí)行此操作:
sudo mkdir /etc/sysconfig/imunify360
sudo nano /etc/sysconfig/imunify360/integration.conf
該文件應(yīng)包含 UI 路徑和 UI 路徑所有者,如下所示:
[路徑]
ui_path = /home /[所有者]/domains/[imav.domain]/public_html
ui_path_owner = [所有者]:[組]
保存文件并使用 Ctrl+O 然后 Ctrl+X 退出。接下來(lái),下載并執(zhí)行部署腳本:
sudo wget https://repo.imunify360.cloudlinux.com/defence360/imav-deploy.sh -O imav-deploy.sh
sudo bash imav-deploy.sh
我們可能需要將一個(gè)或多個(gè)管理員(sudo 用戶)的名稱添加到 auth.admin 文件中:
須藤納米/etc/sysconfig/imunify360/auth.admin
(您可以在Webmin > System> Users and Groups中創(chuàng)建或提升其他 sudo 用戶, 方法 是將他們的 Shell設(shè)置 為“/bin/bash”并從 Secondary groups添加組“sudo” 。)保存此文件,然后將 Web 瀏覽器指向您在上面創(chuàng)建的用于查看 Imunify 儀表板的虛擬主機(jī)。
我們可能需要配置通知電子郵件,以便在發(fā)現(xiàn)惡意軟件時(shí)通知。ImunifyAV(免費(fèi)版)默認(rèn)沒有設(shè)置任何東西。詳細(xì)說(shuō)明在這里 ,但簡(jiǎn)單的版本是您首先需要下載一個(gè)示例“掛鉤腳本”并使其可由“_imunify”組執(zhí)行。
cd /etc/imunify360 &&
curl https://docs.imunify360.com/hook_script.sh -O &&
chown root:_imunify hook_script.sh &&
chmod g+x hook_script.sh
編輯此文件以啟用發(fā)送到您所需地址的電子郵件。
MAIL_ENABLE=yes # 默認(rèn)否,更改為 "yes" 啟用
MAIL_TO=" your-email@domain " # 對(duì)于多個(gè)電子郵件地址,使用逗號(hào)
在 Imunify 儀表板中,單擊“設(shè)置”齒輪并選擇“通知”選項(xiàng)卡。在“自定義掃描:檢測(cè)到惡意軟件”和“用戶掃描:檢測(cè)到惡意軟件”下,選擇“啟用腳本執(zhí)行”,粘貼掛鉤腳本的位置(本例中為/etc/imunify360/hook_script.sh)并保存更改。
重新啟動(dòng)通知服務(wù)并安裝“jq”包。
systemctl restart imunify-notifier
sudo apt install jq
單擊“全部掃描”按鈕,幾天后回來(lái)查看結(jié)果。這會(huì)檢查所有用戶文件,包括電子郵件。
可以使用這個(gè)簡(jiǎn)單的命令安裝另一個(gè)有用的掃描程序,它不會(huì)造成太大的傷害并且可以檢測(cè)到對(duì)系統(tǒng)文件的不需要的更改:
sudo apt install rkhunter
以上就是vps搭建教程的第五部分介紹,內(nèi)容會(huì)比較多,希望能幫助到大家參考!
-
防火墻
+關(guān)注
關(guān)注
0文章
411瀏覽量
35525 -
vps
+關(guān)注
關(guān)注
1文章
99瀏覽量
11978
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論