PERANCANGAN KEAMANAN DATABASE SERVER MYSQL BERBASIS SISTEM OPERASI OPEN SOURCE PADA PT. PLN P3B SUMATERA UPT PALEMBANG
Mustafa Fajar Saputra Jurusan Teknik Informatika STMIK PalComTech Palembang
Abstrak Kebutuhan akan keamanan informasi dari data-data yang terdapat pada database sangat diperlukan bagi perusahaan terutama pada PT PLN P3B Sumatera UPT Palembang. Penggunaaan database server MySQL pada PT PLN P3B Sumatera UPT Palembang, yang masih berada pada satu mesin dengan web server memungkinkan seluruh client bisa langsung mengakses ke mesin. Hal ini dapat membuka celah keamanan terhadap database server MySQL, karena telah diperolehnya secara mudah untuk bisa akses langsung ke mesin. Untuk alasan ini, usulan yang terbaik adalah memiliki web server dan database server pada mesin yang berbeda, serta melengkapi beberapa mekanisme pengamanan terhadap database server MySQL, antara lain dengan mekanisme packet filtering menggunakan IPTables, enkripsi transmisi data menggunakan SSL dan mekanisme user access limitation. Dengan dilakukannya pengoptimalan keamanan terhadap database server MySQL, maka akan meningkatkan keamanan informasi dari data-data yang terdapat pada database MySQL serta akan terhindar dari resiko terhadap pengaksesan oleh pihak yang tidak berwenang yang bisa merugikan perusahaan. Kata Kunci : MySQL, Keamanan Database Server, SSL, Packet Filtering
PENDAHULUAN Kemajuan teknologi informasi yang pesat serta potensi pemanfaatannya secara luas, haruslah dilengkapi dengan sistem keamanan yang memadai. Umumnya sistem keamanan lebih banyak terfokus pada antivirus dan keamanan jaringan, namun kurang memperhatikan kerawanan dan ancaman yang berbahaya pada database server. Database server dirancang sebagai media penyimpanan data-data yang mempuyai sifat rahasia dan hanya diperuntukkan kepada pihak-pihak internal organisasi. Oleh karena itu diperlukan sebuah mekanisme untuk melakukan pengamanan terhadap database server. Penggunaaan database server MySQL pada PT PLN P3B Sumatera UPT Palembang, yang masih berada pada satu mesin dengan web server memungkinkan seluruh client bisa langsung mengakses ke mesin. Hal ini dapat membuka celah keamanan terhadap database server MySQL, karena telah diperolehnya secara mudah untuk bisa akses langsung ke mesin. Untuk alasan ini, yang terbaik adalah memiliki web server dan database server pada mesin yang berbeda, serta mengoptimalkan keamanan database server MySQL dengan menggunakan mekanisme packet filtering antara network dan database server, hal tersebut dilakukan untuk membatasi server dengan IP address mana saja yang dapat melakukan koneksi terhadap database server. Lalu menggunakan mekanisme enkripsi transmisi data pada koneksi antara web server dan database server, hal tersebut dilakukan dengan menggunakan Secure Socket Layer antara web server dan database server. Kemudian menggunakan mekanisme user access limitation, yaitu dengan melakukan pembatasan hak akses dari user MySQL. Dalam penelitian ini masalah yang dibahas adalah bagaimana merancang keamanan database server MySQL berbasis sistem operasi open source pada PT PLN P3B Sumatera
1
UPT Palembang. Tujuan dari penelitian ini adalah membuat langkah-langkah pengamanan database server MySQL di PT PLN P3B Sumatera UPT Palembang, guna menjaga keamanan informasi dari database terhadap resiko penyalahgunaan informasi oleh pihak yang tidak berwenang. LANDASAN TEORI Linux Menurut Handaya dkk (2010:2), nama Linux sendiri diturunkan dari pencipta awalnya, Linus Torvalds, dari Universitas Helsinki, Finlandia yang sebetulnya mengacu pada kernel dari suatu sistem operasi, suatu penamaan yang bisa digunakan untuk mengacu kepada suatu kumpulan lengkap perangkat lunak yang bersama-sama dengan kenel menyusun suatu sistem operasi yang lengkap. Database Server Menurut Saputra (2011:3), database server merupakan mesin yang berisi database, termasuk tabel, procedure, dan trigger yang menangani manajemen data, keamanan, dan penanganan kesalahan. Database server bertugas melayani permintaan query database dari client. MySQL Menurut Saputra (2011:5), MySQL merupakan standar penggunan database di dunia untuk pengolahan data. MySQL adalah sebuah server database open source yang bekerja menggunakan SQL Language (Structure Query Language) umumnya digunakan bersama PHP untuk membuat aplikasi server yang dinamis dan powerful. Beberapa fitur yang dimiliki oleh MySQL antara lain : 1. MySQL termasuk RDBMS (Relationship Database Management System) yaitu jenis DBMS (Database Management System) yang mendukung adanya relationship atau hubungan antar tabel. 2. MySQL memiliki arsitektur client-server dimana server database MySQL terinstal di server dan client MySQL dapat berada di komputer yang sama dengan server atau dapat juga di komputer lain yang berkomunikasi dengan server melalui jaringan bahkan internet. 3. MySQL mendukung SQL standar. 4. MySQL mendukung sub select, views, store procedure, trigger, replication, transaksi, dan foreign key. 5. MySQL tersedia fungsi GIS. 6. MySQL bersifat free (bebas didownload) dan open source. 7. MySQL stabil, tangguh dan juga bersifat fleksibel dengan berbagai pemrograman. 8. Arsitektur yang sangat baik dengan pilihan berbagai storage engine, seperti MyISAM, InnoDB, MEMORY, BLACKHOLE, ARCHIVE dan lain-lain. 9. MySQL memiliki security yang baik dan mendapat dukungan dari banyak komunitas. Packet Filtering Kebijakan dalam mengevaluasi informasi dalam setiap aliran paket data dapat diterapkan pada operasi packet filtering. Seperti yang dikemukakan oleh Wahana Komputer (2005:314), bahwa packet filtering merupakan mekanisme pengotrolan data yang diperbolehkan mengalir dari jaringan external ke jaringan internal atau sebaliknya dengan mengunakan beberapa parameter seperti alamat asal dan tujuan, port asal dan tujuan, serta protokol transport. Salah satu tool dalam sistem operasi Linux yang berfungsi sebagai packet filtering antara lain adalah IPTables.
2
IPTables Salah satu aplikasi firewall yang digunakan pada sisitem operasi Linux adalah IPTables. Seperti yang dikemukakan oleh Handaya dkk (2010:331), bahwa IPTables merupakan suatu aplikasi dalam sistem operasi Linux yang berfungsi sebagai alat untuk melakukan filter terhadap lalu lintas data untuk mengamankan suatu jaringan. Firewall IPTables packet filtering memiliki tiga aturan (policy), yaitu: a. Input Mengatur paket data yang memasuki firewall dari arah intranet maupun internet. Kita bisa mengelola komputer mana saja yang bisa mengakses firewall dan yang lain tidak boleh. b. Output Mengatur paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya output tidak diset, karena bisa membatasi kemampuan firewall itu sendiri. c. Forward Mengatur paket data yang melintasi firewall dari arah internet ke intranet maupun sebaliknya. Policy forward paling banyak dipakai saat ini untuk mengatur koneksi internet berdasarkan port, mac address dan alamat IP. Selain aturan (policy), firewall IPTables juga mempunyai parameter yang disebut dengan target, yaitu status yang menentukkan koneksi di IPTables diizinkan lewat atau tidak. Target ada tiga macam yaitu: a. Accept Akses diterima dan diizinkan melewati firewall. b. Reject Akses ditolak, koneksi dari komputer klien yang melewati firewall langsung terputus, biasanya terdapat pesan Connection Refused. Reject target tidak menghabiskan bandwidth internet karena akses langsung ditolak, hal ini berbeda dengan drop. c. Drop Akses diterima, tetapi paket data langsung dibuang oleh kernel, sehingga pengguna tidak mengetahui kalau koneksinya dibatasi oleh firewall, pengguna melihat seakan-akan server yang dihubungi mengalami permasalahan teknis. Pada koneksi internet yang sibuk dengan trafik tinggi drop target sebaiknya jangan digunakan. Enkripsi Salah satu teknik keamanan data yang tidak kalah penting adalah enkripsi. Seperti yang dikemukakan oleh Wahana Komputer (2005:329), bahwa enkripsi merupkan sebuah sistem yang menciptakan dimana data-data yang dikirim menjadi bentuk yang tersandi. SSL Menurut Wahana Komputer (2005:333), SSL atau Secured Socket Layer adalah metode enkripsi yang dikembangkan oleh Netscape untuk memberikan keamanan di internet yang medukung beberapa protokol enkripsi dan memberikan autentikasi client dan server. SSL beroperasi pada transport layer dan menciptakan saluran enkripsi yang aman untuk data serta dapat mengenkripsi banyak tipe data, sehingga data rahasia atau penting bisa terkirim tanpa khawatir ada usaha perubahan ditengah jalan. SSL mendukung kriptografi public key, sehingga server dapat melakukan autentikasi dengan metode yang sudah dikenal umum seperti RSA dan DSS (Digital Signature Standard). Selain itu SSL dapat melakukan verifikasi integritas sesi yang sedang berjalan dengan menggunakan algoritma digest seperti MD5 dan SHA. Hal ini menghindarkan pembajakan suatu sesi.
3
Komponen–komponen yang ada pada implementasi Secure Socket Layer antara lain : a. CA (Certificate Authority) CA adalah sebuah entitas pada PKI (Public Key Infrastructure) yang berfungsi untuk melakukan legalisasi terhadap sertifikat SSL yang akan digunakan pada suatu organisasi. b. CSR (Certificate Signing Request) CSR adalah sebuah permintaan dengan format PKCS10 yang merupakan sebuah salinan dari certificate yang belum disahkan. Informasi yang terdapat pada sebuah CSR yaitu : 1. Informasi organisasi seperti nama organisasi, negara, propinsi, kota dan lain sebagainya. 2. Public key dari entitas yang akan menggunakan certificate tersebut seperti web server, email server, VPN dan lain sebagainya. HASIL DAN PEMBAHASAN 1. HASIL a. Analysis Dari hasil analisa penulis yang dilakukan dalam penelitian, didapatkan bahwa belum dioptimalkannya keamanan database server MySQL. Dimana database server MySQL masih berada pada satu mesin dengan web server, memungkinkan seluruh client bisa langsung mengakses ke mesin. Hal tersebut dapat membuka celah keamanan terhadap database server MySQL, karena bisa diperolehnya secara mudah untuk akses langsung ke mesin. Berikut ini gambaran topologi jaringan yang ada pada PT PLN P3B Sumatera UPT Palembang.
Gambar 1. Topologi Jaringan PT PLN P3B Sumatera UPT Palembang
4
b. Design Untuk mengoptimalkan keamanan pada database server penulis mengusulkan agar dilakukan pemisahan web server dengan database server sehingga database server berada pada satu mesin tersendiri, serta melengkapi beberapa mekanisme pengamanan terhadap database server MySQL, antara lain dengan menggunakan mekanisme packet filtering antara network dan database server, hal tersebut dilakukan untuk membatasi server dengan IP address mana saja yang dapat melakukan koneksi terhadap database server. Lalu menggunakan mekanisme enkripsi transmisi data pada koneksi antara web server dan database server, hal tersebut dilakukan dengan menggunakan Secure Socket Layer antara web server dan database server. Kemudian menggunakan mekanisme user access limitation, yaitu dengan melakukan pembatasan hak akses dari user MySQL. Sehingga arsitektur keamanan koneksi database akan terihat seperti gambar di bawah ini.
Gambar 2. Arsitektur Keamanan Koneksi Database Berikut ini adalah gambar topologi jaringan yang diusulkan. Penulis hanya menambahkan sebuah komputer server untuk database server MySQL, sehingga topologi jaringannya terlihat seperti pada gambar dibawah ini.
Gambar 3. Topologi Jaringan yang Diusulkan
5
2. PEMBAHASAN Pada komputer sever yang akan digunakan sebagai database server, OS yang penulis gunakan adalah Linux Ubuntu 11.04 LTS. Setelah selesai dilakukan instalasi OS Linux Ubuntu 11.04 LTS, dilanjutkan dengan dilakukan pengkonfigurasian IP Address, MySQL, SSL, dan IPTables. a. Konfigurasi IP Address Langkah awal yaitu dilakukan pendeteksian ethernet card dengan perintah ifconfig –a.. Lalu dilanjutkan dengan pengisian konfigurasi IP pada file /etc/network/interfaces. Lalu setelah hasil konfigurasi IP disimpan, kemudian dilakukan restart ethernet agar konfigurasi menjadi permanen dengan perintah /etc/init.d/networking restart. b. Konfigurasi MySQL 1) Terlebih dahulu yaitu dengan melakukan instalasi database MySQL dengan menjalankan perintah apt-get install mysql-server mysql-common. 2) Setelah terinstal kemudian dilanjutkan dengan dilakukan penghapusan akses user anonim terhadap MySQL server. Lalu perlu dilakukan pengubahan terhadap nama user database administrator yaitu root MySQL, sehingga menjadi nama user yang tidak mudah ditebak oleh pengguna, serta dilakukan juga perubahan terhadap password database administrator tersebut. Lalu dilakukan juga penghapusan tehadap database test. mysql> delete from db where user=''; Query OK, 2 rows affected (0.07 sec) mysql> delete from user where user=''; Query OK, 2 rows affected (0.00 sec) mysql> mysql> update user set user='uptplm' where user='root'; Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.08 sec) mysql> mysql> update user set password=PASSWORD('PLNp3bsUPTplg') where user='uptplm'; Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> mysql> drop database test; Query OK, 0 rows affected (0.39 sec) mysql> quit; Bye
Gambar 4. Konfigurasi Keaman pada Database MySQL c. Konfigurasi SLL 1) Pastikan OpenSSL telah terinstall dengan mengtik perintah dpkg -l | grep openssl. Jika sudah terinstall lalu aktifkan servis SSL support . 2) Pindah kedalam direktori /etc/mysql/ untuk membuat dan menyimpan SSL certificate, kemudian buat Certificate of Authority. Lalu Buat Certificate Signing Request untuk Server Certificate. Lakukan pengesahan CSR (Certificate Signing Request) dengan menggunakan
6
3) 4)
5)
6)
CA (Certificate of Authority) agar certificate tersebut dapat digunakan sebagai alat autentikasi. Aktifkan ssl-ca, ssl-cert, dan ssl-key dengan pada file /etc/mysql/my.cnf. Buat sertifikasi SSL untuk aplikasi client yaitu dengan membuat Certificate Signing Request. Lalu Lakukan pengesahan CSR client dengan mengunakan Certificate of Authority. Lalu kopikan file sertifikat SSL yang dibuat untuk client, yaitu ca-cert.pem, client-cert.pem, dan client-key.pem, ke komputer yang terinstall web server. Buat database yang akan digunakan oleh aplikasi dan buat user MySQL yang memiliki akses terbatas pada database tersebut yang dikhususkan mengunakan SSL untuk bisa mengakses database tersebut. lakukan tes koneksi ke MySQL server menggunakan user SSL, lalu lihat enkripsi SSL yang digunakan. root@dbserver:/etc/mysql# mysql --ssl-ca=ca-cert.pem -h 10.43.80.11 -u scada -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.1.63-0ubuntu0.11.04.1 (Ubuntu) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Gambar 5. Melakukan Koneksi ke MySQL Menggunakan SSL mysql> use korporat; Database changed mysql>\s -------------mysql Ver 14.14 Distrib 5.1.63, for debian-linux-gnu (i686) using readline 6.2 Connection id: Current database: Current user: SSL: Current pager: Using outfile: Using delimiter: Server version: Protocol version: Connection: Server characterset: Db characterset: Client characterset: Conn. characterset: TCP port: Uptime:
5 korporat
[email protected] Cipher in use is DHE-RSA-AES256-SHA stdout '' ; 5.1.63-0ubuntu0.11.04.1 (Ubuntu) 10 10.43.80.11 via TCP/IP latin1 latin1 latin1 latin1 3306 17 min 21 sec
Threads: 1 Questions: 115 Slow queries: 0 tables: 23 Queries per second avg: 0.110 --------------
Opens: 99
Flush tables: 1
Open
mysql>
Gambar 6. Melihat Enkripsi SSL yang Digunakan d. Konfigurasi IPTables Konfigurasi firewall IPTables dibuat bertujuan untuk memberikan izin koneksi hanya kepada komputer web server (10.43.80.12) dengan komputer database server (10.43.80.11),
7
sedangkan komputer-komputer lain tidak diizinkan untuk melakukan koneksi ke database server. Berikut langkah-langkah yang dilakukan. 1) Lakukan pengecekan apakah IPTables telah terinstal dengan menjalankan perintah dpkg -l | grep iptables. 2) Jika telah terinstal, maka buka file /etc/rc.local, lalu isikan pada file tersebut dengan konfigurasi IPTables seperti berikut. #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. iptables -A INPUT -p tcp -i eth0 -s 10.43.80.12 --sport 1024:65535 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp -o eth0 --sport 3306 -d 10.43.80.12 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -i eth0 -s 10.43.80.11 --sport 1024:65535 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp -o eth0 --sport 3306 -d 10.43.80.11 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -i eth0 -s 10.43.80.0/24 --sport 1024:65535 --dport 3306 -m state --state NEW,ESTABLISHED -j REJECT iptables -A OUTPUT -p tcp -o eth0 --sport 3306 -d 10.43.80.0/24 --dport 1024:65535 -m state --state ESTABLISHED -j REJECT iptables -A INPUT -p icmp -i eth0 -s 10.43.80.12 -j ACCEPT iptables -A INPUT -p icmp -i eth0 -s 10.43.80.0/24 -j DROP exit 0
Gambar 7. Mengisi File rc.local Dengan konfigurasi IPTables. Lalu simpan perubahan pada file tersebut, kemudian lakukan restart komputer dengan menjalankan perintah reboot. 3) Setelah itu, lakukan pengecekan status firewall dengan menjalankan perintah iptables -L –n –v, output seperti dibawah ini menunjukkan bahwa firewall dalam kondisi aktif.
8
root@dbserver:~# iptables -L -n -v Chain INPUT (policy ACCEPT 10 packets, 1773 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- eth0 * 10.43.80.12 0.0.0.0/0 tcp spts:1024:65535 dpt:3306 state NEW,ESTABLISHED 0 0 ACCEPT tcp -- eth0 * 10.43.80.11 0.0.0.0/0 tcp spts:1024:65535 dpt:3306 state NEW,ESTABLISHED 0 0 REJECT tcp -- eth0 * 10.43.80.0/24 0.0.0.0/0 tcp spts:1024:65535 dpt:3306 state NEW,ESTABLISHED reject-with icmp-portunreachable 0 0 ACCEPT icmp -- eth0 * 10.43.80.12 0.0.0.0/0 0 0 DROP icmp -- eth0 * 10.43.80.0/24 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source
destination
Chain OUTPUT (policy ACCEPT 11 packets, 1813 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * eth0 0.0.0.0/0 10.43.80.12 tcp spt:3306 dpts:1024:65535 state ESTABLISHED 0 0 ACCEPT tcp -- * eth0 0.0.0.0/0 10.43.80.11 tcp spt:3306 dpts:1024:65535 state ESTABLISHED 0 0 REJECT tcp -- * eth0 0.0.0.0/0 10.43.80.0/24 tcp spt:3306 dpts:1024:65535 state ESTABLISHED reject-with icmp-port-unreachable root@dbserver:~#
Gambar 8. Firewall Dalam Kondisi Aktif 4) Lalu simpan (back up) firewall rules dengan perintah iptables-save, agar kita dapat mengembalikan (restore) konfigurasi firewall tanpa harus merestart komputer. root@dbserver:~# iptables-save > /home/firewall.rules root@dbserver:~#
Gambar 9. Melakukan Back Up Terhadap IPTables e. Pengujian Hasil Konfigurasi 1) Dilakukan uji koneksi dengan melakukan ping dari beberapa client terhadap database server (10.43.80.11), berikut ini hasil yang didapatkan.
Gambar 10. Ping Dari Client 10.43.80.1/24
9
Gambar 11. Ping Dari Client 10.43.80.23/24
Gambar 12. Ping Dari Komputer 10.43.80.12/24 Dari hasil diatas terlihat bahwa hanya komputer dengan IP Address 10.43.80.12 yang bisa melakukan koneksi ke komputer database server, sedangkan akses dari komputer lain tidak bisa. 2) Uji keamanan transmisi data antara web server dengan database server dilakukan dengan penginputan user, password dan database pada halaman web Untuk menangkap data yang
10
ditransmisikan dipergunakan aplikasi Wireshark. Lalu dibuat perbandingan antar transmisi data mengunakan SSL dan transmisi data tanpa SSL berikut hasil yang didapat.
Gambar 13. Menjalankan Wireshark
Gambar 14. Menginputkan Data Dengan Mengunakan Koneksi Tanpa SSL
11
Gambar 15. Data yang Tertangkap Wireshark Saat Ditransminsikan Tanpa Mengunakan SSL Pada hasil diatas yang tertangkap adalah user dan database, karena password pada saat pembuatan di database MySQL menggunakan enkripsi, maka data password yang didapat dalam keadaan teracak. Selanjutnya akan berbeda jika mempergunkan koneksi transmisi dengan SSL, hasil yang didapat seperti berikut.
Gambar 16. Menginputkan Data Dengan Mengunakan Koneksi SSL
12
Gambar 17. Data yang Tertangkap Wireshark Dalam Keadaan Terenkripsi Setelah dilakukan uji keamanan transmisi data diatas, terlihat bahwa dengan menggunakan SSL, berarti kita menggunakan jalur transmisi data yang terenkripsi, artinya seluruh data tidak akan dapat terbaca apabila tertangkap saat ditransmisikan, kecuali jika telah sampai pada komputer tujuan yang berhak, karena komputer tersebut memiliki kunci untuk mendekripsikan data yang terenkripsi tersebut. Hal ini menjadikan keamanan transmisi data menjadi optimal. PENUTUP Berdasarkan hasil penelitian yang telah dilakukan, penulis dapat menarik kesimpulan bahwa dengan melakukan pemisahan database server MySQL dengan web server, dapat mengurangi beban kerja dari mesin server, sehingga kinerja mesin menjadi lebih optimal, karena database server MySQL berada pada satu mesin tersendiri, akan membuat mesin server berfokus hanya pada fungsinya sendiri. Dengan dilakukan pemisahan, dan dibuatnya mekanisme packet filtering, dimana hanya komputer web server yang bisa mengakses database server MySQL, sedangkan client yang lain tidak diizinkan terkoneksi langsung ke database MySQL, dan dilakukan juga pembatasan hak akses user MySQL, akan menyulitkan penggunaan database MySQL oleh orang yang tidak berhak. Penggunaan SSL dalam transmisi data akan membuat seluruh data yang dikirim menjadi terenkripsi, sehingga bila data tersebut sampai kepada client yang tidak berhak, maka data tidak dapat terbaca oleh client tersebut. DAFTAR PUSTAKA Elcom. 2012. Computer Networking. Yogyakarta: CV Andi Offset. Handaya, Wilfridus Bambang Triadi dkk. 2010. Linux Sistem Administrator. Bandung: Infotmatika. Koswara, Eko. 2012. Jurus Kilat Mahir Ubuntu. Bekasi: Dunia Komputer. Kusnadi dkk. 2008. Sistem Operasi. Yogyakarta: CV Andi Offset.
13
Kustanto dan Daniel T. Saputro. 2008. Membangun Server Internet dengan Mikrotik OS. Yogyakarta: Gava Media. Saputra, Agus. 2011. Panduan Praktis Menguasai Database Server MySQL. Jakarta: PT Elex Media Komputindo. Sugeng, Winarno. 2010. Jaringan Komputer dengan TCP/IP. Bandung: Modula. Sukmaaji, Anjik dan Rianto. 2008. Jaringan Komputer: Konsep Dasar Pengembangan Jaringan dan Keamanan Jaringan. Yogyakarta: CV Andi Offset. Wahana Komputer. 2005. Panduan Lengkap Pengembangan Jaringan Linux. Yogyakarta: CV Andi Offset. Yugianto, Gin-Gin dan Oscar Rachman. 2012. Router: Teknologi, Konsep, Konfigurasi, dan Troubleshooting. Bandung: Informatika. Stiawan, Deris. 2009. Fundamental Internetworking Development and Design Life Cycle, (online), (http://deris.unsri.ac.id/materi/jarkom/network_development_ cycles.pdf, diakses tanggal 5 November 2012).
14