WEB HOSTING dg. LINUX

Maraknya pendaftaran domain baik itu top level domain (.com .net .org, dsb.) yang dikelola organisasi internasional maupun domain .id yang dikelola oleh IDNIC, meningkatkan salah satu peluang bisnis di internet yaitu bisnis web hosting. Perusahaan yang bergerak di bidang web hosting ini pada umumnya ada dua macam, ada yang bekerja sama dengan perusahaan webhosting lain sebagai reseller dan yang mempunyai server tersendiri yang dipasang di ISP (co-location). Di artikel ini akan dibahas gambaran umum teknis sebuah server web hosting dengan menggunakan sistem operasi Linux.

1. Persiapan
Sebuah PC (Personal Computer) yang high-end dengan komponen hardware yang bagus mempunyai tingkat kestabilan tinggi bisa digunakan sebagai server webhosting. Sebagai referensi penulis membuat sebuah server web hosting dengan spesifikasi prosesor Pentium II/450, RAM 256MB, 9GB SCSI harddisk dan 100 Mbps ethernet card. Jika anda mengharapkan kinerja lebih tinggi fokuskan spesifikasi server ke dual-prosesor dan penambahan jumlah RAM. Distribusi Linux yang dipakai sebagai sistem operasi bisa distribusi apa saja, di sini penulis menyarankan distribusi Linux Slackware 7.1 yang terbaru dengan pertimbangan distribusi ini paling costumizable. Tidak tertutup kemungkinan dipakainya distribusi lain karena semua distribusi Linux bisa dicostumize. Distribusi Slackware bisa anda dapatkan dengan mendownload iso-image dan membakarnya degan cd-writer, jika ini terlalu menyita sumber daya yang anda punya belilah ke distributor/reseller terdekat. Penulis menyarankan membeli distribusi dengan source-code-nya (2 cd, binary dan source) karena di bagian instalasi ada program/aplikasi yang sebaiknya di-compile ulang. Juga siapkan koneksi internet untuk mendownload beberapa aplikasi yang tidak termasuk di dalam paket distribusi.

2. Filesystem
Diasumsikan anda telah mengetahui cara menginstall Linux Slackware di sebuah PC. Untuk mempercepat kinerja server terhadap filesystem penulis menyarankan menggunaan filesystem ReiserFS yang dikembangkan oleh Hans Reiser untuk dipatch di source kernel. Patch filesystem ini bisa anda dapatkan di situs http://www.namesys.com. Keuntungan menggunakan filesystem ini adalah sistem yang disebut Journaling File System (JFS) yang mempunyai kinerja lebih cepat dan lebih hemat dibandingkan filesystem Linux Native (ext2), keuntungan lain jika sistem mati mendadak pada saat booting filesystem ini dicek dan dimount dalam waktu yang singkat (tidak seperti filesystem ext2 yang cukup lama pada saat fsck, terutama pada harddisk dengan kapasitas yang besar), walaupun secar teknis sistem mati mendadak bisa diatasi dengan pemakaian UPS (Uninterruptible Power Supply) yang memadai. Beberapa keuntungan dan kelebihan yang bisa kita dapatkan dengan menggunakan file system ReiserFS:Sebagai gambaran kita akan menginstall Slackware 7.1 kernel-2.2.16 dengan patch reiserfs-3.5.24 di atas partisi dengan pembagian sebagai berikut beserta keterangannya:

PartisiUkuranFilesystemKeterangan
/180 MBExt2Partisi root, tempat konfigurasi, modul library sistem
swap128 MBswapPartisi swap, tempat virtual memory
/usr1,5 GBreiserfsPartisi aplikasi, utility, library dan dokumen sistem
/var2 GBreiserfsPartisi database, log dan queque mail
/home5 GB (sisanya)Ext2Partisi home user


Layout partisi di atas disusun dengan pertimbangan sebagai berikut:

