互聯(lián)網(wǎng)和技術(shù)徹底改變了我們的世界,從支付賬單到享受在線購物。顯然,我們正在體驗創(chuàng)新技術(shù)對日常生活的影響。但是,就這些沖動的趨勢正在轉(zhuǎn)向激烈的技術(shù)而言,我們更容易受到安全威脅。
一家網(wǎng)絡(luò)安全公司最近遇到了 3.6 億個被盜信用卡帳戶(在網(wǎng)絡(luò)黑市上待售)的威脅。這不是唯一的威脅;有許多攻擊是以前檢測到的,而且毫無疑問會發(fā)生在我們身邊。因此,必須保持最大的安全性,以確保您的機(jī)密客戶詳細(xì)信息保持安全。此外,它還可以幫助您節(jié)省因消費(fèi)者訴訟而可能給您帶來的數(shù)百萬美元損失。
在這篇博文中,我積累了一些事實,可以幫助您防止基于 LAMP 的服務(wù)器受到漏洞的侵害。LAMP 是最流行的 Web 開發(fā)框架之一,由四個組件組成,即Linux、Apache、My SQL和 PHP,它們以分層的方式構(gòu)建。每一層都支持整個軟件堆棧的關(guān)鍵部分。
保護(hù)您的服務(wù)器免受惡意攻擊
正是出于這個原因,您的 Apache Web 服務(wù)器不可避免地得到了完美的配置、維護(hù)和監(jiān)控,因此它不會暴露在漏洞之下。在此博客中,您可以看到保護(hù)專用服務(wù)器托管可以遵循的一般準(zhǔn)則,以及為減輕此類攻擊造成的損害而應(yīng)考慮的重要步驟。
保護(hù) Web 服務(wù)器安全的步驟
對于裝有 Apache 的服務(wù)器
- 按照下面列出的步驟隱藏 Apache 版本號和其他敏感信息:
添加或編輯以下兩個指令,它們存在于 httpd.conf 文件中
服務(wù)器簽名關(guān)閉
服務(wù)器令牌產(chǎn)品
服務(wù)器簽名出現(xiàn)在 Apache Web 服務(wù)器生成的頁面底部,例如 404 頁面、目錄列表等。
Server Tokens Prod 指令基本上用于確定 Apache 將在服務(wù)器 HTTP 響應(yīng)標(biāo)頭中放入什么。
- 確保您的 Apache 版本在其自己的用戶帳戶和組下運(yùn)行。添加一個單獨(dú)的用戶“Apache”,然后修改 httpd.conf 中的給定指令以將 apache 作為自己的用戶運(yùn)行是最佳方式。
用戶 apache組 apache
- 確保任何用戶都不能訪問 Web 根目錄之外的文件。
<Directory />?Order Deny,Allow?Deny from all?Options None?AllowOverride None?</Directory>?<Directory /html>?Order Allow,Deny允許所有</Directory>
注意:當(dāng)我們在上面的代碼中設(shè)置“Options None”和“AllowOverride”None 時,它??只會關(guān)閉服務(wù)器的所有選項和覆蓋?,F(xiàn)在,您可以為每個需要選項或覆蓋的目錄顯式添加它們。
- 關(guān)閉目錄瀏覽,然后跟隨符號鏈接和CGI 執(zhí)行。您可以通過 Directory 標(biāo)記內(nèi)的 Options 指令執(zhí)行此操作。
只需使用即可關(guān)閉所有選項
選項無
盡管如此,如果您想關(guān)閉很少的幾個,請在 Options 指令中用空格分隔每個選項:
選項 -ExecCGI -FollowSymLinks -Indexes
- 安裝modsecurity
Modsecurity 是一個 Apache 附加模塊,通過它可以檢測和防止 http 攻擊。如果您的 Web 開發(fā)人員忘記添加輸入驗證,這是防止 SQL 注入的最佳方法。如果開發(fā)人員未能識別和阻止信息泄露問題(例如泄漏詳細(xì)的錯誤消息、社會安全號碼或信用卡號碼),信息也可能被泄露
按照這些方法安裝 mod-security
在 CentOS 上:
百勝安裝mod_security
在 Ubuntu 上:
apt-get 安裝 mod_security。
服務(wù) httpd 重新啟動
- 禁用在Apache Web 服務(wù)器上啟用的所有不需要的模塊。
要搜索已安裝的模塊,您可以運(yùn)行以下命令:
grep LoadModule httpd.conf
以下是一些通常啟用但您甚至不需要它們的模塊的列表。
mod_imap
mod_include
mod_info
mod_userdir
模組狀態(tài)
mod_cgi
mod_autoindex。
要禁用它們,請在每個模塊前添加一個 # 符號
- 降低默認(rèn)設(shè)置為 300 秒的超時值。降低此值有助于降低拒絕服務(wù)攻擊的潛在影響。
超時 45
-
限制大請求
要減輕拒絕服務(wù)攻擊的影響,請限制可以在 http 請求中發(fā)送的正文數(shù)量。如果您不需要大量上傳,那么您可以通過以下指令將其限制為 1MB。
限制請求正文 1048576
9. ?應(yīng)用程序和數(shù)據(jù)庫安全對于防止 SQL 注入從編碼不良的網(wǎng)站中提取數(shù)據(jù)至關(guān)重要。以下是如何防止它。
- 確保您的 Joomla、WordPress 和 Drupal 等 Web 應(yīng)用程序是最新的。
- 訂閱錯誤更新和漏洞報告。
- 避免對文件或文件夾的 word 可寫 777 權(quán)限。
- 定期通過掃描您的網(wǎng)絡(luò)包來檢查病毒或感染。
- 如果您使用的是 MySQL 或 MariaDB,請運(yùn)行 MySQL 安全安裝腳本。
- 如果您的應(yīng)用程序需要您存儲敏感信息,如用戶名、密碼、信用卡數(shù)據(jù)等,請確保使用數(shù)字證書方法對所有通信進(jìn)行加密。
對于帶有 PHP 的服務(wù)器
1.?以獨(dú)立用戶而不是Apache 模塊運(yùn)行 PHP 。如果將 php 作為 Apache 模塊安裝,則 php 腳本根據(jù) Apche 用戶權(quán)限運(yùn)行,并且更容易受到安全漏洞攻擊。
安裝 php 的一個不錯的選擇是使用 php-fpm 一個 fastcgi 進(jìn)程管理器,它使您能夠以單獨(dú)的用戶身份運(yùn)行和管理 php 腳本。
- 始終使用 POST 方法傳遞重要參數(shù),如用戶名、密碼、信用卡信息等。
- 始終驗證表單和文本輸入,因為存在跨站點(diǎn)腳本編寫的風(fēng)險,允許黑客通過簡單地上傳包含惡意代碼的文件在您的服務(wù)器上運(yùn)行惡意代碼。
- 通過php.ini文件隱藏PHP版本,添加以下內(nèi)容
Vim /etc/php.ini
expose_php = 關(guān)閉
- 將所有 php 錯誤記錄到一個文件中,而不是在網(wǎng)站上
display_errors = 關(guān)閉
log_errors = 開
error_log = /var/log/httpd/php_error.log
使用 MySQL 或 MariaDB進(jìn)行專用或VPS 托管
- 運(yùn)行 MySQL 安全安裝
安裝 MySQL 后運(yùn)行 mysql_secure_installation 腳本
sudo /usr/bin/mysql_secure_installation
此代碼將提示您添加 MySQL root 密碼,鎖定對 localhost 的 root 訪問并刪除任何不需要的數(shù)據(jù)庫,如測試數(shù)據(jù)庫。
- 通過登錄到您的 MySQL 服務(wù)器來保護(hù) MySQL,并確保所有 MySQL 用戶都有密碼。此外,刪除不需要的用戶(如果有)。僅授予授權(quán)用戶訪問權(quán)限。
上述所有步驟和程序有助于確保您客戶的數(shù)據(jù)保持安全并遠(yuǎn)離所有惡意行為。