Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM MANAJEMEN SERVER DAN NETWORKING
A. INSTALASI DAN KONFIGURASI A.1. Instalasi O/S Server Adapun langkahlangkah untuk melakukan instalasi Sistem Operasi Linux adalah sebagai berikut : 1. Masukkan Boot CDROM RHEL pada CDROM drive. 2. Nyalakan PC Anda 3. Ikuti Langkah demi langkah petunjuk yang ada dan hatihati melangkah. A.2. Instalasi Proxy, DNS, DHCP Server Dalam tahap ini pertama kali yang dilakukan adalah Instalasi DNS atau Domain Name System. DNS merupakan suatu database yang berisi daftar informasi host komputer. Ide dasar penggunaan DNS disebabkan hosthost komputer mempunyai alamat masingmasing yang disebut dengan IP Address seperti 192.168.1.254 dan lainlain yang menunjukkan alamat host komputer tersebut. Dan kenyataannya manusia lebih mudah menghafal nama daripada menghafal angkaangka seperti IP Address komputer. Dan prakteknya untuk instalasi DNS menggunakan BIND atau Berkeley Internet Name Domain. BIND yang digunakan dalam Server RHEL4 ini adalah BIND9.2.42.rpm, sehingga Instalasi BIND dilakukan dengan mengetikkan perintah berikut sebagai root : # rpm Uvh bind9.2.42.rpm Maka BIND telah terinstall dalam Sistem RHEL4. Untuk selanjutnya perlu dilakukan setting dan konfigurasi BIND dengan konfigurasi sebagai berikut : Konfigurasi
Nilai
Lokasi program
/etc/
Alamat IP Utama
222.124.60.20 ADSL)
IP Gateway
202.134.0.155
Netmask
255.255.0.0
Domain Utama
ptik.ac.id
Nama host
ns
Email Administrator
[email protected]
Alamat IP DNS
192.168.1.1
(modem
Disusun Oleh : Suyatno Budiharjo 1 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM Konfigurasi
Nilai
Alamat IP Mail
192.168.1.2
Alamat IP Database
192.168.1.3
Direktori Web
/var/www/html/ptik http://www.ptik.ac.id/
Direktori Web Mail
/usr/share/squirrelmail/ http://mail.ptik.ac.id/webmail/
Direktori SIMPADU
/var/www/html/ptik http://simpadu.ptik.ac.id/
Daftar file yang perlu diedit untuk keperluan konfigurasi DNS, antara lain adalah : [root@ptik ~]# vi /etc/resolv.conf Isi dari file resolv.conf adalah ; generated by /sbin/dhclientscript search ac.id nameserver 192.168.1.1 [root@ptik ~]# vi /etc/named.conf Isi dari file named.conf diatas intinya adalah sebagai berikut : zone "ptik.ac.id" IN { type master; file "ptik.zone"; }; zone "1.168.192.inaddr.arpa" IN { type master; file "db.192.168.1"; }; Konfigurasi diatas, menunjukkan bahwa domain ptik.ac.id didefinisikan didalam file ptik.zone yang berada di direktori /var/named/chroot/var/named/, yang isinya adalah sebagai berikut :
Disusun Oleh : Suyatno Budiharjo 2 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM $TTL 86400 @ IN SOA ns.ptik.ac.id. root.ptik.ac.id.(42 ; 3H ; 15M ; 1W ; 1D); IN NS ns.ptik.ac.id. IN MX 10 mail.ptik.ac.id. ns IN A 192.168.1.1 www IN A 192.168.1.1 mail IN A 192.168.1.2 simpadu IN A 192.168.1.3 #mail
IN CNAME ns
Sedangkan mode reverse dari IP untuk menunjukkan alamat server, didefinisikan didalam file db.192.168.1, yang isinya adalah : $TTL 86400 @ IN SOA ns.ptik.ac.id. root.ptik.ac.id.( 2004061800 ; 28800 ; 14400 ; 3600000 ; 86400 ) ; IN NS ns.ptik.ac.id. 1 IN PTR ns.ptik.ac.id. Konfigurasi diatas untuk 1 server. Jika terdapat beberapa server, maka Server yang berfungsi sebagai proxy dan router, harus dikonfigurasikan sebagai berikut : $TTL 86400 @ IN SOA ns.ptik.ac.id. root.ptik.ac.id.( 2004061800 ; 28800 ; 14400 ; 3600000 ; 86400 ) ; IN NS ns.ptik.ac.id. 1 IN PTR ns.ptik.ac.id. 2 IN PTR mail.ptik.ac.id. 3 IN PTR simpadu.ptik.ac.id
Disusun Oleh : Suyatno Budiharjo 3 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM dimana router berfungsi untuk mengarahkan ke Server yang berbeda untuk masingmasing server. Untuk selanjutnya konfigurasi diatas, perlu dilakukan symlink ke /var/named, dengan baris perintah sebagai berikut : [root@ptik ~]# ln s /var/named/chroot/var/named/ptik.zone /var/named/ [root@ptik ~]# ln s /var/named/chroot/var/named/db.192.168.1 /var/named/ Untuk menjalankan DNS dapat dilakukan dengan menggunakan baris perintah sebagai berikut : [root@ptik ~]# /etc/init.d/named restart Stopping named: [ OK ] Starting named: [ OK ] Untuk menguji apakah DNS yang diset telah berjalan atau belum dapat menggunakan perintah berikut : [root@ptik ~]# host www.ptik.ac.id www.ptik.ac.id has address 192.168.1.1 [root@ptik ~]# host 192.168.1.1 1.1.168.192.inaddr.arpa domain name pointer ns.ptik.ac.id. Instalasi SQUID Proxy Server Untuk Instalasi Proxy, dalam hal ini sebagai Transparent proxy, digunakan SQUID sekaligus digunakan sebagai Internet Sharing, proses instalasi dilakukan dengan penggunakan perintah sebagai berikut : [root@ptik ~]# rpm Ivh squid2.5.STABLE63.rpm Konfigurasi Dasar Konfigurasi squid dapat dilihat dengan perintah sebagai berikut : [root@ptik ~]#vi /etc/squid/squid.conf http_port adalah angka port pada server lokal yang Squid mendengarkan semua permintaan yang datang, secara default port yang digunakan 3128, tetapi dapat diubah jika diperlukan (8080 adalah port cache yang umum). Yang manapun port yang digunakan disini, ini akan perlu diset di dalam semua workstation yang menggunakan proxy. Ini juga dapat membatasi hanya mendengar alamat IP jaringan internal. # http_port 3128 #http_port 192.168.1.1:3128 icp_port digunakan untuk mengirimkan Internet Cache Protocol (RFC2186) yang Disusun Oleh : Suyatno Budiharjo 4 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM mengantri server proxy tetangga. Default port yang digunakan 3130, bagaimanapun walau anda menggunakan banyak proxy didalam organisasi, adalah aman untuk dimatikan (se “0”). icp_port 0 Tag berikut adalah menunjukkan lokasi file log standar : cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log Menjalankan Server Untuk menjalankan server proxy mirip dengan service yang lain, dengan mengeset runlevel yang diaktifkan padanya dan mengecek untuk melihat bahwa mereka telah diset dengan benar. [root@ptik ~]#chkconfig level 345 squid on [root@ptik ~]#chkconfig list squid Service dapat dijalankan sekarang, dan pastikan untuk mengecek log sistem untuk melihat jika ada beberapa kesalahan yang terjadi. [root@ptik ~]#/etc/init.d/squid start [root@ptik ~]#grep squid /var/log/messages Seting Kontrol Akses Inisialisasi kontrol akses untuk server Squid secara fair diperlukan, dengan alasan yang baik. Sebelum siapapun dapat menggunakan server, kontrol akses harus dituliskan untuk mengijinkan akses. Aturan dapat dituliskan hampir setiap tipe dari kebutuhan dan dapat menjadi sangat komplek untuk organisasi yang besar. Kondisi terburuk tentang konfigurasi Server proxy untuk sebuah situs, adalah ketika user dapat mengubah web browser detailnya dan keluar firewall tanpa pernah menggunakannya ( user nakal !). Dengan beberapa set sederhana pada firewall, kita dapat memblok permintaan ke sebuah web server yang datang tanpa melalui proxy. acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 Disusun Oleh : Suyatno Budiharjo 5 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM acl Safe_ports port 80 # http
Autentikasi User Keamanan lebih lanjut dapat dipelihara melalui Akses Internet Anda dengan pertama kali dengan autentikasi user yang valid sebelum aksesnya diberikan. Squid dapat mengecek untuk user yang valid dengan mencari detail username dan password dalam sebuah file. Nilai password diletakkan didalam list user yang valid untuk subyek yang dimasukkan dalam fungsi hash, sehingga mereka tidak dapat dibaca oleh seseorang melalui “senjata anda”. [root@ptik ~]# touch /etc/squid/passwd [root@ptik ~]# chown root.squid /etc/squid/passwd [root@ptik ~]# chmod 640 /etc/squid/passwd Untuk menambahkan user ke daftar password, digunakan aplikasi htpasswd, anda akan diminta untuk memasukkan password untuk username. Jika anda akan mengeset akses user untuk organisasi, selalu ijinkan user untuk mengetikkan passwordnya disini. [root@ptik ~]# htpasswd /etc/squid/passwd username Untuk melihat user squid yang sudah ada dapat menggunakan perintah berikut : [root@ptik ~]# cat /etc/squid/password Untuk membuat account sekitar 596 orang, dilakukan dengan menggunakan script yang tersimpan didalam file account.sh File konfigurasi perlu disesuaikan sekarang, sehingga ini dapat mengecek untuk user yang valid. Tempatkan pernyataan kontrol akses “segmen_1”, “segmen_2”, segmen_3, yang anda gunakan lebih dahulu dan buat perubahan berikut. Seting dari aturan ini akan mengijinkan hanya user yang telah diautentikasi dan diletakkan didalam jaringan private anda. acl segmen_1 src 192.168.0.0/16 acl segmen_2 src 192.169.0.0/16 acl segmen_3 src 192.170.0.0/16 acl password proxy_auth REQUIRED http_access allow segmen_1 password http_access allow segmen_2 password Disusun Oleh : Suyatno Budiharjo 6 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM http_access allow segmen_3 Konfigurasi akhir diperlukan untuk memberitahukan Squid bagaimana menangani autentikasi. Daftar berikut telah tersedia didalam file konfigurasi, tinggal memerlukan pernyesuaian dengan kebutuhan anda. auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_users auth_param basic children 5 auth_param basic realm Squid PTIK Proxy Server auth_param basic credentialsttl 2 hour auth_param basic casesensitive off Saatnya menrefresh konfigurasi Squid dan mengujinya. [root@ptik ~]#/etc/init.d/squid reload Konfigurasi Tranparent Proxy Konfigurasi untuk transparent Proxy pada file /etc/squid/squid.conf diatas adalah : httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on Peringatan : bahwa untuk konfigurasi tranparent proxy tidak dapat digunakan untuk melakukan autentikasi user. Untuk menjalankan squid, dilakukan dengan cara sebagai berikut : [root@ptik ~]#/etc/init.d/squid start Konfigurasi Firewall dengan Iptables Konfigurasi firewall diperlukan karena ini terkait dengan kontrol akses baik oleh IP client yang diijinkan maupun port yang digunakan. Seperti halnya proxy SQUID yang memaksa client untuk menggunakan proxy, maka setiap koneksi yang diminta ke port 80 (web) harus diarahkan ke port yang digunakan oleh SQUID proxy (3128). Konfigurasi Firewall dapat diletakkan pada /etc/sysconfig/iptables. Atau agar konfigurasi firewall dijalankan dari awal saat boot, maka seting dapat diletakkan pada file /etc/rc.local seperti berikut : iptables t nat A PREROUTING i eth0 p tcp dport 80 j REDIRECT toport 3128 Karena jaringan didalamnya menggunakan beberapa segmen, sehingga perlu juga dilakukan redirect ketika ada permintaan dari IP dalam segmen berikut ke Disusun Oleh : Suyatno Budiharjo 7 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM port 80. Sedangkan untuk IP diluar segmensegmen ini tidak dilakukan redirect yang berakibat firewall menolak permintaan akses. iptables A INPUT p tcp s 192.168.1.0/8 d 0/0 dport 80 j REDIRECT toport 3128 iptables A INPUT p tcp s 192.169.1.0/8 d 0/0 dport 80 j REDIRECT toport 3128 iptables A INPUT p tcp s 192.170.1.0/8 d 0/0 dport 80 j REDIRECT toport 3128 Untuk menguji konfigurasi proxy dilakukan dengan menggunakan web browser sehingga akan muncul jendela otentikasi seperti berikut :
Dan jika login tidak berhasil akan diperoleh tampilan sebagai berikut :
Disusun Oleh : Suyatno Budiharjo 8 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
Daftar user proxy yang telah dibuat adalah sebagai berikut :
Instalasi DHCP Server Untuk melakukan konfigurasi pada Server DHCP dapat menggunakan baris perintah sebagai berikut : [root@ptik ~]# vi /etc/dhcpd.conf Konfigurasi Dasar Untuk membuat beberapa segmen yang berbeda dari jaringan komputer yang Disusun Oleh : Suyatno Budiharjo 9 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM membedakan user dan jenis layanannya. Dalam contoh ini, terdapat pilihan global untuk setiap client DHCP dalam subnet dan cakupan yang dideklarasikan. Client akan diset dengan alamat IP dalam cakupan ini. #segmen1 subnet 192.168.0.0 netmask 255.255.0.0 { range 192.168.1.1 192.168.40.250; option routers 192.168.1.1; allow unknownclients; } Semua subnet yang mensharing jaringan fisik yang sana harus dideklarasikan didalam deklarasi sharednetwork. sharednetwork PTIK { # group_1 option domainname "ptik.ac.id"; option domainnameservers 192.168.1.1; option netbiosnameservers 192.168.1.1; # option routers 192.168.1.1; subnet 192.168.0.0 netmask 255.255.0.0 { range 192.168.1.1 192.168.40.250; option routers 192.168.1.1; allow unknownclients; } } Jika lebih dari satu interface jaringan yang digunakan pada sistem, tetapi DHCP server harus memulai pada satu interface, maka konfigurasi server DHCP dimulai hanya dengan perangkat ini. Dalam /etc/sysconfig/dhcp, tambahkan nama interface pada daftar dari DHCPDARGS : # Baris perintah disini : DHCPDARGS = eth0 Hal ini sangat bernanfaat untuk mesin firewall dengan dua kartu jaringan. Perangkat Alias Konfigurai untuk perangkat alias merupakan perangkat virtual yang digabungkan denganhardware yang sama, tetapi dapat diaktifkan pada saat yang sama dengan alamat IP yang berbeda. Umumnya dinyatakan dengan nama yang diikuti dengan Disusun Oleh : Suyatno Budiharjo 10 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM titik dua (:) dan angka (sebagai contoh eth0:1). Ini sangat bermanfaat untuk sistem yang mempunyai banyak segmen tetapi sistem hanya mempunyai satu kartu jaringan. Gambar berikut merupakan contoh alias dari perangkat eth0. Perhatikan bahwa perangkat eth0:1 menyatakan alias pertama untuk eth0. Alias yang kedua untuk eth0 adalah eth0:2 dan seterusnya.
Untuk menjalankan atau mematikan server DHCP dapat menggunakan perintah berikut : [root@ptik ~]# /etc/init.d/dhcpd start Starting dhcpd: [ OK ] Untuk merefresh Server DHCP dapat dilakukan dengan baris perintah sebagai berikut [root@ptik ~]# /etc/init.d/dhcpd restart Shutting down dhcpd: [ OK ] Starting dhcpd: [ OK ] Untuk mengetahui hasil konfigurasi apakah benar atau salah dapat menggunakan baris perintah sebagai berikut : [root@ptik ~]# grep dhcpd /var/log/messages Jul 20 01:25:46 ptik dhcpd: Listening on LPF/eth0/00:e0:18:8d:35:3c/192.168.1.0/24 Jul 20 01:25:46 ptik dhcpd: Listening on LPF/eth0/00:e0:18:8d:35:3c/192.168.1.0/24 Jul 20 01:25:46 ptik dhcpd: Sending on LPF/eth0/00:e0:18:8d:35:3c/192.168.1.0/24 Disusun Oleh : Suyatno Budiharjo 11 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM Jul 20 01:25:46 ptik dhcpd: Sending on Socket/fallback/fallbacknet Jul 20 01:25:46 ptik dhcpd: Jul 20 01:25:46 ptik dhcpd: Sending LPF/eth0/00:e0:18:8d:35:3c/192.168.1.0/24 Jul 20 01:25:46 ptik dhcpd: Sending on Socket/fallback/fallbacknet Jul 20 01:25:46 ptik dhcpd: dhcpd startup succeeded
on
Untuk mengetahui bahwa konfigurasi dhcp sampai ke client, maka dapat dilihat dengan baris perintah sebagai berikut : [root@ptik ~]# dhclient eth0 Internet Systems Consortium DHCP Client V3.0.1 Copyright 2004 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/products/DHCP Listening on LPF/eth0/00:e0:18:8d:35:3c Sending on LPF/eth0/00:e0:18:8d:35:3c Sending on Socket/fallback DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6 DHCPOFFER from 192.168.1.1 DHCPREQUEST on eth0 to 255.255.255.255 port 67 DHCPACK from 192.168.1.1 bound to 192.168.1.254 renewal in 42360 seconds. Dan hasil konfigurasi DHCP dapat dilihat dari komputer client, seperti berikut :
Konfigurasi DHCP dengan Webmin dapat dilakukan dengan mengakses halaman berikut : Disusun Oleh : Suyatno Budiharjo 12 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
A.3. Instalasi Mail Server Untuk melakukan instalasi Mail Server, terdapat beberapa pilihan paket yang dapat digunakan sebagai Mail Server atau Mail Transpert Agent (MTA), seperti Sendmail, Qmail, Postfix, Exim, Vmail Server dan sebagainya. Sdangkan pertimbangan digunakannya Postfix sebagai Server Mail karena kehandalan dan kemudahan serta ketersediaannya dalam CD RHEL. Sebelum melakukan instalasi paket Postfix ada baiknya untuk memastikan bahwa paket sendmail tidak terinstalasi. [root@ptik ~]#rpm qa | grep sendmail [root@ptik ~]#rpm e sendmail Paket bawaan RHEL belum mendukung untuk koneksi dengan MYSQL. Oleh karena itu jika postfix sudah ada saat instalasi, silakan diupdate. Sebagai gantinya akan digunakan postfix dalam format tarbal yang dapat anda download di http://www.postfix.org. Dalam hal ini penulis menggunakan versi postfix2.3 20050829.tar.gz. Copykan file tarbal tersebut ke direktori /usr/local/src atau pada direktori yang lain yang anda sukai. [root@ptik ~]# cp postfix2.320050829.tar.gz /usr/local/src/ Masuk ke direktori dimana paket tersebut disimpan.
Disusun Oleh : Suyatno Budiharjo 13 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM [root@ptik ~]# cd /usr/local/src Ekstrasi paket tarbal dengan perintah sebagai berikut : [root@ptik ~]# tar zxvf postfix2.320050829.tar.gz Masuk ke direktori hasil unpack diatas [root@ptik ~]# cd postfix2.320050829 Agar postfix hasil update nantinya mendukung MySQL, Anda harus memodifikasi file sumbernya dengan perintah sebagai berikut : [root@ptik postfix2.320050829]# make f Makefile.init makefiles 'CCARGS= DHAS_MYSQL I/usr/include/mysql' 'AUXLIBS=L/usr/lib/mysql lmysqlclient lz lm' Untuk dapat melakukan kompilasi file sumber yang telah dimodifikasi tersebut, pastikan terdapat paketpaket tersebut dibawah ini telah terinstal : [root@ptik ~]# rpm qa | grep gcc gcc3.4.39.EL4 libgcc3.4.39.EL4 gccgnat3.4.39.EL4 compatgcc32c++3.2.347.3 gccg773.4.39.EL4 gcc4c++4.0.00.14.EL4 gcc44.0.00.14.EL4 compatlibgcc2962.96132.7.2 gccc++3.4.39.EL4 gccobjc3.4.39.EL4 gccjava3.4.39.EL4 compatgcc323.2.347.3 [root@ptik ~]# rpm qa | grep cpp cpp3.4.39.EL4 [root@ptik ~]# rpm qa | grep glibc glibccommon2.3.42 glibcheaders2.3.42 glibc2.3.42 glibcdevel2.3.42 Disusun Oleh : Suyatno Budiharjo 14 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM glibckernheaders2.49.1.87 Selanjutnya kompilasi file sumbernya dengan perintah sebagai berikut : [root@ptik postfix2.320050829]# make Lakukan instalasi paket dengan perintah berikut : [root@ptik postfix2.320050829]# make install Saat proses instalasi, Linux akan menentukan direktoridirektori untuk menempatkan filefile postfix secara default. Anda bisa menentukan pada direktori selain default. Sebaiknya anda gunakan default saja, sehingga setiap kali Anda ditanya letak direktorinya, anda tinggal menekan tombol ENTER saja. Membuat Direktori Virtual Buat direktori tempat menyimpan emailemail virtual. # mkdir /usr/local/virtual # chown –R postfix.postfix /usr/local/virtual # chmod –R 750 /usr/local/virtual Direktori di atas bisa Anda tentukan ke tempat lain pada ruang harddisk yang cukup besar, sehingga jika ada penambahan email harddisk Anda masih cukup untuk menampungnya. Konfigurasi Postfix Beriktunya lakukan pengeditan file main.cf yang ada di direktori /etc/postfix. Sesuaikan bagianbagian berikut dengan konfigurasi di sistem Linux Anda. Misalnya sebagai berikut. queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix myhostname = ptik.ac.id inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = Disusun Oleh : Suyatno Budiharjo 15 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix2.1.5/samples readme_directory = /usr/share/doc/postfix2.1.5/README_FILES Pada bagian akhir dari main.cf perlu ditambahkan konfigurasi yang terkait dengan database mysql seperti berikut : virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps = static:89 virtual_mailbox_base = /usr/local/virtual virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_limit = 51200000 virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 89 #virtual_transport = virtual virtual_uid_maps = static:89 # Additional for quota support virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps= mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later. virtual_overquota_bounce = yes #relay_domains = mysql:/etc/postfix/mysql_relay_domains_maps.cf Berikutnya pada file master.cf pastikan sudah terdapat baris ini. virtual unix n n virtual Pada bagian uid dan gid sesuaikan dengan user dan group postfix pada sistem Linux Anda. Pada saat tulisan ini dibuat uid dan gid postfix adalah 89. Untuk mendapatkan uid dan gid dari postfik gunakan perintah berikut. Disusun Oleh : Suyatno Budiharjo 16 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM [root@ptik ~]# id postfix uid=89(postfix) gid=89(postfix) groups=89(postfix),12(mail) Berikutnya buat filefile konfigurasi virtual yang dibutuhkan postfix, dan simpan di direktori /etc/postfix: mysql_virtual_alias_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix table = alias select_field = goto where_field = address #query = SELECT goto FROM alias WHERE address='%s' AND active = 1 mysql_virtual_domains_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix #query = SELECT domain FROM domain WHERE domain='%s' table = domain select_field = domain where_field = domain mysql_virtual_mailbox_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix table = mailbox select_field = maildir where_field = username #query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = 1 mysql_virtual_mailbox_limit_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix Disusun Oleh : Suyatno Budiharjo 17 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM table = mailbox select_field = quota where_field = username #query = SELECT quota FROM mailbox WHERE username='%s' mysql_relay_domain_maps.cf user = postfix password = postfix hosts = localhost dbname = postfix table = domain select_field = domain where_field = domain #query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'
Database dan Table di MySQL Untuk keperluan virtual domain, Anda harus membuat database dan tabel yang akan diakses oleh postfix. Berikut langkahlangkah membuat database dan tabel tabelnya. Masuk ke MySQL sebagai root # mysql –h localhost –u root –p Menambahkan user postfix pada database MySQL > USE mysql; # Postfix user & password > INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password('postfix')); > INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','postfix','Y'); Membuat user Postfixadmin Virtual Domain # Postfix Admin user & password > INSERT INTO user (Host, User, Password) VALUES ('localhost','postfixadmin',password('postfixadmin')); > INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv) VALUES ('localhost', 'postfix', 'postfixadmin', 'Y', 'Y', 'Y', 'Y'); > FLUSH PRIVILEGES;
Disusun Oleh : Suyatno Budiharjo 18 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM Memberikan hak akses kepada user postfix > GRANT USAGE ON postfix.* TO postfix@localhost ; > GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfix@localhost ; Memberikan hak akses kepada user postfixadmin > GRANT USAGE ON postfix.* TO postfixadmin@localhost; > GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfixadmin@localhost; #Membuat database postfix > CREATE DATABASE postfix; #Membuat tabel Admin > USE postfix; > CREATE TABLE admin ( username varchar(255) NOT NULL default '', password varchar(255) NOT NULL default '', created datetime NOT NULL default '00000000 00:00:00', modified datetime NOT NULL default '00000000 00:00:00', active tinyint(1) NOT NULL default '1', PRIMARY KEY (username), KEY username (username) ) TYPE=MyISAM COMMENT='Postfix Admin Virtual Admins'; # # Membuat tabel alias lengkap dengan strukturnya # > CREATE TABLE alias ( address varchar(255) NOT NULL default '', goto text NOT NULL, domain varchar(255) NOT NULL default '', created datetime NOT NULL default '00000000 00:00:00', modified datetime NOT NULL default '00000000 00:00:00', active tinyint(1) NOT NULL default '1', PRIMARY KEY (address), KEY address (address) ) TYPE=MyISAM COMMENT='Postfix Admin Virtual Aliases'; # Disusun Oleh : Suyatno Budiharjo 19 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM # Struktur tabel domain # > CREATE TABLE domain ( domain varchar(255) NOT NULL default '', description varchar(255) NOT NULL default '', aliases int(10) NOT NULL default '0', mailboxes int(10) NOT NULL default '0', maxquota int(10) NOT NULL default '0', transport varchar(255) default NULL, backupmx tinyint(1) NOT NULL default '0', created datetime NOT NULL default '00000000 00:00:00', modified datetime NOT NULL default '00000000 00:00:00', active tinyint(1) NOT NULL default '1', PRIMARY KEY (domain), KEY domain (domain) ) TYPE=MyISAM COMMENT='Postfix Admin Virtual Domains'; # # Struktur tabel untuk tabel domain_admins # > CREATE TABLE domain_admins ( username varchar(255) NOT NULL default '', domain varchar(255) NOT NULL default '', created datetime NOT NULL default '00000000 00:00:00', active tinyint(1) NOT NULL default '1', KEY username (username) ) TYPE=MyISAM COMMENT='Postfix Admin Domain Admins'; # # Struktur tabel untuk tabel log # > CREATE TABLE log ( timestamp datetime NOT NULL default '00000000 00:00:00', username varchar(255) NOT NULL default '', domain varchar(255) NOT NULL default '', action varchar(255) NOT NULL default '', data varchar(255) NOT NULL default '', KEY timestamp (timestamp) ) TYPE=MyISAM COMMENT='Postfix Admin Log'; # Disusun Oleh : Suyatno Budiharjo 20 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM # Struktur tabel untuk tabel mailbox # > CREATE TABLE mailbox ( username varchar(255) NOT NULL default '', password varchar(255) NOT NULL default '', name varchar(255) NOT NULL default '', maildir varchar(255) NOT NULL default '', quota int(10) NOT NULL default '0', domain varchar(255) NOT NULL default '', created datetime NOT NULL default '00000000 00:00:00', modified datetime NOT NULL default '00000000 00:00:00', active tinyint(1) NOT NULL default '1', PRIMARY KEY (username), KEY username (username) ) TYPE=MyISAM COMMENT='Postfix Admin Virtual Mailboxes'; # # Struktur tabel untuk tabel vacation # > CREATE TABLE vacation ( email varchar(255) NOT NULL default '', subject varchar(255) NOT NULL default '', body text NOT NULL, cache text NOT NULL, domain varchar(255) NOT NULL default '', created datetime NOT NULL default '00000000 00:00:00', active tinyint(1) NOT NULL default '1', PRIMARY KEY (email), KEY email (email) ) TYPE=MyISAM COMMENT='Postfix Admin Virtual Vacation'; Untuk keluar dari MySQL digunakan perintah sebagai berikut > quit; Refresh MySQL dengan perintah # /etc/init.d/mysql reload Menggunakan Postfix Setelah konfigurasi di atas selesai dilakukan, tiba saatnya untuk menggunakan postfix. Berikut ini adalah perintahperintah untuk postfix melakuan symlink dari /u sr/sbin/postfix ke /etc/init.d/postfix : Disusun Oleh : Suyatno Budiharjo 21 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
ln s /usr/sbin/postfix /etc/init.d/postfix ln s /usr/sbin/postfix /etc/rc3.d/K07postfix Menjalankan Postfix Untuk menjalankan postfix sebagai Mail Server untuk mengirimkan email, dapat digunakan baris perintah sebagai berikut : [root@ptik ~]# /etc/rc.d/init.d/postfix restart Shutting down postfix: [ OK ] Starting postfix: [ OK ] Dengan baris perintah diatas, maka aplikasi mail server ini telah membuka port 25. Untuk mengetahui hal ini dapat menggunakan baris perintah sebagai berikut : [root@ptik ~]# netstat tan | grep 25 tcp 0 0 0.0.0.0:1025 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN Untuk membuat account user suy dapat dilakukan dengan cara sebagai berikut : [root@ptik ~]# useradd s /sbin/nologin suy [root@ptik ~]# passwd suy Untuk mencoba melakukan pengiriman email dari user suy ke user asep, dapat dilakukan dengan menggunakan baris perintah berikut : [root@ptik ~]# telnet ptik.ac.id 25 Trying 127.0.0.1... Connected to ptik.ac.id (127.0.0.1). Escape character is '^]'. 220 ptik.ac.id ESMTP Postfix mail from:
[email protected] 250 Ok rcpt to:
[email protected] 250 Ok data 354 End data with
. wes hewes hewes tes tes titik . 250 Ok: queued as 6E44D3ABA1 quit Disusun Oleh : Suyatno Budiharjo 22 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM 221 Bye Connection closed by foreign host. Untuk menjalankan Dovecot sebagai Agent untuk mengambil email dari Mail server, dapat dilakukan dengan cara sebagai berikut : [root@ptik ~]# /etc/rc.d/init.d/dovecot restart Stopping Dovecot Imap: [ OK ] Starting Dovecot Imap: [ OK ] Perintah diatas, akan membuka port sesuai dengan protokol yang digunakan oleh aplikasi dovecot ini. Untuk mengetahui protokol yang digunakan oleh dovecot, dapat dilihat pada konfigurasinya, dengan mengetikkan baris perintah sebagai berikut : [root@ptik ~]# vi /etc/dovecot.conf Jika pada file konfigurasi dovecot tersebut menggunakan protokol imap pop3, maka ketika aplikasi ini dijalankan akan membuka port 143 dan 110. Instalasi Web Admin untuk Virtual Domain Download file tarbal postfixadmin2.1.0.tar.gz di http://www.high5.net/postfixadmin. Copykan file tarbal tersebut ke /usr/local/src # cp postfixadmin2.1.0.tar.gz /usr/local/src Buka file tarbal tersebut. # cd /usr/local/src # tar zxvf postfixadmin2.1.0.tar.gz Buat direktori postfixadmin di direkroti kerja apache. # mkdir /var/www/html/postfixadmin1.5.4 Copykan filefile postfixadmin yang telah dibuka di atas ke /var/www/html/postfixadmin # cd /usr/local/src/postfixadmin2.1.0 # cp –R * /var/www/html/postfixadmin Copy file config.inc.php.sample menjadi config.inc.php # cd /var/www/html/postfixadmin # cp config.inc.php.sample config.inc.php Edit file config.inc.php dan sesuaikan dengan user postfixadmin di MySQL. Disusun Oleh : Suyatno Budiharjo 23 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM // Login information for the database $db_host = "localhost"; $db_name = "postfix"; $db_user = "postfixadmin"; $db_pass = "postfixadmin"; $use_subdir = "YES"; $alias_control = "YES"; // $quota_table = "quota"; // $default_quota = "2000000"; $quota_table = "quota"; $default_quota = "20000000"; Jika anda menginkan untuk menyimpan mailbox per domain seting berikut dengan 'YES' Contoh : /usr/local/virtual/domain.tld/[email protected] $CONF['domain_path'] = 'YES'; Jika anda tidak ingin mempunyai domain dalam mailbox seting berikut dengan 'NO' Contoh : /usr/local/virtual/domain.tld/username $CONF['domain_in_mailbox'] = 'YES'; Edit file .htaccess di /var/www/html/postfixadmin/admin, dan sesuaikan dengan keberadaan file .htpasswd. Anda bisa menggunakan .htpasswd bawaan postfixadmin dengan user admin dan password juga admin. Sehingga baris pertama dari file .htaccess sebagai berikut : AuthUserFile /var/www/html/postfixadmin/admin Tetapi juga bisa menggunakan file passwd yang lain misal /etc/passwd. Berikan hak akses apache ke direktori postfixadmin # chown –R apache.apache /var/www/html/postfixadmin Buka Browser Anda, dan isikan pada kotak address dengan http://mail.ptik.ac.id/postfixadmin/ Anda akan diminta mengisikan user name dan password. Jika Anda menggunakan file passwd bawaan postfixadmin, user dan passwordnya adalah admin.
Disusun Oleh : Suyatno Budiharjo 24 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
Setelah Anda login yang harus Anda lakukan adalah sebagai berikut : –
Menambah Virtual Domain dengan New Domain
–
Menambahkan Admin Virtual Domain berupa alamat email dengan New Admin
Disusun Oleh : Suyatno Budiharjo 25 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
–
Melihat daftar domain dengan Domain List
–
Melihat daftar admin dengan Admin List
Berikutnya pada kotak address ganti dengan http://mail.ptik.ac.id/postfixadmin Anda akan ditanya username untuk admin virtual domain. Isikan user dengan email dari admin dan passwordnya.
Disusun Oleh : Suyatno Budiharjo 26 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
Setelah Anda login yang harus Anda lakukan adalah: – Login dengan email admin domain yang sudah dibuat
Setelah anda login dengan form diatas, anda akan mendapatkan tampilan sebagai berikut :
Disusun Oleh : Suyatno Budiharjo 27 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
–
Menambah account untuk virtual domain dengan Add Mailbox
–
Menambah alias yang akan diforward ke account di mailbox dengan Add Alias
–
Melihat data alias dan mailbox dengan Overview
Disusun Oleh : Suyatno Budiharjo 28 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
–
Setelah itu Anda bisa mengirim pesan dengan memilih Send Email.
Jika proses pengiriman pesan berhasil, lihatlah isi dari direktori /usr/local/virtual. Di dalam direktori tersebut akan terdapat sebuah direktori yang sama dengan domain virtual yang sudah ditambahkan. Dan di dalam direktori domain akan terdapat direktori mailbox dari account yang sudah Anda tambahkan. Untuk itu lihatlah isi direktori “new” dari account yang sudah dikirimi pesan. Jika benar, maka akan terdapat file yang berisi pesan. Sampai di sini maka SMTP, MySQL, dan Potfixadmin sudah bekerja dengan baik... Instalasi CourierImap Terdapat sekian banyak paket aplikai Imap yang dapat digunakan mulai dari CyrusImap, CourierImap, UWImap, Dovecot dan lainlain. Courierimap merupakan service yang menjalankan imap dan pop yang dapat medukung maildir. Untuk instalasi courierimap, download file tarbalnya di http://www.inter7.com/courierimap. Dalam bahasan ini penulis menggunakan courierimap versi 1.7.3 Copykan file courierimap1.7.3.tar.bz2 ke /usr/local/src. Disusun Oleh : Suyatno Budiharjo 29 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM # cp courierimap1.7.3.tar.bz2 /usr/local/src Buka file tarbal tersebut. # cd /usr/local/src # tar jxvf courierimap1.7.3.tar.bz2 Edit file /usr/local/src/courierimap.../etc/authmysqlrc menjadi seperti berikut. #DEFAULT_DOMAIN domain.tld MYSQL_CRYPT_PWFIELD password MYSQL_DATABASE postfix MYSQL_GID_FIELD ‘89’ MYSQL_HOME_FIELD ‘/usr/local/virtual’ MYSQL_LOGIN_FIELD username MYSQL_MAILDIR_FIELD maildir MYSQL_NAME_FIELD name MYSQL_OPT 0 MYSQL_PASSWORD postfix #MYSQL_PORT 0 MYSQL_QUOTA_FIELD quota MYSQL_SERVER localhost MYSQL_SOCKET /var/lib/mysql/mysql.sock MYSQL_UID_FIELD ‘89’ MYSQL_USERNAME postfix MYSQL_USER_TABLE mailbox #MYSQL_WHERE_CLAUSE server=’mailhost.example.com’ Pada bagian MYSQL_GID_FIELD dan MYSQL_UID_FIELD sesuaikan dengan gid dan uid dari postfix. Konfigurasi file sumber courierimap agar mendukung MySQL. # ./configure disablerootcheck \ –withoutauthdaemon –withmysql=yes \ –withauthmysql –enableworkaroundsforimapclientbugs Kompilasi file sumber # make Instalasi Courierimap # make installstrip # make installconfigure Edit file /usr/lib/courierimap/etc/imapd. Disusun Oleh : Suyatno Budiharjo 30 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM AUTHMODULES = ”authmysql” IMAPDSTART = YES Edit juga pada file /usr/lib/courierimap/etc/pop3d AUTHMODULES = “authmysql” POP3AUTH = “LOGIN” POP3DSTART = YES Berikutnya copykan file courierimap.sysvinit ke direktori service inet. # cd /usr/local/src/courierimap... # cp courierimap.sysvinit /etc/rc.d/init.d/courierimap Buat file link sebagai berikut. # ln –s /etc/rc.d/init.d/courierimap /etc/rc.d/rc0.d/k30courierimap # ln –s /etc/rc.d/init.d/courierimap /etc/rc.d/rc1.d/k30courierimap # ln –s /etc/rc.d/init.d/courierimap /etc/rc.d/rc2.d/s80courierimap # ln –s /etc/rc.d/init.d/courierimap /etc/rc.d/rc3.d/s80courierimap # ln –s /etc/rc.d/init.d/courierimap /etcrc.d/rc4.d/s80courierimap # ln –s /etc/rc.d/init.d/courierimap /etc/rc.d/rc5.d/s80courierimap # ln –s /etc/rc.d/init.d/courierimap /etc/rc.d/rc6.d/k30courierimap Agar service courierimap dapat berjalan saat komputer booting, lakukan perintah berikut. # chkconfig –add courierimap # chkconfig couirierimap on Berikutnya perintahperintah yang berkaitan dengan service courierimap. – service courierimap start (menjalankan courierimap) – service courierimap stop (menghentikan courierimap) – service courierimap reload (merefresh courierimap) – service courierimap restart (merestart courierimap) Berikutnya jalankan service courierimap # service courierimap start Untuk melihat apakah courierimap sudah berjalan atau belum gunakan perintah berikut. # chkconfig –list courierimap courierimap 0:off 1:off 2:on 3:on 4:on 5:on 6:off Disusun Oleh : Suyatno Budiharjo 31 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
Jika sudah terlihat seperti di atas, maka courierimap sudah berjalan. Atau dengan perintah berikut untuk melihat port imap dan pop3. # netstat –tapn tcp 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0.0.0.0:143 0.0.0.0:* LISTEN Jika terdapat baris seperti di atas, berarti port imap dan pop sudah berjalan. Port 143 digunakan untuk imap dan port 110 digunakan untuk pop3.
Webmail dengan Squirrelmail Untuk instalasi Webmail dengan Squirrelmail dapat dilakukan dengan perintah sebagai berikut : [root@ptik ~]# rpm ivh squirrelmail1.4.3a7.EL4.i386.rpm Dan baris berikut digunakan untuk mengecek apakah paket squirrelmail sudah diinstalasi atau belum. [root@ptik ~]# rpm qa | grep squirrelmail squirrelmail1.4.3a7.EL4 Untuk melakukan konfigurasi squirrelmail dengan perintah : # /usr/share/squirrelmail/config/conf.pl
sesuaikan setting squirrelmail dengan konfigurasi Server yang digunakan untuk mail server yaitu seting postfix dan imap yang digunakan. Atau konfigurasi Webmail Squirrelmail dapat dilakukan dengan mengedit file Disusun Oleh : Suyatno Budiharjo 32 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM config.conf pada direktori /etc/squirrelmail/config.conf berikut : [root@ptik ~]# vi /etc/squirrelmail/config.php Tampilan depan untuk Web mail server ptik, yang dapat diakses melalui alamat http://mail.ptik.ac.id sebagai berikut :
Jika dengan konfigurasi diatas, masih ada muncul pesan kesalahan pada frame sebelah kiri, seperti berikut : ERROR : Could not complete request. Query: CREATE "mail/Sent" Reason Given: Invalid mailbox name. Lakukan langkah berikut untuk memperbaikinya, edit file /etc/squirrelmail/config_local.php dan isikan baris berikut : $default_folder_prefix = 'INBOX.'; $trash_folder = 'Trash'; $sent_folder = 'Sent'; $draft_folder = 'Drafts';
Disusun Oleh : Suyatno Budiharjo 33 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
A.4. Web Server Untuk Instalasi Web Server dalam hal ini digunakan Apache sebagai Web Server yang terdapat pada paket httpd2.0.529.ent.i386.rpm. Untuk melakukan instalasi apache dapat dilakukan dengan baris perintah sebagai berikut : [root@ptik ~]# rpm ivh httpd2.0.529.ent.i386.rpm Untuk mengecek apakah paket Web Server sudah diinstal dilakukan dengan perintah : [root@ptik ~]# rpm qa | grep httpd httpd2.0.529.ent httpdsuexec2.0.529.ent systemconfighttpd1.3.11 httpdmanual2.0.529.ent Untuk melakukan konfigurasi pada Web Server maka perlu dilakukan perubahan pada httpd.conf. Untuk mengarahkan pada direktori program yang dibuat edit Direktori root pada httpd.conf tersebut. [root@ptik ~]# vi /etc/httpd/conf/httpd.conf DocumentRoot “/var/www/html” Directory <”/var/www/html”> Server yang dibuat harus mendukung untuk Web dengan PHP, sehingga diperlukan Disusun Oleh : Suyatno Budiharjo 34 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM Modulmodul PHP, agar dapat mengenali dan mengeksekusi script PHP. [root@ptik ~]# rpm qa | grep php phppear4.3.93.1 phpodbc4.3.93.1 php4.3.93.1 phpldap4.3.93.1 phpmysql4.3.93.1 Untuk menjalankan Web Server dapat digunakan baris perintah sebagai berikut : [root@ptik ~]# /etc/init.d/httpd start Dengan perintah diatas, berarti aplikasi ini telah membuka port 80, yang merupakan port yang digunakan untuk http. Untuk merefresh Web server setelah konfigurasi dapat dilakukan dengan perintah : [root@ptik ~]# /etc/rc.d/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] Untuk melakukan akses terhadap satu situs web, yang dalam hal ini adalah website ptik, dapat digunakan salah satu Web Browser yang ada, baik Opera, IE, Mozilla Firefox, Konquerror dan sebagainya.
Disusun Oleh : Suyatno Budiharjo 35 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM A.5. MySQL Server Database adalah cara yang baik untuk menyimpan informasi. Database dapat menyimpan daftar kontak pribadi, catatan finansial, ataupun daftar dari website favorit. Database dapat menyimpan sejumlah besar informasi yang bermanfaat dalam sebuah struktur logika yang mengijinkan untuk mendapatkan secara cepat dalam beberapa format yang didefinisikan oleh user. Database juga berperan dalam aplikasi web dengan menyimpan secara lengkap inventori dari produk dan layanan serta membuat hal ini dapat diakses melalui frontend yang diprogram dengan web. Database juga mempunyai kemampuan untuk menyediakan konten yang dinamis pada website. Banyak distribusi Linux yang mengimplementasikan PHP, MySQL, dan Apache sebagai kombinasi yang sempurna untuk memenuhi fitur konten web dinamis. Dalam bahasan ini, penulis menyediakan petunjuk untuk menyebarkan MySQL Database Server (http://www.mysql.com) dan juga merupakan langkah yang perlu dilakukan untuk mengkonfigurasikannya menggunakan tool administrasi berbasis Web (phpMyAdmin) ataupun WebMin untuk manajemen jarak jauh. Konfigurasi Awal Mengkonfigurasi Server tidaklah terlalu sulit tetapi satu hal yang perlu diingat adalah file konfigurasi utama ( /etc/my.cnf) berisi semua opsi global untuk server. Apapun yang didefinisikan disini akan mengatur konfigurasi mysql. Tergantung pada distro Linux yang digunakan, Server MySQL mungkin telah dikonfigurasikan dengan file konfigurasi minimal, dan siap untuk dijalankan, jika tidak maka perlu untuk membuat file konfigurasi sebelum server dijalankan. Proses instalasi dapat dilakukan dengan 2 cara, yaitu mode teks maupun mode grafis. Mode teks dilakukan dengan baris perintah sebagai berikut : [root@ptik ~]# rpm ivh mysql*.rpm Peintah diatas bertujuan untuk menginstal beberapa paket yang diawali dengan kata kunci mysql. Untuk melihat paketpaket mysql yang telah diinstal dapat menggunakan perintah sebagai berikut : [root@ptik ~]# rpm qa | grep mysql mysqlclient103.23.584.RHEL4.1 mysqlserver4.1.74.RHEL4.1 mysql4.1.74.RHEL4.1 mod_auth_mysql2.6.12.1 libdbidbdmysql0.6.510.RHEL4.1 mysqldevel4.1.74.RHEL4.1 Disusun Oleh : Suyatno Budiharjo 36 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM mysqlbench4.1.74.RHEL4.1 phpmysql4.3.93.1 Selanjutnya runlevel mysql perlu dikonfigurasikan dan dicek. Harus dipastikan bahwa runlevel bersesuaian dengan Apache jika menggunakan server MySQL sebagai backend situs web dinamis. [root@ptik ~]# chkconfig list mysqld mysqld 0:off 1:off 2:off 3:off 4:off 5:on 6:off [root@ptik ~]# chkconfig level 345 mysqld on [root@ptik ~]# chkconfig list mysqld mysqld 0:off 1:off 2:off 3:on 4:on 5:on 6:off Service dapat dijalankan dan dicek untuk error inisialisasi [root@ptik ~]# /etc/init.d/mysqld restart Stopping MySQL: [ OK ] Starting MySQL: [ OK ] [root@ptik ~]# tail /var/log/mysqld.log 060909 10:22:03 InnoDB: Starting shutdown... 060909 10:22:05 InnoDB: Shutdown completed; log sequence number 0 43644 060909 10:22:05 [Note] /usr/libexec/mysqld: Shutdown complete 060909 10:22:06 mysqld ended 060909 10:22:06 mysqld started 060909 10:22:07 InnoDB: Started; log sequence number 0 43644 /usr/libexec/mysqld: ready for connections. Version: '4.1.7' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distri bution
PhpMyAdmin Web Administrator Untuk melakukan instalasi phpMyAdmin dapat dilakukan dengan menggunakan paket tarball phpMyAdmin.xx.tar.gz. Copykan paket tarbal tersebut ke lokasi /usr/local/src/ [root@ptik ~]# cp phpMyAdmin.xx.tar.gz /usr/local/src/ [root@ptik ~]# cd /usr/local/src/ Selanjutnya ekstraksi file tarball tersebut dengan baris perintah sebagai berikut : [root@ptik src]# tar zxvf phpMyAdmin.xx.tar.gz [root@ptik src]# mkdir /var/ww/html/phpmyadmin Disusun Oleh : Suyatno Budiharjo 37 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM [root@ptik src]# cd phpmyadmin.xx/ [root@ptik src]# cp R * /var/ww/html/phpmyadmin/ Konfigurasikan config.conf.php pada phpmyadmin dengan seting yang ada pada konfigurasi server mysql : user, database, dan passwordnya [root@ptik ~]# vi /var/www/html/phpmyadmin/config.inc.php Mencoba untuk menggunakan http://www.ptik.ac.id/phpmyadmin
phpmyadmin,
ketik
alamat
Untuk mengkonfigurasi dan memelihara database mysql dapat juga menggunakan tool Webmin seperti berikut :
Disusun Oleh : Suyatno Budiharjo 38 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
A.6. Managemen User Untuk keperluan manajemen user, terdapat 2 user yang berbeda yang akan diatur dengan Manajemen User ini, yaitu : User Internet dan User Jaringan. Untuk pengaturan User Internet dilakukan pada konfigurasi Squid Proxy Server yang bertugas untuk mengatur sharing Internet. Sedangkan pengaturan User Jaringan digunakan paket aplikasi SAMBA. Paket Aplikasi samba dan pendukungnya, dapat dilihat dengan perintah sebagai berikut : [root@ptik ~]# rpm qa | grep samba systemconfigsamba1.2.211 samba3.0.101.4E sambaswat3.0.23b2 sambaclient3.0.101.4E sambacommon3.0.101.4E Untuk paket diatas kesemuanya telah tersedia didalam paket CD RHEL, hanya sedikit berbeda pada paket sambaswat, pada CD RHEL paket sambaswat yang digunakan adalah sambaswat3.0.101.4E.i386.rpm, sedangkan yang penulis gunakan saat ini adalah sambaswat3.0.23b2.i386.rpm. Hal ini terjadi karena paket yang tersedia tidak dapat digunakan, sehingga penulis mencari alternatif yang lain. Tentu akan bemasalah pada saat instalasi, karena sambaswat memerlukan dukungan samba yang sesuai, tetapi ini dapat diakali dengan proses instalasi sebagai berikut :
Disusun Oleh : Suyatno Budiharjo 39 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM [root@ptik ~]# rpm ivh /media/usbdisk/sambaswat3.0.23b2.i386.rpm –nodeps Aplikasi yang digunakan untuk manajemen user pada sistem operasi Windows sebagai File Server dan Primary Domain Controller (PDC) digunakan SAMBA dan NFS. Untuk menjalankan aplikasi SAMBA dapat dilakukan dengan cara sebagai berikut : [root@ptik suy]# /etc/init.d/smb restart Shutting down SMB services: [ OK ] Shutting down NMB services: [ OK ] Starting SMB services: [ OK ] Starting NMB services: [ OK ] Untuk menguji parameter di dalam konfigurasi samba, dapat dilakukan dengan baris perintah sebagai berikut : [root@ptik suy]# testparm /etc/samba/smb.conf Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[data]" Processing section "[project]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] server string = PTIK Samba Server security = SHARE null passwords = Yes password server = None guest account = nfsnobody log file = /var/log/samba/%m.log max log size = 50 socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192 os level = 65 domain master = Yes wins support = Yes default service = global idmap uid = 1677721633554431 idmap gid = 1677721633554431 winbind enum users = No Disusun Oleh : Suyatno Budiharjo 40 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM winbind enum groups = No comment = tes path = /home create mask = 0644 guest ok = Yes hosts allow = 192.168., 127.0.0.1 printer name = deskjet35001 [homes] comment = Home Directories valid users = %S [suy] comment = Global Share All Users path = /samba/shared create mask = 0666 directory mask = 0777 [project] path = /home [lagu] path = /home/sri/lagu Hasil konfigurasi samba diatas adalah :
Disusun Oleh : Suyatno Budiharjo 41 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
A.7. Web Administrator Untuk keperluan memelihara server RHEL4 berbasis web, dapat digunakan webmin, sehingga memudahkan dalam pekerjaan. Untuk instalasi Webmin dapat dilakukan dengan cara sebagai berikut : [root@ptik ~]# rpm ivh webmin1.2901.noarch.rpm Untuk menggunakan webmin dapat dilakukan dengan cara mengetikkan alamat http://www.ptik.ac.id:10000 dari Web Browser, seperti gambar berikut :
Disusun Oleh : Suyatno Budiharjo 42 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM B. PENGAMANAN DAN PENGAWASAN SERVER B.1. Pengamanan Server Sebagai upaya untuk melakukan pengamanan server dilakukan beberapa konfigurasi yang terkait yatu dengan : 1. Firewall Konfigurasi firewall di simpan dalam /etc/rc.local dan /etc/sysconfig/iptables. 2. Autentikasi User (Komputer, Jaringan, Internet) Konfigurasi user internet disimpan di dalam file /etc/squid/squid_users. 3. Jalur Komunikasi yang aman dengan Server SSH 4. Enkripsi (password, MD5, encrypt, dll) 5. Meminimalkan root Salah satu kebiasaan yang baik adalah meminimalkan penggunaan user root. Sebagaimana diketahui, bahwa root memiliki akses penuh terhadap semua aspek yang ada dalam server. Mengapa justru akses penuh root perlu dibatasi? Justru karena kemampuan root yang mempunyai hak penuh untuk menangani server, jika tidak hatihati penggunaan user root justru akan membawa bencana besar. Resiko besar tersebut diminimalisasi dengan tidak selalu menggunakan user root. User Admin sebagai User Administrator Sebagaimana disampaikan di atas, kita akan menggunakan user biasa untuk melakukan kegiatan yang tidak perlu dilakukan oleh root. Kita akan menggunakan user yang bernama admin. Karena itu sekarang kita buat user yang bernama admin : [root@ptik ~]# /usr/sbin/groupadd g 400 admin [root@ptik ~]# /usr/sbin/useradd u 400 g 400 admin Masukkan password untuk user admin dengan perintah berikut : [root@ptik ~]# passwd admin Changing password for user admin. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. User admin dirancang sebagai user yang dapat berubah menjadi root. Tidak boleh ada user yang lain yang bisa menjadi root dengan perintah su. Dengan cara ini, kemungkinan useruser lain mencoba menebak password root dapat dihilangkan. Caranya cukup mudah yaitu menambahkan user admin ke group yang bernama Disusun Oleh : Suyatno Budiharjo 43 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM wheel. [root@ptik ~]# /usr/sbin/usermod G wheel admin Kemudian kita dapat mengecek apakah user admin sudah masuk ke grup wheel atau belum : [root@ptik ~]# grep wheel /etc/group wheel:x:10:root,admin Bila admin sudah ada berarti user admin sudah masuk grup wheel. Cara lain untuk mengetesnya (dan yang paling mudah) adalah : [root@ptik ~]# id admin uid=400(admin) gid=400(admin) groups=400(admin),10(wheel) Pada respon diatas tampak bahwa admin sudah ada di grup wheel. Langkah berikutnya adalah melakukan konfigurasi PAM (Pluggable Authentication Module) untuk program su. PAM adalah sistem otentikasi yang digunakan di kebanyakan sistem Linux. Sistem ini mengatur bagaimana user dapat login atau dapat menjalankan program tertentu. Konfigurasi PAM untuk program su ada di dalam file /etc/pam.d/su. Silakan edit file tersebut dan tambahkan baris berikut (bila tidak ada) : auth sufficient /lib/security/$ISA/pam_wheel.so trust use_uid
B.2. Pengawasan Server Pengawasan Server dapat dilakukan dengan berbagai metode, yang meliputi pengawasan : 1. Sistem 2. Jaringan 3. Log 4. Apache 5. Email B.2.1. Pengawasan Sistem Yang dimaksud dengan pengawasan sistem adalah pengawasan terhadap prosesproses apa yang sedang berjalan di dalam server, penggunaan memori, tingkat load server dan penggunaan ruang harddisk. Kita perlu memeriksa hal tersebut agar tidak ada prosesproses yang mencurigakan atau memakan banyak tenaga server. Proses yang ada hanya proses yang kita ketahui bahwa proses tersebut memang dilakukan. Proses yang sedang berjalan di server dapat dilihat dengan menggunakan program ps, bila kita jalankan : [root@ptik ~]# ps Disusun Oleh : Suyatno Budiharjo 44 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM PID TTY TIME CMD 5771 pts/1 00:00:00 bash 5937 pts/1 00:00:00 ps Program ps akan menampilkan daftar proses yang jalan pada user yang aktif saat ini, dalam contoh diatas adalah menampilkan program bash pada user root. Pada kolom pertama ditampilkan nomor PID, diikuti nomor terminal pada kolom kedua, jumlah waktu pada kolom ketiga dan perintah yang dijalankan pada kolom keempat. Bila kita tampilkan flag auxw, maka akan muncul seperti berikut : USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.4 2188 480 ? S 08:48 0:00 init [5] root 2 0.0 0.0 0 0 ? SN 08:48 0:00 [ksoftirqd/0] root 3 0.0 0.0 0 0 ? S< 08:48 0:00 [events/0] root 4 0.0 0.0 0 0 ? S< 08:48 0:00 [khelper] Dari daftar diatas, maka dapat dilihat namanama program dicetak beserta argumennya. Namun untuk menghemat respon, argumen kadangkadang terpotong. Untuk memintas ps mencetak semua argumennya dengan lengkap, tambahkan flag w satu kali sehingga program ps kita panggil dengan ps auxww. Dengan cara ini semua argumen perintah akan dicetak lengkap sehingga memudahkan dalam pengawasan. Programprogram dengan kurung kotak biasanya merupakan program internal kernel. Yang perlu diketahui dari respon diatas adalah kolom %CPU, %MEM, dan status. Pada % CPU, ditampilkan jumlah waktu CPU saat program digunakan dibagi dengan waktu CPU program dijalankan. Semakin besar angka disitu berarti program tersebut memakan tenaga yang lebih besar. Demikian pula dengan %MEM yang menyatakan jumlah memori yang digunakan program. Pada kolom status menunjukkan status program saat ini. Untuk memantau jumlah pemakain memori, dapat digunakan perintah free seperti berikut : [root@ptik ~]# free total used free shared buffers cached Mem: 110100 108900 1200 0 1424 48052 /+ buffers/cache: 59424 50676 Swap: 1049816 118492 931324 Diatas dapat dilihat jumlah memori 128 MB dan Swap 1GB. Jumlah memori dalam kolom free hampir selalu bernilai kecil. Hal ini karena memori langsung dipakai. Disusun Oleh : Suyatno Budiharjo 45 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM Yang perlu diperhatikan bila jumlah memori swap sudah semakin banyak dipakai, maka server mengalami beban berat. Untuk dapat melihat kegiatan sistem secara langsung baik pemantauan proses dan memori, dapat digunakan perintah top, seperti berikut : [root@ptik ~]# top top 10:47:10 up 1:58, 2 users, load average: 0.13, 0.07, 0.08 Tasks: 120 total, 2 running, 118 sleeping, 0 stopped, 0 zombie Cpu(s): 2.3% us, 1.6% sy, 1.3% ni, 93.8% id, 1.0% wa, 0.0% hi, 0.0% si Mem: 110100k total, 108020k used, 2080k free, 1412k buffers Swap: 1049816k total, 118552k used, 931264k free, 47556k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3596 root 25 10 30208 5936 5072 R 2.0 5.4 0:49.58 rhnappletgui 3374 root 15 0 37956 6216 2936 S 1.6 5.6 2:19.98 X 3651 root 16 0 20052 5336 4780 S 0.3 4.8 0:09.04 clockapplet 5763 root 15 0 36496 8084 5668 S 0.3 7.3 0:05.20 gnometerminal 7402 root 17 0 2792 972 756 R 0.3 0.9 0:00.08 top Selanjutnya yang perlu dilakukan adalah seringsering memantau sisa ruangan dalam hard disk. Kita dapat menggunakan program df atau singkatan disk free sebagai berikut : [root@ptik ~]# df Filesystem 1Kblocks Used Available Use% Mounted on /dev/hdd6 13206340 1801388 10734108 15% / /dev/hdd1 88823 8459 75778 11% /boot none 55048 0 55048 0% /dev/shm /dev/hdd5 20158340 6183932 12950408 33% /home /dev/hdd2 5544200 2950920 2311648 57% /usr /dev/hda6 5423680 238244 4909924 5% /var /dev/sda1 127684 120410 7274 95% /media/usbdisk Harus dipastikan bahwa semua partisi tidak kehabisan ruangan. Bilai sudah hampir mencapai 90% harus dilakukan upaya antisipasi dengan menghapus filefile yang tidak perlu dan jika memungkinkan menambah harddisk baru. Untuk data diatas kebetualn terdapat pemakaian 95% tetapi hal ini tidak bermasalah karena /dev/sda1 diatas yang dimaksud adalah memori flash USB. B.2.2. Pengawasan Jaringan Beberapa hal yang perlu diperhatikan dalam pengawasan jaringan adalah Disusun Oleh : Suyatno Budiharjo 46 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM apakah layanan jaringan yang ada diserver benarbenar kita jalankan atau tidak. Kita harus memastikan bahwa kita sebagai Administrator memamng benarbenar mengetahui layanan apa saja yang dijalankan pada server. Bila suatu layanan jaringan terselenggara tanpa sepengetahuan kita, hampir dapat dipastikan ada penyusup atau user yang melakukan kegiatan yang berbahaya. Kita dapat melihat layanan apa saja yang dijalankan pada server ini dengan menggunakan program netstat. [root@ptik ~]# netstat l t p Active Internet connections (only servers) Proto RecvQ SendQ Local Address Foreign Address State PID/Program name tcp 0 0 *:1028 *:* LISTEN 2099/rpc.statd tcp 0 0 *:swat *:* LISTEN 2333/xinetd tcp 0 0 *:ldap *:* LISTEN 2230/slapd tcp 0 0 *:mysql *:* LISTEN 2373/mysqld tcp 0 0 *:netbiosssn *:* LISTEN 2592/smbd tcp 0 0 *:sunrpc *:* LISTEN 2079/portmap tcp 0 0 *:10000 *:* LISTEN 2931/perl tcp 0 0 localhost.localdomai:domain *:* LISTEN 2305/named tcp 0 0 *:telnet *:* LISTEN 2333/xinetd tcp 0 0 *:ipp *:* LISTEN 2265/cupsd tcp 0 0 *:squid *:* LISTEN 2527/(squid) tcp 0 0 *:smtp *:* LISTEN 2473/master tcp 0 0 localhost.localdomain:rndc *:* LISTEN 2305/named tcp 0 0 *:microsoftds *:* LISTEN 2592/smbd tcp 0 0 *:klogin *:* LISTEN 2333/xinetd tcp 0 0 *:ldap *:* LISTEN 2230/slapd tcp 0 0 *:pop3 *:* LISTEN 2422/couriertcpd tcp 0 0 *:imap *:* LISTEN 2415/couriertcpd tcp 0 0 *:http *:* LISTEN 2500/httpd tcp 0 0 *:ssh *:* LISTEN 2318/sshd tcp 0 0 *:https *:* LISTEN 2500/httpd Dari respon diatas, maka dapat dilihat beberapa layanan yang tidak kita perlukan seperti telnet dengan PID nomor 2333. Matikan saja programprogram yang tidak kita gunakan. Bilai Anda melihat layanan lain yang tidak anda kenal, segera matikan karena bisa saja itu merupakan backdoor atau pintu belakang tempat para crackers menjalankan aksinya. Disusun Oleh : Suyatno Budiharjo 47 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
B.2.3. Pengawasan Log Berbagai kejadian ditangkap dalam file log. Mulai dari daftar user yang login maupun catatan berbagai percobaan untuk masuk ke server. Anda dapat memantau beberapa file log penting di dalam direktori /var/log. Daftar log user yang berhasil login disimpan dalam /var/log/lastlog. Anda tidak dapat membaca file secara langsung. Anda pelu bantuan program bernama last. Untuk melihat login terakhir Anda bisa menuliskan perintah : [root@ptik ~]# last 6 root tty1 Thu Sep 7 09:12 10:02 (00:49) root pts/1 :0.0 Thu Sep 7 08:58 still logged in root :0 Thu Sep 7 08:53 still logged in reboot system boot 2.6.95.EL Thu Sep 7 08:52 (02:57) root :0 Thu Sep 7 06:43 crash (02:08) root pts/1 :0.0 Thu Sep 7 01:09 crash (07:43) wtmp begins Wed Sep 6 04:13:15 2006 Bila anda lihat ada login yang mencurigakan, misalkan Anda merasa belum pernah login dari IP tertentu, berarti login anda telah disalahgunakan. File log lain yang penting adalah /var/log/secure. File ini berisi catatan log ke server baik yang berhasil atau yang tidak berhasil. File ini juga mencatat kegiatan program yang berhubungan dengan account, misalnya log proses pembuatan, modifikasi dan penghapusan user. Untuk melihat isi dari file ini dapat dilakukan dengan : [root@ptik ~]# tail /var/log/secure Selanjutnya yang sudah pernah digunakan adalah log email di /var/log/mail atau /var/log/maillog.Disini dicatat semua kejadian yang berhubungan dengan server email. [root@ptik ~]# tail /var/log/maillog B.2.4. Pengawasan Web Server Apache Yang akan dipantau dari pengawasan Apache adalah status koneksi dan kapasitas Apache pada saat ia dijalankan. Anda bisa arahkan browser anda ke http://www.ptik.ac.id untuk melihat kondisi Apache sekarang. [root@ptik ~]# tail /etc/httpd/logs/access_log B.2.5. Pengawasan Email Anda dapat memantau kegiatan server email dengan menjalankan program Disusun Oleh : Suyatno Budiharjo 48 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM Webmin pada server mail seperti berikut :
Disusun Oleh : Suyatno Budiharjo 49 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM C. UTILITAS MAINTENANCE DATA
Utilitas dalam pemeliharaan data termasuk dalam rutinitas kegiatan pemeliharaan Server. Yang dalam hal ini dikerjakan pada pekerjaan A.5. Sedangkan kegiatan untuk migrasi data dari Microsoft Access ke MySQL, Ms. Excel ke MySQL dan Ms. Word ke MySQL dilakukan dalam kegiatan yang terkait dengan pembangunan SIMPADUPTIK. Hal ini karena kondisi existing (yang ada pada saat ini) terdapat datadata dalam format diatas, diharapkan dengan adanya utilitas ini masih memungkinkan untuk mengakses datadata tersebut, sehingga keterkaitan dan kesinambungan data masih terjaga dan dapat diakses melalui aplikasi SIMPADU PTIK ataupun aplikasi berbasis Web. C.1. Microsoft Access to MySQL Utilitas untuk melakukan konversi dari Microsoft Access ke MySQL dilakukan dengan cara mengekspor file format dba (Ms. Access) ke dalam format CSV, untuk selanjutnya diupload dengan menggunakan fungsi upload_csv.php. C.2. Microsoft Excel to MySQL Utilitas untuk melakukan konversi dari Microsoft Excel ke MySQL dilakuan dengan cara menyimpan format Ms. Excel tersebut ke dalam format CSV. Dan selanjutnya dibuat fungsi dengan PHP (upload_csv.php) untuk melakukan pembacaan file CSV dan hasilnya disimpan ke dalam database MySQL.
Untuk melakukan upload file csv menggunakan file PHP sebagai berikut : a. File upload_csv.php : untuk mengupload file ke server sekaligus dimasukkan ke dalam database. Dengan format tampilan seperti berikut :
Disusun Oleh : Suyatno Budiharjo 50 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
b. File baca_csv.php : untuk membaca file csv lokal dengan format tampilan sebagai berikut :
c. File readonly_csv.php : untuk membaca file csv yang ada diserver. File ini dijalankan dari link yang ada pada tabel daftar upload csv. C.3. Microsoft Word to MySQL Utilitas untuk melakukan manajemen file dengan format Microsoft Word ke dalam database adalah dengan cara memformat dokumen Ms. Word tersebut ke dalam format dokumen yang portabel (pdf). Untuk Selanjutnya diupload ke server dan disimpan ke dalam database. Pertimbangan digunakannya format pdf adalah bahwa dokumen yang digunakan adalah dokumen yang telah lalu yang tidak diperlukan perubahan (editing) dan agar ukuran file menjadi lebih kecil. Sehingga akan lebih hemat space memori. Untuk melakukan konversi dari Ms. Word ke dalam format pdf dapat dilakukan dengan menginstall Acrobat Reader 6. Atau jika menggunakan Open Office dapat langsung dikonversi ke dalam format pdf. Direkomendasikan bahwa user menggunakan Open Office sebagai salah satu cara secara bertahap untuk migrasi ke Linux, karena Open Office dapat diinstalasi di Sistem Operasi Windows maupun Linux. Untuk melakukan eksport ke pdf dari Open Office dengan cara klik toolbar yang diberi lingkaran merah seperti ditunjukkan pada gambar berikut : Disusun Oleh : Suyatno Budiharjo 51 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
C.4. Upload / Download Utilitas Upload / Download terkait dengan aplikasi SIMPADUPTIK yang dibangun. Biasanya utilitas ini dibangun dengan menggunakan PHP. Dalam hal ini utilitas upload dengan PHP yang dibuat adalah PHPupload.php. Hasil dari utilitas ini adalah selain file yang dikirim ke Server, juga database dari filefile yang telah diupload.
Sedangkan Utilitas Download dapat dilakukan dengan menggunakan fasilitas download manager dari Browser yaitu Klik kanan kemudian sorot menu Save Target As. C.5. Back up / Recovery Data Utilitas Backup Data dilakukan sebagai kegiatan rutin yang harus dilakukan meliputi : a. Backup Lokal b. Backup Remote c. Backup Database a. Backup Data Lokal Backup data lokal adalah menyimpan data yang diinginkan ke dalam lokasi yang ada dalam server yang sama. Untuk lokasi yang digunakan untuk Disusun Oleh : Suyatno Budiharjo 52 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM menyimpan backup dapat dibuatkan partisi tersendiri yang dimount pada lokasi /backup. Data yang akan dibackup adalah : 1. Direktori /home 2. Filefile dan direktori dalam direktori /etc: shadow, group, passwd, gshadow, skel, rc.local, ssh. 3. Filefile dan direktori dalam direktori /var: spool/cron Sebagai langkah persiapan adalah menyiapkan direktori target didalam direktori /backup. [root@ptik suy]# mkdir /backup [root@ptik suy]# cd /backup [root@ptik backup]# mkdir p etc home var files [root@ptik backup]# ls etc files home var Untuk selanjutnya dibuat script untuk melakukan penyalinan data ke dalam direktori backup. Pertama dibuat file yang berisi daftar file yang akan disalin dari direktori /etc: [root@ptik backup]# cd files [root@ptik files]# vi etc Isikan baribaris berikut ke dalam file etc : gshadow shadow group passwd skel rc.local ssh Selanjutnya dibuat daftar file yang akan disalin dari direktori /var: [root@ptik files]# vi var a. Backup Data Lokal Isikan baris berikut ke dalam file var: spool/cron Selanjutnya disiapkan script yang akan melakukan tugas yang sebenarnya : [root@ptik files]# mkdir /opt/scripts [root@ptik files]# cd /opt/scripts [root@ptik scripts]# vi backup.local Disusun Oleh : Suyatno Budiharjo 53 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM
Isikan barisbaris berikut ke dalam file backup.local #!/bin/bash for i in `cat /backup/files/etc`;do cp r /etc/$i /backup/etc;done for i in `cat /backup/files/var`;do cp r /var/$i /backup/var;done cd /home for i in `ls 1 –color=none /home`;do tar czf /backup/home/$i.tgz $i;done Setelah itu, diset script ini untuk dapat dijalankan dari shell: [root@ptik scripts]# chmod +x /opt/scripts/backup.local Dan selanjutnya dinyalakan script ini dari cron agar dapat dijalankan pada setiap waktu tertentu secara rutin. Misal dijalankan setiap hari pada pukul 00.00 [root@ptik scripts]# crontab e Editor vi akan dijalankan dan mulailah mengedit dengan menekan tombol i, dan tambahkan baris berikut pada crontab: 0 0 * * * /opt/scripts/backup.local keterangan : kolom 1 : menit diisi dengan angka 0 s.d 59 kolom 2 : jam diisi dengan angka 0 s.d 23 kolom 3 : tanggal diisi dengan angka 1 s.d 31 kolom 4 : bulan diisi dengan angka 1 s.d 12 kolom 5 : hari diisi dengan angka 1 s.d 7 kolom 6 : perintah diisi dengan perintah yang akan dijalankan Dengan konfigurasi ini, semua filefile yang terdaftar dalam file /backup/files/etc dan /backup/files/var akan disalin ke direktori /backup/etc dan /backup/var. Sementara itu untuk semua file di dalam direktori home akan dikompresi terlebih dahulu dan disimpan ke dalam direktori /backup/home. Untuk langsung menjalankan script diatas dapat diketik baris perintah berikut dan periksa hasilnya didalam direktori /backup [root@ptik scripts]# /opt/scripts/backup.local Tunggu hasilnya dalam beberapa saat. Bila ini direktori /home sudah cukup banyak tentunya prosesnya juga akan semakin lama. b. Backup Data Remote Bila terdapat beberapa server, maka diperlukan untuk melakukan backup data secara remote. Dengan adanya backup data remote, data dari satu server Disusun Oleh : Suyatno Budiharjo 54 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM dikirimkan ke server yang lain. Jadi data backup disimpan diserver khusus untuk backup misalnya. Keunggulan backup remote adalah bila terjadi sesuatu yang tidak diinginkan pada server, maka data sudah aman disimpan di server lain. Apalagi bila server khusus backup ini berasa di lokasi yang secara fisik jauh dari server asal. Namun demikian, backup jenis ini membutuhkan lebar pita jaringan yang besar pula. Koneksi internet yang kecil, dengan dialup misalnya, tidak cocok untuk menggunakan backup data secara remote. Dan tentunya pula bila menggunakan backup data remote, akan mempengaruhi billing pemakaian internet dan dikenakan biaya kelebihan penggunaan internet bila volume data yang dibackup melebihi jatah penggunaan internet (usage quota). Dalam hal ini dapat digunakan program rsync sebagai alat transfer dari satu server ke server lain. Program ini dipilih karena rsync dapat melakukan transfer data dengan kompresi, dapat menggunakan fasilitas tunnelling SSH, dan juga dapat melakukan incremental backup, artinya hanya filefile yang berubah saja yang disalin ke server backup. Baik server asal dan server backup membutuhkan program rsync dan SSH yang sudah terinstalasi dengan baik. Proses backup yang dilakukan akan secara otomatis dijalankan. Karena itu dibutuhkan proses backup yang tidak perlu ditunggui oleh Administrator. Perlu menggunakan metode public key pada SSH unruk melakukan proses transfer data. Jadi proses awal yang dilakukan adalah menyiapkan account khusus beserta public keynya. Pada server backup, dibuat user baru misalnya user baru bernama suy. User ini digunakan untuk menampung data backup dari server www.ptik.ac.id. [root@ptik scripts]# /usr/sbin/useradd suy Selanjutnya pada server www, disiapkan key public user root: [root@ptik scripts]# sshkeygen t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 04:1e:be:51:e4:05:6b:59:42:fb:70:b6:ee:13:ed:5a [email protected] Jangan lupa untuk tidak mengisikan passphrase apapun karena hendak melakukan otomasi secara total. Kemudian tutup hak akses .ssh kecuali untuk Disusun Oleh : Suyatno Budiharjo 55 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM root: [suy@ptik ~]$ chmod 700 .ssh [suy@ptik ~]$ chmod 600 .ssh/id_rsa* Kemudian salin file .ssh/id_rsa.pub ke direktori home suy di server backup: [suy@ptik ~]$ cd [suy@ptik ~]$ .ssh [suy@ptik ~]$ cat id_rsa.pub >> .ssh/authorized_keys [suy@ptik ~]$ rm f id_rsa.pub Jangan lupa untuk juga menutup hak akses direktori .ssh di server backup: [suy@ptik ~]$ chmod 700 .ssh [suy@ptik ~]$ chmod 600 .ssh/* Dari user root di server www, sekarang dicoba login ke server backup. Dalam kasus ini dicobakan pada server mail, sehingga koneksi dengan ssh seperti berikut [root@ptik suy]# ssh [email protected] Last login: Tue Oct 17 01:15:29 2006 from www.ptik.ac.id [suy@mail ~]$ Sekarang harus dapat dilakukan login sebagai user becham di server backup tanpa password. Bila terjadi belum dapat login dari user root di server www ke user suy di server mail, maka pasti ada suatu proses diatas yang kurang. Untuk itu, jangan lupa untuk melihat log sistem di /var/log/messages untuk melihat apakah ada pesan error tertentu. Dari contoh diatas, telah dapat melakukan koneksi dengan ssh dari root server www ke suy server mail. [root@ptik suy]# cd /opt/scripts/ [root@ptik scripts]# vi backup.remote Selanjutnya isikan barisbaris perintah sebagai berikut : #!/bin/bash rsync v z 5 a e ssh update delete /backup/etc [email protected]:/home/becham/etc rsync v z 5 a e ssh update delete /backup/var [email protected]:/home/becham/var rsync v z 5 a e ssh update delete /home [email protected]:/home/becham/home Perintah rsync diatas akan melakukan transfer data dengan menyimpan Disusun Oleh : Suyatno Budiharjo 56 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM informasi yang terkandung didalamnya. Maka jam dan tanggal modifikasi fail akan tersimpan. Link simbolik dan sebagainya secara rekursif (flag a), menggunakan transport SSH (flag e ssh), menghapus filefile yang sudah dihapus di verver asal (flag delete), tidak menimpa file yang baru (flag update), menggunakan kompresi tingkat 5 (flag z 5) dari direktori asal (/backup/etc, /backup/var dan /home) ke direktori tujuan (/home/becham/var, /home/becham/home) di server backup.ptik.ac.id di direktori home becham. Setelah itu set scripts ini agar dapat dijalankan daei shell: [root@ptik scripts]# chmod +x /opt/scripts/backup.remote Selanjutnya nyalakan scripts ini dari cron agar berjalan pada tiap jam 00.00 malam. [root@ptik scripts]# crontab e Editor vi akan dijalankan dan mulailah mengedit dengan menekan tombol i, dan tambahkan baris berikut pada crontab: 0 0 * * * /opt/scripts/backup.remote Untuk langsung menjalankan script diatas dapat diketik baris perintah berikut dan periksa hasilnya didalam direktori /backup [root@ptik scripts]# /opt/scripts/backup.remote Tunggu hasilnya dalam beberapa saat. Bila isi direktori /home anda sudah cukup besar tentunya prosesnya juga akan semakin lama dan lebih lama dari proses backup lokal. Hal ini karena data disimpan di server yang terpisah. Namun sekali dilakukan backup, maka proses backup selanjutnya tentu tidak selama backup yang pertama kali, karena rsync hanya akan mentransfer data yang berubah saja. c. Backup Database Membackup database harus dilakukan dengan benar. Pada MYSQL, kita boleh saja menyalin semua filefile database yang ada di server. Namun proses penyalinan ini tidak dijamin akan menyimpan semua data dengan benar. Apabila database di akses dan berubah isinya pada saat proses penyalinan berlangsung tentu hasil backup menjadi tidak konsisten. Untuk melakukan backup database MYSQL dapat digunakan perintah mysqldump yang sudah disediakan oleh MYSQL: [suy@ptik ~]$ mysqldump himakom adddroptable quotenames u root p > himakom.sql Enter password: Flag –adddroptable digunakan untuk menyisipkan perintah penghapusan tabel Disusun Oleh : Suyatno Budiharjo 57 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM bila tabel sudah ada. Setelah dihapus, tabel kemudian akan dibuat ulang. Flag – quotenames digunakan untuk melakukan escape pada namanama tabel dan nama field yang kebetulan adalah keyword bahasa SQL. Misalnya tanggal 22 Januari 2005, hendak melakukan backup database mysql dengan nama user root: [suy@ptik ~]$ mysqldump himakom adddroptable quotenames u root p > himakom20050122.sql Enter password: Hasil perintah diatas akan menghasilkan file bernama himakom20050122.sql di direktori home admin. Selanjutnya salin file ini ke tempat yang lebih aman. Untuk mengembalikan isi database dari backup dapat dilakukan : [suy@ptik ~]$ mysql mysql u root p < himakom20050122.sql Perintah di atas akan membaca file himakom20050122.sql dan memasukkan ke dalam database mysql. Bila terdapat koneksi ke server yang cepat dan stabil, maka dapat langsung melakukan backup diatas dan menyimpannya ke komputer yang lain. Untuk melakukan hal ini dapat digunakan fasilitas tunnelling pada server SSH. Jalankan perintah berikut dari komputer anda, bukan komputer server: [suy@ptik ~]$ (ssh www.ptik.ac.id mysqldump mysql –adddroptable –quote names u root p) > himakom20050122.sql Pertama yang akan ditanyakan adalah password SSH dan password root untuk MYSQL. Hasil perintah diatas adalah file himakom20050122.sql yang diletakkan di komputer anda (bukan di server). Bila perintah ini dilakukan dengan penggunan key publik ssh maka proses diatas dapat dilakukan secara otomatis. Misalnya root MYSQL diberi password “rahasia” maka bila perintah diatas hendak dilakukan secara otomatis, maka hanya perlu memasang key publik di server dan dilakukan perintah berikut : [suy@ptik ~]$ (ssh www.ptik.ac.id mysqldump mysql –adddroptable –quote names u root prahasia) > himakom20050122.sql Bila ingin membackup database tersebut langsung ke server MYSQL di komputer lokal dan bukan ke file, maka bisa mengganti perintah diatas dengan : [suy@ptik ~]$ (ssh www.ptik.ac.id mysqldump mysql –adddroptable –quote names u root prahasia) | mysql mysql uroot pinijugarahasia Perintah yang ada pada sebelum pipa (|) dijalankan diserver dan perintah selanjutnya dijalankan di komputer lokal. Secara default, SSH menggunakan kompresi pada saat membawa data dari Disusun Oleh : Suyatno Budiharjo 58 / 59
Modul : Management Server Guide Date : 01/03/07 Time : 02:32:14 AM komputer lokal ke server dan sebaliknya. Namun dapat juga digunakan kompresi yang lain sebagai alternatif. Misalnya Anda ingin menggunakan kompresi bzip2 agar proses transfer menjadi lebih cepat, untuk perintah diatas dapat Anda modifikasi menjadi : [suy@ptik ~]$ (ssh www.ptik.ac.id mysqldump mysql –adddroptable –quote names u root prahasia | bzip2 c) | bunzip2 c | mysql mysql uroot pinijugarahasia Proses restore juga dapat digunakan dengan metode tunnelling dengan membalikkan perintah diatas menjadi seperti berikut : [suy@ptik ~]$ mysqldump –adddroptable –quotenames mysql uroot pinijugarahasia | bzip2 c | ssh www.ptik.ac.id “bzip2 c | mysqldump mysql – adddroptable –quotenames u root prahasia”
Disusun Oleh : Suyatno Budiharjo 59 / 59