Kernel
Setelah instalasi Slackware selesai tahap pertama yang harus anda lakukan adalah mengcompile ulang kernel. Keuntungan yang didapat adalah anda bisa merampingkan isi kernel dengan membuang feature yang tidak perlu dan mengoptimasikannya terhadap sistem misalnya menyesuaikan spesifikasi prosesor, RAM, device yang ada pada PC tersebut dan beberapa patch yang mungkin perlu untuk kepentingan security seperti Linux Intruder Detection System (LIDS). Beberapa keuntungan mengcostumize kernel:Setelah mengekstrak source-code kernel di /usr/src jangan lupa untuk melakukan patch reiserfs, selanjutnya anda bisa melakukan konfigurasi kernel seperti biasanya (make menuconfig). Pastikan pada saat mengkonfigurasi di bagian filesystem anda mencek dukungan ke filesystem reiserfs. Pastikan setelah melakukan make menuconfig dan men-save konfigurasi pada file /usr/src/Linux/.config terdapat:
CONFIG_REISERFS_FS=y
Setelah konfigurasi kernel, compile-lah kernel sesuai prosedur standar, kemudian backup kernel yang lama (backup file System.map dan vmlinuz) dan edit /etc/lilo.conf tanpa menghilangan konfigurasi kernel yang lama. Run lilo dan restart komputer anda dengan kernel yang baru. Untuk optimasi kernel yang lebih detail bisa anda baca artikel Optimasi Kernel di situs http://www.karet.org, sebuah situs yang dikelola oleh salah satu komunitas penggemar dan pemakai Linux di Bandung.

4. Aplikasi
Sekarang anda siap menginstall dan mengkonfigurasi aplikasi utama untuk sebuah server hosting.

4.1 Manajemen User
Untuk kemudahan manajemen user, partisi /home kita siapkan dengan dukungan quota. Edit /etc/fstab untuk partisi /home supaya mendukung quota:
/dev/sda7 /home ext2 defaults,usrquota 1 1
Pastika sewaktu mengkonfigurasi kernel anda meng-enable quota support di bagian filesystem, untuk selanjutnya gunakan utiliti dan group. Atur home direktori misalnya untuk hosting 10MB, 25MB, 50MB, dst dialokasikan secara terpisah di partisi /home dan tidak bercampur dengan user yang mempunyai level operator atau administrator. Siapkan direktori/file di /etc/ skel untuk keperluan klien/user nantinya, misalnya membuat direktori www yang isinya digunakan untuk keperluan virtual domain, sehingga setiap anda membuat user baru otomatis direktori tersebut ada di direktori user masing-masing. Contoh isi direktori /etc/skel/www yang nantinya akan di-include-kan ke dalam konfigurasi vrtual-host Apache:
www/html/ - direktori tempat root direktori virtual webserver tiap klien
www/cgi-bin - direktori tempat menyimpan cgi-script
www/access.log - file log access web server
www/error.log - file log error web server.

4.2 Aplikasi Daemon
Sebaiknya anda tidak menggunaan inetd untuk aplikasi daemon seperti ftpd, smtpd dan pop3d, tetapi gunakan tcpserver (ucspi-tcp) yang dibuat oleh Dan Bernstein, bisa didownload di http://cr.yp.to. Utiliti yang harus anda download adalah ucspitcp dan daemon-tools. Inetd tidak reliable jika digunakan pada sistem daemon yang loadnya tinggi. Contoh initscript sederhana untuk ftp daemon dengan menggunakan tcpserver:
tcpserver -v -c40 -x /etc/tcp.ftp.cdb -u0 -g0 0 ftp /usr/sbin/wu.ftpd
2>&1

Initscript yang lengkap biasanya digabungkan dengan supervise (svc) yang berfungsi sebagai monitoring daemon dan multilog yang berfungsi mencatat log koneksi tcp. Utiliti ini merupakan bagian dari paket daemon-tools.

