實驗環(huán)境
root@NF:~# apache2 -version
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2020-03-13T12:26:16
root@NF:~# cat /etc/issue
Ubuntu 18.04.3 LTS
l
關(guān)注官網(wǎng)更新公告
https://httpd.apache.org/security_report.html
以最小權(quán)限運行Apache進程
注意:本環(huán)境下的Apache默認就是以www-data
用戶運行,默認符合要求。
-
根據(jù)需要,為 Apache 服務(wù)創(chuàng)建用戶及用戶組。如果沒有設(shè)置用戶和組,則新建用戶,并在 Apache 配置文件中進行指定。
i. 創(chuàng)建 Apache 用戶組。
groupadd apache
ii. 創(chuàng)建 Apache 用戶并加入 Apache 用戶組。
useradd apache –g apache
iii. 將下面兩行設(shè)置參數(shù)加入 Apache 配置文件 apache2.conf 中:
User apache Group apache
-
檢查 apache2.conf 配置文件中是否允許使用非專用賬戶(如 root 用戶)運行 Apache 服務(wù)。
默認設(shè)置一般即符合要求。Linux 系統(tǒng)中默認使用 apache 或者 nobody 用戶,Unix 系統(tǒng)默認使用 daemon 用戶。
加固作用:
- 以最小權(quán)限運行中間件服務(wù),即使網(wǎng)站被getshell,也能減少影響程度。
擴展閱讀:
禁用目錄瀏覽功能
編輯配置文件apache2.conf,指定網(wǎng)站根目錄添加Options FollowSymLinks參數(shù)。
<Directory /var/www/html>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
若要啟用目錄瀏覽功能,則是Options Indexes FollowSymLinks
,同樣禁止目錄瀏覽功能除了刪除Indexes
也可以在前面加個減號,即Options -Indexes FollowSymLinks
來表示。
加固作用:
- 不展示目錄結(jié)構(gòu)信息,防止敏感文件泄露。
擴展閱讀:
Apache Options Indexes FollowSymLinks詳解 - callie
AllowOverride參數(shù)詳解 - upupw
啟用日志審計
apache2默認啟用了錯誤日志和訪問日志的記錄,可看配置文件apache.conf有無以下內(nèi)容。
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined
LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
apache默認日志路徑:/var/log/apache2
一條標準的訪問日志內(nèi)容如下:
192.168.56.1 - - [30/Mar/2020:16:34:56 +0800] "GET /test/index.php HTTP/1.1" 200 277 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
格式 | 含義 |
---|---|
%h | 遠端主機(訪問網(wǎng)站的客戶端地址) |
%l | 遠端登錄名,用了短橫代替 |
%u | 遠端用戶名,用了短橫代替 |
%t | 時間,包括訪問的日期、時間、時區(qū) |
%r | 請求起始行,包括請求方法、訪問的文件路徑 |
%>s | HTTP狀態(tài)碼 |
%O | 響應(yīng)包數(shù)據(jù)大小,單位是字節(jié) |
%{Referer}i | 來源 |
%{User-Agent}i | 遠端主機瀏覽器的UA信息 |
加固作用:
- 記錄訪問信息,提供溯源證據(jù)。
- 幫助開發(fā)者排查問題。
擴展閱讀:
限制特定目錄文件執(zhí)行權(quán)限
編輯配置文件apache2.conf,根據(jù)業(yè)務(wù)需求添加下面內(nèi)容。
<Directory "/var/www/html/upload">
<FilesMatch ".(php|php3)$">
Order allow,deny
Deny from all
</FilesMatch>
</Directory>
加固作用:
- 通過禁止訪問來阻止一些非法文件的執(zhí)行(惡意攻擊者通過任意文件上傳漏洞,往往會上傳一些可執(zhí)行文件,如木馬文件,從而拿到webshell)。
擴展閱讀:
apache禁止訪問文件或目錄執(zhí)行權(quán)限、禁止運行腳本PHP文件的設(shè)置方法(轉(zhuǎn))
自定義錯誤頁面
編輯配置文件apache2.conf,添加下面內(nèi)容
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 500 /custom500.html
其中customxxx.html
為要設(shè)置的錯誤頁面,需提前寫好放網(wǎng)站根目錄下。
root@NF:~# ls -lah /var/www/html/ | grep html
-rw-r--r-- 1 ubuntu ubuntu 688 1月 19 15:00 403.html
-rw-r--r-- 1 ubuntu ubuntu 685 1月 19 14:57 404.html
-rw-r--r-- 1 ubuntu ubuntu 665 1月 19 15:01 500.html
加固作用:
- 防止默認報錯頁面泄露一些敏感信息(開發(fā)框架、數(shù)據(jù)庫語句、物理路徑、內(nèi)網(wǎng)IP等)。
擴展閱讀:
隱藏Apache版本號
編輯配置文件apache2.conf,添加下面內(nèi)容
ServerSignature Off
ServerTokens Prod
加固作用:
- 防止中間件版本信息泄露。
限制和允許特定IP訪問
編輯配置文件apache2.conf,添加下面內(nèi)容。
若使用IP白名單,則根據(jù)業(yè)務(wù)需求添加下面內(nèi)容
<Directory "/var/www/html/test">
Options All
AllowOverride None
Order Deny,Allow
Deny From all
Allow From 192.168.1.0/24 192.168.3.0/24
Allow From 127.0.0.1
</Directory>
若使用IP黑名單,則根據(jù)業(yè)務(wù)需求添加下面內(nèi)容
<Directory "/var/www/html/test">
Options All
AllowOverride None
Order Deny,Allow
Deny From 192.168.1.0/24 192.168.3.0/24
Deny From 192.168.56.1
</Directory>
加固作用:
- 使訪問受控。
擴展閱讀:
擴展閱讀
http://httpd.apache.org/docs/current/zh-cn/
https://blog.51cto.com/ww123/1639424
https://www.cnblogs.com/xiaozi/p/10117715.html
https://www.jianshu.com/p/a8bab3f50c7b
https://bbs.ichunqiu.com/thread-35736-1-1.html
http://www.defvul.com/apache/
https://www.alibabacloud.com/help/zh/faq-detail/52981.htm
https://blog.csdn.net/my98800/article/details/51740389
本文摘自 :https://www.cnblogs.com/