Chapter.00 – Case Introduction Misalkan kita di rumah mempunyai sumber koneksi internet dari sebuah ISP dengan spesifikasi network sebagai berikut : IP Address : 10.10.101.169/24 Gateway : 10.10.101.1 DNS ISP : 203.6.148.2 Dan kita ingin membuat sebuah router dengan tambahan DNS Server di dalamnya dan sebuah web server dengan detail seperti gambar dibawah ini
10.10.101.1/24
eth0:10.10.101.169/24
eth1:192.168.1.1/24
192.168.1.2/24
eth0:192.168.1.3/24
Dari data topologi di atas dapat diambil keterangan jaringan network lokal/internal adalah 192.168.1.0/24
Chapter.01 – Simple Gateway (NAT) Untuk menjalankan sebuah mesin Debian sebagai gateway, minimal membutuhkan 2 buah network card, satu untuk mengkoneksikan mesin dengan internet, biasanya diberi identitas external interface (kita gunakan eth0 dalam pelatihan ini) dan satu lagi digunakan sebagai interface gateway untuk jaringan lokal/internal (eth1). Sehingga yang pertama kita lakukan adalah menyetting ip pada masing-masing interaface. # vi /etc/network/interfaces
Mulai Debian Squeeze kita tidak dapat menggunakan perintah /etc/init.d/networking restart karena sedang mengalami isuue/masalah (lihat http://bugs.debian.org/cgibin/bugreport.cgi?bug=550240), sehingga kita perlu mengecek juga pada file nameserver secara manual pada /etc/resolv.conf. Cek apakah ip apakah sudah terpasang dengan perintah ifconfig. Jika sudah terpasang, cek koneksitas ke internet dengan perintah ping # vi /etc/resolv.conf nameserver 203.6.148.2 # ping google.com
dan isinya seperti berikut : allow-hotplug eth0 iface eth0 inet static address 10.10.101.169 netmask 255.255.255.0 network 10.10.101.0 broadcast 10.10.101.255 gateway 10.10.101.1 dns-nameservers 203.6.148.2 dns-search puskom.it allow-hotplug eth1 iface eth1 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 Tutup dan simpan, kemudian kita jalankan perintah berikut agar ip yang kita setting terpasang # ifdown eth0 eth1 # ifup eth0 eth1
Kita telah berhasil mengkoneksikan mesin router kita dengan internet (jika tidak ada masalah ), lakukan ping juga ke ip 192.168.1.1 untuk memastikan tidak ada masalah pada interface lokal/internal. Agar mesin Debian dapat bertindak sebagai gateway kita perlu mengaktifkan fitur ip_forward dan mengeset rules rute paket dengan iptables, jadi kita perlu mengerti dasar-dasar iptables. Dalam iptables, rules disimpan dalam table-table yang berbeda, defaultnya adalah filter, yang bertanggungjawab pada INPUT, OUTPUT and FORWARD chains, masing-masing digunakan untuk incoming, outgoing dan redirected traffic. Tabel lainnya yaitu mangle, nat dan raw, kita juga bisa membuat tabel custom sendiri atau menghapusnya. Untuk melihat isi tabel nat gunakan perintah berikut : # iptables –L –t nat atau # iptables --list --table nat Seperti yang kita lihat di atas, default policy pada instalasi default Debian adalah ACCEPT all traffic dan tidak ada rules pada semua chain. Kita tambahkan cukup 1 rule masquerade agar network lokal kita dapat terkoneksi dengan internet
# iptables MASQUERADE
-t
nat
-A
POSTROUTING
-o
eth0
-j
Chapter.02 – Domain Name System (DNS) Server Mempunyai mesin DNS pada jaringan kita memungkinkan kita untuk mengganti alamat ip pada mesin-mesin server kita dengan nama, seperti 192.168.1.1 dinamai router.puskom.it, atau mesin web server dengan ip 192.168.1.3 kita namai www.puskom.it
Jangan lupa aktifkan paket ip_forward dengan perintah ini # echo 1 > /proc/sys/net/ipv4/ip_forward Sekarang kita setting ip address pada sisi client, sebagai contoh seperti pada gambar berikut
Akibatnya, kita dapat mempunyai beberapa nama pada mesin yang sama dengan layanan yang berbeda, sebagai contoh www.puskom.it, sat.puskom.it dan blog.puskom.it dapat menunjukkan dimana server web utama Puskom, situs SAT (Self Access Terminal) Puskom dan web blog Puskom berada, dengan domain puskom.it. Sangat mudah untuk diingat bahwa kenyataannya ketiga situs tersebut berjalan pada mesin yang sama yaitu pada ip 192.168.1.3 Bayangkan jika seorang administrator memutuskan untuk memindahkan server mail dari yang lama yang baru, administrator hanya butuh mengubah konfigurasi pada DNS Server. Terminologi BIND
Lakukan ping ke google, jika berhasil, berarti sukses . Langkah terakhir adalah kita simpan perintah-perintah yang telah lakukan agar nantinya jika mesin melakukan reboot, perintah tersebut akan diload dan dijalankan, buka file rc.local # vi /etc/rc.local Dan tambahkan baris perintah berikut tepat diatas exit0 ifdown eth0 eth1 ifup eth0 eth1 iptables -t nat -A POSTROUTING -o MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward
eth0
-j
Definisi Berkeley Internet Name Domain, saat ini dikelola oleh Internet Systems Consortium (ISC) http://www.isc.org TLD Top Level Domain, lihat RFC2606 Forward DNS Memetakan dari hostname ke ip address Reverse DNS Memetakan dari ip address ke hostname Resolver Proses sistem di mana sebuah mesin menquery server name untuk information zone Origin Mengacu pada domain yang tercakup dalam zona file tertentu Root zone Awal hirarki zona internet. Semua zona berada di bawah root zone, mirip dengan bagaimana semua file dalam sistem file jatuh di bawah direktori root. Zone Domain individu, subdomain, atau bagian dari DNS yang dikelola oleh otoritas yang sama.
Contoh sebuah zone : . adalah root zone org. adalah Top Level Domain (TLD) di bawah the root zone example.org. adalah zone di bawah org. TLD
1.168.192.in-addr.arpa adalah zone referensi semua alamat ip yang berada di bawah network 192.168.1.0 Kita akan menggunakan BIND versi 9 dalam pembuatan DNS Server, untuk menginstalnya, gunakan perintah # apt-get install bind9 bind9-doc Kita deklarasikan zona forward and reverse # cd /etc/bind # vi named.conf.local zone "puskom.it" { type master; file "/etc/bind/puskom"; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/puskom.rev"; }; Setelah dideklarasikan, kita buat masing-masing filenya. # cp db.local puskom && cp db.127 puskom.rev Buka dengan editor dan isi file puskom sesuai dengan domain kita # vi puskom ; ; Forward DNS for puskom.it ;
$ORIGIN puskom.it. $TTL 604800 @ IN SOA
ns.puskom.it. root.puskom.it. ( 2013110201 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL
; @ @ ;
IN IN IN
NS A AAAA
ns.puskom.it. 192.168.1.3 ::1
rt router ns blog sat
IN IN IN IN IN
A A A A A
192.168.1.1 192.168.1.1 192.168.1.1 192.168.1.3 192.168.1.3
CNAME CNAME CNAME
puskom.it. blog.puskom.it. sat.puskom.it.
www IN www.blog IN www.sat IN
Lakukan hal yang sama dengan puskom.rev # vi puskom.rev ; ; Reverse DNS for 1.168.192.in-addr.arpa ; $ORIGIN 1.168.192.in-addr.arpa. $TTL 604800 @ IN SOA ns.puskom.it. root.puskom.it( 2013110201 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.puskom.it. 1 IN PTR ns.puskom.it. 1 IN PTR rt.puskom.it 1 IN PTR router.puskom.it 3 IN PTR www.puskom.it 3 IN PTR blog.puskom.it 3 IN PTR sat.puskom.it
Istilah yang biasanya ada di DNS record SOA Awal dari sebuah zone authority NS Sebuah authoritative name server A Sebuah alamat host CNAME Canonical name untuk sebuah alias MX Mail Exchanger PTR Sebuah domain name pointer (digunakan di reverse)
Buang tanda // pada baris berikut dan tambahkan ip address DNS Server ISP kita (uplink). forwarders { 203.6.148.2; }; Kita restart service bind kita agar me-load konfigurasi baru
Untuk memastikan tidak ada error pada konfigurasi zone yang telah kita buat, kita gunakan tool yang telah disediakan dnsutils
# service bind9 restart [ ok ] Starting domain name service...: bind9.
# named-checkzone puskom.it /etc/bind/puskom OK # named-checkzone 1.168.192.in-addr.arpa /etc/bind/puskom.rev OK
Sekarang ganti ip nameserver pada mesin router dan client kita dengan ip dns yang telah kita setting (pada tutorial ini menggunakan 192.168.1.1)
Cek juga konfigurasi named-nya, dengan perintah # named-checkconf named.conf.local
# vi /etc/network/interfaces dns-nameservers 192.168.1.1 dns-search puskom.it # vi /etc/resolv.conf search puskom.it nameserver 192.168.1.1
Jika tidak ada pesan apapun, berarti tidak ada masalah. Sekarang apa lagi?
Lakukan testing terhadap zone yang telah kita buat baik forward maupun reverse dengan tool nslookup atau dig, contohnya seperti di bawah ini.
Dengan langkah yang telah kita lakukan, jika client menggunakannya sebagai mesin DNS Server, maka client belum dapat terkoneksi dengan internet, karena DNS kita hanyalah DNS lokal, lalu bagaimana agar client dapat terkoneksi dengan internet dengan memakai DNS Server yang kita buat?
# nslookup router.puskom.it Server : 192.168.1.1 Address : 192.168.1.1#53
Kita perlu mengaktifkan fitur forwarders, dimana DNS Server kita akan memanfaatkan cache DNS Server uplink ( DNS-nya ISP kita) sehingga akan mempercepat proses resolv dan mengurangi DNS traffic di internet secara keseluruhan. # vi named.conf.options
Name : router.puskom.it Address : 192.168.1.1 Kita tinggal sebutkan hostname yang ingin kita cari, atau jika reverse tinggal kita ketikkan ip addressnya # nslookup 192.168.1.3 Server : 192.168.1.1
Address : 192.168.1.1#53 3.1.168.192.in-addr.arpa name = sat.puskom.it. 1.168.192.in-addr.arpa 3.1.168.192.in-a dd r.arpa name = www.puskom.it. 1.168.192.inaddr.arpa 1.168.192.in-addr.arpa name = blog.puskom.it. 1.168.192.in-addr.arpa Lakukan hal serupa pada sisi client, tes juga koneksi ke internet baik di router maupun di client # ping google.com
Chapter.04 – Apache Web Server Pada sesi DNS Server, kita telah mendaftarkan 3 alamat pada ip yang sama yaitu 192.168.1.3, dimana alamat tersebut adalah sat.puskom.it, blog.puskom.it dan puskom.it itu sendiri, nantinya akan berada di web server yang akan kita buat. Untuk menampung 3 alamat kita membutuhkan konfigurasi VirtualHost yang ada pada web server, tepatnya kita akan menggunakan Name-based VirtualHost, karena kita membedakannya berdasarkan nama hostnya (cek http://httpd.apache.org/docs/2.2/vhosts/). Sekarang kita install dulu apache-nya # apt-get install apache2 Setelah selesai instalasi, buka browser dan ketikkan ‘puskom.it’, seharusnya tampil seperti ini
Itu berarti apache sudah jalan, atau kita bisa mengeceknya dengan perintah ps atau top. Sekarang kita lakukan konfigurasi untuk halaman default atau halaman utama dengan alamat puskom.it atau www.puskom.it # cd /etc/apache2/sites-available # vi default
ServerName puskom.it ServerAlias www.puskom.it ServerAdmin [email protected] DocumentRoot /var/www Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined
Untuk alamat blog.puskom.it, kita copy file default dan mengganti namanya dengan blog # cp default blog # vi blog
ServerName blog.puskom.it ServerAlias www.blog.puskom.it ServerAdmin [email protected] DocumentRoot /var/www/blog Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined
Lakukan hal yang sama dengan sat.puskom.it, jika sudah, kita buat direktori untuk blog dan sat, lalu aktifkan VirtualHost baru kita
# mkdir /var/www/blog && mkdir /var/www/sat # a2ensite blog sat # service apache2 reload Jika sudah aktif, kita akan melihat link 2 file tersebut pada direktori sitesenabled, kita lihat dengan perintah ls # ls –l ../sites-enabled/ Kita isi blog dengan halaman index untuk membedakan ketiga alamat tersebut dengan meng-copy file index.html ke masing-masing direktori VirtualHost. # cp /var/www/index.html /var/www/blog # cp /var/www/index.html /var/www/sat Ganti judul masing-masing halaman diantara
dan
agar terlihat perbedaan masing-masing situs, lakukan hal berikut pada blog dan sat. # vi /var/www/blog/index.html
Blog Puskom UNS
This is the default web page for this server.
The web server software is running but no content has been added, yet.
# vi /var/www/sat/index.html
SAT Puskom UNS
This is the default web page for this server.
The web server software is running but no content has been added, yet.
Coba lihat di browser dengan mengetikkan ketiga alamat (blog.puskom.it, sat.puskom.it, www.puskom.it atau puskom.it) yang telah kita buat pada tab yang berbeda. Kita akan install wordpress pada situs blog.puskom.it, sehingga kita perlu interpreter (penerjemah bahasa) php dan MySQL sebagai database blog # apt-get install php5 php5-mysql mysql-server Saaat dimintai password saat instalasi mysql-server, ketikkan ‘root’ (sebenarnya sembarang, tapi pada latihan ini kita gunakan itu), dan kita coba lihat apakah php-nya sudah jalan atau belum dengan membuat file berekstensi php (misalkan kita taruh pada situs sat.puskom.it # vi /var/www/sat/test.php Kita akses melalui browser dengan mengetikkan ‘sat.puskom.it/test.php’, maka akan tampil seperti pada gambar di bawah ini
# mv wordpress blog # chown root:root –Rf blog # cd blog # cp wp-config-sample.php wp-config.php # vi wp-config.php // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'wordpress' ); /** MySQL database username */ define( 'DB_USER', 'root' ); /** MySQL database password */ define( 'DB_PASSWORD', 'root' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' ); Sekarang buka blog.puskom.it pada browser, seharusnya akan muncul halaman instalasi wordpress. Selanjutnya tinggal ikuti langkah instalasi wordpressnya hingga selesai.
Sekarang kita buat databasenya # mysql –u root –p mysql> create database wordpress; mysql> exit; Setelah buat database-nya, kini kita download dan install wordpress di direktori blog # # # #
cd /var/www/ rm –Rf blog wget http://wordpress.org/latest.tar.gz tar –zxvf latest.tar.gz
Sekedar tambahan, untuk memudahkan kita dalam mengelola database MySQL, gunakan tool phpMyAdmin, sehingga tidak perlu khawatir jika belum bisa menggunakan perintah-perintah di MySQL, perhatikan langkahlangkah instalasinya dengan seksama (agar tidak salah )
# apt-get install phpmyadmin
Tim Modul Penyusun : Akbar Ibnu Sholla (
[email protected]) Auditor : Dwi Nurhadi A. (
[email protected])
Lisensi Biasanya kita akan menjumpai 3 kali permintaan password, yang pertama dan kedua masukkan password root MySQL, dan yang ketiga biasanya password untuk masuk ke phpMyAdmin (biasanya kalau menggunakan dbconfig-common)
Dokumen ini di bawah lisensi Creative Commons AttributionNonCommercial-ShareAlike 3.0 Unported License. http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_US
Useful Links Kita dapat meng-custom alamat phpmyadmin seperti halnya VirtualHost pada umumnya di /etc/phpmyadmin/apache2.conf, atau mengedit koneksi ke MySQL pada file /etc/phpmyadmin/config-db.php. Jika dibiarkan default, untuk mengaksesnya gunakan alamat ‘puskom.it/phpmyadmin/’ dan masukkan username dan password seperti yang telah kita masukkan saat instalasi Sekian.
https://wiki.debian.org/ http://www.server-world.info/en/note?os=Debian_7.0 http://www.cyberciti.biz/ http://www.howtoforge.com/