Apache Web Server

25
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

Transcript of Apache Web Server

Page 1: Apache Web Server

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

Page 2: Apache Web Server

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 -k start

untuk men-start apache

/usr/sbin/apachectl -k restart

untuk merestart apache

/usr/sbin/apachectl -k stop

instruksi untuk men-stop apache

/usr/sbin/apachectl 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

Page 3: Apache Web Server

(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).

Page 4: Apache Web Server

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.

Page 5: Apache Web Server

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 :

Page 6: Apache Web Server

#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

Page 7: Apache Web Server

/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

Page 8: Apache Web Server

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

Page 9: Apache Web Server

# 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:

Page 10: Apache Web Server

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

Page 11: Apache Web Server

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

Page 12: Apache Web Server

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.

Page 13: Apache Web Server

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

Page 14: Apache Web Server

< /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 info_module

LoadModule status_module

LoadModule cgi_module

LoadModule dav_fs_module

LoadModule autoindex_module

LoadModule userdir_module

LoadModule include_module

Samarkan Identitas Apache

Senapan angin buat menembak burung. Exocet buat menembak kapal laut. Tomahawk

Page 15: Apache Web Server

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

Page 16: Apache Web Server

# 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-form-

urlencoded$|^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

Page 17: Apache Web Server

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