4.3 Domain Name Service
Untuk aplikasi DNS disaranan menggunaan paket DJBDNS daripada BIND (lihat artikel DJBDNS pada situs ini).

4.4 Remote Shell
Untuk keperluan administrasi secara remote, baik itu anda sendiri yang mengelola server maupun klien nantinya, gunakan secure shell (ssh) daripada telnet, pertimbangan penggunaan ssh ini adalah karena masalah sekuriti di telnet, karena aplikasi telnet tidak meng-encrypt password dan data yang lewat pada saat koneksi klien dengan server. SSH yang dipakai sebaiknya OpenSSH. Beberapa feature yang menjadi alasan pertimbangan menggunakan OpenSSH:Untuk klien yang menggunakan Windows bisa menggunakan SSH-client yang free bernama PUTTY, http://www.clark.greenend.org.uk/~sgtatham/putty/

4.5 Mail server
Untuk implementasi mailserver gunakan qmail yang dibuat juga oleh Dan Bernstein, situs utama ada di http://www.qmail.org. Keuntungan utama dari qmail ini adalah penggunaan Maildir dibandingkan dengan mailbox dan sistem pengiriman secara paralel pada saat yang bersamaan. Sebagai server web hosting sudah tentu nanti akan ada banyak domain dan user, untuk meningkatkan kinerja mailserver sebelum meng-compile qmail patch-lah dengan big-concurrency.patch supaya mailserver ana bisa melakukan pengiriman email secara paralel di atas 255 koneksi remote. Default qmail binary adalah maksimum 120 concurrencyremote, jika anda compile dari source maksimum 255 concurrencyremote dan jika anda tambahkan patch diatas bisa anda naikkan sampai 500, 1.000, atau bahkan 10.000 concurrencyremote. Daemon yang akan aktif dari qmail ini adalah delivery local qmail-send, delivery remote qmail-smtpd dan POP3 server qmail-pop3d. Aplikasi pendukung lain bisa anda pakai antara lain adalah rblsmtpd diatas qmail-smtpd untuk mengurangi spamming, qmailanalog dan autoresponder. Aplikasi penting lain yang berjalan di atas mailserver adalah mailinglist, diinstall juga list manager, ezmlm ini mempunyai kelebihan yang sangat banyak dibanding mailing list yang lain. Tentu anda sudah merasakan hebatnya Egroups dengan ezmlm yang mempunyai ratusan ribu mailing list. Paket qmail dan sourcenya bisa anda download di: ftp://bandung.linux.or.id/pub/slackware/pack/qmail-1.03/. Sebagai acuan untuk mengkonfigurasi qmail anda bisa baca artikel Life With Qmail yang ditulis oleh Dave Sill di http://web.infoave.net/~dsill/qmail.html. Bagaimana satu buah server dapat melayani banyaknya domain dengan satu ip address? Salah satu jawabannya adalah vpopmail. Vpopmail adalah aplikasi yang berjalan diatas qmail dalam menangani virtual domain sebuah mailserver. Vpopmail menyediakan hampir semua feature mailserver yang biasa terdapat di mailserver yang bukan virtual (satu ip address satu domain). Feature yang bisa didapat dari vpopmail ini adalah:Selain itu untuk mengadministrasi setiap domain ada front-end web-based yang dinamakan qmail-admin, dengan qmailadmin setiap domain dengan mudah mengadministrasi semua feature di atas melalui halaman web. Untuk meningkatkan tingkat security, pada saat mengcompile qmailadmin anda aktifkan option https, tentu setelah web server anda dipasang mod-ssl. Tambahan lain yang juga sangat bagus di atas vpopmailini adalah sqwebmail, sebuah program yang berfungsi untuk membaca email melalui halaman web. vpopmail, qmailadmin dan sqwebmail bisa anda download di:
http://www.inter7.com/vpopmail/
http://www.inter7.com/qmailadmin/
http://www.inter7.com/sqwebmail/

