Instalasi Apache Web Server di Linux Slackware

advertisement
Apache Web Server
Anda tidak ingin membuat Web server sendiri ? Menjalankan isi situs yang berada pada
komputer Anda dirumah ? Atau 'mendeploy' server di data center ?
Jika Anda melihat situs ini, berarti browser Anda berhubungan langsung dengan program
Apache server yang bertugas agar halaman situs ini dapat ditampilkan pada browser Anda.
Slackware mengusung Apache HTTPD server pada paketnya.
Pada Slackware versi 11, Apache yang digunakan adalah versi 1.3.37 Sedang pada Slackware
versi 12 Apache yang digunakan versi 2.2.4 Pada intinya cara konfigurasi kedua jenis web server
hampir sama. Ala teks mode Hehehe
Httpd pada Slackware 12 memberikan banyak contoh file konfigurasi apache. Mulai dari virtual
host, ssl, dan lain sebagainya. Peletakan dokument root pada Slackware 12 adalah pada direktory
/srv tetapi tetap ter-link dengan direktory /www seperti pada slackware 11.
Apa beda Apache versi 1.3.37 dengan 2.2.X ? Secara internal proses "fork" kedua versi beda.
Oops ! Tidak tepat untuk membahas hal tersebut disini.
Lalui 15 Menit pertama, kemudian melangkah ke virtual host, terus ke GOOnline, dan
seterusnya. Semua terserah Anda :)
Bagian ini dirancang agar Anda dapat menjalankan Apache Kurang dari 15 menit :) Siapkan
secangkir Kopi untuk menemani .
Oke ! Aktifkan apache di slackware :
root@darkstar~#chmod 755 /etc/rc.d/rc.httpd
Oh ! Apache baru akan aktif jika Anda merebot komputer Anda. Jadi instruksi diatas akan
mengaktifkan apache setiap kali komputer dihidupkan secara otomatis.
Tidak perlu reboot :)
root@darkstar~# /usr/sbin/apachectl -k start
instruksi di atas akan menjalankan apache saat itu juga. Mungkin Anda akan menerima
peringatan seperti ini :
httpd: Could not reliably determine the server's fully qualified domain
name, using 127.0.0.1 for ServerName Tidak apa2 karena kita belum memulai
yang sesungguhnya :)
Buka browser favorit Anda, dan ketikkan http://localhost Seharusnya Anda sudah mendapat
Salam hangat dari Apache.
Jadi ingat2 instruksi dasar Apache :
/usr/sbin/apachectl
/usr/sbin/apachectl
/usr/sbin/apachectl
/usr/sbin/apachectl
-k start untuk men-start apache
-k restart untuk merestart apache
-k stop instruksi untuk men-stop apache
configtest Tes dulu konfigurasi baru
Tentunya instruksi diatas dilakukan sebagai root.Anjuran saya, sebaiknya Anda tidak
melangkah ketahap selanjutnya jika Anda belum mendapatkan Salam Hangatdari Apache.
Selanjutnya : Konfigurasi httpd.conf.
File konfigurasi terletak di /etc/apache/httpd.conf (Slackware 11) dan di
/etc/httpd/httpd.conf untuk Slackware 12.
Berbeda dengan Slackware 11, file konfigurasi utama Apache Httpd 2.2.x pada Slackware 12
menggunakan sistem include file konfigurasi lain.(terletak di /etc/httpd/extra ).
Buka file konfigurasi tersebut dengan teks editor favorit Anda.
Bagian dasar yang perlu dicermati
Slackware 11 (Apache 1.3.37) :
Server Admin :
ServerAdmin [email protected]
(e-mail baris di atas ganti dengan e-mail Anda).
Contoh :
ServerAdmin [email protected]
Server Name :
#ServerName www.example.com
(Baris diatas ganti dengan situs Anda jika web server Anda online)
Contoh :
ServerName xdeira.com
(Tapi jika ingin berjalan di localhost saja, maka biarkan tanda # tetap
Ada.)
Document Root :
DocumentRoot "/var/www/htdocs"
(Ganti dengan folder pilihan Anda)
Contoh :
DocumentRoot “/var/www/public_html”
atau
DocumentRoot “/home/mic/public_html”
Directory :
(Ganti dengan direktori Anda)
Contoh :
< Directory "/home/mic/public_html" >
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
< /Directory >
atau
< Directory "/var/www" >
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
< /Directory >
Index :
DirectoryIndex index.html
(Tambahkan direktori index yang Anda inginkan. Misal agar apache dapat
menjalankan .php)
DirectoryIndex index.html index.php
Slackware 12 (Httpd 2.2.4) :
Server Admin :
ServerAdmin [email protected]
(e-mail baris di atas ganti dengan e-mail Anda).
Contoh :
ServerAdmin [email protected]
Server Name :
#ServerName www.example.com
(Baris diatas ganti dengan situs Anda jika web server Anda online)
Contoh :
ServerName slackerbox.com
(Tapi jika ingin berjalan di localhost saja, maka ganti dengan
localhost:80.)
Document Root :
DocumentRoot "/srv/httpd/htdocs"
(Ganti dengan folder pilihan Anda)
Contoh :
DocumentRoot “/srv/httpd/public_html”
atau
DocumentRoot “/home/mic/public_html”
Directory :
Sama dengan DocumentRoot, ganti dengan direktori Anda
< Directory "/srv/httpd/htdocs" >
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
< /Directory >
Index :
DirectoryIndex index.html
(Tambahkan direktori index yang Anda inginkan. Misal agar apache dapat
menjalankan .php)
DirectoryIndex index.html index.php
Include mod_php :
Agar halaman .php dapat jalan, Cari baris #Include
/etc/httpd/mod_php.conf (di bagian bawah ).
Hilangkan tanda # baris diatas.
Oke ! restart Apache Server agar menjalankan konfigurasi baru.
Catatan :
Anda dapat mengecek hasil 'oprekan' httpd.conf (apa syntaks sudah bener, atau Anda
melakukan kesalahan konfigurasi pada httpd.conf) dengan mengetikan instruksi :
#/usr/sbin/apachectl configtest.
Jika Oke, maka Apache akan memberikan komentar : Syntax OK
root@mic:/home/mic# apachectl configtest
Syntax OK
User dan grup pada Apache 1.3.37 adalah nobody . Sedang pada Httpd 2.2.x user
maupun group adalah apache
Buat direktory dulu (jika Anda ingin meletakkan data situs pada tempat tertentu) baru
menulisnya di konfigurasi Apache. Maksud saya, apache tidak akan membuatkan Anda
direktory otomatis.
Jika menjalankan local jaringan, Anda dapat mengabaikan nama domain. Jika tidak
order domain dulu.
Minta kopi dunk ! Punya saya habis :P
Virtual Host
Apache dapat menjalankan banyak situs sekaligus. Misalkan www.myhost.com,
www.yourhost.net, www.fgsas.org, semua situs ini dapat dijalankan dengan fasilitas virtual
host.
Untuk bagian ini, virtual host dijalankan dengan share IP Address. Jadi sebuah IP Address dapat
menjalankan banyak situs sekaligus. Untuk vitual host berbasis IP, lihat bagian HostBaseIP
Untuk Slackware 11
Edit file httpd.conf yang terletak di /etc/apache/httpd.conf
Aktfikan VirtualHost :
#NameVirtualHost *:80
(Hilangkan tanda # sehingga menjadi dibawah ini)
NameVirtualHost *:80
Mengatur Direktive : Misalkan saya punya 3 situs sekaligus :)
Situs Utama saya :
< VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /home/mic/public_html
ServerName xdevel.net
ErrorLog logs/xdevel.net-error_log
< /VirtualHost>
Situs Eksperimen :
< VirtualHost *:80>
DocumentRoot /home/mic/joomla
ServerName joomla.xdevel.net
< /VirtualHost>
Situs belajar apache :
< VirtualHost *:80>
DocumentRoot /var/www/htdocs
ServerName apache.xdevel.net
< /VirtualHost>
Untuk Slackware 12
Edit file httpd.conf yang terletak di /etc/httpd/httpd.conf
Aktifkan Virtual Host, cari pada bagian :
# Virtual hosts
#Include /etc/httpd/extra/httpd-vhosts.conf
hilangkan tanda "#" pada #Include /etc/httpd/extra/httpd-vhosts.conf,
sehingga menjadi :
Include /etc/httpd/extra/httpd-vhosts.conf
Jangan lupa untuk menambahkan direktive dari file web anda, ini sebagai contoh dari
virtual host :
(file ini terletak di /etc/httpd/extra/httpd-vhosts.conf )
Direktif minimal :)
< VirtualHost *:80>
DocumentRoot /var/www/htdocs
ServerName situsgue.com
< /VirtualHost>
Direktif lengkap :
< VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/htdocs
ServerName domain.com
ErrorLog /var/log/httpd/situsgue.com-error_log
CustomLog/var/log/httpd/situsgue.com-access_log
< /VirtualHost>
Jangan lupa untuk simpan hasil konfigurasi, lalu restart service apache anda dengan
menjalankan :
#apachectl -k restart
Lakukan testing pada browser anda dengan mengetikkan alamat http://situsgue.com, nah
muncul "IT WORKS" :)
Selamat virtual host anda sudah berjalan.
---------User direktory / public_html
---------Jika server Anda terdiri dari puluhan sampai ratusan user dengan homepagenya masing2,
maka cara paling praktis meletakkan homepage pada alamat home direktorinya masing2.
Misalkan 6 user bernama Michael, Harry, Yulius, Lenny, Eko, dan Indra.
Karena tiap user punya home direktorynya masing2, maka buat konvensi untuk
meletakkan index.html atau index.php di /home/user/public_html
Jadi untuk user Michael punya folder website
/home/michael/public_html
Untuk user Harry p :
/home/harry/public_html
Untuk user Yulius :
/home/yulius/public_html
Untuk user Lenny :
/home/lenny/public_html
Begitu seterusnya.
Untuk Slackware 12
Konfigurasi terdapat di :
/etc/httpd/extra/httpd-userdir.conf
Untuk mengaktifkan user directory anda edit di httpd.conf dan cari bagian :
# User home directories
#Include /etc/httpd/extra/httpd-userdir.conf
hilangkan tanda "#" pada #Include /etc/httpd/extra/httpd-userdir.conf,
sehingga menjadi :
Include /etc/httpd/extra/httpd-userdir.conf
Jangan lupa untuk menyimpan hasil perubahan ini, lalu restart service apache anda.
Lakukan testing pada browser anda dengan mengetikkan alamat
http://domainanda.com/~useranda, nah kalo ada muncul "Parent Directory", maka anda
telah berhasil.
Selamat sekarang tiap user anda dapat mempunyai homepage sendiri.
userdir dapat jalan tanpa mengaktifkan virtualhost. Btw, jika menggunakan virtualhost
userdir Anda juga tetap jalan :)
Oh ya ! Jika Anda pengguna Slackware 11, user-dir langsung aktif.
Catatan Slacker :
Catatan 1 :
Jika Anda mengaktifkan VirtualHost, maka pengaturan direktory situs utama (pada
contoh awal tanpa virtualhost) akan diabaikan. Jadi letakkan situs utama Anda pada
direktive virtualhost.
Catatan 2 :
Edit file /etc/host Anda dan tambahkan virtualHost.
# For loopbacking.
127.0.0.1 localhost
# Ini yang ditambahkan.
192.168.1.111 xdevel.net xdevel
192.168.1.111 joomla.xdevel.net joomla
192.168.1.111 apache.xdevel.net apache
# End of hosts.
Penambahan di /etc/hosts
sangat vital jika Anda menjalankan server juga di
jaringan internal. Jika tidak, maka komputer lain dalam jaringan akan mengakses
webserver Anda dengan IP address.
Definisikan juga resolve domain (local) Anda di komputer client. Sehingga
komputer client dapat mengakses webserver dengan nama domain lokal Anda.
Dalam kasus ini, resolve nama cukup di /etc/hosts. Kecuali Anda mempunyai
banyak server yang perlu diresolve lewat dns server.
/etc/hosts tidak mutlak dperlukan oleh webserver untuk domain yang dijalankan
sebagai virtualhost jika Anda mendeploy sebuah server didata center. (Anda dapat
menggunakan dns pihak ISP atau pihak luar)Kecuali Anda ingin membangun dns
server sendiri. (dalam kasus ini Anda membuka perusahaan hosting misalnya :)
Catatan 3 :
Anda dapat membuat folder public_html otomatis setiap penambahan user baru dengan
meletakkan prototip folder public_html pada /etc/skel
Contoh :
Saya membuat folder public_html pada
/etc/skel/public_html
Maka setiap melakukan #adduser
folder public_html akan ditambahkan otomatis. (Plus
file tambahan lain bila perlu :)
Tentu tidak harus bernama public_html kalau tidak suka :), bisa www atau yang lain.
catatan 4:
Anda tidak perlu membuat directive virtual host jika Anda menggunakan model
public_html berbasis home direktory.
Sehingga alamat tiap user menjadi
http://domainAnda.com/~user
misal saya mempunyai domain http://xdevel.net maka untuk user Michael punya alamat :
http://xdevel.net/~michael
Sedang untuk user Lenny punya alamat :
http://xdevel.net/~lenny
Begitu seterusnya.
Terhubung Ke Net !
Ingin web server Anda bisa diakses banyak orang ? Atau cukup untuk kalangan internal saja ?
Dimana Anda ingin meletakkan Server ? Di kantor, dengan segala perangkatnya, atau di data
center ?
Pada bagian ini akan dijelaskan sekilas Home server dan deploy server di data center.
Home Server
Ternyata Anda ingin memamerkan webserver (yang ada di kamar) dan situs buatan Anda ke
teman2 di kampus. Go Ahead ! Intinya Anda punya saluran Internet, impian Anda akan terkabul
! Hehehe
1. Punya akses lumayan cepat (katakanlah speedy)
2. Punya Modem ADSL/DSL
Oke, mari mulai.
IP Anda :
Anda musti mengetahui IP yang diberikan oleh provider Internet.Ada 2 jenis IP. Statik
dan dinamis.
IP statik tidak akan berubah selama Anda online atau terhubung ke internet. Misalkan IP
Anda 202.123.243.543. Maka selama Anda berlangganan, IP Anda tetap tidak berubah.
IP dinamis akan berubah setiap periode saat online atau terhubung ke Internet.
Saat pagi saya mendapatkan IP 125.164.234.234, saat sore habis mandi sudah berubah
lagi jadi 125.164.222.222 , 2 jam lagi berubah lagi jadi 125.164.123.174 begitu
seterusnya.
Tahu dari mana IP Anda ? Cek saja di modem atau disitus yang memberi informasi IP
Anda. Misal di xdeira.com :)
Port Forwarding:
Langkah selanjutnya adalah seting port forwarding Modem ADSL Anda. Buka port 80
(untuk webserver) agar dapat diakses dari luar.
Jika IP komputer Anda statik misal 192.168.1.111, maka port forwarding modem harus
diarahkan ke IP tersebut.
Hati2 !!! IP komputer berbeda dengan IP yang diberikan provider Internet !!
Domain :
Jika IP yang diberikan provider internet Anda statik, misal 202.235.223.234 maka teman
Anda di jakarta sudah dapat mengakses webserver Anda dengan memasukkan
http://203.235.043.234 pada browsernya.
Jika ingin lebih 'manusiawi' Anda membutuhkan nama domain. Anda dapat memilih
nama komersial atau yang disediakan gratis. Jika Ingin nama domain gratis, daftar ke
www.dyndns.com
Oke, Anda sudah memilih nama (fire_angel.homeunix.com), dan meletakkan IP statik
Anda pada dyndns,
Selamat !!
Siapapun dapat mengakses webserver Anda dengan nama pilihan Anda.
http://fire_angel.homeunix.com (Selama komputer Anda hidup :)
Ip Dinamis :
Untuk IP dinamis, maka yang diperlukan adalah update nomor IP Anda ke jasa
nameserver (misalkan dyndns).
Ada program ddclient untuk mengupdate IP Anda secara otomatis.
Install ddclient dan lakukan set agar selalu melakukan update IP Address Provider (yang
selalu berubah) ke dyndns.
So...Anda sudah bisa pamer Webserver nih ! Jangan lupa pamerkan ke saya juga :)
Deploy Server :
Saya perlu menulis ini, karena Slackware Linux jarang disediakan oleh ISP/provider. Distro
Populer macam Fedora,Ubuntu, Debian, Centos, bahkan FreeBSD lebih mudah diperoleh secara
default.
Tentu Anda tidak berkecil hati bukan :) Kita khan Slackers ! (Slackware Hacker !)Jika Anda
memilih Slackware, berarti Anda tahu apa yang akan di perbuat. Bukan sekedar Klik-klik-klik :P
IP Address
Jika Anda mendeploy server di data center(dedicated), atau mengirim server racikan
sendiri ke gedung Cyber misalnya, maka Anda akan mendapatkan IP Gateway, IP
produktif, dan IP broadcast. Juga tidak ketinggalan netmask.(plus tagihan tiap bulan
Hehehe)
Semisal saya mendeploy sebuah dedicated server disebuah ISP X, (Oke, saya mendapat
16 IP Address) maka saya mendapatkan Ip Gateway 66.165.101.241, Range IP produktif
66.165.101.242---66.165.101.254, dan IP broadcast 66.165.101.255.
Netmask digunakan untuk membatasi range IP address yang menjadi hak saya :) Untuk
kali ini saya mendapatkan netmask 255.255.255.240
IP Address yang dapat saya gunakan adalah 13 buah. Mulai dari 66.165.101.242 sampai
66.165.101.254. Untuk slackerbox.com menggunakan IP Address 66.165.101.251 :)
Oke, pertama kali instalasi, (mungkin) hanya port ssh yang tersedia untuk Anda dari
provider atau ISP :) Tentu Anda mendapatkan hak akses root :)
Uji Coba
Jika Anda meracik server sendiri, lebih baik memastikan server Anda jalan dulu, plus
melakukan patch terakhir. Uji coba beban juga disarankan ! Lihat
http://slackerbox.com/?q=node/319.
Uji keamanan awal perlu dipikirkan, terlebih situs Anda menyangkut hajat hidup orang
banyak :) Ada banyak tool penetration tester yang dapat digunakan. Lihat tool Nikto di
http://slackerbox.com/?q=node/338.
Jika pihak ISP yang menginstallkan Slackware kesayangan Anda, jangan lupa beri
catatan kecil sebelum instalasi & konfigurasi. (kalau mereka bisa ! Hehehe)
Karena SLackware merupakan distro "Do it Your Self" Mungkin Anda perlu menginstall
sendiri paket Httpd APache, PHP, dan MySQL. Paket instalasi minimal (yang dilakukan
banyak ISP ) tidak menyertakan paket2 vital buat produksi.
Heem....Sisanya Anda perlu tanya ke provider/ISP yang Anda pilih.
Host Berdasar IP Address
Jika Anda mempunyai lebih dari 1 IP Address, maka Anda dapat melakukan virtual Host
berbasis IP Address.
Penulisan Direktif hampir sama dengan sebelumnya, cuma Anda perlu menambahkan IP
Address Anda dan menambahkan virtual eth0.
Karena kebanyakan server hanya mempunyai sebuah atau 2 buah ethernet card, maka Anda
perlu menambahkan virtual Eth (saya menyebutnya begitu :)
Coba ketik instruksi #ifconfig maka akan terlihat kondisi Ethernet card Anda.
Link encap:Ethernet HWaddr 00:D0:B7:2E:E9:C9
inet addr:66.165.101.242 Bcast:66.165.101.255 Mask:255.255.255.240
inet6 addr: fe80::1d0:b72f:f22e:c9f9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:149375183 errors:0 dropped:0 overruns:0 frame:0
TX packets:5651113 errors:0 dropped:0 overruns:0 carrier:1
collisions:191680 txqueuelen:1000
RX bytes:1887978237 (1.7 GiB) TX bytes:2090119617 (1.9 GiB)
Interrupt:21
Misal data Anda:
eth0
inet addr:66.165.101.242 Bcast:66.165.101.255 Mask:255.255.255.240
eth0:1
inet addr:66.165.101.243 Bcast:66.165.101.255 Mask:255.255.255.240
Untuk menambahkan Host dengan IP : 66.165.101.247 dan eth0:2, maka lakukan instruksi
dibawah ini :
#ifconfig eth0:2 ip 66.165.101.247 netmask 255.255.255.240 broadcast
66.165.101.255
Cek lagi dengan ifconfig
#ifconfig
Semestinya eth0:2 Anda sudah keluar.
inet addr:66.165.101.247 Bcast:66.165.101.255 Mask:255.255.255.240
Contoh Direktif Apache :
Contoh direktif vhost IP:66.165.101.247
< VirtualHost 66.165.101.247>
DocumentRoot /home/xbagz/public_html
ServerName xbagz.org
< Directory "/home/xbagz/public_html">
allow from all
Options +Indexes
< /Directory>
< /VirtualHost>
Atau.....
< VirtualHost 66.165.165.247>
DocumentRoot /home/inimybox/public_html
ServerName inimybox.com
ErrorLog /home/inimybox/logs/error_log
CustomLog /home/inimybox/logs/acces_log combined
< /VirtualHost>
Oke dech ! Sekarang Anda sudah bisa set virtual host berbasis IP :)
Mengamankan Apache
Jika Anda menjalankan situs yang menanggung hajat hidup orang banyak Sebaiknya Anda
meningkatkan keamanan Web Server Anda.
Bagian ini akan menjelaskan sedikit cara mengamankan APache dari 'serbuan' kaum barbar
Hehehe
Sebelum memulai, ada aturan emas yang sebaiknya Anda ikuti :
Rendah hatilah !
Jangan sesumbar bahwa website Anda Tak dapat di tembus ! Mengatakan secara terbuka
bahwa Hacker bakalan Keok !
Ingatlah selalu diatas langit masih ada langit !
Dengan rendah hati Anda akan selalu waspada dan.........tidak mengundang Macan ke kandang
Domba.
Mari kita mengamankan kandang domba :)
Buang Modul Apache lainnya..
Pertimbangkan membuang modul di bawah yang 'biasanya' tidak di pakai.
Cukup beri tanda # pada baris LoadModule.
LoadModule
LoadModule
LoadModule
LoadModule
LoadModule
LoadModule
LoadModule
info_module
status_module
cgi_module
dav_fs_module
autoindex_module
userdir_module
include_module
Samarkan Identitas Apache
Senapan angin buat menembak burung. Exocet buat menembak kapal laut. Tomahawk
buat menghancurkan gedung.
ServerSignature Off
MaxKeepAliveRequests
Meski di default 100, Jika webserver Anda dari hari ke hari Maksimum cuma di hit < 15
secara bersamaan, kecilkan ajadech. :)
MaxKeepAliveRequests 60
TimeOut
Default 300. Mungkin Anda ingin mengecilkan untuk mengurangi efek DDoS :)
TimeOut 75
KeepAliveTimeout
Mungkin Anda ingin sedikit membesarkan KeepAliveTimeout ?. :)
Semakin besar akan mengurangi performance akses bertubi2 user (karena di beri jangka
waktu 10 detik) Tapi hal ini akan mengurangi efek DDoS.
KeepAliveTimeout 10
Disable Trace
Trace umumnya digunakan untuk acara gedebag-debug :). Matikan Trace dengan
menambah beberapa baris pada konfigurasi HTTPD Apache.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
Mod_security
Mod_security perlu dipertimbangkan sebagai firewall internal web server. Modul ini
bukan modul default Httpd Apache dan Slackware. Anda bisa memulai dengan
mengkompile modul mod_security.c dengan apxs, kemudian memulai dengan rule dasar
modsecurity.
Lihat di http://modsecurity.org untuk info lebih lanjut.
Contoh rule dasar :
< IfModule mod_security.c>
# Enable ModSecurity
SecFilterEngine On
# Reject requests with status 403
SecFilterDefaultAction "deny,log,status:403"
# Some sane defaults
SecFilterScanPOST On
SecFilterCheckURLEncoding On
SecFilterCheckUnicodeEncoding Off
# Accept almost all byte values
SecFilterForceByteRange 1 255
# Server masking is optional
# SecServerSignature "Microsoft-IIS/5.0"
# Designate a directory for temporary files
# storage. It is a good idea to change the
# value below to a private directory, just as
# an additional measure against race conditions
SecUploadDir /tmp
SecUploadKeepFiles Off
# Only record the interesting stuff
SecAuditEngine RelevantOnly
# Uncomment below to record responses with unusual statuses
# SecAuditLogRelevantStatus ^5
SecAuditLog /var/log/apache/audit.log
# You normally won't need debug logging
SecFilterDebugLevel 0
SecFilterDebugLog logs/modsec_debug.log
# Only accept request encodings we know how to handle
# we exclude GET requests from this because some (automated)
# clients supply "text/html" as Content-Type
SecFilterSelective REQUEST_METHOD "!^(GET|HEAD)$" chain
SecFilterSelective HTTP_Content-Type "!(^application/x-www-formurlencoded$|^multipart/form-data;)"
# Do not accept GET or HEAD requests with bodies
SecFilterSelective REQUEST_METHOD "^(GET|HEAD)$" chain
SecFilterSelective HTTP_Content-Length "!^$"
# Require Content-Length to be provided with
# every POST request
SecFilterSelective REQUEST_METHOD "^POST$" chain
SecFilterSelective HTTP_Content-Length "^$"
# Don't accept transfer encodings we know we don't handle
SecFilterSelective HTTP_Transfer-Encoding "!^$"
< /IfModule>
Chrootjail
Jika ingin repot, model 'penjara' dapat Anda terapkan bagi HTTPD Apache :).
Patch !
Jangan lupakan Patch ! Jika web server Anda sangat kadaluarsa, maka titik rentan sudah
terekspos cukup lama. Upgrade program web server Anda jika Ada patch yang tersedia.
PHP
Selain konfigurasi HTTPD Apache, 'tetangga' lain yang perlu mendapat perhatian adalah
PHP. Akan saya sarikan dari http://apachesecurity.net chapter 2 mengenai PHP :)
Konfigurasi agak paranoid buat php.ini :P
allow_url_fopen = Off
register_global = Off
enable_dl = Off
expose_php = Off
disable_functions =
openlog,apache_child_terminate,apache_get_modules,apache_get_vers
ions,apache_getenv, apache_note,apache_setenv,virtual
open_basedir = /home/slackerbox/public_html/
display_errors = off
display_startup_errors = off
max_input_time = 60
max_execution_time = 30
safe_mode = On
Suhosin Extension.
Alternatif lain untuk mengamankan PHP adalah Patch atau extension dari Suhosin. Lihat
di situs mereka. Saya menjelaskan Suhosin di http://slackerbox.com/?q=node/359
Libsafe
Secara global, penggunaan Libsafe (ada di CD extra Slackware) akan menyaring
penggunaan/pemanggilan library pada system yang ada kemungkinan akan menyebabkan
kerusakan.(Buffer overflow, kiss of death- stack overflow, dan lain2)
Anda tinggal install saja Libsafe, selesai :)
Terakhir, Anda bisa cek keamanan web server dengan tool scanner macam nikto.
Cek dengan Nikto !
Mungkin Anda ingin mencoba program Nikto untuk men-scan web server Anda ? Nikto
akan memberitahukan titik lemah web server Anda.
perl nikto.pl -h hostAnda
Akhirnya...Selamat berjuang !
Download