1.更新所有關於security的patch
若patch沒上,做在多的設定也是枉然~~
2.隱藏主機資訊
apache預設會提供許多主機資訊,你可以透過下方的參數關閉
ServerSignature off
ServerTokens Prod
3.不與其他服務共用帳號
有些Linux發行版本會使用nobody作為apache預設的帳號及群組,若共用的服務遭受攻擊,apache也可能連帶受影響,反之亦然
User apache
Group apache
4.避免apache存取網站根目錄以外的檔案
5.關閉目錄瀏覽功能<Directory /> Order Deny,Allow Deny from all Options None AllowOverride None </Directory> <Directory /DocumentRoot> Order Allow,Deny Allow from all </Directory>
設定Options為None或-Indexes
6.關閉includes功能<Directory /> Options -Indexes </Directory>
設定Options為None或-Includes
7.關閉CGI<Directory /> Options -Includes </Directory>
若沒用到CGI功能,利用Options關閉
8.不要允許符號連結<Directory /> Options -ExecCGI </Directory>
利用Options關閉此功能
9.停用.htaccess檔<Directory /> Options -FollowSymLinks </Directory>
假如一定要用.htaccess,要確保不能被下載或改檔名
10.使用mod_security模組<Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy All </Files> 或者直接禁止 <Directory /> AllowOverride None </Directory>>
相關資訊可以參考 ModSecurity
11.關閉沒有必要的模組
通常Linux隨附的apache,預設都會載入一堆很少用到的模組,請關掉它
例如:
mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex
12.確保只有root可以存取apache的設定檔及執行檔
chown -R root:root /usr/sbin/httpd
chmod -R o-rwx /usr/sbin/httpd
13.降低Timeout的值,降低DoS攻擊的影響
Timeout 45
14.限制large requests
LimiteRequestBody指令預設是無限制,若你允許小於1M的檔案上傳,你可以利用此指令限制服務請求,若你不允許檔案上傳,你甚至可以設定更小的值
LimitRequestBody 1048576
另外還有LimitRequestFields, LimitRequestFieldSize, LimitRequestLine等參數,你可以依照本身的需求調校
15.限制存取IP
若你有些網站,只希望某些網段可以存取時,可利用Order管控
Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24
16.apache chroot
apache chroot有以下幾種方法
a. mod_security (推薦)
b. mod_chroot
c. 自己手動建制環境
17.經常檢查Log
雖然Log顯示的是已經發生的紀錄,但透過Log可以得知使用者在做什麼,哪邊該加強
18. 設定 X-Frame-Options
在Apache設定檔加上 X-Frame-Options 以確保本身內容不會遭惡意嵌入道其他網站、避免 clickjacking 攻擊
19. 設置 HttpOnlyHeader always append X-Frame-Options SAMEORIGIN
限制 cookie 只能經由 HTTP(S) 協定來存取,降低 XSS 攻擊的機會
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
參考文獻:
Apache Security Tips
20 ways to Secure your Apache Configuration
https://developer.mozilla.org/zh-TW/docs/HTTP/X-Frame-Options
沒有留言:
張貼留言