天天看點

安全加強----三、Apache服務安全加強Apache服務安全加強

文章目錄

  • Apache服務安全加強
    • 一、運作設定
    • 二、授權設定
    • 三、日志設定
    • 四、禁止通路外部檔案
    • 五、禁止目錄列出
    • 六、錯誤頁面重定向
    • 七、拒絕服務防範
    • 八、隐藏 Apache 的版本号
    • 九、關閉 TRACE功能
    • 十、禁用 CGI
    • 十一、綁定監聽位址
    • 十二、删除預設安裝的無用檔案
    • 十三、禁用非法 HTTP 方法

Apache服務安全加強

一、運作設定

以專門的使用者帳号和使用者組運作 Apache 服務。

1、根據需要,為 Apache 服務建立使用者及使用者組。如果沒有設定使用者群組,則建立使用者,并在 Apache 配置檔案中進行指定。

1、建立 Apache 使用者組:
groupadd apache

2、建立 Apache 使用者并加入 Apache 使用者組:
useradd apache –g apache

3、将下面兩行設定參數加入 Apache 配置檔案 httpd.conf 中:
User apache    Group apache                        
           

2、檢查 httpd.conf 配置檔案中是否允許使用非專用賬戶(如 root 使用者)運作 Apache 服務。

預設設定一般即符合要求。Linux 系統中預設使用 apache 或者 nobody 使用者,Unix 系統預設使用 daemon 使用者。

二、授權設定

嚴格控制 Apache 主目錄的通路權限,非超級使用者不能修改該目錄中的内容。

1、Apache 的主目錄對應于 Apache Server配置檔案 httpd.conf 中的 Server Root 控制項,應設定為:

Server Root /usr/local/apache    
           

①判定條件: 非超級使用者不能修改該目錄中的内容。

②檢測操作: 嘗試進行修改,看是否能修改該目錄中的内容。

該目錄一般設定為 /etc/httpd 目錄,預設情況下屬主為 root 使用者,其它使用者不能修改該目錄中的檔案。預設設定一般即符合要求。

2、嚴格設定配置檔案和日志檔案的權限,防止未授權通路。

執行chmod 600 /etc/httpd/conf/httpd.conf指令設定配置檔案為屬主可讀寫,其他使用者無讀寫權限。
執行chmod 644 /var/log/httpd/.log指令設定日志檔案為屬主可讀寫,其他使用者擁有隻讀權限。
           

注意:

- /etc/httpd/conf/httpd.conf

配置檔案的預設權限是644,可根據需要修改權限為600。

- /var/log/httpd/.log

日志檔案的預設權限為644,預設設定即符合要求。

三、日志設定

Apache 裝置應配置日志功能,對運作錯誤、使用者通路等事件進行記錄,記錄内容包括時間,使用者使用的 IP 位址等内容。

修改 httpd.conf 配置檔案,設定日志記錄檔案、記錄内容、記錄格式。

錯誤日志:
    LogLevel notice #日志的級别    ErrorLog /…/logs/error_log #日志的儲存位置(錯誤日志)                    

通路日志:
    LogFormat %h %l %u %t \”%r\” %>s %b “%{Accept}i\”%{Referer}i\” \”%{User-Agent}i\””    combined    CustomLog /…/logs/access_log combined (通路日志)     
           
注意:
1、ErrorLog指令設定錯誤日志檔案名和位置。錯誤日志是最重要的日志檔案。Apache httpd 程式将在這個檔案中存放診斷資訊和處理請求中出現的錯誤。若要将錯誤日志傳送到 Syslog,則執行ErrorLog syslog指令。
2、CustomLog指令指定了儲存日志檔案的具體位置以及日志的格式。通路日志中會記錄伺服器所處理的所有請求。
3、LogFormat指令用于設定日志格式,建議設定為 combined 格式。
4、LogLevel指令用于調整記錄在錯誤日志中的資訊的詳細程度,建議設定為 notice。日志的級别,預設是 warn 級别,notice 級别比較詳細,但在實際中由于日志會占用大量硬碟空間。
           

四、禁止通路外部檔案

禁止 Apache 通路 Web 目錄之外的任何檔案。

1、修改 httpd.conf 配置檔案。
    Order Deny,Allow    Deny from all                    
2、設定可通路的目錄。
    Order Allow,Deny    Allow from /web                    
