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 !