Minggu, 01 Maret 2009

MEMBANGUN WEB SERVER DI FREEBSD

Tentu saja kata web server tidak asing lagi di sebagian besar telinga kita, yaitu sebuah tempat untuk mempublikasikan informasi apa pun kepada publik melalui internet atau intranet tentang apa saja, baik oleh individu, kelompok, lembaga pemerintahan, perusahaan, dan lain-lain. Web server umumnya tidak berdiri sendiri, namun ada aplikasi yang mendukungnya, semacam PHP, OpenSSL, dan lain sebagainya. Salah satu aplikasi yang sudah sangat populer adalah Apache HTTP Server. Aplikasi ini mulai dirilis ke publik sejak tahun 1995. Web server yang menggunakan aplikasi Apache di seluruh dunia saat ini berdasarkan survei Netcraft Web Server Survey pada November 2006 saja sudah lebih dari 60% dari total 101,435,253 situs.
Proyek Apache HTTP Server ini merupakan proyek open-source yang dikembangkan oleh Apache Software Foundation. Lembaga ini bertujuan mengembangkan Apache sebagai aplikasi web server modern yang bisa dipergunakan di multi platform OS, khususnya Unix dan Windows.
Saya tidak akan membahas sejarah perkembangan Apache ini secara rinci. Untuk mengetahui lebih lengkap perkembangannya silakan kunjungi About the Apache HTTP Server Project.
Dalam artikel ini, saya tidak hanya membahas Apache secara khusus saja, namun juga beberapa aplikasi yang umum dipergunakan bersama aplikasi ini, seperti OpenSSL, MySQL, dan PHP.
1. Download
Aplikasi yang dipergunakan dalam artikel ini adalah Apache versi 2.2.3, MySQL versi 5.0.22, OpenSSL versi 0.9.8d, dan PHP versi 5.2.0.
Dari semua aplikasi di atas, hanya Apache dan PHP yang akan diinstall secara manual, sedang MySQL dan OpenSSL diinstall via ports. Jadi yang akan didownload secara manual hanya Apache dan PHP.
Apache versi terakhir dapat didownload di http://apache.the.net.id/httpd/httpd-2.2.3.tar.bz2. Versi terakhir Apache saat artikel ini ditulis adalah versi 2.2.3. Dan versi PHP terakhir saat ini adalah versi 5.2.0. PHP dapat didownload di http://id2.php.net/get/php-5.2.0.tar.bz2/from/a/mirror.
2. Instalasi
2.1. Install MySQL
Sebelum menginstall Apache dan PHP, yang harus diinstall terlebih dahulu adalah MySQL dan OpenSSL. Untuk menginstalasi kedua aplikasi ini di FreeBSD cukup mudah melalui ports.
$ cd /usr/ports/database/mysql51-server$ sudo make install$ sudo portupgrade -rR mysql51-server
Command terakhir adalah untuk mengupgrade versi MySQL ke versi terbaru.
Untuk mengaktifkan MySQL saat booting, buka file /etc/rc.conf dan tambahkan baris:
mysql_enable = “YES”
Copykan file konfigurasi MySQL:
$ sudo cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf$ sudo chgrp mysql /var/db/mysql/my.cnf
Kemudian jalankan command berikut untuk mengaktifkan daemon MySQL.
$ sudo /usr/local/etc/rc.d/mysql-server start
Bila berhasil, seharusnya Anda akan melihat baris berikut saat menjalankan command ps ax grep mysql:
678 p0- I 0:00.01 /bin/sh /usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysql/my.cnf –user=mysql –datadir=/var/db/mysql701 p0- S 383:04.45 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf –basedir=/usr/local –datadir=/var/db/mysql
Selanjutnya buat password untuk MySQL root user:
$ sudo mysqladmin -u root password ‘password-root-mysql’
Coba masuk ke MySQL console dengan password root tersebut.
$ mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 603704 to server version: 5.0.22
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> \qBye
2.2. Install OpenSSL
Langkah selanjutnya adalah menginstalasi OpenSSL, cara menginstalasi OpenSSL dalam hal ini menggunakan ports juga.
$ cd /usr/ports/security/openssl$ sudo make install clean
Buat direktori untuk menempatkan certificate SSL:
$ sudo mkdir -p /usr/local/openssl/{certs,private}
Kemudian generate private key 1024-bit:
$ cd /usr/local/openssl$ sudo /usr/local/bin/openssl genrsa -out private/namadomain.com.key 1024
Ubah permission untuk direktori private menjadi:
$ sudo chown -R root:wheel private$ sudo chmod -R 600 private$ sudo chmod u+X private
Generate Certificate Signing Request (CSR) File:
$ /usr/local/bin/openssl req -new -key private/namadomain.com.key -out certs/namadomain.com.csr
Country Name (2 letter code) [GB]: IDState or Province Name (full name) [Some-State]: PropinsiLocality Name (eg, city) []: KotaOrganization Name (eg, company) [Internet Widgits Pty Ltd]: PT. Nama UsahaOrganizational Unit Name (eg, section) []: Bidang Usaha PerusahaanCommon Name (eg, your name or your server’s hostname) []: namadomain.comEmail Address []: postmaster@namadomain.com
Please enter the following ‘extra’ attributesto be sent with your certificate requestA challenge password []: masukkanpasswordAn optional company name []:
Kemudian buat Certificate Signed (CRT) file:
$ sudo /usr/local/bin/openssl x509 -req -days 365 -in certs/namadomain.com.csr -out certs/namadomain.com.crt -signkey private/namadomain.com.key
Certificate yang dibuat itu nantinya akan digunakan bila webserver support SSL.
2.3. Install Apache
Saya asumsikan, source Apache hasil download Anda disimpan di /home/users.
$ cd /home/users$ tar -jxvf httpd-2.2.3.tar.bz2$ cd httpd-2.2.3$ ./configure \–prefix=/usr/local/apache2 \–enable-rewrite \–enable-dav \–enable-ssl \–with-ssl=/usr/local \–enable-vhost-alias \–with-included-apr$ make$ sudo make install
Keterangan dari masing-masing opsi di atas adalah:
–prefix=[DIR]: Menginstall aplikasi ke target direktori yang ditentukan.–enable-rewrite: Mengaktifkan rule based URL manipulation melalui module mod_rewrite.–enable-dav: Mengaktifkan protocol WebDAV melalui module mod_dav. Dengan protocol WebDAV ini memungkinkan membuat, memindah, menyalin, dan menghapus resource pada sebuah web server.–enable-ssl: Mengaktifkan module SSL/TLS.–with-ssl=[DIR]: Di mana library SSL/TLS diinstall.–enable-vhost-alias: Support dengan banyak virtual host.–with-included-apr: Install apr. APR atau Apache Portable Runtime pada Apache 2.2.x versi merupakan source yang sudah menyatu dengan Apache Source.
2.4. Install PHP
Sebelum Anda menginstalasi PHP, saya sarankan untuk menginstall aplikasi-aplikasi via ports yang diperlukan (recommended) PHP saat instalasinya. Aplikasi-aplikasi tersebut adalah:
- mcrypt (/usr/ports/security/mcrypt) dan libmcrypt (/usr/ports/security/libmcrypt)- db4 (/usr/ports/databases/db4) dan gdbm (/usr/ports/databases/gdbm)- gd (/usr/ports/graphics/gd)- libxml2 (/usr/ports/textproc/libxml2)
Saya asumsikan pula, source PHP yang Anda download disimpan di /home/users.
$ cd /home/users$ tar -jxvf php-5.2.0.tar.bz2$ cd php-5.2.0$ ./configure \–with-apxs2=/usr/local/apache2/bin/apxs \–with-mysql=/usr/local \–with-openssl=/usr/local \–with-config-file-path=/usr/local/apache2/conf \–with-png-dir=/usr/local/lib \–with-gettext=/usr/local/lib \–with-gd \–with-zlib \–with-xml \–with-mcrypt=/usr/local/lib \–enable-mbstring=all \–disable-short-tags$ make$ make install
Keterangan dari masing-masing opsi di atas adalah:
–with-apxs2[=FILE]: Menyertakan shared Apache 2.0 Handler module.–with-mysql[=DIR]: Menyertakan dukungan MySQL. DIR adalah di mana binary MySQL diinstall.–with-openssl[=DIR]: Menyertakan dukungan OpenSSL.–with-config-file-path=PATH: Di mana file php.ini akan diletakkan.–with-png-dir[=DIR]: Menyertakan dukungan format file PNG.–with-gettext[=DIR]: Menyertakan dukungan GNU gettext.–with-gd[=DIR]: Menyertakan dukungan GD.–with-zlib[=DIR]: Menyertakan dukungan zlib.–with-libxml-dir[=DIR]: Menyertakan dukungan XML.–with-mcrypt[=DIR]: Menyertakan dukungan mcrypt atau Multi-cipher cryptographic library.–enable-mbstring: Mengaktifkan dukungan multibyte string.–disable-short-tags: Nonaktifkan penggunaan tag pendek Edit file /usr/local/apache2/conf/php.ini dan sesuaikan dengan kebutuhan Anda. Pada dasarnya default file konfigurasi ini sudah cukup baik.
Karena PHP diinstall sebagai module pada Apache, kita perlu mengubah kepemilikan direktori PHP yang hanya akan mengijinkan akses kepada user root dan www saja.
$ sudo chown -R root:www /usr/local/lib/php$ sudo chmod -R g-w,o-rwx /usr/local/lib/php
Edit file /usr/local/apache2/conf/httpd.conf dan ubah baris-baris berikut menjadi:
User wwwGroup www
ServerAdmin hostmaster@namadomain.comServerName www.namadomain.com:80DirectoryIndex index.html index.php
TypesConfig conf/mime.typesAddType application/x-compress .ZAddType application/x-gzip .gz .tgzAddType application/x-httpd-php .phpAddHandler cgi-script .cgi
Aktifkan juga baris-baris berikut dengan menghilangkan tanda # di awal barisnya:
Include conf/extra/httpd-autoindex.confInclude conf/extra/httpd-userdir.confInclude conf/extra/httpd-vhosts.confInclude conf/extra/httpd-dav.confInclude conf/extra/httpd-default.confInclude conf/extra/httpd-ssl.conf
Selanjutnya ubah permission direktori Apache:
$ cd /usr/local
Ubah kepemilikan direktori apache2 ke user root:wheel
$ sudo chown -R root:wheel apache2
Ubah permission pada direktori apache2. Karena direktori ini kepemilikannya oleh root:wheel dan supaya bisa diakses oleh group www, kita ijinkan group www ini membaca dan mengeksekusi file-file di bawahnya.
$ sudo chmod 755 apache2
Selanjutnya pada direktori apache2 ini hanya akan mengijinkan user root saja untuk dapat membaca dan menulisinya dengan mengubah permission menjadi:
$ sudo chmod -R 600 apache2/*
Hanya user root saja yang dapat mengakses seluruh direktori yang berada di bawah direktori apache2:
$ sudo chmod -R u+X apache2$ cd apache2
Ubah kepemilikan direktori binary Apache ke user root:
$ sudo chmod -R u+x bin
Direktori cgi-bin juga berisi file-file binari. Hanya mengijinkan user root dan group www saja yang bisa mengaksesnya.
$ sudo chgrp -R www cgi-bin$ sudo chmod -R u+x,g+x cgi-bin
Web server akan membaca direktori icons, maka ubah pula kepemilikannya agar bisa dibaca oleh group www.
$ sudo chgrp -R www icons$ sudo chmod -R g+rX icons
Ubah juga permission direktori logs:
$ sudo chgrp -R www logs$ sudo chmod g+wX logs
Terakhir ubah kepemilikan direktori htdocs agar bisa dibaca oleh publik. Direktori ini nanti merupakan tempat menyimpan file-file web yang akan ditampilkan pada browser. Akses penulisan ke direktori ini hanya dibatasi kepada user root saja.
$ sudo chgrp -R www htdocs$ sudo chmod -R g+rX htdocs
Karena menginstall Apache dari source file. Kita harus membuat sendiri startup script-nya agar dapat dieksekusi oleh server pada saat booting. Start up script diletakkan di direktori /usr/local/etc/rc.d. Startup script dapat didownload di sini: Apache-2 FreeBSD Startup Script
Kemudian tambahkan dua baris berikut pada file /etc/rc.conf:
apache2_enable=”YES”apache2_flags=”-DSSL”
Ubah permission file start up script menjadi:
$ sudo chmod 555 /usr/local/etc/rc.d/apache.sh
Jalankan file tersebut untuk mengaktifkan daemon httpd:
$ sudo /usr/local/etc/rc.d/apache.sh start
Periksa apakah daemon httpd sudah aktif dengan command ps ax:
$ ps ax grep httpd
33549 ?? Ss 0:12.88 /usr/local/apache2/bin/httpd -DSSL33550 ?? I 0:00.43 /usr/local/apache2/bin/httpd -DSSL33551 ?? I 0:00.40 /usr/local/apache2/bin/httpd -DSSL33552 ?? I 0:00.32 /usr/local/apache2/bin/httpd -DSSL
Bila output di console Anda sudah seperti di atas, selamat! Anda sudah berhasil menginstall web server pada server Anda.

selengkapnya......

Kamis, 29 Januari 2009

Mendukung Perangkat Lunak Sistem

Standar Kompetensi Kerja Nasional Indonesia Sektor Teknologi Informasi dan Komunikasi Sub Sektor Jaringan Komputer dan Sistem Administrasi
Mendukung Perangkat Lunak Sistem

Mendukung Perangkat Lunak Sistem
DESKRIPSI UNIT : Unit ini menjelaskan kemampuan yang diperlukan
untuk mengoperasikan dan mendukung perangkat
lunak sistem.
ELEMEN KOMPETENSI
KRITERIA UNJUK KERJA
01 Merawat perangkat
lunak sistem
1.1 Efektifitas sistem dievaluasi terhadap
persyaratan vendor dan persyaratan unjuk kerja
organisasi untuk menentukan aktivitas
perawatan yang harus dilakukan.
1.2 Utilitas sistem, struktur file (berkas) dan disk
(cakram), serta berkas-berkas dan laporan unjuk
kerja digunakan untuk mengidentifikasi adanya
periode puncak dan permasalahan unjuk kerja
yang mungkin terjadi.
1.3 Level data sistem dimonitor untuk menentukan
apakah untuk kerja sistem konsisten terhadap
standar yang telah ditentukan.
1.4 Identifikasi masalah dilakukan menggunakan tool
sistem yang tepat.
1.5 Sistem dimonitor dan disetel ulang bila perlu
untuk memperbaiki unjuk kerja.
02 Memasang perangkat
lunak dan mengelola
berkas sistem
2.1 Persyaratan sistem pengguna dievaluasi dan
struktur berkas dan folder yang sesuai dimonitor.
2.2 Tools administrasi dan sistem yang sesuai
digunakan untuk membuat struktur berkas dan
folder.
2.3 Keamanan, akses dan berbagi pakai berkas
sistem untuk memenuhi kebutuhan klien
ditetapkan.
2.4 Kebutuhan proteksi virus jaringan diidentifikasi
sesuai prosedur organisasi.
2.5 Berkas sistem diuji untuk menjamin akses yang
tepat tersedia untuk kelompok pengguna.
2.6 Konstruksi program sederhana diperiksa untuk
dicocokkan dengan pedoman organisasi.
Standar Kompetensi Kerja Nasional Indonesia Sektor Teknologi Informasi dan Komunikasi Sub Sektor Jaringan Komputer dan Sistem Administrasi
Mendukung Perangkat Lunak Sistem
113
ELEMEN KOMPETENSI
KRITERIA UNJUK KERJA
2.7 Berkas sistem yang dibuat berdasarkan standar
organisasi didokumentasikan.
03 Mengelola pemakaian
sistem
3.1 Akses kepada sistem diberikan kepada
pengguna.
3.2 Akses dan penggunaan sistem untuk pengguna
dibuat tanpa kesalahan.
3.3 Akses pada informasi dan sumber daya dibuat
jelas dan nyata.
3.4 Layanan sistem diintegrasikan dengan bantuan
tool sistem.
04 Memonitor keamanan
sistem.
4.1 Akses pengguna dimonitor sesuai dengan level
akses pengguna.
4.2 Persyaratan keamanan untuk pengguna dan
data yang tersimpan pada jaringan ditinjau
ulang.
4.3 Resiko terhadap penyebaran data, proses
pemulihan, dan pencegahannya ditentukan.
4.4 Sistem yang menyediakan layanan back up dan
restore dari gangguan kerusakan diterapkan.
4.5 Prosedur pemulihan bencana didokumentasikan.
05 Menjalankan back up
sistem
5.1 Sistem dipindai dari adanya virus dan virus yang
terdeteksi dihapus.
5.2 Back up sistem dilaksanakan berdasarkan
kebutuhan sistem dan organisasi.
5.3 Back up sistem dilaksanakan secara teratur dan
berkala.
5.4 Back up sistem dicatat sesuai persyaratan
organisasi.
06 Memulihkan (restore)
sistem dari back up.
6.1 Pemulihan sistem dilaksanakan sesuai pedoman
organisasi.
6.2 Sistem yang dipulihkan dioptimalisasi
berdasarkan persyaratan organisasi.
6.3 Sistem yang dipulihkan didokumentasikan
sesuai dengan persyaratan organisasi.
Standar Kompetensi Kerja Nasional Indonesia Sektor Teknologi Informasi dan Komunikasi Sub Sektor Jaringan Komputer dan Sistem Administrasi
Mendukung Perangkat Lunak Sistem
114
BATASAN VARIABEL
1. Unit ini berlaku untuk seluruh sektor teknologi informasi dan komunikasi.
2. Dalam melaksanakan unit kompetensi ini didukung dengan tersedianya:
2.1 Sistem operasi, sistem komputer, dan sistem jaringan komputer.
2.2 Basia data / DBMS.
2.3 Standar dan prosedur organisasi.
2.4 Perangkat keras, perangkat lunak dan file sistem.
PANDUAN PENILAIAN
1. Pengetahuan dan keterampilan penunjang
Untuk mendemontrasikan kompetensi, memerlukan bukti keterampilan dan
pengetahuan di bidang berikut ini :
1.1 Pengetahuan dasar
1.1.1 Pengetahuan mengenai produk produk vendor.
1.1.2 Pengetahuan mengenai bisnis organisasi / perusahaan.
1.1.3 Pengetahuan mengenai Quality Assurance.
1.1.4 Pengetahuan mengenai sistem manajemen perubahan.
1.2 Keterampilan dasar
1.2.1 Keahlian menganalisis proses kerja yag rutin dan non rutin.
1.2.2 Keahlian merencanakan proyek.
1.2.3 Keahlian bekerja sama dengan tim.
1.2.4 Keahlian menulis / membuat laporan.
2. Konteks penilaian
Kompetensi harus diujikan di tempat kerja atau di tempat lain secara praktek
dengan kondisi kerja sesuai dengan keadaan normal.
3. Aspek penting penilaian
Aspek yang harus diperhatikan :
3.1 Kemampuan untuk memelihara sistem perangkat lunak.
3.2 Kemampuan untuk mengatur sistem file.
3.3 Kemampuan untuk Mengatur pengguna sistem.
3.4 Kemampuan untuk melakukan back up sistem.
3.5 Kemampuan untuk melakukan restore sistem.
4. Kaitan dengan unit-unit lainnya
4.1 Unit ini didukung oleh pengetahuan dan keterampilan dalam unit
kompetensi yang berkaitan dengan:
4.1.1 Berkomunikasi dengan klien.
4.1.2 Memasang dan mengkonfigurasi perangkat keras pada sistem
jaringan.
4.1.3 Memasang dan mengkonfigurasi perangkat lunak pada sistem
jaringan.
4.1.4 Memasang dan mengkonfigurasi sistem jaringan.
4.1.5 Melakukan back up dan restore sistem.
4.2 Pengembangan pelatihan untuk memenuhi persyaratan dalam unit ini
perlu dilakukan dengan hati-hati. Untuk pelatihan pra-kejuruan umum,
Standar Kompetensi Kerja Nasional Indonesia Sektor Teknologi Informasi dan Komunikasi Sub Sektor Jaringan Komputer dan Sistem Administrasi
Mendukung Perangkat Lunak Sistem
115
institusi harus menyediakan pelatihan yang mempertimbangkan
serangkaian konteks industri seutuhnya tanpa bias terhadap sektor
tertentu. Batasan variabel akan membantu dalam hal ini. Untuk sektor
tertentu / khusus, pelatihan harus disesuaikan agar dapat memenuhi
kebutuhan sektor tersebut.
Kompetensi Kunci
NO KOMPETENSI KUNCI DALAM UNIT INI TINGKAT
1 Mengumpulkan, mengorganisir dan menganalisa informasi 3
2 Mengkomunikasikan ide-ide dan informasi 2
3 Merencanakan dan mengorganisir aktivitas-aktivitas 2
4 Bekerja dengan orang lain dan kelompok 2
5 Menggunakan ide-ide dan teknik matematika 2
6 Memecahkan masalah 2
7 Menggunakan teknologi 3

selengkapnya......