4.6 MySQL
Untuk aplikasi database berbasis Structure Query Language (SQL) dan Relational Database Management System (RDBMS) yang tidak memakan cukup banyak ruang harddisk bisa menggunakan MySQL. Kini MySQL telah berlisensi GPL. Pada umumnya binary MySQL secara default menyimpan database di /var/lib/mysql dengan UID mysql atau nomody (UID level user). Informasi MySQL lengkap bisa anda dapatkan di http://www.mysql.com atau jika ingin mendownload sourcenya saja bisa didownload di ftp://bandung.linux.or.id/pub/slackware-pack/mysql-3.22.32/. Untuk mengadministrasi MySQL server dengan front-end web bisa anda gunakan mysql-webadmin ftp://ftp.kiss.de/pub/unix/mysql/, tentu setelah anda selesai mengistall PHP di webserver anda.

4.7 Web Server
Web Server adalah inti dari sebuah web hosting, kehandalan Apache http://www.apache.org telah lama dibuktikan di internet. Untuk keperluan secure web anda bisa menambahkan modssl. Secure Web adalah web server dengan sistem komunikasi yang dienkrip menggunakan protokol https di port 443, analoginya seperti komunikasi ssh dibandingkan dengan telnet. Sistem enkripsinya lebih rumit daripada SSH, karena selain hal teknis yang lebih rumit juga melibatkan aspek non-teknis seperti Certificate Authority (CA). Certificate Authority ini bisa berbentuk sebuah organisasi yang telah diakui di internet seperti Verisign ataupun organisasi lain yang juga menerbitkan CA, dengan konsep open-source anda pun bisa menerbitkan CA ini, minimal untuk web server yang sedang anda setup. Penerbitan CA harus bertanggung jawab terhadap semua aspek teknis dan non-teknis, selain harus mempunyai organisasi dan manajemen yang kuat. Server side scripting atau CGI (Common Gateway Interface) yang biasa dipakai pada Apache adalah PHP. untuk referensi bisa anda baca di http://www.php.net. Anda bisa mengoptimalisasikan lagi PHP dengan Zend Optimizer, referensi lengkap bisa anda baca dan download di http://www.zend.com. Keuntungan menggunakan Zend Optimizer antara lain: CGI script yang banyak digunakan juga adalah Perl, dalam Apache bisa ditambahkan sebagai modul mod_perl. Aplikasi dan library Perl sudah termasuk di dalam semua distribusi Linux, untuk library yang lebih lengkap bisa anda dapatkan di situs Comprehensive Perl Archive Network, www.cpan.org. Untuk mendukung user yang menggunakan MS FrontPage dalam merancang halaman webnya anda bisa menambahkan modul Apache yaitu mod_frontpage. Untuk mencari kumpulan aplikasi Linux Slackware mulailah dari situs LinuxMafia http://www.linuxmafia.org situs ini menyimpan banyak sekali paket Slackware, baik yang berupa binary maupun masih bentuk source beserta script untuk meng-compile-nya.

5. Security
Masalah keamanan server terhadap tindakan cracking harus dicegah sedini mungkin. Aplikasi yang telah dijelaskan di atas sudah termasuk secure, selain kebutuhan utama yang bersifat robust. Sistem yang robust dan secure tidaklah lepas dari faktor maintenance yang bagus dan terorganisasi, bagaimana pun juga keamanan sebuah sistem tergantung dari the man behind the gun atau brainware. Beberapa hal dasar yang harus diperhatikan yang menyangkut masalah sekuriti:Untuk masalah security yang lebih detail dalam sistem operasi Linux bisa anda baca artikel TrinityOS yang disusun oleh David A. Ranch ([email protected]), bisa didownload di http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri


Sumber :
Majalah bulanan Infolinux
Homepage : http://www.infolinux.co.id





Copyright (a) 2001 Pelik
Design by globalnet

Hosted by www.Geocities.ws

1