說明: 其中 /web 為網站根目錄。
3、預設配置如下,可根據您的業務需要進行設定。
    Options FollowSymLinks    AllowOverride None                   
           

五、禁止目錄列出

目錄列出會導緻明顯資訊洩露或下載下傳,建議禁止 Apache 清單顯示檔案。在 /etc/httpd/httpd.conf 配置檔案中删除 Options 的 Indexes 設定即可。

1、修改 httpd.conf 配置檔案:

Options Indexes FollowSymLinks

中的Indexes去掉,就可以禁止 Apache 顯示該目錄結構。Indexes的作用就是當該目錄下沒有 index.html 檔案時,自動顯示目錄結構。

2、重新啟動 Apache 服務。

六、錯誤頁面重定向

Apache 錯誤頁面重定向功能可以防止敏感資訊洩露。

1、修改 httpd.conf 配置檔案:

ErrorDocument 400 /custom400.html    ErrorDocument 401 /custom401.html    ErrorDocument 403 /custom403.html    ErrorDocument 404 /custom404.html    ErrorDocument 405 /custom405.html    ErrorDocument 500 /custom500.html 
           

注意: Customxxx.html 為要設定的錯誤頁面。

2、重新啟動 Apache 服務。

注意: 此項配置需要應用系統設有錯誤頁面,或者不在 httpd 中設定,而完全由業務邏輯實作。

七、拒絕服務防範

根據業務需要,合理設定 session 時間,防止拒絕服務攻擊。

1、修改 httpd.conf 配置檔案:

2、重新啟動 Apache 服務。

注意: 預設值為Timeout 120,KeepAlive Off,KeepAliveTimeout 15,該項設定涉及性能調整。

八、隐藏 Apache 的版本号

隐藏 Apache 的版本号及其它敏感資訊。

修改 httpd.conf 配置檔案:
ServerSignature Off ServerTokens Prod      
           

九、關閉 TRACE功能

關閉 TRACE 功能,防止 TRACE 方法被通路者惡意利用。

在 /etc/httpd/conf/httpd.conf 配置檔案中添加以下設定參數:
TraceEnable Off    
           

注意: 該參數适用于 Apache 2.0 以上版本。

十、禁用 CGI

如果伺服器上不需要運作 CGI 程式,建議禁用 CGI。

如果沒有CGI程式,可以修改 /etc/httpd/conf/httpd.conf 配置檔案,把 cgi-bin 目錄的配置和子產品都進行注釋。

十一、綁定監聽位址

伺服器有多個 IP 位址時,隻監聽提供服務的 IP 位址。

1、執行以下指令檢視是否綁定 IP 位址。
cat /etc/httpd/conf/httpd.conf|grep Listen                    
2、修改 /etc/httpd/conf/httpd.conf 配置檔案。
Listen x.x.x.x:80                 
           

監聽功能預設監聽所有位址,如果伺服器隻有一個 IP 位址可不修改該項設定,如果有多個 IP 可根據需要進行設定。

十二、删除預設安裝的無用檔案

删除預設安裝的無用檔案。

1、删除預設 HTML 檔案:
# rm -rf /usr/local/apache2/htdocs/                    
2、删除預設的 CGI 腳本:
# rm –rf /usr/local/apache2/cgi-bin/                    
3、删除 Apache 說明檔案:
# rm –rf /usr/local/apache2/manual                    
4、删除源代碼檔案:
# rm -rf /path/to/httpd-2.2.4*                    
5、删除 CGI:
可根據實際情況删除,一般情況下 /var/www/html /var/www/cgi-bin 預設就是空的。
           

注意: 根據安裝步驟不同和版本不同,某些目錄或檔案可能不存在或位置不同。

十三、禁用非法 HTTP 方法

禁用 PUT、DELETE 等危險的 HTTP 方法。

修改 httpd.conf 配置檔案,隻允許 get、post 方法。
<Location /><LimitExcept GET POST CONNECT OPTIONS>  Order Allow,Deny  Deny from all</LimitExcept></Location> 
           
可根據需要進行設定,如果需要用到 PUT 或 Delete 等 HTTP 方法的話,在 /etc/httpd/conf/httpd.conf 配置檔案中相應添加即可。
     </article>
  </main>
           

參考連結:

https://help.aliyun.com/knowledge_detail/52981.html?spm=a2c4g.11186623.2.4.593b781f5lLfUB

繼續閱讀