萬盛學電腦網

 萬盛學電腦網 >> 網絡應用技術 >> Apache安全加固的方法

Apache安全加固的方法

  一.賬號設置

  以專門的用戶帳號和組運行 Apache。

  1、根據需要為 Apache 創建用戶、組

  2、參考配置操作 如果沒有設置用戶和組,則新建用戶,並在 Apache 配置文件中指定

  (1) 創建 apache 組:groupadd apache

  (2) 創建 apache 用戶並加入 apache 組:useradd apache –g apache

  (3) 將下面兩行加入 Apache 配置文件 httpd.conf 中

  User apache

  Group apache

  3、檢查 httpd.conf 配置文件。 檢查是否使用非專用賬戶(如 root)運行 apache

  默認一般符合要求,Linux下默認apache或者nobody用戶,Unix默認為daemon用戶

  二.授權設置

  嚴格控制Apache主目錄的訪問權限,非超級用戶不能修改該目錄中的內容

  1、Apache 的 主目錄對應 於 Apache Server

  配置文件 httpd.conf 的

  Server Root控制項中,

  應為:

  Server Root /usr/local/apache”

  2、判定條件

  非超級用戶不能修改該目錄中的內容

  3、檢測操作

  嘗試修改,看是否能修改

  4、一般為/etc/httpd目錄,默認情況下屬主為root:root,其它用戶不能修改文件,默認一般符合要求

  嚴格設置配置文件和日志文件的權限,防止未授權訪問

  1、chmod 600 /etc/httpd/conf/httpd.conf”設置配置文件為屬主可讀寫,其他用戶無權限。

  2、使用命令”chmod 644 /var/log/httpd/*.log”設置日志文件為屬主可讀寫,其他用戶只讀權限。

  3、/etc/httpd/conf/httpd.conf默認權限是644,可根據需要修改權限為600。

  4、/var/log/httpd/*.log默認權限為644,默認一般符合要求。

  三.日志設置

  設備應配置日志功能,對運行錯誤、用戶訪問等進行記錄,記錄

  內容包括時間,用戶使用的 IP 地址等內容。

  1、編輯 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 (訪問日志)

  ErrorLog 指令設置錯誤日志文件名和位置。錯誤日志是最重要的 日志文件,

  Apache httpd 將在這個文件中存放診斷信息和處理請 求中出現的錯誤。

  若要將錯誤日志送到 Syslog,則設置: ErrorLog syslog。

  CustomLog 指令指定了保存日志文件的具體位置以及日志的格式。訪問日志中會記錄服務器所處理的所有請求。

  LogFormat 設置日志格式,建議設置為 combined 格式。

  LogLevel 用於調整記錄在錯誤日志中的信息的詳細程度,建議設置為notice。

  日志的級別,默認是warn,notice級別比較詳細,在實際中由於日志會占用大量硬盤空間,一般沒有設置

  四.禁止訪問外部文件

  禁止 Apache 訪問 Web 目錄之外的任何文件。

  1、參考配置操作

  編輯 httpd.conf 配置文件,

  Order Deny,Allow

  Deny from all

  2、設置可訪問目錄,

  Order Allow,Deny

  Allow from all

  其中/web 為網站根目錄

  3、默認配置是

  Options FollowSymLinks

  AllowOverride None

  一般可根據需要設置

  五.目錄列出

  禁止 Apache 列表顯示文件

  編輯 httpd.conf 配置文件。

  Options Indexes FollowSymLinks #刪掉

  Indexes

  AllowOverride None

  Order allow,deny

  Allow from all

  將Options Indexes FollowSymLinks 中的 Indexes 去掉,就可以禁 止 Apache 顯示該目錄結構。

  Indexes 的作用就是當該目錄下沒 有 index.html 文件時,就顯示目錄結構。

  2、重新啟動 Apache 服務

  3、可以設置 /etc/httpd/httpd.conf 段中刪除Options的Indexes設置 一般可根據需要設置

  六.錯誤頁面重定向

  Apache 錯誤頁面重定向

  1、修改 httpd.conf 配置文件:

  ErrorDocument 400 /custom400.html

  ErrorDocument 401 /custom401.html

  ErrorDocument 403 /custom403.html

  ErrorDocument 404 /custom404.html

  ErrorDocument 405 /custom405.html

  http://www.013188.com

  ErrorDocument 500 /custom500.html Customxxx.html 為要設置的錯誤頁面。

  2、重新啟動 Apache 服務

  3、此項需要應用系統設有錯誤頁面,或者不在httpd中設置完全由業務邏輯實現,可不做

  七.拒絕服務防范

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

  1、編輯 httpd.conf 配置文件,

  Timeout 10 #客戶端與服務器端建立連接前的時間間隔

  KeepAlive On

  KeepAliveTimeout 15 #限制每個 session 的保持時間是 15 秒 注:此處為一建議值,具體的設定需要根據現實情況。

  2、重新啟動 Apache 服務

  3、默認Timeout 120 KeepAlive Off,KeepAliveTimeout 15,該項設置涉及性能調整,一般不做。

  八.隱藏 Apache 的版本號

  隱藏 Apache 的版本號及其它敏感信息。

  1、配置操作

  修改 httpd.conf 配置文件: ServerSignature Off ServerTokens Prod

  2、默認是 ServerSignature On,ServerTokens OS,可以設置

  九.關閉 TRACE

  關閉 TRACE,防止 TRACE 方法被訪問者惡意利用

  1、 配置修改vim /etc/httpd/conf/httpd.conf

  添加 “TraceEnable Off”

  注:適用於 Apache 2.0 以上版本

  2、默認沒有該項設置,可以做。

  十.禁用 CGI

  如果服務器上不需要運行 CGI 程序,建議禁用 CGI

  1、 修改配置vim /etc/httpd/conf/httpd.conf

  把 cgi-bin 目錄的配置和模塊都注釋掉

  #LoadModule cgi_module modules/mod_cgi.so

  #ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”

  #

  #AllowOverride None

  # Options None

  #Order allow,deny

  #Allow from all

  #

  2、 根據需要設置,如果沒有CGI程序,可以關閉

  十一.監聽地址綁定

  服務器有多個 IP 地址時,只監聽提供服務的 IP 地址

  1、 修改配置vim /etc/httpd/conf/httpd.con

  修改

  Listen x.x.x.x:80

  2、檢測操作

  使用命令”cat /etc/httpd/conf/httpd.conf|grep Listen”查看是否 綁定 IP 地址

  3、默認設置是Listen 80監聽所有地址,如果服務器只有一個IP地址可不做該項設置,如果有多個IP可以按照需要設。

  十二.刪除缺省安裝的無用文件

  刪除缺省安裝的無用文件。

  1、參考配置操作刪除缺省 HTML 文件:

  # rm -rf /usr/local/apache2/htdocs/*

  刪除缺省的 CGI 腳本:

  # rm –rf /usr/local/apache2/cgi-bin/*

  刪除 Apache 說明文件:

  # rm –rf /usr/local/apache2/manual

  刪除源代碼文件:

  ( http://www.620788.com )

  # rm -rf /path/to/httpd-2.2.4* 根據安裝步驟不同和版本不同,某些目錄或文件可能不存在或位置不同。

  2、可根據實際情況刪除,一般是 /var/www/html /var/www/cgi-bin 默認就是空的

  十三.禁用非法 HTTP 方法

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

  1、 編輯 httpd.conf 文件。

  只允許 get、post 方法

  Deny from all

  2、檢測操作

  查看 httpd.conf 文件,

  檢查如下內容,是否只允許 get、post

  方法

  Deny from all

  3、根據需要可設置,如果沒有不需要用到put delete HTTP 方法的話,

  加在/etc/httpd/conf/httpd.conf的段中。

copyright © 萬盛學電腦網 all rights reserved