NEW : Apache / HTTPD Hardening

Lagi nota dari INTANBK untuk dikongsi bersama.

Inginkan nota lengkap, sila dapatkan di URL berikut :
Rujukan Garis Panduan Operasi CERT Pahang

OS : CentOS / RHEL

1) Buka file httpd.conf
# nano /etc/httpd/conf/httpd.conf

2) Halang Directory Listing
Ubah kepada berikut :
Options -Indexes FollowSymLinks

3) Halang Directory Traversal
Ubah kepada berikut :
Options -Indexes -FollowSymLinks

Kaedah Directory Traversal :
- Gunakan kelemahan pada coding include untuk baca fail lain
- cth : httpd://localhost/itsec/dir.php?file=../../../../etc/passwd
- Ia akan dapat view semua user dalam server.
- root:x:0:0:root:/root:/bin/bash
- column pertama bermaksud nama user, column kedua 'x' bermaksud ada password ditetapkan, column terakhir bermaksud fungsi user boleh menggunakan bash command line
- Sekiranya hackerz tahu sebarang user yang tiada set password dan fungsi user tersebut boleh laksana command line maka ini memberi risiko besar kepada server tersebut.

3) Halang Server Token
- kenalpasti versi web server dan OS apa digunakan oleh server tersebut
- Ia membantu hackerz kenalpasti kelemahan pada versi tersebut
- Bagi xampp by default ia akan setkan sebagai full

ServerTokens Prod[uctOnly]

ServerTokens Major
Result : Server: Apache/2

ServerTokens Minor
Result : Server: Apache/2.0

ServerTokens Min[imal]
Result : Server: Apache/2.0.41

ServerTokens OS
Result : Server: Apache/2.0.41 (Unix)

ServerTokens Full (or not specified)
Result : Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

Ubah kepada berikut :
ServerToken prod

Kaedah ujian :
Taip berikut di command line : # Telnet 80
Tekan ENTER
Taip OPTIONS * HTTP/1.0
Tekan ENTER

Result :
HTTP/1.1 200 OK
Date: Tue, 19 Oct 2010 02:50:43 GMT
Server: Apache/2.2.16 (EL)
Content-Length: 0
Connection: close
Content-Type: text/plain; charset=UTF-8

4) Tetapkan web server agar bind kepada spesifik ip.
Ubah kepada berikut :
Listen x.x.x.x:80

Jika web server berfungsi untuk semua, maka tetapkan kepada :
Listen 80

5) Disable mana-mana LoadModule yang tidak digunakan
- mod_proxy //disablekan
- Untuk rujukan dan semakan boleh tengok site berikut :
http://httpd.apache.org/docs/2.0/mod/

6) User dan Group bagi folder di www perlulah di setkan dengan user yang mempunyai limited access dan tidak sama group dengan root

7) Serveradmin // emel admin
- ada pro dan kontra untuk enable dan disable fungsi ini.
- pro memudahkan pengguna sistem membuat aduan berkaitan server
- kontra adalah emel boleh digunakan untuk hantar spam mail

8) Servername
- Letak lagi bagus agar tahu identity server

9) mod_rewrite
- Perlu di enable untuk disable TRACE dan TRACK
- Tambah berikut di bahagian bawah file httpd.conf :
----------------------------------------------
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
----------------------------------------------

10) Error Log dan Custom Log perlulah dienablekan untuk memudahkan membuat kerja auditing pada masa akan datang

11) ServerSignature
- Default - On
- Tukar kepada - Off

12) Disable WebDAV
- Default httpd.conf telah disable
- WebDAV digunakan oleh FrontPage untuk upload file server
- Semak guna telnet dan kesan result berikut :
Result : PUT, COPY, DEL, MKDIR


13) Deny Access To Certain File Types
Ini adalah contoh Block access kepada fail .htaccess shj







Ini pula adalah contoh block acces kepada beberapa fail yang mempunyai extension .inc






Semoga berjaya

Rujukan lain : http://httpd.apache.org/docs/2.0/misc/security_tips.html

~ Be a Creator Not a User ~

Ulasan