FUNDAMENTAL LINUX SERVER ADMINISTRATOR

dokumen-dokumen yang mirip
BAB 2 PROSES BOOTING

LAPORAN PRAKTIKUM SISTEM OPERASI

PANDUAN INSTALASI LINUX FEDORA CORE 6

Panduan Installasi Fedora 16 (Verne)

[DUALBOOT MS. WINDOWS XP & GNU/LINUX DEBIAN CODENAME SQUEEZE] August 28, 2013 DUAL BOOT WINDOWS XP DENGAN DEBIAN 6

A. Tujuan. B. Alat dan Bahan 1. Komputer multimedia. 2. Software Sistem Operasi Linux Ubuntu.

1 Pengertian Sistem File

Bab 1 Instalasi Sistem Operasi DEPDIKnux

LAPORAN AWAL Perangkat Lunak Jaringan 1 NAMA : DIAN BAYU NIM : KELAS : C

Instalasi IGOS Nusantara

JURNAL PRAKTIKUM SISTEM OPERASI 2012/2013. NAMA : Adysta Galang Iman A. S NIM : ASISTEN : Rahman Dattebayo KELAS : H2 BAB Ke- : 1

Modul 5 Menginstal Linux Mandrake 9.2. I. Tujuan Praktikan dapat menginstal sistem operasi Linux Mandrake 9.2

KARTU SOAL. Kurikulum Acuan Alokasi Waktu Jumlah Soal Bentuk Soal. Nama Sekolah Bidang Keahlian Program Keahlian. : SMKN I Doko : TIK : TKJ

INSTALASI SISTEM OPERASI LINUX DEBIAN

Pilih Local CDROM karena proses instalasi a. Seting boot Priority yang pertama adalah CD/DVD Room pada BIOS

LANGKAH LANGKAH INSTALASI LINUX DEBIAN 4 BERBASIS GUI

LAPORAN INSTALASI SISTEM OPERASI DEBIAN 6. pada VIRTUAL BOX

LANGKAH LANGKAH INSTALASI LINUX DEBIAN BERBASIS GUI

CentOS Linux Installation for Dummies

BAB 2 INSTALASI DEBIAN ETCH

INSTALASI LINUX SuSE 9.1

Tutorial Instalasi SUSE LINUX ENTERPRISE SERVER 11

Instalasi Linux Redhat 7.0

LANKAH INSTALLASI LINUX REDHAT 9

MODUL 1 INSTALASI LINUX NUSANTARA

Modul 1 INSTALL DEBIAN 6 (SQUEEZE) MODE TEXT (CLI) PADA VIRTUALBOX

LANGKAH LANGKAH INSTALASI LINUX REDHAT

3.1 Cara install Ubuntu Server 12.04

LAPORAN PRAKTIKUM INSTALASI JARINGAN KOMPUTER INSTALASI LINUX

Instalasi Ubuntu Server

Instalasi FreeBSD 6.0

SPESIFIKASI YANG DISARANKAN Processor Pentium 133 Pentium 166 RAM 128 MB 256 MB Harddisk 2 GB dengan space bebas minimal 1 GB SPESFIKASI MINIMUM

Contoh yang digunakan untuk membuat tulisan ini adalah pemasangan OS Mandriva Linux Free yang berasal dari majalah Info Linux.

Panduan Instalasi. 1.Pendahuluan

Instalasi System Operasi Linux Ubuntu

Instalasi Debian 7. Oleh: Rizky Agung W

1. Pendahuluan. 2. Memulai Instalasi

Cara Menginstal Ubuntu dan Windows 7 dalam Satu Komputer - Dual Boot Mode

DUAL BOOT. Windows 7 Professional dan Debian 7.5 Weezy

Jurusan : TEKNIK KOMPUTER DAN JARINGAN SMK NASIONAL MALANG JOB SHEET ADMINISTRASI SERVER. Revisi : 00

Cara Menginstall Ubuntu Dekstop bit Lewat Virtualbox

BAB II PROSES INSTALASI LINUX MANDRAKE 9.0

Merupakan software yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna. Mempunyai karakteristik:

Melakukan Instalasi Microsoft Windows XP Professional. Untuk Kalangan Sendiri

Kami telah melakukan instalasi pada /dev/sda dan akan menambahkan /dev/sdb sebagai bagian dari RAID 1.

MODUL 2 INSTALLASI DAN PENGENALAN OS UBUNTU (LINUX)

INSTALASI DAN PENGENALAN OS UBUNTU (LINUX) NAMA : ALFIAN STAMBUK : F KELAS : D

PANDUAN INSTALASI UBUNTU 8.04

Pengantar Hardware: Partisi dan Format Harddisk. Hanif Fakhrurroja, MT

Installasi Linux SuSE 10.1 Basis Text

Distribusi Linux Modern dan PC Tua By Richard Johnson

TUTORIAL PENGGUNAAN VIRTUAL BOX & VMWARE

MODUL INSTALasi WINDOWS XP

INSTALASI SLACKWARE 14.1

A. Instalasi dasar Linux Debian

agakbab13. Tentang Installasi

5. Instalasi dan Format Harddisk IDE, RAID IDE, dan SCSI

Instalasi Linux (Debian 3.0 Woody)

Tutorial instalasi Ubuntu Desktop 13.10

LAPORAN PRAKTEK SISTEM OPERASI JARINGAN KOMPUTER

Konfigurasi Desktop BAB 2

Lampiran D Rancang Bangun Microsoft Windows Server 2003 Enterprise Edition

Sistem Operasi Jaringan Linux Redhat 9

MENGINSTAL BACKTRACK DI VIRTUALBOX WIN7

Pengantar Hardware: Konfigurasi BIOS. Hanif Fakhrurroja, MT

Assalammualaikum Warahmatullahi Wabarakatuh,

Awali.org & Awali.or.id

I. Tujuan - Agar siswa dapat memahami dan melakukan Instalasi OS Debian dengan benar dan tepat dengan menggunakan mesin VM Virtual Box

Masukkan CD/DVD yang sudah diburn dengan ubuntu lalu lakukan booting sampai keluar tampilan pada slide dibawah ini.

JURNAL PRAKTIKUM JARINGAN KOMPUTER 2012/2013. NAMA : Aulia Fadli Ersan NIM : ASISTEN : Swarna Restu Fadilah KELAS : G2 BAB Ke- : 1

Install Slackware 13.0

Menginstall Windows 8 Final

MODUL TRAINING INSTALASI UBUNTU LUCID LYNX DISELENGGARAKAN OLEH : FKIP INTERNET CENTER AND OPEN SOURCE UNIVERSITAS SEBELAS MARET.

LANGKAH LANGKAH INSTALASI LINUX REDHAT

Pengantar Open Source dan Aplikasi Instalasi Linux dan Troubleshooting Dasar. Rusmanto at gmail.com Rusmanto at nurulfikri.ac.id

Instalasi Aplikasi server Menggunakan ClarkConnect

Ini adalah instalasi Windows 7 dari awal pada laptop atau komputer.

Installasi Linux SuSE 9.3 Basis Text

Menginstall server dengan CD Server Installation

Langkah Instalasi Debian 4.0 Etch

Panduan Installasi Linux Ubuntu Desktop LTS (Lucid Lynx)

Resume. Pelatihan Membuat PC Router Menggunakan ClearOS. Diajukan Untuk Memenuhi Salah Satu Tugas Mata Kuliah. Lab. Hardware

Praktikum 9 POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI: 1 FILE PERANGKAT KERAS. Manajemen Perangkat Keras

PROSES INSTALASI LINUX DISTRO UBUNTU 11.10

Tuturial Dual Boot Windows - Linux. Nama : Muhammad Fikry Hazmi NRP :

OpenSuse juga termasuk dalam jajaran 10 besar distro linux di dunia bersama-sama dengan Ubuntu, Fedora, Debian, PCLinuxOS, Slackware, Gentoo dan

LAMPIRAN. : Bagaimana pendapat anda dengan sistem baru ini?

TUGAS AOK BAB OS. Jalankan aplikasi virtualbox terlebih dahulu.

PRAKTUKTIM SISTEM OPERASI I MODUL 1. INSTALASI SISTEM OPERASI MICROSOFT WINDOWS XP

Cara Mudah Mengatasi Masalah Windows Cannot be Installed to the Disk. The Selected Disk is of the GPT Partition

Tutorial Dual Boot Windows 7 dan Linux Ubuntu Menggunakan VirtualBox

Yama Fresdian Dwi Saputro from-engineer.blogspot.com

TUGAS PRAKTIKUM Ke-2 DOSEN PEMBIMBING ASISTEN LAB. 1. Langkah membuat bootable flashdisk Ubuntu menggunakan Aplikasi Rufus

Lampiran 1. Gambar 1.1 Welcome screen instalasi Fedora 8 (Warewolf)

Melakukan instalasi sistem operasi Dasar Dasar Kompetensi Kejuruan Kelas X Semester 1

JURNAL PRAKTIKUM JARINGAN KOMPUTER

LAPORAN PRAKTIKUM INSTALLASI DEBIAN 8.1 MENGGUNAKAN VMWARE

Instalasi Linux Ubuntu Server 7.10

- Lampiran Installasi dan konfigurasi komputer client

d. Pilih partisi atau hard disk untuk menginstall windows Xp. setelah itu tekan enter untuk melanjutkan, tekan tombol C untuk membuat partisi baru

Transkripsi:

FUNDAMENTAL LINUX SERVER ADMINISTRATOR [FLSA] Comlabs Training 2014 Dwiharyanto Imas Nurzanah Siti Toyyibah Zuffa Kamila Nur Azizah 0

PENDAHULUAN Sebelum kita menggunakan Linux CentOS, ada baiknya kita mengenal terlebih dahulu apa itu linux CentOS. Di bawah ini merupakan penjelasan singkat mengenal apa itu linux CentOS yang dikutip dari http://www.centos-id.com : CentOS alias Community ENTerprise Operating System adalah sebuah distro Linux yang diturunkan dari RHEL (Red Hat Enterprise Linux). CentOS dibuat oleh North American Enterprise Linux. Namun berbeda dengan turunan Linux lainnya, CentOS merupakan copian dari RHEL 99% Mengapa? Karena CentOS hanya membuang label RH dan diganti dengan label generic. Jadi isi dari program CentOS sama dengan RHEL. Drivers yang jalan RHEL otomatis jalan juga di CentOS. Meskipun keberadaan CentOS sangat tergantung pada Red Hat namun hal ini justru memberikan nilai tambah, karena RH merupakan satu-satunya distro Linux yang didukung oleh CPanel (Cpanel adalah kontrol panel terbanyak dipakai oleh perusahaan hosting, hampir 100% hosting menggunakan CPanel). Karena merupakan copian RHEL maka CentOS juga di dukung secara resmi oleh CPanel. Contoh kasus CentOS menggantikan RHEL 100%. Bayangkan situasi umumnya berikut ini: A. Perusahaan ingin memakai Linux untuk menghemat biaya IT Anda seorang IT Perusahaan ingin menekan biaya pembelian software, solusingya anda mengerti Windows server/desktop ke Linux, BSD atau Solaris Pilihan utama jatuh di Linux karena mudah, tersedia secara luas, bukunya banyak, komunitas tersebar, sudah banyak aplikasi yang serupa dengan windows Saat server anda dating, maka drivers yang umumnya disediakan hanya Linux distro: 1

RHEL dan SLE (Suse Linux Enterprise), bahkan kebanyakan hanya menyediakan drivers untuk RHEL Solusinya Cuma 1: pakai CentOS maka otomatis semua RHEL dapat anda pakai B. Perusahaan Hosting ingin memakai CPanel Anda kali ini bukan IT, tetapi seseorang calon pengusaha hosting Setelah melihat berbagai hosting yang sudah ada maka 99% memakai CPanel Anda memutuskan untuk mencoba CPanel Distro Ubuntu maupun suse bahkan fedora yang dikuasai oleh orang IT anda ternyata tidak didukung oleh CPanel Orang IT anda mencoba instalasi CPanel pada Ubuntu, Suse dan Fedora. Saat mulai instalasi muncul warning bahwa OS tidak didukung resmi. Orang IT anda tetap melanjutkan instalasi Setelah server beroperasi, muncul complain dari user mengenai fitur yang tidak jalan semestinya, orang IT anda berusaha menghubungi pihak CPanel dan di jawab bahwa resiko sendiri menggunakan OS yang tidak di dukung CPanel dan disarankan menghubungi forum. Masuk ke forum, dan ternyata tidak ada yang menggunakan distro selain RHEL, CentOS dan FreeBSD Anda berusaha mencari perusahaan IT yang menyediakan jasa ini, ternyata tidak ada yang berani menjamin 100% alternatif lain menghubungi pembuat distro tapi harga servicenya mahal sekali Akhirnya anda memutuskan untuk memakai CentOS dan segala masalah otomatis terselesaikan KELEBIHAN DAN KEKURANGAN CentOS Ini adalah pertanyaan yang sering ditanyakan calon pemakai CentOS. Tetapi sayangnya banyak yang tidak bisa memberikan jawaban yang jujur. Umumnya orang bilang semua Linux sama saja, tergantung pada kehebatan penguasaan administrator. Jawaban ini jelas salah! Mengapa salah? Karena siapapun pasti tidak akan menerima jawaban ini dan 2

segera melakukan pencarian yang lebih dalam di Google maupun tanya serta baca sana sini bukan? Baiklah akan kami tulis secara jujur kelebihan dan kekurangan CentOS KELEBIHAN CentOS sangat kompatibel dengan RH KEKURANGAN Tergantung pada distro RH. Karena itu CentOS selalu keluar setelah RH Merupakan OS freeware yang sangat handal untuk skala Enterprise Kata enterprise membuat pemula takut dan memilih Fedora Merupakan satu-satu nya OS Freeware yang didukung resmi oleh CPanel Penampilan website CentOS yang kurang menarik (CentOS Indonesia sedang menupayakan untuk mengupdate website CentOS.org agara tampil menarik) Drivers RHEL dapat dipakai oleh CentOS karena isi CentOS adalah RHEL Kurangnya dikumentasi mengenai CentOS secara khusus Karena CentOS di bangun berdasarkan RHEL maka segala kelebihan dan kekurangan RHEL juga menjadi bagian CentOS Red Hat Enterprise Linux (RHEL), merupakan distro linux yang paling tangguh untuk dijadikan server dibandingkan distro-distro linux yang lainnya. Selain tangguh, RHEL juga banyak didukung oleh banyak vendor hardware dan software. Sehingga dengan semua nilai tambah tersebut menjadikan RHEL sebuah OS yang sangat mumpuni untuk dijadikan server. 3

Akan tetapi, perlu diketahui bahwasanya RHEL merupakan OS yang bersifat komersil. Berbeda halnya dengan kebanyakan distro linux, seperti debian, fedora, ubuntu, dll, kita tidak bisa mendownload lalu menggunakan RHEL secara cuma-cuma. Melainkan, harus membeli layaknya OS Windows. Oleh karena itu, disinilah CentOS datang sebagai solusi. Menggunakan CentOS hampir sama dengan menggunakan RHEL, dengan keuntungan lainnya yaitu Gratis. Jadi jika kita ingin menggunakan OS yang tangguh untuk dijadikan server (yang bisa juga digunakan untuk skala enterprise) akan tetapi tidak ingin mengeluarkan biaya yang tinggi CentOS merupakan pilihan yang tepat. Belum lagi karena CentOS adalah Linux, sehingga kita dapat lebih leluasa untuk bereksperimen didalamnya. Dan dalam modul kali ini secara garis besar akan dibagi atas dua bagian yaitu, instalasi dan konfigurasi server. Untuk konfigurasi server, akan dijelaskan mengenai DNS server, web server, mail server, ftp server, serta proxy server. 4

BAB 1 HARDWARE DAN INSTALASI SUBAB MATERI KOMPABILITAS HARDWARE CPU dan Memori Alat Perlengkapan Instalasi CentOS Konfigurasi Perangkat Keras dan Filesystems Software RAID dan LVM Konfigurasi Keamanan : Firewalls dan SELinux Konfigurasi Pasca-Instalasi Mengecheck Kembali Konfigurasi Instalasi Key Terms CPU Hostname Harddisk Instalasi Kdump Memory Partisi Sistem Operasi 5

Dalam proses menginstal suatu Sistem Operasi, ada beberapa hal yang perlu diperhatikan. Salah satunya adalah syarat spesifikasi minimal dan maksimal dari perangkat keras yang akan diinstal Sistem Operasi tersebut. Hal ini sangat penting karena dapat menunjang keberhasilan proses instalasi. Hal-hal yang harus diperhatikan antara lain sebagai berikut: CPU dan Memory Untuk penginstalasian CentOS ini apabila diterapkan di sistem operasi berbasis 32-bit maksimal logical CPUs nya adalah 32 dengan maksimal memori nya 16 GB. Sedangkan untuk system operasi berbasis 64 bit maksimal logical CPUs nya adalah 64/4096 dengan maksimal memorinya 3TB/64TB. x86 ia64 x86_64 Maximum 32 n/a 64/4096 Logical CPUs Maximum 16GB n/a 3TB/64TB Memory Table 1. Maximum Requirement Sedangkan syarat untuk menginstal CentOS 6.5 ini secara keseluruhan adalah seperti pada gambar di bawah ini. 6

Alat dan Perlengkapan Sebelum melakukan proses installasi, persiapkan terlebih dahulu perlengkapan apa saja yang diperlukan untuk menginstall CentOS 6.5 ini, antara lain: Pertama, siapkan installer linux sesuai kebutuhan. Dalam modul ini distribusi linux yang digunakan adalah CentOS 6.5 32 bit. Terakhir, perlengkapan yang perlu disiapkan adalah PC sesuai dengan standar minimum yang telah ditentukan untuk menginstall CentOS 6.5. Instalasi CentOS 6.5 Setelah tahap persiapan selesai dilakukan, selanjutnya masuk ke tahap penginstalasian. Tahap-tahap yang dilakukan adalah sebagai berikut: 1. Langkah pertama, masukkan DVD CentOS 6.5 ke DVD drive, restart komputer, Masuk BIOS dan setting CD/DVD ROM sebagai boot sequence pertama, atau bila ada pilihan untuk boot dari media lain (seperti F10 pada board intel, Kunci ESC/F8 pada board asus ) itu lebih baik. Catatan: Motherboard menyediakan fasilitas pilihan boot dengan cara yang berbeda-beda. Biasanya cara yang digunakan adalah dengan menekan tombol F2 atau F10 ataupun tombol Delete. Setelah Boot Sequence dari PC sudah diatur, tampilan pertama dari CentOS akan tampak seperti gambar berikut : 7

Catatan: Install or upgrade an existing system. Opsi ini dipilih ketika menginginkan untuk menginstall sistem operasi ataupun memperbarui sistem operasi dengan versi terbaru. Install system with basic video driver. Opsi ini dipilih ketika menginginkan untuk menginstal sistem operasi baru dari awal. Rescue installed system. Opsi ini dipilih ketika menginginkan untuk menyelamatkan sebuah Linux OS yang sudah terinstall, hal ini sangat berguna ketikas OS yang sudah terinstall rusak atau tidak dapat booting. Boot from local drive. Opsi ini dipilih ketika menginginkan untuk langsung boot dari drive lokal, tanpa membatalkan instalasi OS. Memory test. Opsi ini dipilih ketika menginginkan untuk melakukan test pada memori sebelum proses installasi. Karena ini merupakan proses installasi, pilih opsi Install or upgrade an existing system kemudian tekan Enter. 8

2. Selanjutnya akan muncul tampilan yang menunjukan bahwa DVD installer CentOS terdeteksi. Tersedia dua pilihan yaitu OK dan Skip. Jika menginginkan untuk memeriksa CD installer apakah dalam keadaan baik atau tidak, pilih OK. Jika sudah yakin DVD installer dalam keadaan baik dan siap digunakan, pilih Skip. Catatan: Untuk berpindah antar opsi di atas, tekan tombol tab. Tombol space digunakan untuk memilih salah satu opsi di atas. Sedangkan tombol F12 digunakan untuk berpindah ke halaman selanjutnya dan melewati pertanyaan pada halaman di atas. 3. Selanjutnya akan muncul tampilan seperti di bawah ini. Ketika tampilan berikut muncul, klik untuk memilih Next. 9

4. Selanjutnya akan muncul halaman instalasi dengan tampilan seperti gambar berikut ini. Tampilan ini merupakan tampilan untuk memilih bahasa yang akan digunakan selama proses instalasi hingga installasi selesai. Pemilihan bahasa ini juga membantu memudahkan pengguna (user) untuk menggunakannya. Secara default bahasa yang akan terpilih adala English (bahasa Inggris). 10

Untuk pemilihan bahasa lain, tekan tombol atas untuk scroll up, dan bawah untuk scroll down. Dan tombol tab untuk berpindah dari satu opsi ke opsi lain. Apabila bahasa yang akan digunakan sudah dipilih, pilih Next. 5. Halaman selanjutnya adalah tahap pemilihan layout keyboard yang akan digunakan. Pilih layout keyboard sesuai dengan jenis keyboard yang digunakan. Secara default layout keyboard yang dipilih adalah US English. Kemudian pilih Next. 11

6. Kemudian akan muncul halaman proses installasi selanjutnya. Tampilan ini merupakan tampilan untuk memilih media penyimpanan. Terdapat dua pilihan yaitu Basic Storage Devices dan Specialized Storage Devices Pilih Basic Storage Devices dengan mengklik pada button nya kemudian pilih Next untuk masuk ke tahap instalasi selanjutnya. Catatan: Basic Storage Devices opsi ini tidak berlaku untuk sistem Z. 12

Specialized Storage Devices opsi ini untuk meginstall Red Hat Enterprise Linux pada perangkat pernyimpanan berikut : - Direct Access Storage Devices (DASD) - Perangkat multipath seperti FCP-Attachable SCSI LUN dengan beberapa jalur - Jaringan area penyimpanan (SAN) seperti Luns SCSI FCP-Attachable dengan jalur tunggal - Opsi khusus Storage Device untuk mengkonfigurasi Small Computer System Interface (iscsi) conenctions. - Opsi system z FCoE (Fibre Channel over Ethernet) tidak dapat digunakan, karena opsi ini diarsir. 7. Kemudian tahap instalasi selanjutnya akan muncul tampilan pada gambar berikut ini. Tampilan ini merupakan notifikasi atau pemberitahuan tentang media penyimpanan yang telah dilakukan pada tahap instalasi sebelumnya. Pada tahap berikut ini pilih Yes, discard any data. Opsi ini dipilih untuk mengizinkan untuk mendeteksi file atau data (partisi) agar perangkat (device) dapat mengenalinya. 13

8. Selanjutnya adalah tahap penginstalasian untuk memberikan nama hostname. 1) Untuk pemberian nama hostname, inputkan hostname yang anda akan digunakan. Setelah hostname diinputkan apabila hendak melakukkan konfigurasi network ikuti langkah di nomor 2. Sedangkan apabila hendak melakukan konfigurasi network setelah instalasi selesai, untuk melewati tahap tersebut pilih Next untuk melanjutkan tahap instalasi selanjutnya. 2) Configure Network, opsi ini digunakan untuk mengkonfigurasi network di tahap awal yaitu ketika tahap instalasi dilaksanakan. Ketika setelah mengklik ganda pada tab Configure network akan tampil jendela seperti berikut ini: 14

Pilih Add untuk menambahkan konfigurasi network. Selanjutnya, akan muncul pilihan dari jenis koneksi yang akan dibuat. Jika menggunakan jaringan kabel pilih Wired kemudian klik create. Pada tahap selanjutnya, pilih IPv4 Settings dengan metode Manual untuk mengkonfigurasi IP secara manual. Kemudian pilih Add dan isikan Address, Netmask, dan Gateway sesuai dengan yang dikehendaki. 15

Setelah selesai mengkonfigurasi, klik Apply. Kemudian pilih Next untuk melanjutkan tahap instalasi selanjutnya. 9. Tahap instalasi selanjutnya adalah konfigurasi zona waktu yang sesuai. Pilih daerah yang sesuai dengan daerah di mana CentOS tersebut diinstal. Pada modul ini, kota yang dipilih adalah Asia/Jakarta. 16

Catatan: Ceklis System clock uses UTC. Jika opsi ini dipilih, maka waktu pada PC yang diinstal akan berdasarkan Universal Time Coordinated (UTC) yang merupakan basis waktu dunia yang legal. 10. Tahap selanjutnya yaitu memberikan root password pada sistem. Root berada pada kedudukan tertinggi dalam hirarki file sistem Linux, sehingga dapat dipastikan user yang bisa mengakses Root akan memiliki akses penuh terhadap 17

sistem Linux tersebut. Oleh sebab itu, kita harus memastikan hanya user tertentu saja yang boleh mengakses root ini. Disinilah fungsi root password, yaitu menjaga agar sistem hanya dapat diakses sepenuhnya oleh user yang mengetahui root password ini. Agar lebih aman, gunakan password yang bukan dari kata seharihari, seperti nama, kata kerja, dll. Memiliki karakter yang panjang dan terdiri dari gabungan angka dan huruf serta dikarenakan linux itu case sensitive, maka huruf kapital dan non kapital akan dibedakan, walaupun kata dari password tepat, tetapi ada perbedaan dari huruf kapital atau non kapital, maka akses tidak akan diloloskan. Jika sudah memiliki password yang tepat, cukup isikan pada kolom : Root Password: Untuk memastikan tidak ada kesalahan dalam pengetikan password, masukan kembali password pada : Confirm : 11. Tahap selanjutnya adalah menentukan bagaimana dan dimana system CentOS akan diinstal. 18

Catatan: Use All Space opsi ini dipilih jika ingin menghapus semua partisi yang ada diharddisk dan menggantinya dengan partisi Linux CentOS 6.5. Replace Existing Linux System(s) opsi ini hanya menghapus semua partisi linux yang ada di harddisk tapi tidak menghapus partisi dari OS lain, misalnya FAT dan NTFS Windows. Shrink Current System opsi ini untuk menyusutkan partisi yang ada, untuk memberi ruang kosong bagi partisi Linux CentOS 6.5. Use Free Space opsi ini menggunakan ruang kosong yang belum terpartisi untuk partisi Linux CentOS 6.5. Hal ini diasumsikan bahwa harddisk memiliki free space yang cukup untuk instalasi Linux CentOS 6.5. Create Custom Layout opsi ini membuat partisi secara manual menggunakan tools partisi yang tersedia di Linux CentOS 6.5. 19

Ceklis Review and modify partitioning layout untuk melihat atau mengubah layout partisi yang telah dibuat. Jika sudah memilih tipe instalasi yang dinginkan, klik Next untuk melanjutkan tahap instalasi selanjutnya. 12. Pada halaman selanjutnya akan muncul tampilan seperti gambar di bawah. Gambar di bawah menandakan belum adanya partisi di dalam disk. Klik pilihan free tersebut, lalu pilih create untuk untuk membuat partisi baru. Sedangkan untuk keterangannya : - /dev/sda merupakan penamaaan linux terhadap hardisk bertipe SCSI sekaligus path (lokasi) yang digunakan sebagai tempat disk/drive di mount. Mount berarti mengaitkan,menghubungkan, atau menginputkan suatu drive/disk maupun partisi ke dalam sistem. - Free = dikarenakan belum memiliki format file sistem, maka ia akan dikenali sebagai ruang kosong ( space yang belum teralokasi). - 10239 MB = merupakan besarnya kapasitas dari space yang belum teralokasi tersebut. 13. Tahap selanjutnya yaitu membuat partisi seperti pada gambar di bawah. 20

Catatan: Standard Partition opsi ini dipilih jika ingin membuat partisi standar. RAID Partition opsi ini dipilih jika ingin membuat partisi dengan konfigurasi RAID. Secara sederhana dapat diartikan sebagai sebuah teknik menggabungkan beberapa disk (harddisk) menjadi sebuah media penyimpanan logika. Contoh, opsi ini dapat dipilih apabila memiliki 3 buah hardisk dan menginstall CentOS diatasnya, dengan RAID 3 buah harddisk tersebut akan terdeteksi sebagai satu harddisk berisi file sistem linux CentOS. LVM Physical Volume opsi ini dipilih jika ingin membuat partisi dengan konfigurasi LVM. 14. Jika memilih Standard Partition maka akan muncul tampilan seperti pada gambar di bawah. Tahap ini merupakan tahap pembuatan partisi. Pada system operasi berbasis Linux, partisi yang harus dibuat minimal dua buah, yaitu root (/) dan juga swap. Untuk membuat partisi root, pilih Mount Point / dengan tipe file system ext4. Sedangkan untuk sizenya dapat dialokasikan sesuai kebutuhan. 21

Untuk membuat partisi swap, pilih Mount Point / dengan tipe file system swap. Sedangkan untuk size partisi swap ukurannya minimal dua kali ukuran RAM. Jika sudah selesai membuat partisi, pilih Next. Maka proses instalasi akan menginstruksikan untuk memformat harddisk tersebut, pilih Format. 22

Setelah memilih Format, akan muncul peringatan bahwa partisi yang dipilih akan dicatat pada harddisk. Maka pilih opsi Write changes to disk. 15. Langkah selanjutnya yaitu pengaturan boot manager. Catatan: CentOS /dev/sda1. Yang berarti boot menuju CentOS (boot label) akan diberi nama CentOS, dimana bootloader CentOS akan disimpan pada partisi /dev/sda1, jika ingin mengubahnya, cukup pilih opsi Edit. Disini kita dapat mengubah nama boot (boot label). Jika sudah, pilih Next untuk melanjutkan proses instalasi. 23

16. Selanjutnya akan muncul pilihan software apa saja yang ingin diinstal. Catatan: Desktop opsi ini dipilih jika ingin menginstal semua software Desktop. Minimal Desktop opsi ini dipilih jika ingin menginstal software minimal untuk Desktop. Jika ingin memilih aplikasi apa saja yang ingin diinstal, pilih Customize now. 24

Lalu pilih software yang ingin diinstal. 17. Jika ingin menginstal semua software minimal desktop, pilih Customize Later lalu klik Next. 18. Proses berikutnya adalah instalasi paket-paket Linux CentOS 6.5 ke HDD. Tunggu sampai selesai. 25

19. Setelah selesai lakukan Reboot dan pastikan kali ini parameter first boot di BIOS mengarah ke HDD. 26

20. Tunggu proses booting hingga selesai. Konfigurasi Pacsa Instalasi Setelah proses booting selesai, maka akan muncul proses konfigurasi pasca instalasi seperti pada langka-langkah berikut: 1. Saat muncul tampilan Welcome Screen seperti pada gambar di bawah, klik Forward. 27

2. Saat muncul tampilan tentang informasi lisensi CentOS 6.5 tersebut, pilih Yes, I agree to the license Agrement agar dapat melanjutkan instalasi. Lalu pilih Forward untuk melanjutkan ke tahap berikutnya. 3. Lalu tahap selanjutnya yaitu membuat nama User beserta password untuk login ke Sistem Operasi CentOS tersebut. Jika sudah, pilih Forward. 28

4. Tahap selanjutnya yaitu konfigurasi waktu dan tanggal sesuai dengan tempat di mana CentOS 6.5 tersebut diinstall. Jika sudah, pilih Forward. 29

5. Terakhir, ada pemberitahuan tentang kernel Kdump. Klik Finish untuk mengakhiri proses instalasi. 6. Setelah instalasi selesai, maka akan diminta password untuk login ke Sistem Operasi CentOS yang sudah berhasil diinstal tersebut. 30

7. Berikut tampilan area desktop dari CentOS 6.5 yang berhasil diinstal. 31

BAB 2 PROSES BOOTING SUBAB MATERI : Urutan Proses Booting Inisiasi BIOS Grub Boot Loader Inisiasi Kernel init dan /etc/inittab Run Levels Mengontrol Servis Key Terms BIOS Booting GRUB init Kernel Run Level 32

Urutan Proses Booting Secara ringkas, urutan booting pada linux bisa dilihat pada gambar di bawah ini: 1. BIOS: Basic Input/Output System merupakan interface level paling bawah yang menghubungkan antara komputer dan perangkatnya. BIOS melakukan pengecekan integritas memori dan mencari instruksi pada Master Boot Record (MBR) yang terdapat pada floppy drive atau harddisk. 2. MBR menjalankan boot loader. Di linux, boot loader yang sering dipakai adalah LILO (Linux Loader) dan GRUB (GRand Unified Boot loader). Pada Red Hat dan Turunannya menggunakan GRUB sebagai boot loader. 3. LILO/GRUB akan membaca label sistem operasi yang kernelnya akan dijalankan. Pada boot loader inilah sistem operasi mulai dipanggil. Untuk mengkonfigurasi file grub, filenya terdapat pada /boot/grub/grub.conf. 4. Setelah itu, tanggung jawab untuk booting diserahkan ke kernel. Setelah itu, kernel akan menampilkan versi dari kernel yang dipergunakan, mengecek status SELinux, menegecek paritisi swap, mengecek memory, dan sebagainya. 5. Kernel yang dipanggil oleh bootloader kemudian menjalankan program init, yaitu proses yang menjadi dasar dari proses-proses yang lain. Ini dikenal dengan nama Process. Proses ini mengacu pada script yang ada di file /etc/rc.d/rc.sysinit. 33

6. Program init kemudian menentukan jenis runlevel yang terletak pada file /etc/inittab. Berdasarkan pada run-level, script kemudian menjalankan berbagai proses lain yang dibutuhkan oleh sistem sehingga sistem dapat berfungsi dan digunakan. Runlevel adalah suatu parameter yang mengatur servis yang akan dijalankan misalnya single user, reboot, shutdown, dan sebagainya. Program yang mengatur runlevel ini adalah init yang terletak pada direktori /etc/inittab. Inisiasi BIOS BIOS (Basic Input/Output System) adalah antar muka antara perangkat keras dan perangkat lunak level dasar. BIOS menyediakan kumpulan instruksi yang digunakan sistem operasi. Kesuksesan proses booting tergantung pada BIOS, yang menyediakan antar muka level terendah ke perangkat periferal dan kontrol. Bios pertama kali menjalankan Power On Self Test (POST) kemudian mencari periferal dan perangkat untuk melakukan booting. Informasi konfigurasi perangkat keras disimpan pada area kecil (biasanya 64 byte) secara permanen pada CMOS (Complementary Metal Oxide Semiconductor) yang terdapat pada motherboard. Setelah POST, perangkat booting dipilih dari daftar perangkat yang terdeteksi pada booting. Perangkat booting termasuk di dalamnya floppy drive, hard drive, CDROM, network interface, Zip drive dan media removable lain. BIOS membaca dan mengeksekusi sektor fisik pertama dari media booting yang dipilih pada sistem. Biasanya 512 byte pertama dari hard disk. Grub Boot Loader Boot Loader adalah suatu program yang sudah tertanam pada suatu sistem operasi untuk mem-boot atau memanggil sistem operasi yang ada pada hard disk dan media boot lainnya seperti flashdisk (contohnya GRUB dan LILO). Biasanya Boot Loader digunakan untuk memilih sistem operasi yang ada pada hard disk karena pada hard disk tersebut memiliki lebih dari 1 sistem operasi. Boot Loader ini, dimuat pada BIOS komputer, yang kemudian digunakan untuk memanggil kernel suatu sistem operasi. 34

Jadi, Boot Loader ini digunakan untuk memilih dan memanggil sistem operasi yang ada pada hard disk dan media boot lainnya. Boot Loader, harus dipasang pada MBR (Master Boot Record) pada hard disk atau media boot lainnya agar sistem operasi yang terdapat pada hard disk atau media boot lainnya bisa di-boot dengan baik. Terdapat 2 jenis Boot Loader pada GNU/Linux, yaitu GRUB dan LILO. Tetapi, modul ini hanya akan membahas mengenai Grub Boot Loader saja. GRUB (the Grand Unified Boot-loader) merupakan antar muka baris perintah yang tersedia pada prompt saat booting. Boot dari sistem file ext2/ext3, ReiserFS, JFS, FAT, minix atau FFS. Konfigurasi GRUB dilakukan pada /boot/grub/grub.conf mempunyai format yang global. Contoh isi grub.conf: timeout=5 spashimage=(hd0,0)/grub/splash.xpm.gz password md5 $1$/iX9y$Bk4yt37Ch2fz5GFN default=0 title Red Hat Enterprise Linux AS (2.6.90648_EL) root (hd0,1) kernel /vmlinuz-2.6.9-648.el ro root=/dev/volgroup00/logvo100 rhgb quiet initrd /initrd-2.6.9-648.el.img title Windows XP Pro rootnoverify (hd0,0) chainloader +1 Perubahan pada file grub.conf akan mengubah sistem dengan segera. GRUB membaca file konfigurasi pada waktu booting, sehingga file grub.conf harus disimpan pada sistem file yang mengerti GRUB, misalnya ext2/ext3, reiserfs, FAT, minix dan FFS. Jika untuk beberapa alasan MBR terkorupsi dan perlu menginstall ulang GRUB maka dapat menggunakan perintah /sbin/grub-install <boot-device>, misalnya : /sbin/grub-install /dev/had 35

User dapat melakukan setting grub secara manual. Jika instalasi gagal cobalah cara berikut: 1. Ketik perintah grub dan tekan enter 2. Ketik root (hd0,0) 3. Ketik setup (hd0) 4. Ketik quit Inisiasi Kernel Aktifitas inisialisasi kernel berlangsung secara cepat pada saat booting. Untuk melihat pesan kernel yang dilewatkan pada init, output file dapat dilihat pada /var/log/dmesg. Output memperlihatkan langkah inisialisasi dasar dari kernel Linux yang meliputi : Mendeteksi driver perangkat yang dikompilasi dan menempatkannya pada perangkat yang berhubungan. Jika berhasil, driver akan menginisialisasi dan kernel memberi pesan. Apabila driver selesai dikompilasi sebagai modul dalam kernel, maka akan dimasukkan dalam initrd yang kemudian di-mount oleh kernel ke RAM disk untuk inisialisasi proses. Setelah semua driver dibuka, kernel akan melakukan mounting sistem file root dengan mode read only. Proses pertama kemudian disimpan pada init dan kontrol dilewatkan dari kernel ke proses. init dan /etc/inittab init adalah parent dari semua proses. Untuk melihat urutan proses tree dapat menjalankan perintah pstree: 36

$ pstree init-+-apmd /-atd /-automount /-crond---crond /-deskguide_apple /-gdm-+-x / `-gdm---gnome-session Karena init adalah proses pertama, maka selalu mempunyai nomor PID 1. File /etc/inittab berisi informasi bagaimana init harus set up sistem pada setiap run level. Jika file /etc/inittab hilang atau terkorupsi, maka tidak dapat dilakukan booting pada standard run level (0-6) dan memerlukan penggunaan mode single atau darurat. Isi /etc/inittab adalah : Inisialisasi run level Skrip inisialisasi system Direktori skrip run level khusus Menangkap urutan kunci tertentu Menentukan kegagalan power UPS / menyimpan skrip Menentukan virtual console Inisialisasi X pada run level 5 Run Levels init mendefinisikan run level 0-6 meliputi: Run Level Efek 0 Halt 1, S, emergency Mode single user 2 Multi user, tanpa jaringan NFS 3 Full multi user (termasuk jaringan) 4 Didefinisikan user, tetapi duplikat runlevel 3 (default) 5 X11 (termasuk jaringan) 6 Reboot 37

Run level dipilih sebagai default pada /etc/inittab, dilewatkan sebagai argumen dari boot loader atau menjalankan init x setelah booting (dimana x adalah run level yang dipilih). Baris initdefault pada file /etc/inittab mengontrol run level default setelah sistem dimulai. Formatnya adalah sebagai berikut: id:x:initdefault: Dimana x adalah run level setelah sistem dimulai. Untuk melihat run level saaat ini dan sebelumnya dapat dilihat pada /sbin/runlevel. Bila ingin melakukan perpindahan level init dengan menggunakan perintah init dengan runlevel tertentu, gunakan perintah init# dimana # adalah satu dari 0, 1, 3, 5, 6. Dapat juga menggunakan perintah telinit. Skrip untuk run level yang diberikan dijalankan selama boot dan shutdown. Skrip ditemukan pada direktori /etc/rc.d/rc#.d/ dimana simbol # menandakan run level, misalnya run level 3 akan menjalankan semua skrip pada direktory /etc/rc.d/rc3.d/ yang dimulai dengan huruf S selama sistem boot. Skrip ini akan menjalankan proses background yang dibutuhkan oleh sistem. Pada saat shutdown semua skrip pada direktori yang dimulai dengan huruf K akan dieksekusi. Sistem ini menyediakan urutan sistem ke state yang berbeda untuk mode produksi dan maintenance. (Daftar state dan run level dari semua service dimulai oleh ini; chkconfig list GUI tool : /usr/x11r6/bin/tksysv) Mengontrol Servis Skrip inisialisasi System V memulai servis pada waktu booting. Kebanyakan dari servis dijalankan sebagai daemon, seperti cups, cron dan sendmail. Red Hat Linux menyediakan beberapa utilitas yang memfasilitasi pengaturan inisialisasi System V. system-config-service adalah utilitas grafis meng membutuhkan antarmuka X. Menampilkan servis yang dimulai dan dihentikan setiap run level. Servis dapat ditambahkan, dihapus atau diurut ulang pada run level 3 sampai 5 dengan utilitas ini. 38

ntsysv adalah utilitas interaktif berbasis console yang memungkinkan untuk mengontrol servis yang berjalan bila memasukkan run level tertentu. Utilitas ini digunakan selama inisialisasi sistem, tetapi dapat dijalankan dari baris perintah. Mengkonfigurasikan run level saat ini secara default. Dengan menambahkan pilihan --level maka dapat dikonfigurasi run level lain. chkconfig adalah utilitas baris perintah. Jika melewatkan --list, akan menampilkan daftar semua skrip System V dan mematikan atau menghidupkan setiap run level. Skrip dapat diatur dalam setiap run level dengan on atau off chkconfig. Pilihan -- level digunakan untuk menentukan run level yang diaktifkan jika default tidak diterima. Perintah service digunakan untuk memulai dan menghentikan servis standalone segera. Beberapa servis menerima argumen start, stop, restart, reload, condrestart dan status sebagai servis minimum. Perintah system-config-services dan chkconfig akan memulai dan menghentikan xinetd dikonfigurasi on atau off. Servis standalone tidak dimulai atau dihentikan sampai sistem dilakukan booting ulang atau menggunakan perintah services. 39

BAB 3 ADMINISTRASI FILE SISTEM PADA LINUX SUBAB MATERI Membuat Filesistem Mounting Filesistem: Menggunakan Perintah Mount dan File /etc/fstab Atribut Filesistem ext2/3 Daftar Akses Kontrol Memahami dan Mengontrol SELinux Key Terms /etc/fstab ACL Atribut Filesistem ext2 ext3 ext4 mount SELinux 40

File sistem / Sistem Berkas merupakan metoda penyimpanan file pada komputer atau media penyimpanan komputer dalam mengatur lokasi file tersebut. Ada juga yang menyebut bahwa File sistem adalah struktur logika yang digunakan untuk mengendalikan akses terhadap data yang ada pada disk. File sistem memiliki dua bagian: Kumpulan file yang masing-masingnya menyimpan data-data yang berhubungan. Struktur direktori yang mengorganisasi dan menyediakan informasi mengenai seluruh file dalam sistem. Fungsi File sistem salah satunya untuk memberi nama pada berkas dan meletakkannya pada media penyimpanan. Fungsi lainnya adalah sebagai konvensi penamaan berkas dan peletakkan berkas pada struktur direktori. Semua sistem operasi memiliki File sistemnya sendiri untuk meletakkan file dalam sebuah struktur hirarki. Lalu apa hubungannya File sistem dengan Sistem Operasi? File sistem merupakan interface yang menghubungkan sistem operasi dengan disk. Ketika program menginginkan pembacaan dari harddisk atau media penyimpanan lainnya, sistem operasi akan meminta File sistem untuk membuka file yang diminta tersebut. File sistem akan mencari lokasi dari file yang diinginkan. Setelah file itu ditemukan, File sistem akan membaca file tersebut kemudian mengirimkan informasinya kepada sistem operasi dan akhirnya bisa dibaca oleh pengguna. File sistem pada Linux Ext 2 (2nd Extended) Ext 2 merupakan tipe File sistem yang paling tua yang masih ada. File sistem ini pertama kali dikenalkan pada tahun 1993. Ext 2 adalah File sistem yang paling ampuh di linux dan menjadi dasar dari segala distribusi linux. Pada Ext 2 File sistem, file data disimpan sebagai data blok. Data blok ini mempunyai 41

panjang yang sama dan meskipun panjangnya bervariasi di antara Ext 2 File sistem, besar blok tersebut ditentukan pada saat File sistem dibuat dengan mk2fs. Jika besar blok adalah 1024 bytes, maka file dengan besar 1025 bytes akan memakai 2 blok. Ext 2 File sistem menyimpan data secara hirarki standar yang banyak digunakan oleh sistem operasi. Data tersimpan di dalam file, file tersimpan di dalam direktori. Sebuah direktori bisa mencakup file dan direktori lagi di dalamnya yang disebut sub direktori. Kehandalan Ext2FS: - Administrator sistem dapat memilih ukuran blok yang optimal (dari 1024 sampai 4096 bytes), tergantung dari panjang file rata-rata, saat membuat file sistem. - Administrator dapat memilih banyak inode dalam setiap partisi saat membuat file sistem. - Strategi update yang aman dapat meminimalisasi dari system crash. - Mendukung pengecekan kekonsistensian otomatis saat booting. - Mendukung file immutable (file yang tidak dapat dimodifikasi) dan append-only (file yang isinya hanya dapat ditambahkan pada akhir file tersebut). Kelemahan Ext2FS: - Ketika shut down secara mendadak membutuhkan waktu yang tidak sebentar untuk recover. - Untuk melakukan clean up File sistem, biasanya Ext 2 secara otomatis akan menjalankan utility e2fsck pada saat booting selanjutnya. Ext 3 (3rd Extended) Ext 3 merupakan peningkatan dari Ext 2 File sistem. Beberapa peningkatan yang ada antara lain: - Journaling Dengan menggunakan journaling, maka waktu recovery pada shut down yang mendadak tidak akan selama pada Ext 2. 42

- Integritas Data Ext 3 menjamin adanya integritas data setelah terjadi kerusakan atau unclean shut down. Ext 3 memungkinkan kita memilih jenis dan tipe proteksi dari data. - Kecepatan Daripada menulis data lebih dari sekali, Ext 3 mempunyai throughput yang lebih besar daripada Ext 2 karena Ext 3 memaksimalkan pergerakan head harddisk. Kita bisa memilih tiga jurnal mode untuk memaksimalkan kecepatan, tetapi integritas data tidak terjamin. - Mudah Dilakukan Migrasi Kita dapat melakukan migrasi atau konversi dari Ext 2 ke Ext 3 tanpa harus melakukan format ulang pada harddisk. Di samping keunggulan di atas, Ext 3 juga memiliki kekurangan. Dengan adanya fitur journaling, maka membutuhkan memori yang lebih dan memperlambat operasi I/O. Ext 4 (4th Extended) Ext 4 dirilis secara komplit dan stabil berawal dari kernel 2.6.28. Jadi, apabila distro yang secara default memiliki kernel tersebut atau di atasnya secara otomatis system sudah support Ext 4. Apabila masih menggunakan Ext 3, dapat dilakukan konversi ke ext 4 dengan beberapa langkah yang tidak terlalu rumit. Keuntungan menggunakan Ext 4 ini adalah mempunyai pengalamatan 48-bit blok yang artinya dia akan mempunyai 1 EiB = 1.048.576 TB ukuran maksimum File sistem dengan ukuran 16 TB untuk maksimum file sizenya, fast fsck, journal checksumming, defragmentation support. Membuat Filesistem Untuk membuat suatu filesistem, ada beberapa langkah yang bisa digunakan : 1. Buat partisi dengan parted atau fdisk 2. Format partisi ini dengan mkfs 43

3. Beri label pada partisi dengan e2label 4. Buat mount point partisi tersebut 5. Tambahkan partisi ke /etc/fstab Mengecek filesistem yang sedang di-mount Sebelum melakukan mount dan unmount, kita perlu tahu mount point mana yang sedang dimount dengan berbagai perintah : $ cat /etc/mtab 1. /etc/mtab File ini adalah file yang diupdate program mount ketika filesistem di-mount atau diumount. $ cat /proc/mounts 2. /proc/mounts File diatas adalah bagian dari filesistem virtual proc. Seperti file-file proc lainnya, file mounts ini bukan file sesungguhnya, namun hanya representasi saja dalam bentuk file. /dev/sda3 / ext3 rw 0 0 none /proc proc rw 0 0 usbdevfs /proc/bus/usb usbdevfs rw 0 0 /dev/sda1 /boot ext3 rw 0 0 none /dev/pts devpts rw,gid=5,mode=620 0 0 /dev/sda4 /home ext3 rw 0 0 none /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 Hasil dari kedua file diatas dapat dilihat sebagai berikut : Tiap baris menunjukkan : Filesistem yang di-mount Mount point Tipe filesistem Apakah filesistem itu bersifat ro (read only) atau rw (read and write) 44

Dua field yang tidak dipakai dan diwakili dengan 0. $ df 3. df Dengan menggunakan perintah ini, kita dapat melihat berapa kapasitas direktori yang sedang di-mount dan berapa yang sudah dipakai. Filesystem 1k-blocks Used Available Use% Mounted on /dev/sda3 8428196 4280980 3719084 54% / /dev/sda1 124427 18815 99188 16% /boot /dev/sda4 8428196 4094232 3905832 52% /home none 644600 0 644600 0% /dev/shm Hasil output dari perintah df adalah sebagai berikut. df a berfungsi menghitung pemakaian file space untuk semua direktori (opsi a menunjukkan seluruh direktori). cat /proc/swaps mendisplay ukuran partisi swap, tipe partisi swap dan kuantitas swap. cat /proc/ide/hda/any-filemendisplay informasi disk yang dipegang kernel. $ cat /proc/filesystems/dev/sda3 / ext3 rw 0 0 4. cat /proc/filesystems bertugas menunjukkan flesistem yang sedang dipakai. 5. fdisk l bertugas untuk mengecek semua partisi beserta devaisnya yang ada baik windows, linux, swap. 45

Membuat Partisi Baru Beberapa tool partisi yang biasa dipakai adalah : fdisk, sfdisk, GNU parted, partprobe. fdisk Pada instalasi linux, program partisi yang paling sering digunakan adalah fdisk. Keuntungan utama fdisk adalah fdisk mampu mendukung BSD disk label dan tabel partisi lain selain DOS. GNU parted atau parted GNU parted adalah program partisi untuk menciptakan, menghilangkan, mengubah ukuran dan menyalin partisi yang mengandung filesistem. Berikut ini diberikan langkah-langkah melakukan partisi dengan fdisk : 1. Tentukan lokasi dimana akan dilakukan partisi, kemudian gunakan fdisk pada lokasi tersebut : $ fdisk <letak partisi> misalkan letaknya ada pada /dev/hda, gunakan perintah: $ fdisk /dv/hda 2. Lihat table partisi untuk mengecek apakah partisi yang dilakukan sudah tepat atau tidak dengan menggunakan perintah p: Command (m for help): p Disk /dev/hda: 255 heads, 63 sectors, 1244 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 17 136521 83 Linux /dev/hda2 18 83 530145 82 Linux swap /dev/hda3 84 475 3148740 83 Linux /dev/hda4 476 1244 6176992+ 83 Linux 3. Partisi-partisi yang tidak diinginkan juga dapat dihapus dengan perintah d, yang berarti delete. Command (m for help): d Partition number (1-4): 1 46

4. Jika ingin membuat partisi baru, gunakan perintah n. Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-767): 1 Last cylinder or +size or +sizem or +sizek: +512M Lalu tentukanlah tipe filesistem. 82 menunjukkan bahwa partisi adalah untuk linux swap. Untuk mengetahui kode heksa untuk tipe filesistem lainnya ketiklah 1. Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 82 Lalu simpanlah dengan perintah w. Command (m for help): w Mengecek Partisi Untuk mengecek partisi yang dibuat, lakukan perintah $ cat /proc/partitions Atau gunakan: $ fdisk l <partisi> Jika ukuran partisi tidak sesuai dengan yang diinginkan, maka lakukan resize. 47

Memformat Partisi $ mkfs t <fstype> <device> mkfs adalah perintah yang digunakan untuk membuat filesistem. dengan opsi t akan menciptakan filesistem dengan fstipe yang diminta. Jika tanpa opsi t maka mkfs akan menciptakan filesistem ext2. Device ini adalah letak partisi yang hendak diformat. Bila ingin melakukan format pada partisi /dev/sde3 menggunakan filesistem ext3 mengenai opsi-opsi lain pada perintah mkfs, dapat melihat man mkfs. $ mkfs t ext3 /dev/sde3 Untuk ext2, ada perintah mke2fs yang dapat digunakan: $ mke2fs [options] device Memberi Label Setelah melakukan format, langkah berikutnya adalah memberi label pada partisi tersebut. $ e2label <partisi baru> <nama partisi baru> Misalkan nama direktori baru itu /work $ e2label /dev/hda3 /work Membuat Mountpoint $ mkdir <nama partisi baru> buatlah mount point partisi tersebut /work $ mkdir /work 48

Masukkan Entry /etc/fstab Sebagai root masuklah ke file /etc/fstab untuk memasukkan partisi baru. Kolom pertama menyatakan LABEL=nama partisi baru, kolom kedua menyatakan mountpoint dari partisi baru, sementara kolom ketiga menyatakan tipe filesistem (misalnya ext3 atau swap). Untuk mengetahui lebih lanjut, bukalah manual fstab atau baca ringkasan pada materi selanjutnya. Mounting Filesistem: Menggunakan perintah mount dan file /etc/fstab Macam-macam opsi yang bisa digunakan untuk melakukan mount pada filesistem ext3 adalah : rw : read and write akses suid : mode suid atau guid dev : agar file devais dapat digunakan exec : agar binary dapat dieksekusi auto : otomatis async : perubahan file dimenej secara asinkronus Opsi-opsi lain, yang bisa dipakai bisa dilihat pada manual mount. Contoh penggunaan mount : $ mount t ext3 o noexec /dev/hda7 /home Dengan opsi noexec ini, direktori home tidak boleh mengeksekusi file yang berada di /dev/hda $ mount t iso9660-0 ro,loop /iso/documents.iso /mnt/cdimage Perintah diatas menunjukkan bahwa file CDROM yang berupa filesistem image pada /iso/documents.iso di-mount ke mount point /mnt/cdimage secara read only dengan loopback device. Ini penting agar filesistem image tersebut dapat diakses oleh pc. $ mount t vfat o uid=515,gid=520 /dev/hdc2 /mnt/projx Maksud perintah ini adalah melakukan mount pada filesistem vfat di direktori /dev/hdc2 sehingga bisa diakses oleh userid maupun grup id tertentu. Hal ini penting karena biasanya data filesistem hanya dimiliki root, sementara user lain akan ditolak untuk melakukan perubahan file secara langsung. $ mount t ext3 o noatime /dev/hda2 /data 49

Perintah diatas berarti mount filesistemext3 dengan opsi noatime yang artinya menghemat baterai laptop dengan mengurangi akses disk. $ mount --bind /something /anotherthing Dengan perintah diatas artinya melakukan mount pada direktori /something yang sudah dimount pada direktori lain ke direktori /anotherthing. Metode ini disebut mount alias. File /etc/fstab file /etc/fstab termasuk penting karena file ini akan dilihat setiapkali sistem melakukan boot, untuk membentuk hirarki filesistem. File ini terdiri atas 6 field, yaitu : Device : menyatakan nama dari file device atau label dari filesistem Mount_point : path yang digunakan untuk mengakses filesistem Fs_type : tipe filesistem Options : opsi untuk filesistem Dump_freq : frekwensi dumping, 0=tidak pernah, 1=setiap hari, 2=tiap dua hari Fsck_order : 0=ignore, 1=pertama (biasanya filesistem root), 2-9. Jika >1, maka filesistem akan dicek pararel. Filesistem di jaringan dan CDROM tidak akan dicek. Perhatikan file /etc/fstab berikut: device mount point fs type options dump freq fsck order LABEL=/mnt/data /mnt/data ext3 defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 Jika fstab diisikan setelah booting, anda harus melakukan mount terhadap filesistem tersebut. Misalkan partisi /dev/hda5 mengandung filesistem dengan label /mnt/data dan mount point /mnt/data sudah dibuat, maka anda bisa melakukan mount dengan perintah: $ mount /dev/hda5 $ mount L /mnt/data $ mount LABEL = /mnt/data $ mount /mnt/data 50

Atribut Filesistem ext2/3 Berikut penjelasan selanjutnya tentang filesistem ext2 dan filesistem ext3: Second Extended File sistem (Ext2 FS) Second Extended File sistem (Ext2) dirancang oleh Rémy Card, sebagai File sistem yang extensible dan powerful untuk digunakan pada sistem operasi Linux. Ext2 merupakan File sistem yang paling banyak digunakan oleh para pengguna Linux Ext2 pertama kali dikembangkan dan diintegrasikan pada kernel Linux, dan sekarang ini sedang dikembangkan juga penggunaannya pada sistem operasi lainnya. Tujuannya adalah untuk membuat suatu File sistem yang powerful, yang dapat mengimplementasikan file-file semantik dari UNIX dan mempunyai pelayanan advance features. Kemampuan Dasar ext2 - File sistem EXT2 mampu menyokong beberapa tipe file yang standar dari UNIX, seperti regular file, directories, device special files, dan symbolic links. - EXT2 mampu mengatur file-file sistem yang dibuat dalam partisi yang besar. - File sistem EXT2 mampu menghasilkan nama-nama file yang panjang. Maximum 255 karakter. - EXT2 memerlukan beberapa blok untuk super user (root). Kemampuan Tambahan ext2 - File sistem EXT2 mampu menyokong beberapa ekstensi yang biasanya tidak diberikan dalam File sistem UNIX. - Atribut-atribut dari file memperbolehkan user untuk mengubah perilaku kernel pada waktu bekerja pada suatu set file. - Seseorang dapat mengatur atribut-atribut dalam suatu file atau direktori. Pada kasus-kasus selanjutnya, file-file baru yang dibuat di dalam direktori akan mewarisi atribut-atribut direktori tersebut. 51

Konsep Dasar ext2 EXT2, seperti juga File sistem lainnya, dibuat berdasarkan pemikiran bahwa data yang berada dalam file disimpan ke dalam blok-blok data. Blok-blok data ini memiliki panjang yang sama. File sistem EXT2 memperbolehkan administrator untuk memilih logical block size pada waktu membuat File sistem tersebut. Ukuran-ukuran blok antara lain 1024, 2048, dan 4096 bytes. Dalam memakai ukuran-ukuran blok yang besar dapat mempercepat I/O karena permintaan I/O lebih sedikit, dan juga seek dari disk head akan lebih sedikit diperlukan untuk mengakses suatu file. Setiap file disimpan dalam beberapa blok, tergantung pada ukuran file yang akan disimpan tersebut. Misalnya satu blok mempunyai ukuran 1024 bytes, maka file yang besarnya 1025 bytes akan menempati 2 blok. Dengan cara penyimpanan file seperti diatas berarti terjadi pemborosan rata-rata setengah blok untuk setiap file yang disimpan. Semakin besar ukuran blok semakin besar pula disk space yang terbuang. Untuk mengurangi beban kerja CPU, dan meningkatkan kinerja dari CPU dan memori, pemborosan blok dalam disk ini terpaksa harus terjadi. Tidak semua blok yang ada dalam disk digunakan untuk menyimpan data. Beberapa blok digunakan untuk menyimpan informasi mengenai struktur dari File sistem. Ext2 menetapkan topologi dari File sistem dengan merepresentasikan setiap file dalam sistem dengan suatu data struktur inode. Suatu inode mendeskripsikan blok data yang ditempati oleh suatu file. Inode ini juga memberikan keterangan tentang hak akses sutu file, tipe dari file, serta waktu modifikasi terakhir dari suatu file. Setiap inode dalam Ext2 mempunyai suatu nomor yang unik, untuk mengidentifikasi inode tersebut. Semua inode dari File sistem ini disimpan dalam suatu inode table. Dalam Ext2, secara sederhana directory merupakan suatu file khusus (directory juga dideskripsikan oleh suatu inode) yang mengandung pointer ke inode-inode dari isi directory tersebut (file atau directory). Ext2 mengimplementasikan fast symbolic links. Fast symbolic links tidak menggunakan data blok pada File sistem. Nama yang dituju tidak disimpan pada blok data melainkan disimpan di inode. 52

Teknik ini dapat menghemat disk space yang digunakan (tidak mengalokasikan blok data) dan mempercepat operasi link (tidak membaca blik data ketika mengakses suatu link. Ext2 memeriksa status dari File sistem secara terus menerus. Suatu field khusus pada superblock digunakan oleh kernel untuk mengindikasikan status dari File sistem. Ketika File sistem berada pada keadaan read/write mode, statusnya diset menjadi not clean. Ketika File sistem berada pada keadaan read-only mode, statusnya diset kembali menjadi clean. Pada saat boot, File sistem checker menggunakan informasi ini untuk menentukan apakah perlu dilakukan pemeriksaan File sistem atau tidak. Kernel code juga menyimpan error pada field ini. Ketika kernel code mendeteksi adanya inkonsistensi, File sistem ditandai sebagai Errorneous. Partisi Partisi adalah tingkat pertama dari susunan disk. Setiap disk harus memiliki satu atau beberapa partisi. Penggunaan partisi dimaksudkan agar dalam satu phisycal disk dapat terdiri dari beberapa File sistem di setiap partisinya. Setiap File sistem EXT2 membutuhkan satu partisi, bahkan satu partisi penuh. Group File sistem EXT2 dibagi dalam beberapa group yang menjadi bagian-bagian dalam suatu partisi. Pembagian ke dalam beberapa group tersebut akan berhasil setelah File sistem sudah diformat, dan tidak bisa diubah tanpa diformat ulang. Setiap group memiliki satu superblock, satu group descriptor, satu block bitmap, satu inode bitmap, dan data blocks. Susunannya berurut dari superblock sampai ke data blocks. Komponen-Komponen pada ext2 - Boot block Setiap File sistem diawali dengan boot block. 53

- Superblock Beberapa informasi tentang File sistem dimiliki oleh File sistem itu sendiri secara keseluruhan, dan tidak secara bagian dari file ataupun group.dalam informasi ini, termasuk didalamnya jumlah total blok-blok dari suatu File sistem, waktu pemeriksaan error terakhir, dan hal yang lainnya. Informasi-informasi semacam itu disimpan dalam superblok. Superblock mengandung informasi yang mendeskripsikan status dari File sistem internal. Superblok memperbolehkan File sistem manager untuk menggunakan dan mengatur File sistem. Superblok terletak pada offset 1024 yang tetap pada device, dan panjangnya 1024 bytes. Superblok pertama adalah yang paling penting, karena superblok ini dibaca ketika File sistem dimount. Informasi dalam superblok itu sangat penting. File sistem bahkan tidak bisa disusun tanpa adanya informasi-informasi tersebut. Apabila terjadi error disk pada saat meng-update superblok, maka keseluruhan File sistem akan rusak dan hancur. Oleh karena itu, copy dari superblok disimpan dalam setiap group. Apabila superblok pertama rusak, maka file copy yang redundant tersebut digunakan untuk memperbaikinya. - Inode Setiap file dalam disk diasosiasikan oleh tepat satu inode. Inode ini menyimpan informasi penting mengenai file, seperti create dan modify times, permission, owner, tipe file, dan lokasi penyimpanan file tersebut dalam disk. Data dalam file tidak disimpan dalam inode, melainkan inode menunjuk ke lokasi data dalam disk. Pada setiap inode terdapat lima belas pointer ke blok data. Hal ini tidak berarti bahwa panjang maksimum suatu file hanya lima belas blok (panjang file dapat lebih dari 15 blok). 13 pointer pertama menujuk secara langsung ke blok yang mengandung data. Jika suatu file besarnya 13 blok atau kurang maka data pada file ditunjuk langsung oleh pointer, dan dapat diakses dengan cepat. 54

Pointer ke-14 disebut indirect pointer, dan menunjuk ke blok yang berisi pointer-pointer, setiap pointer ini menunjuk ke data pada disk. Pointer ke-15 disebut doubly indirect pointer, setiap pointer ini menunjuk ke blok yang berisi pointer-pointer yang menunjuk ke blok yang berisi pointer-pointer yang menunjuk ke data pada disk. Skema ini memungkinkan akses langsung pada semua data dari file yang kecil (kurang dari 14 blok) dan tetap dapat mengakses data dari file yang sangat besar dengan beberapa akses tambahan. Pada umumnya ukuran file tidak terlalu besar, karena itu hampir semua file dapat diakses dengan cepat dengan skema ini. Inode disimpan dalam tabel inode. Lokasi dan ukuran tabel inode ditentukan pada saat format, dan tidak dapat diubah tanpa melakukan format ulang. Hal ini juga berarti bahwa jumlah maksimum file dalam File sistem juga ditetapkan pada saat format. Third Extended File sistem (Ext3) EXT3 merupakan suatu journalled filesystem. Journalled filesystem didesain untuk membantu melindungi data yang ada di dalamnya. Dengan adanya journalled filesystem, maka kita tidak perlu lagi untuk melakukan pengecekan kekonsistensian data, yang akan memakan waktu sangat lama bagi harddisk yang berkapasitas besar. EXT3 adalah suatu filesystem yang dikembangkan untuk digunakan pada sistem operasi Linux. EXT3 merupakan hasil perbaikan dari EXT2 ke dalam bentuk EXT2 yang lebih baik dengan menambahkan berbagai macam keunggulan. Keunggulannya: - Availability : EXT3 tidak mendukung proses pengecekan File sistem, bahkan ketika system yang belum dibersihkan mengalami shutdown, kecuali pada beberapa kesalahan hardware yang sangat jarang. Hal seperti ini terjadi karena data ditulis atau disimpan ke dalam disk dalam suatu cara sehingga File sistem-nya selalu konsisten. 55

Waktu yang diperlukan untuk me-recover ext3 File sistem setelah system yang belum dibersihkan dimatikan tidak tergantung dari ukuran File sistem atau jumlah file; tetapi tergantung kepada ukuran jurnal yang digunakan untuk memelihara konsistensi. Jurnal dengan ukuran awal (default) membutuhkan sekitar 1 sekon untuk recover (tergantung dari kecepatan hardware). - Integritas Data Dengan menggunakan file sistem ext3 kita bisa mendapatkan jaminan yang lebih kuat mengenai integritas data dalam kasus dimana sistem yang belum dibersihkan dimatikan (shutdown). Kita bisa memilih tipe dan level proteksi yang diterima data. Kita bisa memilih untuk menjaga agar File sistem tetap konsisten, tetapi tetap mengijinkan kerusakan terhadap data dalam File sistem dalam kasus dimatikannya (shutdown) system yang belum dibersihkan; ini bisa memberikan peningkatan kecepatan pada beberapa keadaan. Secara alternatif kita bisa memilih untuk lebih memastikan bahwa data konsisten dengan bagian dari File sistem; ini berarti kita tidak akan pernah melihat garbage data pada file-file yang baru ditulis ulang setelah terjadi crash. Pilihan yang aman yakni menjaga kekonsistenan data sebagai bagian dari File sistem adalah pilihan default. Kecepatan Meskipun melakukan penulisan suatu data lebih dari satu kali, ext3 seringkali lebih cepat daripada ext2 karena sistem penjurnalan ext3 mengoptimasi pergerakan head hard drive. Kita bisa memilih dari tiga mode penjurnalan untuk mengoptimasi kecepatan, memilih untuk melakukan trade off terhadap integritas data, yaitu: Mode pertama, data = writeback, membatasi jaminan integritas data, memperbolehkan data yang lama untuk muncul dalam file-file setelah terjadi crash. Mode kedua, 56

data = ordered (mode default), menjamin bahwa data konsisten dengan File sistem; file-file yang baru ditulis tidak akan pernah menjadi garbage contents setelah terjadi crash. Mode terakhir, data = journal, membutuhkan jurnal yang lebih besar untuk kecepatan yang wajar dalam sebagian besar kasus dan oleh karena itu membutuhkan waktu lebih banyak untuk recover dalam kasus dimatikannya system yang belum dibersihkan (unclean shutdown), tetapi terkadang lebih cepat untuk operasi-operasi basis data tertentu. Easy Transition Adalah hal yang mudah untuk mengubah dari ext2 menjadi ext3 dan mendapatkan keuntungan-keuntungan dari sistem penjurnalan yang kuat, tanpa harus format ulang. Ada dua cara untuk melakukan transisi : Program instalasi Red Hat Linux menawarkan untuk men-transisi File sistem yang ada ketika kita meng-upgrade sistem. Yang perlu dilakukan adalah memilih satu checkbox setiap file sistem. Program tune2fs bisa menambahkan jurnal ke File sistem ext2 yang sudah ada. Bila File sistem sudah di-mount ketika ditransisi, maka jurnal akan bisa dilihat seperti file. Sebaliknya kalu belum di-mount jurnal akan tersembunyi dan tidak akan muncul di File sistem. Hanya dengan menjalankan tune2fs j /dev/hdal dan merubah ext2 menjadi ext3 /etc/fstab. Mode Journaling Ext3 menyediakan tiga mode journaling sebagai berikut : - journal - mencatat semua perubahan pada File sistem dan metadata. Paling lambat diantara ketiga mode journaling Ext3. Mode ini meminimalkan kemungkinan hilangnya perubahan yang terjadi pada setiap file dalam File sistem Ext3. - ordered - hanya mencatat perubahan yang terjadi pada metadata, dan membiarkan data pada disk diupdate sebelum perubahan pada metadata dari file tersebut 57

dilakukan. Mode jounaling ini adalah mode journaling default yang digunakan oleh Ext3. - writeback - hanya mencatat perubahan pada metadata, tetapi bergantung pada proses penulisan standar dari File sistem untuk menulis perubahan data dari file kedalam disk. Mode ini adalah mode journaling tercepat yang dimiliki Ext3. Menggunakan mode journal berarti bahwa Ext3 harus mencatat setiap perubahan pada File sistem sebanyak dua kali, pada journal dan pada File sistem itu sendiri. Hal ini dapat mengurangi kinerja dari File sistem secara keseluruhan. Namun mode ini meminimalkan kemungkinan hilangnya perubahan yang akan dilakukan pada File sistem, karena update pada metadata maupun update dari file data disimpan dalam journal dan dapat dilakukan kembali setelah sistem di-reboot. Menggunakan mode ordered berarti hanya perubahan pada metadata yang dicatat. Hal ini mengurangi pengulangan penulisan pada File sistem dan journal, sehingga mode ini lebih cepat. Karena perubahan pada file data tidak dicatat maka perubahan ini harus dilaksanakan sebelum perubahan pada metadata yang bersesuaian dilakukan. Menggunakan mode writeback lebih cepat daripada dua mode lainnya karena mode ini hanya mencatat perubahan pada metadata dan tidak menunggu perubahan pada file data yang bersangkutan dilakukan. Karena update pada file data dilakukan secara asinkronus dengan perubahan pada metadata, file dalam File sistem dapat mengalami inkonsistensi metadata, namun hal ini tidaklah fatal. Daftar Akses Kontrol Access Control List atau Daftar Akses Kontrol merupakan permission tambahan di linux. Dengan ACL pengguna dapat memberikan permission khusus kepada user atau group tertentu secara spesifik. Dalam permission dasar, sebuah file atau direktori memiliki permission untuk user pemilik, group, dan other. Masalah akan terjadi ketika ingin memberikan ijin (misalnya) baca sebuah file kepada 2 user yang berada dalam group yang berbeda, tetapi tidak kepada user lain dalam sistem. Ada workarround untuk hal semacam ini, penggguna bisa membuat group baru khusus untuk ijin baca pada file tersebut. Akan 58

tetapi, apabila memiliki banyak file dengan pengaturan permission seperti file tadi, pengguna akan memiliki (terlalu) banyak group dalam sistem. Untuk mengatasi masalah tersebut, digunakanlah ACL. Dalam praktik di tulisan ini saya menggunakan CentOS, jika distro yang anda gunakan tidak sama, beberapa hasil terminal mungkin berbeda. Filesystem yang support untuk ACL yaitu, ReiserFS, Ext2, Ext3, Ext4, JFS, dan XFS. Jika sistem linux anda menggunakan salah satu filesystem tersebut, anda bisa menggunakan ACL. Sebelum menggunakan ACL, periksa apakah ACL sudah di-enable atau belum, gunakan command mount sebagai root. [root@server ~]# mount grep root /dev/mapper/vg_livecd-lv_root on / type ext4 (rw) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") Dari hasil di atas, ternyata ACL tidak diaktifkan. Tapi meskipun tidak diaktifkan, belum tentu filesistem tidak support untuk ACL. Untuk memeriksa apakah filesystem yang digunakan support ACL, gunakan command tune2fs. Ternyata filesystem yang digunakan support ACL. Untuk mengaktifkan ACL setiap booting, editlah /etc/fstab pada bagian partisi yang akan digunakan ACL. Jika sebelumnya partisi root adalah /dev/mapper/vg_livecd-lv_root / ext4 defaults 1 1 Editlah menjadi /dev/mapper/vg_livecd-lv_root / ext4 acl,defaults 1 1 Setelah mengedit, mount ulang partisi agar ACL aktif. [root@server~]# mount -o remount / [root@server~]# mount grep root /dev/mapper/vg_livecd-lv_root on / type ext4 (rw,acl) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") 59

[root@server~]# tune2fs -l /dev/mapper/vg_livecd-lv_root tune2fs 1.41.12 (17-May-2010) Filesystem volume name: _CentOS-6.4-x86_ Last mounted on: / Filesystem UUID: 04382f72-6626-456e-8693-ae54ed0030d0 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Dengan mengedit /etc/fstab seperti di atas, secara otomatis ACL akan diaktifkan setiap kali reboot. Penggunaan ACL Untuk menggunakan acl, yang harus pertama dilakukan yaitu menginstal paket acl. yum install acl Setelah mengaktifkan ACL, sekarang kita mulai penggunaan ACL. Agar tidak merusak sistem, saya akan melakukan praktik di dalam directory /tmp. Pertama, buatlah directory acldir untuk bahan percobaan. [root@servertmp]# mkdir acldir [root@servertmp]# ls -la grep acldir drwxr-xr-x. 2 root root 4096 Jun 5 10:54 acldir Seperti yang terlihat, acldir memiliki permission drwxr-xr-x., tanda titik di akhir menunjukan bahwa acldir tidak menggunakan ACL. Sekarang kita gunakan ACL untuk memberikan permission rwx khusus untuk user1 pada acldir. Untuk menggunakan ACL, gunakan command setfacl. [root@servertmp]# setfacl -m u:user1:rwx acldir/ Mari kita uraikan perintah di atas. setfacl, adalah command yang digunakan untuk memberikan permission ACL kepada user atau group tertentu. Dengan kata lain setfacl adalah versi ACL dari command chmod. 60

-m, adalah argument dari setfacl untuk memodifikasi atau menambahkan permission ACL pada suatu file. u:user1:rwx, merupakan argument yang menandakan permission seperti apa yang akan diterapkan pada suatu file atau directory. Huruf u berarti ACL ini akan diberikan untuk user. user1 adalah nama user yang akan diberikan ACL. rwx adalah permission yang diberikan. acldir, adalah nama directory (atau file) yang menjadi target ACL. Setelah kita terapkan ACL pada file, mari kita periksa hasilnya. [root@servertmp]# ls -la grep acldir drwxrwxr-x+ 2 root root 4096 Jun 5 10:54 acldir Seperti yang terlihat, setelah diterapkan ACL, suatu file atau directory akan memberikan tanda '+' pada akhir permission. Akan tetapi, command ls hanya dapat memberitahu kita bahwa acldir memiliki permission ACL, tapi tidak dapat memberitahu secara detail seperti apa ACL yang diterapkan. Untuk mengetahui detail ACL pada suatu file, gunakan command getfacl. [root@servertmp]# echo "dono" > warkop [root@servertmp]# ls -l -rw-r--r--. 1 root root 5 Jun 11 23:21 warkop [user1@servertmp]$ echo "Dono Kasino Indro" > warkop -bash: warkop: Permission denied [root@servertmp]# setfacl -m u:user1:rwx warkop [root@servertmp]# ls -l -rw-rwxr--+ 1 root root 5 Jun 11 23:21 warkop [user1@servertmp]$ echo "Dono Kasino Indro" > warkop [user1@servertmp]$ cat warkop Dono Kasino Indro Seperti yang terlihat, sebelum diberikan ijin menggunakan acl, user1 tidak dapat mengedit file warkop, tetapi setelah diberikan ijin, user1 dapat mengedit file warkop. 61

Memberikan ijin ACL kepada group root akan membuat file lagi. user1 dan user2 berada dalam satu group, acluser. Sedangkan user3 tidak berada dalam group acluser. [root@servertmp]# echo "miing" > bagito [root@servertmp]# setfacl -m g:acluser:rwx bagito [root@servertmp]# getfacl bagito # file: bagito # owner: root # group: root user::rwgroup::r-- group:acluser:rwx mask::rwx other::r-- [user1@servertmp]$ echo "miing didin" > bagito [user2@servertmp]$ echo "miing didin unang" > bagito [user3@servertmp]$ echo "miing didin unang dodit" > bagito -bash: bagito: Permission denied Ternyata hanya anggota aclgroup (user1 & user2) yang memiliki akses ke file bagito. user3 tidak dapat mengedit file tersebut karena tidak memiliki ijin. Menambahkan ijin ACL pada file File yang sudah diberi ijin ACL, bisa ditambahkan ijin lagi. Sebelumnya user3 tidak memiliki ijin edit, sekarang kita berikan ijin edit khusus untuk user3 Setelah diberikan ijin ACL, user3 dapat mengedit file bagito meskipun user3 tidak masuk ke group acluser. 62

[root@servertmp]# setfacl -m u:user3:rwx bagito [root@servertmp]# getfacl bagito # file: bagito # owner: root # group: root user::rwuser:user3:rwx group::r-- group:acluser:rwx mask::rwx other::r-- [user3@servertmp]$ echo "miing didin unang dodit" > bagito Menghapus salah satu perijinan ACL [root@servertmp]# setfacl -b bagito [root@servertmp]# ls -l -rw-r--r--. 1 root root 24 Jun 12 21:09 bagito File bagito sudah memiliki 2 perijinan ACL, untuk user3 dan group acluser. Kita akan menghapus salah satu ijin ACL, yaitu ijin untuk group acluser. [root@servertmp]# setfacl -x g:acluser bagito [root@servertmp]# getfacl bagito # file: bagito # owner: root # group: root user::rwuser:user3:rwx group::r-- mask::rwx other::r-- [user1@servertmp]$ echo "miing didin" > bagito -bash: bagito: Permission denied [user2@servertmp]$ echo "miing didin unang" > bagito -bash: bagito: Permission denied 63

Terlihat bahwa setelah ijin ACL group acluser dihapus, maka anggota group tersebut tidak dapat lagi mengedit file bagito. Menghapus seluruh perijinan ACL Contoh di atas menunjukan cara menghapus ijin ACL satu-persatu. Berikut ini adalah cara untuk menghapus seluruh perijinan yang diberikan dengan ACL. [root@servertmp]# mkdir acldir [root@servertmp]# ls -l drwxr-xr-x. 2 root root 4096 Jun 12 23:49 acldir [user1@servertmp]$ touch acldir/mamalia touch: cannot touch `acldir/mamalia': Permission denied [root@servertmp]# setfacl -m u:user1:rwx acldir [root@servertmp]# ls -l total 32044 drwxrwxr-x+ 2 root root 4096 Jun 12 23:51 acldir [user1@servertmp]$ touch acldir/mamalia Seperti yang terlihat, file bagito tidak lagi memiliki tanda '+' di perijinannya. Jadi seluruh perijinan acl dari file bagito sudah terhapus. Memberikan ijin acl kepada direktori Pemberian ijin ACL pada direktori sama dengan pada file. Sebelum user1 diberi ijin acl, dia tidak dapat membuat file di direktori acldir. Setelah diberikan ijin acl, barulah dia dapat membuat file dalam direktori acldir. Memberikan ijin ACL secara recursive Apabila menggunakan setafcl seperti biasa pada sebuah direktori, kita hanya akan memberikan ijin acl kepada direktori tersebut. File dan subdirektori yang berada dalam direktori tersebut tidak terkena dampaknya. 64

[root@servertmp]# mkdir acldir2 [root@servertmp]# touch acldir2/file1 [root@servertmp]# touch acldir2/dir1 [root@servertmp]# ls -l drwxr-xr-x. 2 root root 4096 Jun 13 09:22 acldir2 [root@servertmp]# ls -l acldir2 -rw-r--r--. 1 root root 0 Jun 13 09:22 dir1 -rw-r--r--. 1 root root 0 Jun 13 09:22 file1 [root@servertmp]# setfacl -R -m g:acluser:rwx acldir2 [root@servertmp]# ls -l acldir2 total 8 -rw-rwxr--+ 1 root root 0 Jun 13 09:22 dir1 -rw-rwxr--+ 1 root root 0 Jun 13 09:22 file1 [root@servertmp]# ls -l total 32052 drwxrwxr-x+ 2 root root 4096 Jun 13 09:22 acldir2 [root@servertmp]# getfacl acldir2 # file: acldir2 # owner: root # group: root user::rwx group::r-x group:acluser:rwx mask::rwx other::r-x [root@servertmp]# getfacl acldir2/file1 # file: acldir2/file1 # owner: root # group: root user::rwgroup::r-- group:acluser:rwx mask::rwx other::r-- 65

[root@servertmp]# getfacl acldir2/dir1 # file: acldir2/dir1 # owner: root # group: root user::rw- group::r-- group:acluser:rwx mask::rwx other::r-- Dengan menambahkan option -R, kita bisa membuat perijinan acl pada sebuah direktori sekaligus dengan seuluruh isinya. Membuat perijinan sebuah direktori menjadi default Option -R akan memberikan perijinan secara recursive pada direktori dan seluruh isinya, akan tetapi file atau dirketori yang baru dibuat tidak akan memiliki acl. File atau direktori baru harus diatur lagi perijinan aclnya. Agar file dan direktori baru yang dibuat didalamnya langsung memiliki perijinan acl, kita gunakan option -d. Dengan option -d, semua file atau direktori baru yang dibuat, secara default akan memiliki perijinan acl. Dan hasil dari command getfacl terhadap acldir2 pun sudah berbeda dari sebelumnya. Menghapus pengaturan default ACL 66

[root@servertmp]# setfacl -d -m g:acluser:rwx acldir2 [root@servertmp]# getfacl acldir2 # file: acldir2 # owner: root # group: root user::rwx group::r-x group:acluser:rwx mask::rwx other::r-x default:user::rwx default:group::r-x default:group:acluser:rwx default:mask::rwx default:other::r-x [root@servertmp]# touch acldir2/file2 [root@servertmp]# getfacl acldir2/file2 # file: acldir2/file2 # owner: root # group: root user::rwgroup::r-x #effective:r-- group:acluser:rwx #effective:rwmask::rwother::r-- Untuk menghapus setting ACL default tidak sama dengan menghapus setting biasa. Option [root@servertmp]# setfacl -k acldir2 [root@servertmp]# touch acldir2/file3 [root@servertmp]# ls -l acldir2 total 12 -rw-rwxr--+ 1 root root 0 Jun 13 09:22 dir1 -rw-rwxr--+ 1 root root 0 Jun 13 09:22 file1 -rw-rw-r--+ 1 root root 0 Jun 13 10:07 file2 -rw-r--r--. 1 root root 0 Jun 13 13:22 file3 67

yang digunakan untuk menghapus setting acl default pada sebuah direktori adalah dengan option -k. Setelah setting default dihapus dengan option -k, file3 yang baru dibuat tidak memiliki perijinan acl. Semoga penjelasan singkat saya dapat membantu dalam memahami acl. Untuk mengetahui lebih banyak tentang acl, silakan baca manual dari setfacl dan getfacl. Memahami dan Mengontrol SELinux SELinux atau Security Enhanced Linux adalah fasilitas access control aplikasi yang secara default disertakan pada distro Red Hat, CentOS, Fedora dan turunan Red Hat lainnya. Fungsinya mirip dengan Novell AppArmor yang terdapat pada sistem SUSE Linux-openSUSE & SLES. Tujuannya baik, yaitu mengamankan aplikasi dari modifikasi/akses yang tidak diinginkan, namun bagi para pemula, feature ini bisa membingungkan karena kerap menanyakan berbagai pertanyaan terkait aspek keamanan saat melakukan konfigurasi sistem. Ada dua mode yang dipakai SELinux, "enforce" dan "permissive". Jika ingin mempelajari SELinux dan menginginkan aplikasi/program yang diblok oleh SELinux tetap berjalan, alangkah lebih baik memakai mode "permissive". Jadi, kita dapat mengetahui aplikasi/program/service apa saja yang diblok oleh SELinux (bisa dilihat dengan "SELinux Troubleshooter" dalam mode desktop/grafis atau memakai "audit2why" dalam text mode), tetapi aplikasi/program/service tetap berjalan. setenforce: mengubah mode SELinux yang sedang berjalan/aktif bukan untuk mengenable/disable SELinux-nya. # setenforce 1 atau # setenforce Enforcing 68

Berarti mengubah SELinux yang sedang aktif menjadi enforcing mode, yang arti kasarnya adalah: jika ada program, aplikasi, ataupun proses yang tidak memenuhi target policy yang sudah didefinisikan, maka SELinux akan memblok proses atau program tersebut # setenforce 0 atau # setenforce Permissive Berarti mengubah SELinux yang sedang aktif menjadi permissive mode, yang arti kasarnya adalah: jika ada program, aplikasi, ataupun proses yang tidak memenuhi target policy yang sudah didefinisikan, maka SELinux akan tidak memblok proses atau program tersebut, tetapi melaporkan ke dalam system log dan/atau selinux audit log sehingga dapat diakses laporannya dapat diakses oleh user (misalkan dengan setroubleshooter). Disable SELinux Untuk mendisable SELinux, masuk ke file konfigurasi SELinux dengan langkah seperti di bawah ini: #nano /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. #SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted 69

Restart CentOS 6.5 dan cek status SELinux : # init 6 # sestatus SELinux status: disabled 70

BAB 4 RPM DAN KICKSTART SUBAB MATERI Konfigurasi Network Menginstall, mengupdate, dan menghapus perangkat lunak Queri RPM dan Verifikasi Depedensi Otomatis Administarsi jarak jauh (SSH) Key Terms Depedensi Repository RPM Putty SSH Upgrade Update 71

IP address adalah alamat-alamat unik perangkat elektronik yang digunakan untuk mengidentifikasi dan berkomunikasi dengan satu sama lain pada jaringan komputer. Alamat ini ditentukan dengan menggunakan standar IP (Internet Protocol). Dalam istilah sederhana, IP address ditentukan dan dikelola oleh IANA (Internet Assigned Numbers Authority). IP Address merupakan jalan yang digunakan untuk melakukan koneksi dengan PC pada sebuah infrastruktur jaringan, sehingga IP Address sangat penting untuk diperhatikan. Sebab dengan IP Address sebuah PC bisa terhubung dengan jaringan yang lebih luas seperti internet. Setiap sistem operasi memiliki cara konfigurasi yang berbeda-beda, baik itu Windows, Linux, MacOS, atau BSD. Dalam konfigurasi IP Address di CentOS memiliki beberapa cara yaitu dalam mode GUI dan mode text. Berikut ini akan dibahas mengenai konfigurasi network di centos 6.5 Konfigurasi Network Untuk melakukan konfigurasi network di centos ini dapat dilakukan dengan beberapa cara diantara nya dengan mode bebasis GUI (Graphical User Interface) dan dengan mode text/ CUI (Command User Interface). Konfigurasi network dengan metode GUI telah dilakukan saat instalasi, sekarang melakukan konfigurasi dengan metode text / CUI (Command User Interface) dapat dilakukan dengan beberapa langkah berikut: Sebelum melakukan konfigurasi network, sebaiknya melakukan pengecekan adapter yang terpasang pada PC terlebih dahulu dengan menggunakan perintah berikut ini: [root@server ~]# ifconfig -a more Perintah ini akan menampilkan adapter yang digunakan pada PC tersebut. Adapter adalah pengatur penyesuaian alat, suatu kartu yang digunakan untuk menyesuaikan dan menambah fitur dari suatu komputer. Setelah mengetahui adapter yang digunakan kemudian untuk melakukan konfigurasi network dapat dilakukan dengan menggunakan perintah berikut ini: [root@server ~]# nano /etc/sysconfig/network-scripts/ifcfg-eth0 72

Ketika perintah tersebut di enter akan muncul tampilan seperti berikut ini: DEVICE=eth1 HWADDR=08:00:27:1A:C5:44 TYPE=ETHERNET ONBOOT=YES BOOTPROTO=STATIC IPADDR=167.205.78.118 NETMASK=255.255.255.0 Catatan: DEVICE. Mendeskripsikan perangkat (LAN CARD) yang digunakan pada pc tersebut. BOOTPROTO. Default dari BOOTPROTO adalah dhcp, ganti menjadi static, artinya kita menkonfigurasi IP Addressnya secara static(manual), bukan dhcp. ONBOOT. Menetukan apakah LAN CARD akan diaktifkan pada saat boot. HWADDR. Merupakan identitas dari MAC address. IPADDR. Memberikan identitas dan menentukan alamat IP address yang digunakan. NETMASK. Menentukan range IP address yang terkoneksi ke LAN. GATEWAY.Digunakan untuk mendeskripkan perangkat yang menghubungkan jaringan komputer besar dengan jaringan komputer besar lainnya. Untuk menyimpan konfigurasi tersebut dengan menekan tombol Ctrl+O lalu ENTER. Setelah itu, restart network dengan mengeksekusi perintah berikut ini: [root@server ~]# /etc/init.d/network restart 73

Jika konfigurasi network yang telah dilakukan sebelumnya benar dan berhasil akan tampil pesan seperti berikut ini: Shutting down interface eth3: Device state: 3 (disconnected) [ OK ] Shutting down interface eth4: Device state: 3 (disconnected) [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Menginstall, mengupdate dan menghapus perangkat lunak Setelah melakukan konfigurasi network dan kini PC dapat terhubung dengan jaringan internet. Untuk tahap selanjutnya yaitu menginstall, mengupdate dan menghapus perangkat lunak. Sebelumnya, untuk dapat menginstall, mengupdate dan menghapus perangkat lunak. Seperti system operasi linux lainnya terlebih dahulu melakukan konfigurasi repository. Repository adalah sebuah istilah yang berarti "Gudang", yaitu gudang tempat penyimpanan paket-paket dan dependensi yang dikhususkan untuk linux. Dalam administrasi sistem Linux CentOS secara praktis tidak jauh berbeda dengan RHEL dan Fedora sehingga secara tidak langsung jika anda saat ini sudah pernah menggunakan salah satu dari Distro yang sudah penulis sebutkan, maka anda tidak akan kesulitan dalam menerapkan perintah tersebut di CentOS. Beberapa hal yang perlu diperhatikan ketika menggunakan CentOS adalah perihal repository. Repository merupakan kumpulan beberapa paket yang terkumpul secara lengkap, sehingga memudahkan penguna dalam proses installasi,update dan upgrade sistem. Sebelum melakukan konfigurasi repository, konfigurasi terlebih dahulu proxy nya dengan perintah berikut ini: [root@server ~]# export http_proxy=cache3.itb.ac.id:8080 Untuk melakukan konfigurasi repository dapat mengeksekusi perintah berikut ini lalu enter [root@server ~]# nano /etc/yum.repos.d/centos-base.repo 74

Kemudian akan muncul tampilan seperti berikut ini: # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=centos-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basear ch&rep$ #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-centos-6 #released updates [updates] name=centos-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basear ch&rep$ #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-centos-6 #additional packages that may be useful [extras] name=centos-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basear 75

ch&rep$ #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-centos-6 #additional packages that extend functionality of existing packages [centosplus] name=centos-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basear ch&rep$ #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch / gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-centos-6 #contrib - packages by Centos Users [contrib] name=centos-$releasever - Contrib mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basear ch&rep$ #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-centos-6 Catatan: Merupakan repository yang mengandung paket RPM yang didapatkan dari paket ISO versi CentOS yang anda install. Repository yang menyediakan seluruh paket update security, bugs yang sudah diperbaiki dan update dari repository base. 76

Repository tambahan yang distribusinya langsung dari para pengembang CentOS, paket ini juga baik untuk digunakan sebab sudah mengalami pengujian sebelumnya. Repository ini hampir sama dengan contrib yaitu repository yang didapatkan dari komunitas CentOS, hanya saja yang membedakannya adalah repository ini memiliki beberapa paket update yang terbaru sehingga sangat baik jika digunakan untuk memperbarui (update) paket yang sudah lama terinstal. Merupakan kumpulan paket yang disediakan dari kontribusi komunitas CentOS (CentOS Project). Perangkat lunak yang terdapat di repository ini tidak akan mengakibatkan konflik dengan paket dasar CentOS, repository contrib ini aman sebab sudah di uji sebelumnya oleh komunitas. Tampilan diatas merupakan tampilan asli dari CentOS. Jika ingin melakukan update untuk repository bisa langsung dilakukan. Dan setelah melakukan update dapat melakukan penginstalasian packet-packet yang diinginkan. Apabila ingin menggunakan repository lokal lainnya edit file konfigurasi di atas dengan menginputkan link repository lokal yang hendak digunakan. Jika koneksi internet yang digunakan kurang baik (lambat), maka untuk repository bisa melalui DVD repository untuk CentOS (local). Dapat dilakukan dengan mengikuti langkahlangkah berikut ini: 1. Siapkan DVD lalu masukan ke DVD ROM. 2. Setelah DVD dimasukan dan terdeteksi perangkatnya. Lalu, buat direktori untuk hasil mounting DVD CentOS ke direktori media. Dengan mengeksekusi perintah berikut ini: [root@server ~]# mkdir /media/centos 3. Lalu, mount DVD CentOS ke direktori yang sudah dibuat sebelumnya. Dengan mengeksekusi perintah berikut ini: [root@server ~]# mount /dev/cdrom /media/centos 77

4. Kemudian, edit file CentOS-Media.repo untuk mengkonfigurasi settingan media repositorynya. Dengan mengeksekusi perintah berikut ini: [root@server ~]# nano /etc/yum.repos.d/centos-media.repo Setelah di enter akan muncul tampilan seperti ini # CentOS-Media.repo # # This repo can be used with mounted DVD media, verify the mount point for # CentOS-6. You can use this repo and yum to install items directly off the # DVD ISO that we release. # # To use this repo, put in your DVD and use it with the other repos too: # yum --enablerepo=c6-media [command] # # or for ONLY the media repo, do this: # # yum --disablerepo=\* --enablerepo=c6-media [command] [c6-media] name=centos-$releasever - Media baseurl=file:///media/centos/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-centos-6 78

Ubah enabled dari 0 menjadi 1 kemudian save dengan menekan tombol Ctrl+O lalu ENTER 5. Untuk melakukan instalasi hanya melalui DVD repo tersebut, dapat dilakukan dengan mengeksekusi perintah berikut ini: [root@server ~]# yum --disablerepo=\* --enablerepo=c6-media [command] [nama_package] Catatan: [command] dapat menginstall, mengupdate, atau menghapus packet 6. Setelah instalasi selesai, untuk mengeject DVD dapat dilakukan dengan mengeksekusi perintah berikut ini: [root@server ~]# eject /dev/cdrom Queri RPM dan Verifikasi RPM (Red Hat Package Manager) Salah satu utilitas yang paling powerful dan inovatif dari RedHat Linux adalah RPM, RedHat Package Manager. Teknologi RPM adalah sebuah cara yang paling mudah untuk melakukan instalasi, uninstalasi, ugrade, query, verify dan mem-build paket software.pada Red Hat Package Manager (RPM), instalasi paket tidak pernah interaktif. Hal ini berbeda dengan manajemen paket pada platform lain, desain RPM tidak menyediakan konfigurasi interaktif dari perangkat lunak sebagai bagian dari proses pengambilan paket. RPM dapat membentuk aksi konfigurasi sebagai bagian dari instalasi tetapi skrip yang dibentuk tidak interaktif. Hal ini umum digunakan pada paket untuk menginstal dengan konfigurasi default. Sebaliknya beberapa perangkat lunak diinstall pada bagian yang tidak dikonfigurasi. RPM mengatur instalasi paket software, maintenance/upgrade dan menghapus paket software dari system, atau lebih dikenal dengan install dan uninstall (install /remove). 79

Jika bagian dari paket perangkat lunak yang diberikan berubah (menjadi bug) maka keseluruhan paket akan di-release ulang sebagai versi baru. State RPM ditulis sebagai nomor versi dari semua komponen yang di-install. RPM dan QUERY RPM menyediakan perintah query dengan sintak rpm q paket_apa informasi_apa Untuk mendapatkan daftar semua paket yang di-install, digunakan perintah: rpm qa Untuk memperoleh nama, termasuk versi dan release, digunakan perintah rpm q nama_paket Untuk melihat paket selain nama digunakan perintah rpm qi nama_paket rpm ql nama_paket Parameter yang biasa dipakai untuk menentukan paket adalah : -qa semua paket yang di-install -q nama_paket nama paket dan versinya -qf nama_file paket yang mempunyai file -qp nama_file_paket file paket (mungkin belum di-install) --kebutuhan kapabilitas semua paket yang membutuhkan kapabilitas --ketersediaan kapabilitas semua paket yang menyediakan kapabilitas Parameter informasi query yang biasa digunakan -I informasi paket umum -l file paket --kebutuhan prasyarat paket --ketersediaan kapabilitas yang disediakan paket --skrip skrip menjalankan instalasi dan menghapus --ubahlog history revisi paket --formatquery format informasi format tertentu 80

Untuk uninstall paket pilihan yang digunakan rpm qip file_paket.i386.rpm rpm qlp file_paket.i386.rpm Verifikasi RPM Verifikasi pada saat instalasi paket membandingkan ukuran file, ijin akses, pemilik, group, MD5 checksum, modifikasi waktu dengan data pada basis data. Beberapa inkonsistensi data akan dilaporkan. Paket yang di-install juga diverifikasi dengan file paketnya menggunakan format perintah rpm -V nama_paket -> verifikasi nama_paket terinstal dengan basis data RPM. rpm -Va -> verifikasi semua RPM dengan basis data RPM. rpm -Vp file_paket.i386.rpm -> verifikasi paket terinstal dengan file paket file_paket. Verifikasi Signature RPM Red Hat menandai semua file paket dengan GPG private signature. Untuk verifikasi integritasi semua file paket, pertama kali harus mengimport Red Hat public key. Utilitas rpm secara otomatis melakukan verifikasi signature dari semua paket yang di-install. Untuk memeriksa integritas file gunakan pilihan --checksig. rpm import gpg_key rpm -qa gpg_pubkey rpm --checksig file_paket.i386.rpm Untuk melakukan pengecekanya dapat dilakukan dengan perintah berikut ini: [root@server ~]# rpm -qa openssh openssh-5.3p1-94.el6.i686 [root@server ~]# 81

Depedensi Otomatis Dependensi berarti paket lain yang dibutuhkan untuk menjalankan sebuah paket. dengan menggunakan rpm paket- paket pendunkung atau depedensi tersebut akan terinstall secara otomatis beserta paket utama yang terinstall. Atau dalam kata lain secara langsung terinstall dalam 1 paket tanpa harus menginstall secara terpisah. Dapat dieksekusi dengan perintah berikut ini: [root@server ~]# yum --disablerepo=\* --enablerepo=c6-media install squid Administrasi jarak jauh (SSH) SSH (Secure Shell) adalah aplikasi pengganti remote login seperti telnet, rsh, dan rlogin, yang jauh lebih aman. Dikembangkan pertamakali oleh OpenBSD project dan kemudian versi rilis p (port) di-manage oleh team porting ke sistem operasi lainnya, termasuk sistem operasi Linux. Fungsi utama aplikasi ini adalah untuk mengakses mesin secara remote. Bentuk akses remote yang bisa diperoleh adalah akses pada mode teks 82

maupun mode grafis/x apabila konfigurasinya mengijinkan. scp yang merupakan anggota keluarga ssh adalah aplikasi pengganti rcp yang aman, keluarga lainnya adalah sftp yang dapat digunakan sebagai pengganti ftp. Dengan SSH, semua percakapan antara server dan klien di-enkripsi. Artinya, apabila percakapan tersebut disadap, penyadap tidak mungkin memahami isinya. Bayangkan seandainya Anda sedang melakukan maintenance server dari jauh, tentunya dengan account yang punya hak khusus, tanpa setahu Anda, account dan password tersebut disadap orang lain, kemudian server Anda diobrak-abrik setelahnya. OpenSSH adalah versi bebas tersedia dari keluarga (SSH) protokol Secure Shell alat untuk jauh mengendalikan komputer atau mentransfer file antara komputer. Alat tradisional yang digunakan untuk mencapai fungsi-fungsi, seperti telnet atau rcp, merasa tidak aman dan mengirimkan password user dalam teks-jelas saat digunakan. OpenSSH menyediakan daemon server dan alat klien untuk memfasilitasi aman, remote control dienkripsi dan operasi file transfer, efektif menggantikan alat warisan. Komponen server OpenSSH, sshd, mendengarkan terus menerus selama koneksi klien dari salah satu alat klien. Ketika permintaan koneksi terjadi, sshd mendirikan sambungan yang benar tergantung pada jenis alat menghubungkan klien. Sebagai contoh, jika komputer remote menghubungkan dengan aplikasi ssh klien, server OpenSSH membuat sebuah sesi remote control setelah otentikasi. Jika remote user terhubung ke server OpenSSH dengan scp, daemon OpenSSH server memulai salinan aman file antara server dan klien setelah otentikasi. OpenSSH dapat menggunakan metode otentikasi, termasuk kata sandi polos, kunci publik, dan tiket Kerberos. PENGUNAAN SSH SSH adalah sebuah protokol yang dapat digunakan untuk berbagai aplikasi. Beberapa aplikasi di bawah ini mungkin membutuhkan fitur-fitur yang hanya tersedia atau yang kompatibel dengan klien atau server SSH yang spesifik. Sebagai contoh, menggunakan protokol SSH untuk mengimplementasikan VPN adalah dimungkinkan, tapi sekarang hanya dapat dengan implementasi server dan klien OpenSSH. 83

untuk login ke shell pada remote host (menggantikan Telnet dan rlogin) untuk mengeksekusi satu perintah pada remote host (menggantikan rsh) untuk menyalin file dari server lokal ke remote host. Lihat SCP, sebagai alternatif untuk rcp dalam kombinasi dengan SFTP, sebagai alternatif yang aman untuk FTP transfer file dalam kombinasi dengan rsync untuk mem-backup, menyalin dan me-mirror file secara efisien dan aman untuk port forwarding atau tunneling port (jangan dikelirukan dengan VPN yang rute paket antara jaringan yang berbeda atau menyambung dua wilayah broadcast menjadi satu) untuk digunakan sebagai VPN yang terenkripsi penuh. Perhatikan bahwa hanya OpenSSH server dan klien yang mendukung fitur ini untuk meneruskan X11 melalui beberapa host untuk browsing web melalui koneksi proxy yang dienkripsi dengan klien SSH yang mendukung protokol SOCKS untuk mengamankan mounting direktori di server remote sebagai sebuah sistem file di komputer lokal dengan menggunakan SSHFS untuk mengotomasi remote monitoring dan pengelolaan server melalui satu atau lebih dari mekanisme seperti yang dibahas di atas Ada tiga jenis port forwarding dengan SSH: Port forwarding lokal : koneksi dari klien SSH akan diteruskan melalui server SSH, maka ke server tujuan Port forwarding remote : koneksi dari server SSH akan diteruskan melalui klien SSH, maka ke server tujuan Port forwarding dinamis : koneksi dari berbagai program akan diteruskan melalui klien SSH, maka melalui server SSH, dan akhirnya ke server tujuan beberapa Port forwarding lokal adalah jenis yang paling umum. Sebagai contoh, port forwarding lokal memungkinkan Anda melewati firewall perusahaan yang menghalangi Wikipedia. 84

Pada local port forwarding, komputer yang bertindak sebagai ssh client akan menjadi titik masuk koneksi yang akan diforward dan komputer yang bertindak sebagai ssh server menjadi titik keluar. Jadi koneksi yang masuk ke titik masuk di komputer ssh client akan diforward ke tujuan dari komputer ssh server. Gambar di bawah ini ilustrasi lain dari ssh local port forwarding. Port forwarding remote kurang umum. Sebagai contoh, port forwarding jauh memungkinkan Anda terhubung dari server SSH ke komputer di intranet perusahaan Anda. Pada remote port forwarding, komputer yang bertindak sebagai ssh server akan menjadi titik masuk koneksi yang akan diforward dan komputer yang bertindak sebagai ssh client menjadi titik keluar. Jadi koneksi yang masuk ke titik masuk di komputer ssh server akan diforward ke tujuan dari komputer ssh client. Gambar di bawah ini ilustrasi lain dari ssh remote port forwarding. Jadi yang perlu diingat dalam perbedaan antara local dan remote port forwarding adalah posisi titik masuk koneksi yang akan diforward. Bila titik masuknya ada di komputer yang berperan sebagai ssh client, maka itu adalah local port forwarding, namun bila titik masuknya di komputer ssh server, maka itu adalah remote port forwarding. 85

Dalam bahasa sederhananya, disebut local karena dari sudut pandang ssh client, titik masuknya ada di localhost, dan disebut remote karena titik masuknya bukan di localhost, tapi di komputer ujung sana. Akses SSH menggunakan Putty Protokol SSH adalah cara aman untuk membuat sambungan aman ke sistem remote, anda mungkin ingin meremote server anda yang menggunkan sistem operasi linux, sedangkan sistem operasi komputer anda menggunakan windows, putty adalah solusi yang tepat untuk remote server linux anda. Dengan menggunakan putty dengan kata lain anda melalukan komunikasi antara dua sistem (komputer dan remote server vps). Putty dapat di download dari situs resmi Putty. Untuk merealisasikan penggunaan putty ini dapat dilakukan dengan skema berikut ini: Setelah mendownload Putty, install aplikasi Putty tersebut. Proses instalasi akan mudah dan dibutuhkan hanya beberapa detik. Setelah proses instalasi selesai, langsung saja buka putty 86

Langkah-langkah penggunaannnya sebagai berikut : 1) Masukan alamat ip vps atau server anda pada kolom Host Name or (IP Address) 2) Masukan nomer port ssh server default adalah 22 3) Klik tombol open 87

4) Login keladam server : untuk mengisi login as harus benar passwordnya juga harus tepat sesuai dengan password user yang akan di gunakan untuk remote. 5) Jika Anda berhasil masuk hal yang terpenting disini jika kita ingin akses full administrator komputer linux yang di remote tadi harus masuk sebagai root. Dengan menggunakan putty ini, akses dapat digunakan lenih mudah karena akses dapat dilakukan dimana saja dengan cara remote-access. 88

BAB 5 PELENGKAP SISTEM DAN ADMINISTRASI USER SUBAB MATERI : Membuat User Baru Menangani User Membuat dan Menangani Grup Membuat Model Grup User Pribadi Membuat Direktori Grup: Mode SGID Inisiasi Lingkungan User Pengotomatisan Administrasi Sistem: cron Subsistem Memahami, Memelihara, dan Monitoring Sistem Log Key Terms User Group UID GID Cron Log Shell Path Direktori 89

User pada linux terdapat 2 macam yaitu root (administrator) dan user biasa. User root tidak bisa lebih dari satu. Root berlaku sebagai super admin yang memiliki hak penuh, sedangkan user biasa memiliki hak akses terbatas. User biasa bisa lebih dari satu jumlahnya. Membuat User Baru Useradd memiliki fungsi utilitas untuk menambahkan user ke sistem. Sintaksnya : useradd [-u uid [-o]] [-g group] [-G group,?] [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire] [-p passwd] [-n] [-r] name atau useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire] Keterangan : -u : nomor UID (User ID), UID ini selalu dimulai dari 500 -g : nomor GID (Group ID), GUID ini juga selalu dimulai dari 500 -G : group tambahan -d : direktori home untuk user -s : default shell (biasanya /bin/bash) -c : info atau deskripsi nama login -m : direktori home akan diciptakan bila belum ada -k : bersama -m memberi isi direktori home -f : jumlah hari sebelum account tersebut kedaluarsa (password lewat masa berlakunya) -e : tanggal nama login beakhir atau kedaluarsa (expired) -p : password yang telah di enkripsi -D : menetapkan konfigurasi default name : nama login 90

Sedangkan ada option lain untuk membuat user baru yang lebih sederhana, yaitu dengan menggunakan sintaks: useradd [nama user] Perintah tersebut akan membuat user baru sesuai dengan nama user yang kita masukan. Perhatikan juga bahwa pembuatan user tersebut akan membuatkan 1 direktori sesuai dengan nama user tersebut pada direktori /home. Selain itu, default group user ini adalah nama user itu juga. Contohnya seperti dibawah ini: [root@server ~]# useradd coba1 Menangani User passwd memiliki fungsi utilitas untuk merubah password user. Sintaksnya : passwd [name] Keterangan: name : nama login user Contohnya seperti dibawah ini: [root@server ~]# passwd coba1 Changing password for user coba1. New password: Retype new password: passwd: all authentication tokens updated successfully. userdel memiliki fungsi utilitas untuk menghapus user dari sistem, dengan sintaks : userdel [-r] name 91

Keterangan: -r : bila disertakan parameter ini maka direktori home user turut di hapus name : nama login Contohnya seperti dibawah ini: [root@server ~]# userdel -r coba1 Membuat Grup dan Menangani Group Group digunakan untuk mengelompokan banyak user yang memiliki persamaan kedalam suatu kelompuk, group biasa diguankan untuk mempermudah penanganan user, terutama untuk masalah keamanan grroupadd memiliki fungsi utilitas untuk membuat group baru. Sintaksnya: groupadd [-g gid[-o]] [-r] [-f] [namagroup] Keterangan: -g : nilai group-id -o : Jika optioan ini dijalankan, maka group-id boleh merupakan duplikasi dari GID yang sudah ada -r : menambah group sebagaimana bagian dari sistem dengan GID lebih kecil dari 500. -f : force, akan memaksa groupadd untuk menghentikan proses, jika sudah ada di /etc/group Sedangkan ada option lain untuk membuat user baru yang lebih sederhana, yaitu dengan menggunakan sintaks: groupadd [nama group] 92

Perintah tersebut akan membuat suatu group baru. Saat baru dibuat group ini akan kosong, artinya tidak ada anggota pada group ini. Seperti penjelasan di atas, bahwa setiap pembuatan GID ini akan dimulai dari 500. Contohnya seperti dibawah ini: [root@server ~]# groupadd group1 groupdel memiliki fungsi utilitas untuk menghapus suatu group dari system. Sintaksnya: groupdel [namagroup] [root@server ~]# groupdel group1 Contohnya seperti dibawah ini: Membuat Model Grup User Pribadi Untuk memasukkan user yang telah kita buat menjadi anggota suatu group yang sudah ada, caranya: usermod -G [nama group] [nama user] [root@server ~]# userrmod G group2 coba2 Contohnya seperti dibawah ini: Untuk memasukkan user yang telah kita buat, menjadi anggota beberapa group yang sudah ada, caranya: usermod -G [nama group 1],[nama group 2] [nama user] [root@server ~]# userrmod G group2,group3 coba2 93

Contohnya seperti dibawah ini: Dengan perintah diatas, maka kita memindahkan user dari group yang dimiliki sebelumnya ke group yang baru yang kita tuliskan setelah -G. Agar keanggotaan group yang telah dimiliki sebelumnya tidak hilang, maka kita gunakan perintah: usermod -a -G [nama group 1],[nama group 2] [nama user] Contohnya seperti dibawah ini: [root@server ~]# userrmod G group2,group3 coba2 Inisiasi Lingkungan User Setiap user dalam Linux pasti memiliki direktori /home masing-masing. Direktori /home ini otomatis ada ketika pembuatan user baru. Di bawah ini merupakan isi di dalam direktori /home pada user: [root@server ~]# ls /home/comlabs/ Desktop Downloads Music Public Videos Documents Pictures Templates Selain itu, pada direktori /home pada user masih terdapat beberapa file atau direktori lain yang tak terlihat. Untuk melihat file atau direktori yang tersembunyi gunakan sintaks ls a. File atau direktori yang tersembunyi di awali dengan. (dot) pada awal namanya. Berikut tampilan isi direktori /home tersebut secara keseluruhan: 94

[root@server ~]# ls -a /home/comlabs/..bashrc Documents.gnome2.mozilla.pulsecookie...cache Downloads.gtk-bookmarks Music Templates.abrt.config.gvfs.nautilus Videos.bash_history.dbus.esd_auth.ICEauthority Pictures.xsession-errors.bash_logout Desktop.gconf.imsettings.log Public.bash_profile.dmrc.gconfd.local.pulse Kemudian, terdapat satu file yang memuat konfigurasi untuk user tersebut yaitu.bashrc. Berikut ini adalah isi dari file.bashrc tersebut: Pengotomatisan Administrasi Sistem: Cron Subsistem Cron merupakan sebuah daemon yang menjalankan tugas yang telah dijadwalkan berdasarkan input dari perintah crontab. Cron menyelesaikan tugas ini dengan menstandby-kan dirinya setiap menit dan memeriksa apakah ada cron-job yang harus dijalankannya berdasarkan crontab user. Dan harus diingat bahwa crontab adalah nama untuk daftar cron-job dan nama dari perintah untuk mengedit daftar tersebut. Cron hanya dapat diperintahkan/diprogram melalui Bourne shell (Bash shell). Segala perintah yang tak dikenal oleh Bash tak akan jalan. Jadi gunakan program dengan perintah Bash shell murni agar dapat dieksekusi oleh Cron. [root@server ~]# nano /home/comlabs/.bashrc #.bashrc # Source global definitions if [ -f /etc/bashrc ]; then. /etc/bashrc fi # User specific aliases and functions 95

Sedangkan Crontab menunjukkan tabel waktu yang kapan Cron dijalankan. Crontab sendiri berarti Cron table atau tabel waktu untuk Cron. Untuk menjadwal kapan sebuah program dieksekusi, crontab inilah yang dikonfigurasi. Ada 3 implementasi cron yang dikenal dalam GNU/Linux, yaitu: 1. Vixie cron Vixie cron merupakan implementasi penuh fitur berbasis SysV cron. Setiap user memiliki crontab-nya masing-masing dan boleh menentukan variabel lingkungan di dalam crontab tersebut. Tidak seperti varian cron yang lain, cron ini juga menawarkan dukungan untuk SeLinux dan PAM. Cron ini mendukung arsitektur lebih sedikit dari Dcron, tetapi lebih banyak dari Fcron. 2. Dillon s Cron Dcron diciptakan untuk menjadi implementasi cron yang sederhana, elegan dan aman. Implementasi ini tidak mengizinkan spesifikasi variabel lingkungan di crontab dan semua cron-job dijalankan dari /bin/sh. Seperti Vixie cron, setiap user boleh memiliki crontab-nya sendiri. 3. Fcron Fcron diciptakan untuk menjadi pengganti Vixie cron dan Anacron. Dirancang untuk bekerja pada sistem yang tidak selalu dinyalakan dan memiliki beberapa fitur tambahan. Memiliki penyekat startup job, kendali serialisasi job, kemampuan untuk menetapkan nilai nice ke job dan kemampuan untuk menjadwalkan job agar dijalankan ketika sistem startup. 4. Anacron Anacron bukanlah merupakan sebuah daemon cron, tetapi merupakan sesuatu yang biasanya bekerja sama dengan daemon cron. Anacron mengeksekusi perintah pada interval yang ditentukan dengan hitungan hari dan tidak menganggap bahwa sistem selalu menyala, cron akan menjalankan tugas-tugas yang terlewatkan ketika system sedang dimatikan. Anacron biasanya bergantung pada daemon cron untuk menjalankannya setiap hari. 96

Crontab di CentOS Pada umumnya, perintah yang paling sering digunakan pada crontab adalah: [root@server ~]# crontab -e 6. crontab -e Perintah tersebut digunakan untuk mengedit atau membuat file cron. [root@server ~]# crontab -l 7. crontab -l Perintah tersebut digunakan untuk melihat daftar cron. [root@server ~]# crontab -r 8. crontab -r Perintah tersebut digunakan untuk menghapus daftar cron. Dalam melakukan administrasi sistem, pengaturan cron dilakukan melalui file crontab, yang berisi jadwal waktu dan script yang harus dieksekusi. System Linux memiliki file crontab default, yaitu /etc/crontab, yang akan menjalankan beberapa script pada waktu yang telah ditentukan, misalnya setiap jam, harian, mingguan, dan bulanan. Untuk melihat [root@server ~]# cat /etc/crontab isi file crontab tersebut, lakukan perintah berikut: 97

SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Example of job definition: #.---------------- minute (0-59) #.------------- hour (0-23) #.---------- day of month (1-31) #.------- month (1-12) OR jan,feb,mar,apr... #.---- day of week (0-6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,$ # Bagian pertama mengatur beberapa variabel: SHELL Baris pertama menentukan shell yang akan digunakan untuk menjalankan baris perintah. Defaultnya adalah /bin/bash. PATH Cron berjalan sebagai proses subshell, sehingga pengguna harus menentukan path atau menggunakan statement PATH pada crontab. Hal ini karena pengguna tidak melakukan login pada console pada saat akan menjalankan perintah, sehingga tidak mengakses file.bashrc atau.bash_profile, dan tidak memiliki environment variable seperti pada saat login sebagai user biasa atau root. Penting untuk diingat bahwa pengguna tidak bisa menampilkan data output tanpa menggunakan console pengguna tidak memiliki layar untuk menampilkan data tersebut, sehingga setiap output yang dibutuhkan harus disimpan dalam sebuah file log. 98

MAILTO Perintah MAILTO= pada baris berikutnya akan mengirimkan hasil dari pekerjaan cron kepada user root. Jika pengguna mendefinisikan MAILTO namun kosong, maka email dari cron akan diabaikan. Jika MAILTO tidak diset, maka email akan dikirimkan kepada user pemilik crontab. HOME Baris berikutnya menentukan direktori home yang akan digunakan oleh cron. Jika tidak diset, maka direktori home yang digunakan adalah yang ada pada file /etc/passwd. #.---------------- minute (0-59) #.------------- hour (0-23) #.---------- day of month (1-31) #.------- month (1-12) OR jan,feb,mar,apr... #.---- day of week (0-6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,$ # # * * * * * user-name command to be executed Format pengaturan waktu secara umum: Penjelasan : Format pengaturan waktu tersebut terdiri dari 7 kolom. Kolom pertama sampai kelima adalah * (bintang), kolom keenam user-name, dan kolom ketujuh command to be executed. Kolom 1 adalah menit, yaitu menunjukkan menit pada jam yg dipilih, nilainya 0-59. Kolom 2 adalah jam, yaitu menunjukkan jam pada hari/tanggal yang telah ditentukan. Nilainya 0-23. Kolom 3 adalah tanggal, yaitu menunjukkan tanggal pada bulan yang telah ditentukan. Nilainya 1-31. Kolom 4 adalah bulan, yaitu menunjukkan bilangan bulan. Nilainya 1-12 Kolom 5 adalah hari dalam minggu, yaitu menunjukkan urutan hari dalam seminggu. Nilainya 1-7 99

Kolom 6 adalah user yang diberi hak untuk melakukan perintah. (blok ini tidak selalu diperlukan) Kolom 7 adalah perintah atau letak file perintah. Beberapa entry khusus yang mungkin akan berguna: Entry Keterangan Equivalen @reboot Run satu kali, saat start None @yearly Run setahun sekali 0 0 1 1 * @annually (sama dengan @yearly) 0 0 1 1 * @monthly Run sebulan sekali 0 0 1 * * @weekly Run seminggu sekali 0 0 * * 0 @daily Run sehari sekali 0 0 * * * @midnight (sama dengan @daily) 0 0 * * * @hourly Run setiap jam 0 * * * * Operator / Sintaks Cron Ada beberapa cara untuk menentukan waktu: Koma (',') menentukan daftar nilai, contoh: "1,3,4,7,8" (spasi tidak digunakan dalam sebuah daftar). Dash ('-') menentukan sebuah range dari nilai, contoh: "1-6", equivalen dengan "1,2,3,4,5,6" Asterisk ('*') menentukan semua nilai yang mungkin. Contoh, asterisk pada kolom jam akan sama dengan setiap jam. Slash ('/') biasa di sebut "step", biasa digunakan untuk meloncati nilai tertentu. Contoh: "*/3" dalam jam artinya sama dengan "0,3,6,9,12,15,18,21". Tambahan: 1. Tanda * menunjukkan bahwa mengeksekusi perintah pada setiap waktu. 2. Apabila ingin menjadwalkan range pada salah satu bagian blok, maka bisa ditulis sebagai berikut: Setiap tanggal 1,2,5,9 1,2,5,9 100

Setiap 2 jam */2 atau 0-23/2 3. Untuk blok bulan dan hari bisa ditulis dengan huruf namun hanya harus menggunakan 3 huruf pertama bulan atau hari dan dalam bahasa Inggris. Contoh untuk bulan: jan,feb Contoh untuk hari : sun,mon 4. Blok keenam yang menunjukkan user tidak selalu harus ditulis. 5. log hasil eksekusi crontab dapat dibuat dengan cara menulisnya di file crontab. 30 6 * * 1 PATH/server.sh > PATH/server.log contoh: Perintah ini menunjukkan bahwa setiap jam 06.30 hari senin akan dieksekusi skrip server dan lognya akan di tulis di server.log 30 05 * * * root rm /var/log/httpd/* Contoh-Contoh Crontab: Perintah ini menunjukkan bahwa setiap hari pukul 05.30 pagi, perintah "rm /var/log/httpd/*" akan dieksekusi, yang berati akan menghapus semua file dalam folder /var/log/httpd. 10 05 01 * * root /bin/sh /etc/script.sh Perintah ini menunjukkan bahwa setiap tanggal 1 setiap bulannya akan dieksekusi 30 0 1 1,6,12 * rm /home/comlabs/* kumpulan perintah pada file "/etc/script.sh" Perintah ini menunjukkan bahwa setiap tanggal 1 jam 00.30 pada bulan januari, juni, dan desember akan dihapus file /home/comlabs/* 0 20 * 10 1-5 /usr/bin/freshclam -l /var/log/clamav/clam-update.log 101

Perintah ini menunjukkan bahwa setiap tanggal 1, 10, dan 15 setiap bulan tengah malam akan dijalankan script /usr/bin/freshclam dan menyimpan lognya di file /var/log/clamav/clam-update.log 5,10 0 10 * 1 rm /tmp/* @daily /etc/init.d/mysql restart Perintah ini menunjukkan bahwa setiap jam 12.05 dan 12.10 hari senin pada tanggal 10 setiap bulan akan menghapus file-file yang ada di direktory tmp. Perintah ini menunjukkan bahwa setiap hari pada tengah malam server akan menjalankan @weekly shutdown -r now perintah restart service MySQL Perintah ini menunjukkan bahwa setiap minggu pada tengah malam server akan menjalankan perintah shutdown dan restart. Praktikum Crontab Dalam praktikum ini, akan dilakukan perintah cron yang paling sederhana dengan langkahlangkah sebagai berikut: 1. Buat file crontab baru dengan menggunakan perintah crontab -e. Biasanya editor default editing crontab adalah vi (vim), tapi disini akan diganti menggunakan editor [root@server ~]# export VISUAL=nano nano. Untuk menggantinya, lakukan perintah berikut: Setelah itu, buat file crontab baru. [root@server ~]# crontab -e 102

2. Dalam praktikum ini, admin akan menjadwalkan bahwa system akan melakukan reboot kapan pun pada jam 14:36. Maka masukan perintah berikut: 36 14 * * * reboot Jika sudah, simpan konfigurasi tersebut dengan menekan tombol ctrl+o pada keyboard dan tombol ctrl+x untuk keluar dari file crontab e. 9. Untuk memastikan file crontab sudah tersimpan, lihat daftar crontab dengan [root@server ~]# crontab -l 30 14 * * * reboot melakukan perintah berikut: 10. Setiap tepat pukul 14:36, system akan otomatis melakukan reboot. Troubleshooting cron Menjalankan skrip php dengan query string di crontab * * * * * lynx -dump "http://example.com/query.php?s=1" Tambahkan petik ganda di URL skrip yang dijalankan. Menghindari proses bertumpuk Jika menjalankan sebuah program/perintah, katakanlah setiap 10 menit sekali, lalu perintah terus belum selesai selama 10 menit (katakanlah programnya mendownload kurs mata uang atau headline berita dari Internet, lalu koneksi internetnya timeout atau sangat lambat), maka 10 menit berikutnya akan distart sebuah instans baru dan kini akan ada dua perintah berjalan. 10 menit kemudian dapat bertambah lagi menjadi 3, dst. Sehingga terjadi penumpukan. Untuk mencegah penumpukan, program/perintah Anda perlu mengecek 103

keberadaan dirinya. Jika instans sebelumnya masih berjalan, segera exit, jangan berjalan lagi. Biasanya hal ini dilakukan dengan PID file. Jika program Anda ditulis dalam Perl, bisa mencoba melihat Proc::PID::File. Memahami, Memelihara, dan Monitoring Sistem Log Segala kegiatan di sistem UNIX (dan variannya seperti Linux, FreeBSD, Solaris, AIX, HPUX dan sejenisnya) dapat dicatat. Pencatatan ini digunakan untuk kebutuhan audit, yaitu memeriksa sistem jika dibutuhkan. Misalnya, jika terjadi kesalahan (error) maka administrator dapat lebih mudah mencari sumber kesalahan karena informasinya tercatat dengan rapi. Demikian pula jika terjadi penyalahgunaan fasilitas, maka dapat diketahui siapa yang melakukannya dan apa saja yang dilakukannya. Pencatatan kegiatan dilakukan dengan menuliskan data-data ke dalam berkas catatan yang sering disebut dengan nama logfile atau berkas log. Proses pencatatan ini sendiri sering disebut dengan istilah logging. Pada mulanya pencatatan ini dilakukan sekehendak dari sang pembuat program. Berkas log dapat disimpan dimana saja dengan format yang berbeda-beda. Bayangkan sebuah system UNIX yang memiliki banyak fungsi misalnya sebagai server database, server web, server email, dan seterusnya. Pencatatan yang berbeda-beda ini tentunya akan membingungkan administrator sehingga akhirnya muncul standar logging yang menggunakan fasilitas atau program syslog. Program syslog pada mulanya dikembangan oleh Eric Allman (yang juga membuat program mail sendmail). Saat ini sudah ada beberapa variasi dari program syslog tersebut. Namun pada intinya fungsinya adalah sama. Logs : Sebagian besar sistem operasi berbasis linux selalu menghasilkan banyak file log secara default, dimana file log tersebut menyimpan beberapa informasi mengenai jalannya sistem, baik itu informasi mengenai kegiatan normal, informasi debug, pesan keamanan otorisasi, pengingat email/web, dll). Jika tidak ada kegiatan rotasi pada beberapa macam file log yang ada sehingga suatu ketika file log menjadi besar dan semakin besar, memenuhi kapasitas ruang penyimpanan (sering terjadi pada server dengan trafik tinggi), 104

yang akan menciptakan horor kesulitan dalam pencarian informasi yang dibutuhkan pada file log tersebut karena kompleksitasnya. Suatu keberuntungan hal ini sudah bisa diatasi oleh kebanyakan sistem operasi berbasis linux sejak dulu karena para pengembang linux sudah memikirkannya jauh-jauh hari sebelum linux berkembang pesat seperti sekarang ini dan kita tidak perlu melakukan hal-hal khusus untuk menyetelnya, hal ini berfungsi di luar sepengetahuan kita, linux merotasinya secara otomatis tanpa disadari. Syslog merupakan aplikasi log bawaan yang terinstall di hampir semua distribusi linux. Syslog juga dapat digantikan dengan syslog-ng untuk beberapa fungsi yang lebih baik. Sesuai dengan penjelasan pada awal bagian file log pada dasarnya diatur oleh syslog dan tidak dirotasikan oleh logrotate melainkan oleh syslog itu sendiri. Pada bagian selanjutnya akan dibahas file log yang ditangani oleh logrotate. Jenis-jenis logging pada linux: lastlog Berisi rekaman kapan user login terakhir kali. Perintah : #lastlog xferlog Mencatat semua informasi yang pernah login di ftp daemon. access_log Berisi rekaman untuk layanan http (HyperText Transfer Protocol) atau layanan web server. error_log Berisi rekaman pesan kesalahan atas service http atau web server. Semua file log di Linux disimpan dalam direktori /var/log. Direktori /var/log merupakan direktori yang sangat familiar bagi setiap user. Di dalamnya disimpan pesanpesan yang dihasilkan oleh sistem. Berikut ini isi direktori /var/log: 105

File-file pesan tersebut sangat berguna untuk mendiagnosis masalah atau kesalahan sistem. dmesg Untuk menampilkan file dmesg, lakukan perintah berikut: [root@server ~]# tail -f /var/log/dmesg sr 1:0:0:0: Attached scsi generic sg0 type 5 sd 2:0:0:0: Attached scsi generic sg1 type 0 parport_pc 00:04: reported by Plug and Play ACPI microcode: CPU0 sig=0x206a7, pf=0x1, revision=0x0 platform microcode: firmware: requesting intel-ucode/06-2a-07 udev: renamed network interface eth0 to eth1 Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba ppdev: user-space parallel port driver Adding 2199544k swap on /dev/sda2. Priority:-1 extents:1 across:2199544k SELinux: initialized (dev binfmt_misc, type binfmt_misc), uses genfs_contexts dmesg adalah fungsi untuk melihat device yang berinteraksi dengan hardware seperti soundcard, vga, procc, cdroom, usb fdd, maupun memory yang tertancap di computer. File-file pesan tersebut sangat berguna untuk mendiagnosis masalah atau kesalahan sistem. 106

messages Untuk menampilkan file messages, lakukan perintah berikut: [root@server ~]# tail -f /var/log/messages Oct 1 22:24:28 server dhclient[7283]: DHCPREQUEST on eth1 to 167.205.62.58 port 67 (xid=0x769c1534) Oct 1 22:24:28 server dhclient[7283]: DHCPACK from 167.205.62.58 (xid=0x769c1534) Oct 1 22:24:28 server dhclient[7283]: bound to 167.205.79.207 -- renewal in 286 seconds. Oct 1 22:24:28 server NetworkManager[1131]: <info> (eth1): DHCPv4 state changed renew -> renew Oct 1 22:24:28 server NetworkManager[1131]: <info> address 167.205.79.207 Oct 1 22:24:28 server NetworkManager[1131]: <info> prefix 25 (255.255.255.128) Oct 1 22:24:28 server NetworkManager[1131]: <info> gateway 167.205.79.129 Oct 1 22:24:28 server NetworkManager[1131]: <info> nameserver '167.205.79.4' Oct 1 22:24:28 server NetworkManager[1131]: <info> nameserver '167.205.22.123' Oct 1 22:24:28 server NetworkManager[1131]: <info> domain name 'itb.ac.id' Maka akan muncul informasi-informasi service dan system di komputer tersebut. Beberapa keterangan yang ditampilkan adalah diantaranya date, nama komputer tempat kita menjalankan system atau service, dan informasi-informasi seputar system dan service yang dijalankan tersebut. 107

Secure Untuk menampilkan file messages, lakukan perintah berikut: Berisi informasi yang berkaitan dengan otentikasi dan otorisasi hak istimewa. Misalnya, sshd log semua pesan di sini, termasuk login yang gagal. [root@server ~]# tail -f /var/log/secure Oct 1 22:13:38 server sshd[8069]: Address 167.205.78.186 maps to wks- 186.comlabs.itb.ac.id, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! Oct 1 22:13:42 server sshd[8069]: Accepted password for root from 167.205.78.186 port 54915 ssh2 Oct 1 22:13:42 server sshd[8069]: pam_unix(sshd:session): session opened for user root by (uid=0) Oct 1 22:21:41 server sudo: root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=/bin/mkdir -p /var/www/test1.com/public_html Oct 1 22:22:27 server sudo: root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=/bin/chown -R www:www /var/www/example.com/public-html Oct 1 22:22:46 server sudo: root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=/bin/chmod 755 /var/www Oct 1 22:31:02 server sudo: root : TTY=pts/1 ; PWD=/home ; USER=root ; COMMAND=/usr/sbin/apachectl -k stop Oct 1 22:31:28 server sudo: root : TTY=pts/1 ; PWD=/home ; USER=root ; COMMAND=/etc/init.d/httpd restart Oct 1 22:31:30 server sudo: root : TTY=pts/1 ; PWD=/home ; USER=root ; COMMAND=/etc/init.d/httpd restart Oct 1 22:32:13 server sshd[8348]: Address 167.205.78.186 maps to wks- 186.comlabs.itb.ac.id, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! 108

BAB 6 SERVICE HTTP SUBAB MATERI Apache Web Server Virtual Host Konfigurasi akses Apache PHP MysQl Server Key Terms Apache MysQl PHP Virtual Host Httpd Firewall 109

Apache Web Server Web Server adalah software server yang menjadi tulang belakang dari World Wide Web (WWW). Web server menunggu permintaan dari client yang menggunakan browser seperti netscape navigator, Internet Explorer, modzilla, dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu dan kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format yang standar disebut dengan format SGML (Standard General Markup Language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser itu. Contohnya ialah bila data yang dikirim berupa data gambar, browser yang hanya mampu menampilkan text (misalnya lynx) tidak akan mampu menampilkannya dan jika ada akan menampilkan alternatifnya saja. Web Server, untuk berkomunikasi dengan clientnya (web browser) mempunyai protokol sendiri yaitu HTTP (HyperText Transfer Protocol). Dengan protokol ini, komunikasi antar web server dengan clientnya (browser) dapat saling dimengerti dan lebih mudah. Seperti telah dijelaskan diatas, format data pada world wide web adalah SGML. Tapi para pengguna internet saat ini lebih banyak menggunakan format HTML (hypertext markup language) karena penggunaannya lebih sederhana dan mudah dipelajari. Kata HyperText mempunyai arti bahwa seorang pengguna internet dengan web browsernya dapat membuka dan membaca dokumen-dokumen yang ada dalam komputernya atau bahkan jauh tempatnya sekalipun. Hal ini memberikan cita rasa dari suatu proses yang tridimensional, artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya dengan mengklik beberapa bagian dari halamanhalaman dokumen (web) itu. Proses yang dimulai dari permintaan webclient (browser), diterima web server, diproses, dan dikembalikan hasil prosesnya oleh web server ke web client lagi dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa yang 110

terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya memproses semua masukan yang diperolehnya dari web clientnya. Macam - macam Web Server: Apache Web Server - The HTTP Web Server 1. Apache Tomcat 2. Microsoft windows Server 2003 Internet Information Services (IIS) 3. Lighttpd 4. Sun Java System Web Serverp 5. Xitami Web Server 6. Zeus Web Server IIS Internet Information Server : adalah komponen yang dapat digunakan untuk mengelola web, File Transfer Protocol (FTP), Ghoper, dan NNTP. Komponen IIS terdapat pada sistem operasi Windows NT,Windows 2000, Windows XP dan Windows Server 2003. Komponen pendukung IIS antara lain : 1) Protocol jaringan TCP/IP. 2) Domain Name System (DNS). 3) Direkomendasikan untuk menggunakan format NTFS demi keamanan. 4) Software untuk membuat situs web, salah satunya Microsoft FrontPage. AMPPS- merupakan aplikasi webserver ciptaan Softaculous dan bisa digunakan baik sebagai Webserver localhost ataupun di Onlinekan, karena AMPPS sudah mendukung banyak pengaplikasian, control panel yang sudah dapat diakses melalui browser dan sudah terintegrasi dengan segala pengaturan seperti hosting panel dan juga dapat langsung mengatur domain setting dan sebagainya. Softaculous Auto installer juga sudah termasuk disini, meskipun untuk memanfaatkan Auto installer ini diharuskan mempunyai koneksi internet. XAMPP Control Panel- adalah sebuah software web server apache yang didalamnya sudah tersedia database server mysql dan support php programming. XAMPP 111

merupakan software yang mudah digunakan, gratis dan mendukung instalasi di Linux dan Windows. Keuntungan lainnya adalah cuma menginstal satu kali sudah tersedia Apache Web Server, MySQL Database Server, PHP Support (PHP 4 dan PHP 5) dan beberapa module lainnya. Hanya bedanya kalau yang versi untuk Windows sudah dalam bentuk instalasi grafis dan yang Linux dalam bentuk file terkompresi tar.gz. Kelebihan lain yang berbeda dari versi untuk Windows adalah memiliki fitur untuk mengaktifkan sebuah server secara grafis, sedangkan Linux masih berupa perintah-perintah di dalam console. Oleh karena itu yang versi untuk Linux sulit untuk dioperasikan. Dulu XAMPP untuk Linux dinamakan LAMPP, sekarang diganti namanya menjadi XAMPP FOR LINUX. XAMPP merupakan tool yang menyediakan paket perangkat lunak ke dalam satu buah paket. Dengan menginstall XAMPP maka tidak perlu lagi melakukan instalasi dan konfigurasi web server Apache, PHP dan MySQL secara manual. XAMPP akan menginstalasi dan mengkonfigurasikannya secara otomatis atau auto konfigurasi. WAMPServer- WAMP adalah singkatan untuk Windows, Apache, MySQL, dan PHP (atau Perl atau Python). Ini adalah platform pengembangan Web yang mendefinisikan Sistem Operasi (Windows), Web Server (Apache), database (MySQL), dan bahasa scripting (PHP, Perl, atau Python). WAMP adalah sebuah installer yang akan menginstall paket aplikasi yang terdiri dari Apache, PHP, MySQL, PHPmyadmin, SQLitemanager, Wampserver service manager, secara bersamaan serta sekaligus mengkonfigurasinya sehingga dapat langsung digunakan.wamp menyediakan suatu lingkungan untuk mengembangkan aplikasi web programming yang bersifat server side, sehingga anda dapat menjalankan aplikasi yang dibuat dengan menggunakan bahasa pemorgraman PHP dan database MySQL, dengan server Apache, di atas sistem operasi Windows, secara lokal. Spesifikasi WAMPP untuk di install : o Kapasitas file installer : 1,04 o Processor speed : 200Mhz o Memory : 64 Mb RAM o Hardisk : 32 Mb free disk space 112

Cara kerja web server : Prinsip kerja program web server adalah memberikan informasi yang diminta oleh komputer client dan melayani setiap permintaan yang datang dari manapun. Informasi akan dikirimkan oleh komputer server dan akan diterima dan dibaca oleh komputer client melalui program browser. Cukup sederhana untuk dipahami, karena pada dasarnya tugas web server hanya ada 2 (dua), yaitu: 1) Menerima permintaan (request) dari client, dan 2) Mengirimkan apa yang diminta oleh client (response). 1. Client disini dapat berupa komputer desktop dengan minimal memiliki browser dan terhubung ke web server melalui jaringan (intranet atau internet). 2. Komputer yang berfungsi sebagai server, dimana didalamnya terdapat perangkat lunak web server. Agar komputer ini dapat diakses oleh client maka komputer harus terhubung ke jaringan (intranet atau internet). Dalam jaringan internet, komputer ini bisa saja bernama www.google.com, www.bl.ac.id, atau memiliki kode komputer (disebut IP Address) seperti 202.10.20.10 dan 200.100.50.25. 3. Pertama tama, client (user) akan meminta suatu halaman ke (web) server untuk ditampilkan di komputer client. Misalnya client mengetikkan suatu alamat (biasa disebut URL) di browser http://www.google.com. Client menekan tombol Enter atau 113

klik tombol Go pada browser. Lalu apa yang terjadi? Melalui media jaringan (bisa internet, bisa intranet) dan melalui protokol http, akan dicarilah komputer bernama www.google.com. Jika ditemukan, maka seolah olah terjadi permintaan, hai google, ada client yang minta halaman utama nich, ada dimana halamannya?. Inilah yang disebut request. 4. Sekarang dari sisi server (web server). Mendapat permintaan halaman utama google dari client, si server akan mencari cari di komputernya halaman sesuai permintaan. Namanya juga mencari, kadang ketemu, kadang juga tidak ketemu. Jika ditemukan, maka halaman yang diminta akan dikirimkan ke client (si peminta), namun jika tidak ditemukan, maka server akan memberi pesan 404. Page Not Found, yang artinya halaman tidak ditemukan. Salah satu perangkat lunak yang dipergunakan secara luas pada sistem operasi Linux adalah Apache webserver (http://www.apache.org). Pengembangannya yang dimulai dari tahun 1995 oleh sekelompok kecil pemrogram yaitu Apache Software Foundation incorporated, tahun 1999 mulai berkonsentrasi untuk mendukung projek Apache HTTP server. Dengan berbasis jumlah pengguna lebih dari 25 juta server di seluruh dunia, membuat Apache HTTP server mempunyai keunggulan dari sisi fleksibilitas dan performansi. Untuk fitur lain yang ditawarkan, adalah sebagai berikut: Tingkat stabilitas yang tinggi. Aplikasi secara keseluruhan, dan modul-modul tambahan bersifat opensource dengan masing-masing lisensi dari aplikasi. Bekerja pada berbagai macam platform arsitektur dan sistem operasi. Menghadirkan tingkat keamanan yang lebih baik. Dapat diintegrasikan dengan berbagai modul seperti PHP, MySQL, yang dapat menambah fungsionalitas dari webserver. Apache sendiri sebenarnya merupakan suatu web server yang dapat dikategorikan sederhana dalam implementasinya. Dan ini sesuai dengan tujuan awalnya sebagai penyedia layanan untuk halaman Internet. Beberapa web server komersial menyediakan berbagai macam fasilitas dalam lingkup web server, tetapi apabila ditelaah lebih lanjut malah akan menimbulkan celah keamanan yang cukup serius. Kesederhanaan dan desain bersifat 114

modular dari server HTTPD Apache membawa sejumlah aspek sekuritas yang tinggi dan hasil survey telah menunjukkan bahwa apabila dilakukan perbandingan kinerja akan menunjukkan banyak hal yang lebih baik, seperti yang telah dijelaskan pada bagian atas dari modul ini. Modul Apache Bagian penting yang membuat aplikasi server Apache fleksibel dan tinggi fungsionalitas yang tinggi adalah karena dapat dilengkapi dengan tambahan modul. Apache sendiri secara standar disertai berbagai macam modules yang secara otomatis akan diinstall. Untuk penjelasan lebih lanjut, dapat membuka alamat http://modules.apache.org. Terdapat berbagai informasi mengenai modul serta cara penginstallan yang perlu dilakukan. Beberapa contoh modul yang tersedia adalah sebagai berikut: 1. mod_digest Mengaktifkan layanan autentikasi digest. 2. mod_cgi Menyediakan fasilitas untuk mengeksekusi skrip CGI pada web server. 3. mod_php4 Fitur berikut ini adalah agar dapat mengeksekusi skrip PHP4 pada web server. 4. mod_php5 Fitur berikut ini adalah agar dapat mengeksekusi skrip PHP5 pada web server. 5. mod_perl Menyediakan fasilitas agar administrator dapat mengaktifkan interpreter Perl ke dalam web server apache. 6. mod_aspdotnet Menyediakan antar muka ASP.NET berbasis layanan Microsoft ASP.NET 7. mod_ssl Menyediakan figur kriptografi mellui protokol Secure Socket Layer (SSL) dan Transport Layer Security (TLS). 8. mod_ssi Mengaktifkan layanan yang mendukung Server Side Includes (SSI). 115

9. mod_auth Modul ini akan mengaktifkan layanan HTTP basic authentication (nama pengguna dan password). Virtual Host Pada webserver apache ada fitur menarik yang dikenal dengan istilah virtual host. Secara singkat virtual host merupakan metode yang digunakan untuk menunjukkan sebuah server atau PC yang menangani beberapa server HTTP. Misalnya terdapat dua domain yang berbeda tetapi hanya mempunyai satu server saja dan agar dua domain tersebut mempunyai website yang isinya berbeda, maka dengan menggunakan virtual host hal ini dapat terwujud. Jika server dihubungi dengan nama atau alamat IP tertentu maka server akan menanggapi dengan tanggapan yang berbeda jika server dihubungi dengan nama atau alamat IP lain. Fitur virtual host merupakan fitur bawaan dari apache sehingga tidak perlu untuk menginstalnya kembali tetapi cukup mengkonfigurasinya. Penerapan virtual host pada apache dibedakan menjadi dua yaitu virtual host berdasarkan nama atau Name-based virtual host dan virtual host berdasarkan alamat IP atau IP-based virtual host. Virtual host dikenal sebagai shared web hosting, virtual hosting memungkinkan pemilik website untuk memiliki situs web host pada server yang digunakan bersama-sama dengan situs-situs lain. Secara sederhana, virtual server perusahaan hosting akan mengalokasikan keluar layanan hosting dan bandwidth untuk lebih dari satu situs. Virtual web hosting adalah pilihan hosting yang lebih murah karena Anda tidak perlu membayar untuk sebuah server didedikasikan hanya host situs Web tersebut. 116

Jenis Virtual Host 1) Name based Virtual Host Name based virtual host menggunakan beberapa nama host untuk webserver yang sama alamat IP. Dengan web browser yang mendukung HTTP(seperti hampir semua sekarang lakukan), setelah tersambung ke suatu server web, browser mengirimkan alamat yang diketik pengguna ke dalam bar alamat browser (dengan URL). Server dapat menggunakan informasi ini untuk menentukan situs web, serta halaman, untuk menunjukkan pengguna. Browser menentukan alamat dengan mengatur HostHTTP header dengan host yang ditentukan oleh pengguna. Host header yang diperlukan dalam semua permintaan HTTP. Misalnya, server dapat menerima permintaan untuk dua domain, www.site1.com dan www.site2.com, keduanya menyelesaikan ke alamat IP yang sama. Untuk www.site1.com, server akan mengirimkan file HTML dari direktori /var/www/user/joe/situs/, sementara permintaan www.site2.com akan membuat server melayani halaman dari /var/www/user/maria/situs/. Contoh: Sebuah blog dapat di hosting server menggunakan basis Nama hosting www.blog1.blogserver.com dan www.blog2.blogserver.com. Kekurangan dari name based adalah jika Domain Name Sistem (DNS) tidak benar berfungsi, itu menjadi jauh lebih sulit untuk mengakses virtual-host situs. Pengguna dapat mencoba untuk kembali menggunakan alamat IP untuk menghubungi sistem, seperti dalam http://10.23.45.67/. Sebuah solusi dalam hal ini adalah dengan menambahkan alamat IP dan nama host untuk sistem klien. Pengguna harus berhati-hati ketika melakukan hal ini, Namun, seperti perubahan apapun yang benar pemetaan antara nama host dan alamat IP akan ditulis oleh pengaturan lokal. Masalah lain dengan virtual hosting adalah ketidakmampuan untuk host beberapa situs Web aman berjalan secure socket atau SSL. Karena SSL handshake terjadi sebelum nama host yang diharapkan dikirim ke server, server tidak tahu mana yang sertifikat yang ada saat terkoneksi. Salah satu solusi adalah dengan menjalankan beberapa program server web, masing-masing masuk dari tempat berbeda yang masih memungkinkan sistem hanya menggunakan satu alamat IP. 117

Contoh konfigurasi minimal Virtual host dengan Name-based : Listen 80 NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot path_webserver ServerName nama_situs </VirtualHost> Apabila mempunyai dua domain yaitu websatu.com dan webdua.com dan ingin membuatnya menjadi web dapat mengkonfigurasi apache seperti berikut: NameVirtualHost *:80 <VirtualHost *:80> ServerName www.websatu.com DocumentRoot /www/web1 </VirtualHost> <VirtualHost *:80> ServerName www.webdua.com DocumentRoot /www/web2 </VirtualHost> Dengan konfigurasi seperti diatas, apache akan menjalankan 2 buah virtual host websatu dan webdua. Request client ke URL http://www.websatu.com akan diarahkan ke directory /www/web1 sedangkan request client ke URL http://www.webdua.com akan diarahkan ke directory /www/web2. Untuk mode Name-based perlu ditambahkan konfigurasi NameVirtualHost *:80 yang fungsinya untuk mendefinisikan Name-based virtual host dengan IP * (sembarang) pada port 80. 118

2) IP Based Virtual Host Di IP based virtual hosting setiap situs (baik sebuah DNS hostname atau kelompok yang bertindak DNS hostname sama) menunjuk ke alamat IP yang unik. Web server dikonfigurasikan dengan beberapa antarmuka jaringan fisik, antarmuka jaringan virtual pada antarmuka fisik yang sama atau beberapa alamat IP pada satu antarmuka. Web server dapat memperoleh alamat koneksi TCP ini dimaksudkan untuk menggunakan standar API (American Petroleum Institute) dan menggunakan ini untuk menentukan situs web untuk melayani. Klien tidak terlibat dalam proses ini dan karena itu (berbeda dengan nama yang didasarkan virtual hosting) tidak ada masalah kompatibilitas. Kekurangan dari jenis ip based adalah server memerlukan alamat IP yang berbeda untuk setiap situs web yang berarti biaya lebih tinggi situs web hosting dan mengarah ke alamat IP. Contoh konfigurasi minimal Virtual Host dengan IP-based : Listen 80 <VirtualHost xxx.xxx.xxx.x:80> DocumentRoot path_webserver ServerName nama_situs </VirtualHost> Jika terdapat sebuah server dengan dua kartu jaringan masing-masing IP 192.168.1 dan 192.168.1.9 maka kita bisa mengkonfigurasi sebagai berikut: Listen 80 <VirtualHost 192.168.1.1:80> DocumentRoot /www/web1 ServerName www.websatu.com </VirtualHost> <VirtualHost 192.168.1.9:80> DocumentRoot /www/web2 ServerName www.webdua.com </VirtualHost> Dengan konfigurasi seperti diatas, apache akan menjalankan 2 buah virtual host 119

pada 2 buah IP 192.168.1.1 dan 192.168.1.9 Request client ke 192.168.1.1 akan diarahkan ke directory /www/web1 sedangkan request client ke IP 192.168.1.9 akan diarahkan ke directory /www/web2. Konfigurasi Listen 80 akan memerintahkan apache untuk melayani request pada port 80 (port http). 3) Port-based Virtual Host Nomor port default untuk HTTP adalah 80. Namun, sebagian besar webservers dapat dikonfigurasi untuk beroperasi di hampir semua nomor port, asalkan nomor port tidak digunakan oleh program lain di server. Sebagai contoh, server mungkin host website www.example.com.namun, jika ingin mengoperasikan situs kedua, tidak memiliki akses ke konfigurasi nama domain untuk nama domain atau tidak memiliki alamat IP lain yang bisa digunakan untuk melayani situs tersebut bisa dengan menggunakan nomor port lain, misalnya www.example.com:81untuk port 81, atau www.example.com:8000 untuk port 8000. Kekurangan pada jenis ini adalah kebanyakan orang tidak akrab dengan non-standar menggunakan nomor port, dan nomor port yang lebih rumit mungkin lebih sulit untuk diingat. Kebanyakan webcrawlers berasumsi port 80 (default) saat mencoba merangkak situs dan begitu mungkin kehilangan non-standar nomor port. Manusia juga mungkin tidak menyadari non-standar nomor port dan mungkin tidak menyadari ke mana untuk melihat untuk mencari situs web. Non-standar menggunakan nomor port juga dapat dilihat sebagai tidak profesional dan tidak menarik bagi pengguna. Beberapa firewall, baik hardware atau software, blok semua tapi port yang paling umum. Ini akan menyebabkan situs non-host pada port standar untuk muncul tidak tersedia untuk beberapa pengguna. Namun, nonstandar nomor port telah menemukan aplikasi pada perangkat lunak berbasis HTTP backends seperti Bit Torrent tracker mengumumkan script, yang merupakan bagian dari perangkat lunak backend dan biasanya tidak sepenuhnya dapat dilihat oleh pengguna. Jenis ini biasanya hanya digunakan untuk situs-situs "rahasia" seseorang atau sebuah perusahaan. Dan juga perlu diingat bahwa port tersebut dalam keadaan terbuka. Secara ringkas, format virtual host berdasar port ini adalah sebagai berikut: 120

Listen xx Listen xxx NameVirtualHost yyy.yyy.yyy.yy:xx NameVirtualHost yyy.yyy.yyy.yy:xxx <VirtualHost yyy.yyy.yyy.yy:xx> DocumentRoot path_webserver ServerName nama_situs </VirtualHost> <VirtualHost yyy.yyy.yyy.yy:xxx> DocumentRoot path_webserver ServerName nama_situs </VirtualHost> Apabila terdapat dua domain seperti contoh di atas dan ingin menggunakan virtual host based port, maka konfigurasinya sebagai berikut: Listen 80 Listen 8080 NameVirtualHost 192.168.1.1:80 NameVirtualHost 192.168.1.9:8080 <VirtualHost 192.168.1.1:80> DocumentRoot /www/web1 ServerName www.websatu.com </VirtualHost> <VirtualHost 192.168.1.9:8080> DocumentRoot /www/web2 ServerName www.webdua.com </VirtualHost> 121

Konfigurasi Akses Apache Untuk melakukan konfigurasi akses apache ini. Pada CentOS 6.5 packet apache nya ialah httpd. Langkah-langkah yang dilakukan adalah sebagai berikut: 1. Installkan packet apache terlebih dahulu dengan syntax berikut: [root@server ~]# yum install httpd Ketika proses instalasi akan muncul permintaan seperti berikut maka pilih y kemudian enter. 2. Setelah packet terinstall, lalu restart http dengan perintah: root@server ~]# service httpd httpd 122

Apabila ketika melakukan restart failed seperti gambar di atas jangan khawatir karena itu wajar. Berarti packet http sebelumnya belum aktif. Maka, lakukan restart kembali dan akan berhasil. 3. Selanjutnya, masuk ke file konfigurasi httpd.conf dengan syntax berikut ini root@server ~]# nano /etc/httpd/conf/httpd.conf Lalu, tekan tombol Ctrl+W untuk mencari line ServerName www.example.com:80 Tambahkan script berikut ini: Kemudian save konfigurasi dengan Ctrl+O dan Enter. 4. Lalu, restart httpd dengan perintah betikut ini: root@server ~]# service httpd restart 5. Setelah itu, jalankan syntax berikut ini untuk memastikan jika packet httpd telah up atau berjalan. Dengan perintah berikut ini: root@server ~]# chkconfig httpd on 6. Karena, CentOS memiliki tingkat kemanan yg cukup baik. Tidak sembarang port akan terbuka hanya port-port tertentu saja. Maka, untuk itu terlebih dahulu melakukan konfigurasi firewall untuk membuka port bagi service httpd ini. Port untuk httpd ini adalah port80 (https:443). Konfigurasi dapat dilakukan di file /etc/sysconfig/iptables dengan menjalankan syntax berikut ini: root@server ~]# nano /etc/sysconfig/iptables 123

Di dalam fil tersebut tampilanya seperti berikut ini: # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT Tambahkan menjadi seperti berikut ini: # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT Lalu, save konfigurasi dengan Ctrl+O dan Enter. 124

7. Lalu, restart iptables dengan perintah: [root@server ~]# service iptables restart iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ] 8. Kemudian, cek pada browser apakah konfigurasi yang dilakukan berhasil. Jika ia tampilan pada browser saat diakses akan seperti ini: http://[alamat ip address] Berikut merupakan tampilan halaman welcome home dari CentOS. 9. Sedangkan untuk menampilkan DocumentRoot pada browser. Konfigurasi pada file /etc/httpd/conf.d/welcome.conf seperti berikut ini: root@server ~]# nano /etc/httpd/conf.d/welcome.conf Tampilan awalnya adalah sebagai berikut: # This configuration file enables the default "Welcome" # page if there is no default index page present for # the root URL. To disable the Welcome page, comment # out all the lines below. # <LocationMatch "^/+$"> Options -Indexes ErrorDocument 403 /error/noindex.html </LocationMatch> 125

Lalu. Edit menjadi seperti ini: Tambahkan tanda pagar (#) pada line <LocationMatch> hingga </LocationMatch> # This configuration file enables the default "Welcome" # page if there is no default index page present for # the root URL. To disable the Welcome page, comment # out all the lines below. # #<LocationMatch "^/+$"> # Options -Indexes # ErrorDocument 403 /error/noindex.html #</LocationMatch> Lalu, save konfigurasi dengan Ctrl+O dan Enter. 10. Lalu, restart httpd dengan perintah betikut ini: root@server ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] 11. Kemudian, cek pada browser apakah konfigurasi yang dilakukan berhasil. Jika ia tampilan pada browser saat diakses akan seperti ini: http://[alamat ip address] 126

12. Dan untuk menampilkan halaman dengan berbasis html dapat dilakukan dengan melakukan konfigurasi seperti berikut ini. Pertama, masuk ke di rektori /var/www/html lalu buat file index.html da nisi file index html tersebut sesuai dengan format. Berikut adalah syntax nya: root@server ~]# cd /var/www/html root@server html]# touch index.html root@server html]# ls index.html root@server html]# nano index.html Tekan Enter untuk nano index.html, lalu akan muncul tampilan nya dan ketikan scrypt berikut ini: <html> <head> <title> Test </title> <body> <h1> Selamat datang di Institut Teknologi Bandung </h1> </body> </html> Lalu, save konfigurasi dengan Ctrl+O dan Enter. 13. Lalu, restart httpd dengan perintah betikut ini: root@server ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] 14. Kemudian, cek pada browser apakah konfigurasi yang dilakukan berhasil. Jika ia tampilan pada browser saat diakses akan seperti ini: http://[alamat ip address] 127

PHP PHP adalah singkatan dari PHP Hypertext Preprocessor yang digunakan sebagai bahasa script server-side dalam pengembangan Web yang disisipkan pada dokumen HTML. Berbeda dengan HTML yang hanya bisa menampilkan konten statis, PHP bisa berinteraksi dengan database, file dan folder, sehingga membuat PHP bisa menampilkan konten yang dinamis dari sebuah website. Karena penggunaan PHP memungkinkan Web dapat dibuat dinamis, maintenance situs Web tersebut menjadi lebih mudah dan efisien. PHP merupakan software Open- Source yang disebarkan dan dilisensikan secara gratis serta dapat di-download secara bebas dari situs resminya http://www.php.net. PHP ditulis menggunakan bahasa C. Keunggulan PHP PHP memiliki banyak kelebihan yang tidak dimiliki oleh bahasa script sejenis. PHP difokuskan pada pembuatan script server-side, yang bisa melakukan apa saja yang dapat dilakukan oleh CGI, seperti mengumpulkan data dari form, menghasilkan isi halaman web dinamis, dan kemampuan mengirim serta menerima cookies, bahkan lebih dari pada kemampuan CGI. PHP dapat digunakan pada semua sistem operasi, antara lain Linux, Unix (termasuk variannya HP-UX, Solaris, dan Open BSD), Microsoft Windows, Mac OS, RISC OS. PHP juga mendukung banyak Web Server, seperti Apache, Microsoft Internet Information Server (MIIS), Personal Web Server (PWS), Netcape and iplanet servers, Oreilly Website Pro Server, audium, Xitami, OmniHTTPd, dan masih banyak lagi lainnya, bahkan PHP dapat bekerja sebagai suatu CGI Processor. PHP tidak terbatas pada hasil keluaran HTML (Hyper Text Markup Language). PHP juga memiliki kemampuan untuk mengolah keluaran gambar, file PDF, dan movie flash. PHP juga dapat menghasilkan text seperti XHTML dan file XML lainnya. 128

Salah satu fitur yang dapat diandalkan oleh PHP yakni dukungannya terhadap banyak database seperti Adabas D, dbase, Direct MS-SQL, Empress, FrontBase, Hyperwave, IBM DB2, Informix, Ingres, Interbase, MSQL, MySQL, ODBC, Oracle, Ovrimos, PostgrSQL, Solid, Sybase, Unix DBM dan Velocis. Umumnya database MySQL digunakan untuk bekerja sama dengan PHP. PHP memiliki 8 tipe data, yaitu: 1) Boolean 2) Integer 3) Float/ Double 4) String 5) Array 6) Object 7) Resource 8) NULL Karakteristik script PHP dapat diuraikan sebagai berikut : 1. file PHP disimpan dengan extensi filenya yaitu : *.php3, *.php4, *.php 2. Script PHP biasanya diawali dengan tag <? atau <?php dan ditutup dengan tag?> 3. File PHP dapat menginduk atau disisipkan pada bahasa script lainnya atau dapat berdiri sendiri. Contoh skrip PHP yang disisipkan pada HTML : <html> <head> <title>contoh</title> </head> <body> <?php echo "Hai, Aku adalah skrip PHP!";?> </body> </html> 129

Sedang bentuk skrip PHP yang berdiri sendiri : <?php echo "Hai, Aku adalah skrip PHP!";?> NB : echo(), berfungsi untuk menampilkan output. Selanjutnya, untuk melakukan pengkonfigurasian di CentOS 6.5 ini dapat dilakukan dengan melakukan langkah-langkah berikut ini : 1. Installkan terlebih dahulu packet php dengan menggunakan perintah berikut ini: [root@server ~]# yum install php php-mysql Ketika proses instalasi akan muncul permintaan seperti berikut maka pilih y kemudian enter. 2. Setelah packet terinstall, untuk menampilkan informasi dari php yang sudah diinstalkan tersebut di browser. Buatlah test page untuk memeriksa apakah apache, php dan modul php berjalan dengan semestinya. Dengan mengetikan perintah berikut ini: [root@server ~]# nano /var/www/html/test.php 130

Kemudian akan tampil sebuah halaman dan buatlah script sebagaimana berikut ini: <?php phpinfo();?> Lalu, save file tersebut dengan menekan tombol Ctrl+ O kemudian Enter. 3. Setelah itu, restart httpd dengan perintah berikut ini: [root@server ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] 4. Kemudian buka browser dan periksa apakah konfigurasi yang dilakukan berhasil atau tidak. Dengan mengetikan pada browser seperti berikut ini: http://[alamat ip address]/test.php Apabila berhasil maka tampilan nya kan seperti berikut ini: http://[alamat ip address]/test.php 131

MysQl Server MySQL adalah sistem manajemen database SQL yang bersifat Open Source dan paling populer saat ini. Sistem Database MySQL mendukung beberapa fitur seperti multithreaded, multi-user, dan SQL database managemen sistem (DBMS). Database ini dibuat untuk keperluan sistem database yang cepat, handal dan mudah digunakan. Ulf Micheal Widenius adalah penemu awal versi pertama MySQL yang kemudian pengembangan selanjutnya dilakukan oleh perusahaan MySQL AB. MySQL AB yang merupakan sebuah perusahaan komersial yang didirikan oleh para pengembang MySQL. MySQL sudah digunakan lebih dari 11 millar instalasi saat ini. Informasi-informasi terbaru mengenai MySQL dapat diperoleh dengan mengunjungi http://www.mysql.com/. 132

Kelebihan MySQL Berikut ini beberapa kelebihan MySQL sebagai database server antara lain : 1) Source MySQL dapat diperoleh dengan mudah dan gratis. 2) Sintaksnya lebih mudah dipahami dan tidak rumit. 3) Pengaksesan database dapat dilakukan dengan mudah. 4) MySQL merupakan program yang multithreaded, sehingga dapat dipasang pada server yang memiliki multicpu. 5) Didukung programprogram umum seperti C, C++, Java, Perl, PHP, Python, dsb. 6) Bekerja pada berbagai platform. (tersedia berbagai versi untuk berbagai sistem operasi). 7) Memiliki jenis kolom yang cukup banyak sehingga memudahkan konfigurasi sistem database. 8) Memiliki sistem sekuriti yang cukup baik dengan verifikasi host. 9) Mendukung ODBC untuk sistem operasi Windows. 10) Mendukung record yang memiliki kolom dengan panjang tetap atau panjang bervariasi. MySQL dan PHP merupakan sistem yang saling terintegrasi. Maksudnya adalah pembuatan database dengan menggunakan sintak PHP dapat di buat. Sedangkan input yang di masukkan melalui aplikasi web yang menggunakan script serverside seperti PHP dapat langsung dimasukkan ke database MySQL yang ada di server dan tentunya web tersebut berada di sebuah web server. Untuk melakukan konfigurasi MysQl sebelumnya installkan packet mysql terlebih dahulu dengan menggunakna perintah berikut ini: 1. Menginstall packet mysql [root@server ~]# yum install mysql Ketika proses instalasi akan muncul permintaan seperti berikut maka pilih y kemudian enter. 133

2. Lalu, aktifkan packet mysql dengan menjalankan perintah berikut ini: [root@server ~]# service mysqld start Starting mysqld: [ OK ] [root@server ~]# 3. Kemudian, untuk masuk ke mysql menggunakan perintah berikut ini: [root@server html]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, 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. 134

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> Saat diminta password tekan Enter saja. Untuk menampilkan database nya gunakan peritnah berikut ini: mysql> show databases; +--------------------+ Database +--------------------+ information_schema mysql test +--------------------+ 3 rows in set (0.00 sec) mysql> 135

BAB 7 SERVIS NETWORK FILE SHARING SUBAB MATERI : Mengkonfigurasi NFS Server Instalasi File Transfer Protocol dan vsftpd Samba Services Mengkonfigurasi Servis File Menggunakan Samba Key Terms NFS Sharing Mount FTP VSFTPD Samba SMB NMB 136

Mengkonfigurasi NFS Server Dalam sistem file lokal Linux terdiri atas root, diikuti dengan direktori, files dan subdirektori. Sistem file dapat dikembangkan pada setiap partisi logical di harddisk, sehingga menjadi satu sistem file yang besar. Melalui utilitas mount kedua sistem file tersebut dapat digabungkan menjadi satu. Pengembangan sistem file tersebut dapat juga dilakukan melalui jaringan, yaitu dengan melekatkan sistem file komputer lokal dengan sistem file yang berada di komputer di jaringan. Melalui utilitas mount kedua sistem file tersebut dapat digabungkan menjadi satu. Network File System (NFS) adalah salah suatu layanan (service) yang dapat memungkinkan suatu komputer untuk melakukan proses mount suatu direktori / peralatan pada komputer lain. Dengan menggunakan NFS, suatu komputer dapat berbagi file, data dan bahkan program antara sesama klien yang terhubung ke server utama. NFS juga memungkinkan suatu komputer untuk melakukan pengaktifan/penggunaan (mounting) peralatan pada komputer lain yang terhubung ke jaringan. Saat ini terdapat 2 versi NFS yaitu NFS versi 2 (NFSv2) dan NFS versi 3 (NFSv3). NFSv2 lebih lama tetapi sudah didukung oleh berbagai macam mesin dan sistem operasi. Sedangkan NFSv3 lebih baru dan mempunyai beberapa fitur tambahan misalnya pesan kesalahan yang lebih baik, kemampuan untuk menangani file yang ukurannya bervariasi. Redhat Linux 9 secara default menggunakan NFSv3. NFSv2 menggunakan protokol UDP untuk melakukan koneksi antara server dan client, sedangkan NFSv3 menggunakan protokil UDP dan TCP sekaligus. Terminologi NFS 1. NFS Server Merupakan computer / host yang menyediakan sistem file (via direktori) yang dapat diakses oleh komputer lain. Langkah server adalah : a. Menyiapkan direktori yang akan di-share. 137

b. Kemudian melakukan konfigurasi sharing direktori yang sudah disiapkan. 2. NFS Client Merupakan komputer/host yang memanfaatkan sistem file yang disediakan oleh NFS Server. Sedangkan langkah client adalah a. Menyiapkan direktori yang dipakai untuk menampung sharing direktori dari server. b. Kemudian melakukan konfigurasi pengambilan file lewat sharing dengan tempat penampungan telah disiapkan di langkah a. Untuk melakukan hal tersebut NFS client memakai UDP (User Datagran Protocol) untuk mengirim permintaan/request I/O melalui jaringan dengan menggunakan Remote Procedure Call (RPC). Request ini akan diterima oleh NFS Server melalui proses daemon yang bernama nfsd. RPC adalah layanan (service) yang dikendalikan oleh suatu program yang disebut portmap. Untuk melakukan proses sharing dan mount pada NFS, terdapat beberapa layanan yang bekerja secara bersama-sama yaitu : nfs menjalankan proses RPC untuk melayani permintaan sistem file NFS. nfslock layanan tambahan yang menjalankan proses RPC untuk mengijinkan NFS client untuk mengunci file pada server. portmap layanan RPC pada Linux yang merespon semua permintaan layanan RPC dan melakukan koneksi ke layanan RPC yang diminta. Berikut ini adalah proses-proses RPC yang bekerja bersama-sama di belakang layar untuk memfasilitasi terjadinya layanan NFS 138

rpc.mountd proses ini menerima permintaan mount (pengaktifan device/direktori) dan melakukan proses verifikasi sistem file yang dieksport. Proses ini dijalankan secara otomatis oleh service NFS dan tidak membutuhkan konfigurasi dari user. rpc.nfsd ini adalah proses utama NFS server yang bekerja pada kernel Linux untuk memenuhi kebutuhan NFS client. rpc.lockd merupakan proses tambahan yang mengijinkan NFS client untuk mengunci file pada server. rpc.statd Proses ini menjalankan Network Status Monitor (NSM) yaitu protokol RPC yang memberikan pesan kepada NFS client pada saat NFS server dijalankan ulang (restart). Proses ini dijalankan secara otomatis oleh service NFS dan tidak membutuhkan konfigurasi dari user. rpc.rquotad Proses ini menyediakan informasi kuota pemakai (user quota) untuk remote user. Proses ini dijalankan secara otomatis oleh service NFS dan tidak membutuhkan konfigurasi dari user. Berikut ini adalah langkah-langkah instalasi dan konfigurasi NFS Server: 1. Langkah pertama, install terlebih dahulu paket NFS server pada server. Berikut ini sintaksnya: [root@server ~]# yum install y nfs-utils 139

2. Lalu, membuat NFS server agar bisa berjalan pada sistem boot dengan mengetikkan sintaks: [root@server ~]# chkconfig --levels 235 nfs on 3. Kemudian aktifkan service NFS pada server dengan mengetikkan sintaks seperti dibawah ini: [root@server ~]# service nfs start 140

4. Masuk ke client, install-kan juga paket NFS server pada client seperti langkah pada nomor 1. Berikut ini sintaksnya: [root@server ~]# yum install y nfs-utils 5. Pada server, buat direktori nfs pada /var untuk menyimpan file nfs. Berikut ini sintaksnya: [root@server ~]# mkdir /var/nfs 6. Selanjutnya ubah ownership pada /var/nfs menjadi user/group dengan ID 65534 agar bisa di akses. Berikut ini sintaksnya: [root@server ~]# chown 65534:65534 /var/nfs 7. Selain itu, ubah juga permission pada /var/nfs menjadi 755 agar bisa mengeksekusi direktori tersebut. Berikut ini sintaksnya: [root@server ~]# chmod 755 /var/nfs 8. Tahap selanjutnya adalah mengedit file konfigurasi pada /etc/exports, dimana file ini akan menyimpan konfigurasi file yang diexport pada sharing NFS. Sebagai contoh, /home dan /var/nfs akan menjadi sharing NFS, dan juga mengkonfigurasi agar /home dapat diakses sebagai root. Berikut ini sintaks untuk membuka file tersebut: [root@server ~]# nano /etc/exports 141

Kemudian tambahkan konfigurasi seperti contoh dibawah ini, pada konfigurasi ini yang dimasukkan adalah ip address client yang akan mengakses NFS server. Untuk menjadikan /home dapat diakses sebagai root menggunakan opsi no_root_squash. /home /var/nfs 167.205.78.58(rw,sync,no_root_squash,no_subtree_check) 167.205.78.58(rw,sync,no_subtree_check) 9. Agar konfigurasi tersebut dapat berjalan efektif, maka ketikkan sintaks seperti berikut pada server: [root@server ~]# exportfs -a 10. Pada client, sebelum akan me-mounting sharing NFS harus membuat terlebih dahulu direktori untuk menyimpan hasil mounting tersebut. Berikut ini sintaksnya: [root@server ~]# mkdir -p /mnt/nfs/home [root@server ~]# mkdir -p /mnt/nfs/var/nfs 11. Setelah itu, coba mount sharing NFS dari server pada client. Berikut ini adalah sintaksnya: mount [ip address server]:[direktori yg akan dimount] [direktori hasi mounting] 142

Contohnya adalah sebagai berikut: [root@server ~]# mount 167.205.78.50: /var/nfs /mnt/nfs/var/nfs 12. Untuk melihat output sharing NFS tersebut ketikkan sintaks seperti dibawah ini: [root@server ~]# df h Filesystem Size Used Avail Use% Mounted on /dev/sda1 4.9G 2.6G 2.1G 56% / tmpfs 250M 0 250M 0% /dev/shm 167.205.78.50:/home 4.9G 2.6G 2.1G 56% /mnt/nfs/home 167.205.78.50:/var/nfs 4.9G 2.6G 2.1G 56% /mnt/nfs/var/nfs atau dengan sintaks ini: [root@server ~]# mount /dev/sda1 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) nfsd on /proc/fs/nfsd type nfsd (rw) 167.205.78.50:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=167.205.78.50,clientaddr=167.205.78.58) 167.205.78.50:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=167.205.78.50,clientaddr=167.205.78.58) 143

13. Untuk melakukan pengetesan, coba buat file didalam sharing NFS pada client. Berikut ini contohnya: [root@server ~]# touch /mnt/nfs/home/test.txt [root@server ~]# touch /mnt/nfs/var/nfs/test.txt 14. Kemudian coba cek pada server apakah file tersebut ada pada server juga. Berikut ini sintaksnya: [root@server ~]# ls -l /home/ total 32 drwx------. 4 coba1 coba1 4096 Oct 6 17:34 coba1 drwx------. 4 coba2 coba2 4096 Oct 6 17:34 coba2 drwx------. 4 coba3 coba3 4096 Oct 6 17:34 coba3 drwx------. 5 comlabs comlabs 4096 Oct 13 16:20 comlabs drwxrwxrwx. 24 nobody nobody 4096 Oct 13 12:40 Comlabs drwx------. 4 samba_user samba_user 4096 Oct 15 08:52 samba_user -rw-r--r--. 1 root root 0 Oct 15 16:09 test.txt drwx------. 4 userftp userftp 4096 Oct 14 14:57 userftp drwx------. 4 usrsamba usrsamba 4096 Oct 15 12:01 usrsamba 15. Selain dengan cara manual untuk mounting sharing NFS seperti diatas, ada juga cara lain agar dapat mounting secara otomatis pada saat booting. Caranya dengan menambahkan konfigurasi pada file /etc/fstab pada client. Berikut ini sintaks untuk membuka file tersebut: [root@server ~]# nano /etc/fstab [root@server ~]# ls -l /var/nfs total 0 144 -rw-r--r--. 1 nfsnobody nfsnobody 0 Oct 15 16:09 test.txt

Kemudian tambahkan konfigurasi seperti bawah ini, ip address tersebut adalah ip address server. 16. Setelah disave, reboot client untuk mengetes konfigurasi yang telah dilakukan. Berikut [root@server ~]# reboot ini sintaknya: [...] 167.205.78.50:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 167.205.78.50:/var/nfs /mnt/nfs/var/nfs nfs rw,sync,hard,intr 0 0 17. Setelah di reboot, lihat hasil output sharing NFS akan termounting secara otomatis dengan mengetikkan sintaks seperti langkah nomor 12. [root@server ~]# df h Filesystem Size Used Avail Use% Mounted on /dev/sda1 4.9G 2.6G 2.1G 56% / tmpfs 250M 0 250M 0% /dev/shm 167.205.78.50:/home 4.9G 2.6G 2.1G 56% /mnt/nfs/home 167.205.78.50:/var/nfs 4.9G 2.6G 2.1G 56% /mnt/nfs/var/nfs [root@server ~]# mount /dev/sda1 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) nfsd on /proc/fs/nfsd type nfsd (rw) 167.205.78.50:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=167.205.78.50,clientaddr=167.205.78.58) 145 167.205.78.50:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=167.205.78.50,clientaddr=167.205.78.58)

Instalasi File Transfer Protocol dan vsftpd File Transfer Protokol (FTP) adalah suatu protokol yang berfungsi untuk tukarmenukar file dalam suatu network yang mensupport TCP/IP. vsftpd (Very Secure FTP Daemon) merupakan server FTP yang dikembangkan oleh Chris Evans. Vsftpd diciptakan dengan tingkat keamanan yang cukup untuk menutupi beberapa permasalahan yang terdapat pada server FTP konvensional. Penggunaan chroot() pada vsftpd dapat membatasi visibilitas direktori user didalam server. Selain itu, kita bisa menggunakan OpenSSL untuk mengenkripsi transfer file. Sebagai FTP server, vsftpd mendukung mode pasif dan aktif, dan bekerja pada port 21 atau bisa juga pada port yang kita tentukan sendiri. Berikut ini adalah langkah-langkah instalasi konfigurasi ftp dan vsftpd: 1. Pertama, install terlebih dahulu ftp dengan mengetikkan sintaks: [root@server ~]# yum install y ftp 146

18. Selanjutnya, install vsftpd dengan mengetikkan sintaks: [root@server ~]# yum install y vsftpd 147

19. Setelah proses instalasi selesai, langkah selanjutnya adalah mengaktifkan vsftpd tersebut, dengan mengetikkan sintaks: [root@server ~]# service vsftpd start 20. Agar vsftpd berjalan pada sistem boot, ketikkan sintaks seperti berikut: [root@server ~]# chkconfig vsftpd on 21. Pada konfigurasi vsftpd default, server ftp dapat diakses secara anonymous. Ada 2 cara untuk mengakses server ftp tersebut yaitu: a. Melalui Browser Buka browser, lalu ketikkan: ftp://[ip address server ftp] 148

Contohnya seperti dibawah ini: b. Melalui Terminal Pada terminal, ketikkan: [root@server ~]# ftp [ip address server ftp] 149

Contohnya seperti dibawah ini: [root@server ~]# ftp 167.205.79.215 Connected to 167.205.79.215 (167.205.79.215). 220 (vsftpd 2.2.2) Name (167.205.79.215:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> 22. Untuk menonaktifkan login ftp secara anonymous, terdapat konfigurasi yang harus dirubah pada file vsftpd.conf. Berikut ini sintaks untuk membuka file tersebut: [root@server ~]# nano /etc/vsftpd/vsftpd.conf Lalu, ubah anonymous_enable dari YES menjadi NO # Example config file /etc/vsftpd/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. # # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=no 150

23. Setelah selesai mengkonfigurasi, langkah selanjutnya yaitu merestart vsftpd. Berikut ini sintaksnya: [root@server ~]# service vsftpd restart 24. Selanjutnya, membuat user dan password untuk ftp. Caranya dengan menggunakan sintaks berikut ini: useradd [nama user] passwd [nama user] Contohnya seperti dibawah ini: [root@server ~]# useradd userftp [root@server ~]# passwd userftp Changing password for user userftp. New password: Retype new password: passwd: all authentication tokens updated successfully. 25. Agar user dapat mengakses server ftp, maka konfigurasi tujuan home direktori ftp perlu diaktifkan dengan mengetikkan sintaks: [root@server ~]# setsebool -P ftp_home_dir on 26. Kemudian, coba akses server ftp seperti langkah di nomor 5. Bedanya, saat mengakses akan dimintai username dan password untuk bisa login. Contoh hasilnya akan seperti dibawah ini: 151

a. Melalui Browser b. Melalui Terminal [root@server ~]# ftp 167.205.79.215 Connected to 167.205.79.215 (167.205.79.215). 220 (vsftpd 2.2.2) Name (167.205.79.215:root): userftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> 152

Samba Services Samba merupakan serangkaian aplikasi unix yang berkomunikasi dengan protocol Server Message Block (SMB), yang dikembangkan oleh Andrew Tridgell yang selanjutnya sampai saat ini banyak dibantu oleh para programmer di internet dengan tetap di supervisi oleh Andrew Tridgell. SMB adalah protokol komunikasi data yang juga digunakan oleh Microsost dan OS/2 untuk menampilkan fungsi jaringan client-server yang menyediakan sharing file dan printer serta tugas-tugas lainya yang berhubungan. Samba server memungkinkan komputer-komputer Unix/Linux melakukan sharing file dan printer dengan komputer windows bukan hanya dengan komputer-komputer Unix/Linux sendiri. Beberapa fungsi yang disediakan Samba server yaitu sbb: Sharing file/direktori antar Unix/Linux dengan windows client Sharing printer pada Samba server dengan windows client Memudahkan proses network browsing Menyediakan proses Autentikasi komputer windows client ketika login ke Windows domain Menyediakan dan membantu proses netbios name resolution dengan Windows Internet Name Service (WINS) name-server resolution Sebagaimana telah disebutkan bahwa Samba merupakan serangkaian aplikasi yang juga meliputi aplikas client maka samba juga menyediakan tools client untuk memungkinkannya user-user pada sistem Unix/Linux mengakses direktori dan printer yang terdapat pada sistem windows dan Samba server melalui jaringan. Selain tools client, pada Samba juga terdapat beberapa aplikasi server diantaranya yaitu smbd smbd adalah aplikasi server atau daemon yang menangani proses sharing file/direktori dan printer, juga menangani proses autentikasi dan otorisasi dengan SMB client. 153

nmbd nmbd adalah aplikasi server atau daemon yang mendukung Netbios name service dan WINS, yang juga membantu proses network browsing pada windows client. Mengkonfigurasi Servis File Menggunakan Samba 1. Langkah pertama adalah menginstall paket samba terlebih dahulu. Berikut ini adalah sintaksnya: [root@server ~]# yum install -y samba 2. Selanjutnya, file konfigurasi samba yang bernama smb.conf harus dibackup terlebih dahulu supaya settingan aslinya tidak hilang. Berikut ini adalah sintaksnya: [root@server ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.ori 3. Pertama, konfigurasi samba untuk mode anonymous. Jadi, semua client dapat mengakses file samba tanpa perlu login usernya. Berikut ini langkah-langkah konfigurasinya: [root@server ~]# nano /etc/samba/smb.conf 154

[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos security = user map to guest = bad user dns proxy = no #============================ Share Definitions ============================== [Anonymous] path = /samba/anonymous browsable =yes writable = yes guest ok = yes read only = no public = yes 4. Karena direktori untuk samba anonymous belum tersedia, maka perlu dibuat terlebih dahulu direktorinya. Berikut ini adalah sintaksnya: [root@server ~]# mkdir -p /samba/anonymous 5. Agar direktori yang telah dibuat tersebut dapat diakses, permission direktori tersebut harus dirubah terlebih dahulu. Berikut ini adalah sintaksnya: [root@server ~]# chmod -R 0777 /samba/anonymous/ 155

6. Agar samba otomatis running pada saat startup, cara mengaktifkannya adalah seperti berikut ini: [root@server ~]# chkconfig smb on 7. Restart samba dengan mengetikkan sintaks seperti berikut ini: [root@server ~]# service smb start [root@server ~]# service nmb start 8. Agar samba dapat diakses dari windows, firewall (ip tables) port untuk samba ditambahkan terlebih dahulu. Berikut ini adalah sintaks untuk membuka file konfigurasi tersebut: [root@server ~]# nano /etc/sysconfig/iptables Port untuk samba berjalan pada port 137, 138, dan 139. Cara untuk menambahkan port tersebut dilakukan dengan konfigurasi seperti dibawah ini: -A INPUT -m state --state NEW -m tcp -p tcp --dport 137:139 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 137:139 -j ACCEPT 9. Setelah disave, restart konfigurasi ip tables tersebut dengan mengetikkan perintah seperti berikut ini: [root@server ~]# service iptables restart 156

10. Ubah konfigurasi selinux menjadi disable agar samba dapat diakses. Berikut ini sintaks agar file konfigurasi dapat dibuka: [root@server ~]# nano /etc/selinux/config Ubah selinux dari enforcing menjadi disable, seperti contoh dibawah ini: # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disable 27. Setelah di save konfigurasi tersebut, reboot server agar konfigurasi selinux yang baru dapat aktif. Berikut ini sintaksnya: [root@server ~]# reboot 28. Samba dengan mode anonymous sudah siap dipakai. Samba dapat di akses melalui windows. Caranya bisa dibuka melalui Run, lalu ketikkan: \\[ip address server samba] atau \\[netbios name] 157

File samba akan terbuka seperti dibawah berikut: 158

Ketika membuka folder Anonymous, cobalah membuat file/folder di folder tersebut. 159

29. Demi keamanan, samba server dapat diakses dengan autentikasi user dan password. Sebelumnya, harus dibuat terlebih dahulu group dan user samba beserta passwordnya. Berikut ini adalah sintaknya: a. Membuat group samba, dengan sintaks groupadd [nama group] [root@server ~]# groupadd smbgrp b. Membuat user samba, dengan sintaks useradd [nama user] G [nama group] [root@server ~]# useradd usrsamba G smbgrp c. Menambahkan password pada user samba, dengan sintaks smbpasswd a [nama user] [root@server ~]# smbpasswd -a usrsamba New SMB password: Retype new SMB password: Added user usrsamba. 30. Selanjutnya membuat direktori samba untuk yang terautentikasi. Berikut ini sintaksnya: [root@server ~]# mkdir p /samba/secured 31. Agar direktori tersebut dapat diakses, permission pada direktori tersebut harus dirubah. Berikut ini adalah sintaksnya: [root@server ~]# chmod R 0770 /samba/secured/ 32. Kemudian, edit konfigurasi file samba yang bernama smb.cof. Berikut ini adalah sintaks untuk membuka file konfigurasi tersebut: [root@server ~]# nano /etc/samba/smb.conf 160

Tambahkan konfigurasi dibawah ini untuk direktori samba yang terautentikasi: [Secured] path = /samba/secured valid users = @smbgrp guest ok = no writeable = yes browsable = yes 33. Setelah disave, restart kembali samba-nya dengan mengetikkan sintaks dibawah ini: [root@server ~]# service smb restart [root@server ~]# service nmb restart 34. Samba dengan mode terautentikasi telah siap dipakai. Untuk mengaksesnya bisa menggunakan langkah-langkah seperti nomor 12 dengan Run. Hasilnya akan seperti dibawah ini: 161

Kemudian coba akses folder Secured, akan muncul tampilan untuk login dan masukkan username dan password samba yang telah dibuat sebelumnya. Setelah berhasil masuk ke folder tersebut, cobalah untuk membuat suatu file/folder di folder tersebut. 162

163

BAB 8 DOMAIN NAME SERVICE SUBAB MATERI Memahami DNS: Zones, Domains, dan Delegasi Berkeley Internet Name Domain (BIND) Instalasi BIND Pembuatan Zona dan File Zona Key Terms BIND Delegasi Domain named.conf Name Server nslookup resolv.conf Zone Zone Forward Zone Reverse 164

Memahami DNS: Zones, Domains, dan Delegasi DNS (Domain Name Service) merupakan sistem berbentuk database terdistribusi yang akan memetakan/mengkonversikan nama host/mesin/domain ke alamat IP (Internet Protocol) dan sebaliknya dari alamat IP ke nama host yang disebut dengan reversemapping. DNS sangat berguna dalam jaringan terutama internet, sistem ini akan memetakan nama mesin misal server.net.id ke alamat IP misal 202.123.45.6 selain itu juga penggunaannya sangat luas misal, untuk routing e-mail, telnet, ftp, web, dan lain-lain. Dengan adanya DNS, informasi host menjadi mungkin untuk diakses oleh komputer di jaringan maupun Internet. Implementasi DNS pada sistem operasi Linux yang sering digunakan adalah BIND meskipun ada juga salah satu implementasi yang cukup baru dan juga banyak dipakai yaitu djbdns. Walaupun banyak sejarah mengenai isu keamanan dan vulnerability-nya, banyak server DNS di dunia masih menggunakan BIND. Alasan yang mungkin adalah kebanyakkan para administrator server DNS tersebut lebih familiar dengan BIND daripada server DNS lain. Seperti halnya dengan penggunaan sendmail yang notabene merupakan server-mail yang punya konfigurasi cryptic daripada server-mail lain tetapi masih tetap digunakan dengan alasan familiar dan kebiasaan administratornya. Struktur dan Cara Kerja DNS Struktur database DNS sangat mirip dengan sistem-berkas/filesystem UNIX yaitu berbentuk hierarki atau pohon. Tingkat teratas pada DNS adalah root yang disimbolkan dengan titik/dot (.) sedangkan pada sistem berkas UNIX, root disimbolkan dengan slash (/). Setiap titik cabang mempunyai label yang mengidentifikasikannya relatif terhadap root (.). Tiap titik cabang merupakan root bagi sub-tree/tingkat bawahnya. Tiap sub-tree merupakan domain dan dibawah domain terdapat sub-tree lagi bernama subdomain. Setiap domain mempunyai nama yang unik dan menunjukkan posisinya pada pohon DNS, pengurutan/penyebutan nama domain secara penuh dimulai dari domain paling bawah menuju ke root (.). Masing-masing nama yang membentuk suatu domain dipisahkan 165

dengan titik/dot (.) dan diakhiri dengan titik yang merupakan nama absolut relatif terhadap root (.). Contoh: raichu.cs.mit.edu. "." merupakan root domain edu merupakan Top Level Domain mit merupakan Second Level Domain cs merupakan Third Level Domain raichu merupakan nama komputer/mesin yang bersangkutan Sistem penulisan nama secara absolut dan lengkap ini disebut FQDN (Fully Qualified Domain Name). Tiap organisasi yang telah mendaftar ke Network Information Center(NIC) akan mendapatkan nama domain sesuai dengan organisasi tersebut. Nama domain tersebut bisa dibagi lagi menjadi subdomain sesuai dengan kebutuhan organisasi tersebut sesuai dengan otorisasi domain. Contoh: InterNIC mempunyai semua Top Level Domain termasuk com, perusahaan xxx akan mendaftarkan nama domain xxx.com (komersial), maka xxx diberikan/didelegasikan oleh InterNIC untuk mengelola domain xxx.com yang merupakan sub domain dari com. Indolinux dapat membagi lagi domain indolinux.com ke beberapa sub domain misal coba.xxx.com, lagi.xxx.com. Setiap server DNS pada suatu jaringan mempunyai informasi tentang host-host dalam jaringan tersebut yaitu alamat IP, routing email, server ftp, server web, dsb. 166

Selain itu tiap host dalam otorisasi suatu domain juga bisa mendapatkan alias dari nama host-nya dalam domain di atasnya. Misal: rere.xxx.com bisa saja mempunyai alias (canonical name) coba.xxx.com, dimana kedua domain tersebut mengacu ke mesin/host yang sama. Dengan adanya sistem berbentuk hierarki/pohon ini maka tidak ada nama host yang sama pada domain/subdomain yang sama, karena masing-masing dari node/titik-cabang mempunyai nama unik dan tidak boleh ada yang menyamainya kecuali berbeda subtree/sub pohon. Tidak akan ada konflik antar organisasi karena masing-masing organisasi mempunyai domain yang berbeda-beda dan ini diatur oleh InterNIC untuk TLD. Misal: xxx menginginkan nama mesin/host di bawah domain xxx.com dengan nama coba (coba.xxx.com), sedang xz juga menginginkan nama yang sama untuk salah satu hostnya dengan domain xz.org. Disini tidak akan terjadi konflik karena masing-masing mempunyai domain sendiri-sendiri. xxx mempunyai coba.xxx.com dan xz mempunyai coba.xz.org. Seperti dijelaskan di atas, tidak boleh suatu nama/label sama yang berada dalam domain sama atau mempunyai parent atau sub-tree atas yang sama karena ini akan membuat konflik pada penamaan domain. 167

Sebuah nama domain adalah nama sub-tree dari domain name-space. Suatu host diwakili dengan nama domain yang full/penuh termasuk nama mesin/komputer tersebut, dan host mengacu pada suatu host/komputer secara individu. Sedangkan domain berisi semua host yang berada dibawahnya. Individual host yang berada pada suatu domain menunjukkan informasi mengenai alamat jaringan, perangkat keras, routing mail, dsb. Untuk membedakan nama domain dan subdomain diambil contoh: Coba.xxx.com adalah subdomain dari xxx.com. stwn.raichu.domain.net adalah subdomain dari raichu.domain.net. dst. Top Level Domain (TLD) Top Level Domain adalah domain pada level teratas di bawah root (.). Ada tiga pengelompokkan Top Level Domain: 1. Domain Generik Terdiri atas 7 domain yaitu com Untuk organisasi komersial. contoh: ibm.com, sun.com. net Untuk organisasi/perusahaan penyedia layanan jaringan/internet. contoh: internic.net, nsf.net. gov Untuk lembaga/organisasi pemerintahan. contoh: whitehouse.gov, nasa.gov. mil Untuk badan/organisasi militer. contoh: army.mil. org Untuk organisasi non-komersial. contoh: linux.org. edu Untuk lembaga pendidikan. contoh: mit.edu, berkeley.edu. int Untuk organisasi Internasional. contoh: nato.int. 168

Selain 7 domain di atas ada lagi 7 domain baru dari ICANN (www.icann.org) yaitu: aero Untuk industri atau perusahaan udara. biz Untuk perusahaan atau lembaga bisnis. coop Untuk perusahaan atau lembaga kooperatif info Untuk penggunaan umum. museum Untuk museum. name Untuk registrasi bagi penggunaan individual/personal. pro Untuk para profesional seperti: akuntan, dan lain-lain. 2. Domain Negara Merupakan standar pembagian geografis berdasarkan kode negara. Contoh: id untuk Indonesia, au untuk Australia, uk untuk Inggris, dan lain-lain. Domain negara ini dapat dan umumnya diturunkan lagi ke level-level di bawahnya yang diatur oleh NIC dari masingmasing negara, untuk Indonesia yaitu IDNIC. Contoh level bawah dari id yaitu net.id, co.id, web.id. 3. Domain Arpa Merupakan domain untuk jaringan ARPAnet. Tiap domain yang tergabung ke Internet berhak memiliki name-space.in-addr.arpa sesuai dengan alamat IP-nya. Name-Server dan Zone Name-server adalah program server yang memiliki informasi mengenai host di bawah domain tertentu. Name-server mempunyai bagian-bagian informasi mengenai domain name-space yang dikenal dengan zone. Zone ini akan dimuat dari berkas yang disimpannya atau dari server DNS lain. Sebagai contoh domain id bisa dibagi menjadi 169

beberapa zone yaitu ac.id, net.id dan dari zone tersebut bisa dibagi lagi menjadi zone-zone yang lebih kecil misal undip.ac.id, dst. Disini yang bertanggung jawab ialah organisasi/lembaga yang memiliki domain tersebut. Ada dua tipe dari name-server yaitu: Primary Master Primary Master name-server bertanggung jawab terhadap suatu zone dengan memuat informasi dari berkas database pada dirinya sendiri. Secondary Master (Slave) Secondary Master name-server memuat informasi zone dari server lain yang otoritatif pada suatu zone yang disebut Master Server. Secondary Master akan melakukan zone-transfer dari Master Server untuk mendapatkan data/informasi pada suatu zone yang dikelolanya. 170

Untuk dapat bekerja name-server membutuhkan resource-record untuk domain yang dikelola. Resource-record adalah data yang mengacu/menunjukkan pada informasi mengenai host pada jaringan atau domain tertentu. Komponen DNS DNS sebenarnya merupakan suatu sistem server-client, jadi ada suatu mekanisme dari client untuk meminta informasi dari server yang akan memberikan informasi yang diminta sang client. Seperti yang disebutkan di atas program pada server tersebut sering disebut dengan name-server. Pada client sering disebut dengan resolver. DNS mempunyai beberapa komponen yaitu: Resolver Resolver yaitu suatu rutin pustaka yang akan membuat suatu permintaan/query dan mengirimkannya lewat jaringan ke sebuah name-server. Program tersebut berjalan pada host yang menginginkan informasi mengenai suatu host di Internet. Resolver juga menginterpretasikan respon dari name-server apakah informasi yang diminta merupakan record ataupun kesalahan. Resolution Resolution yaitu proses pencarian name-server yang mempunyai tanggung jawab terhadap suatu domain yang akan diminta. Setelah name-server yang dicari ditemukan maka server akan memberikan informasi name-server yang bersangkutan kepada pemintanya. 171

Caching Caching yaitu suatu rutin yang akan menyimpan hasil pencarian domain dalam database dari name-server yang pernah diminta. Time To Live (TTL) merupakan batas waktu dimana server DNS dapat menyimpan/caching infomasi yang pernah dicari. Pengelola dari sistem DNS terdiri dari tiga komponen: DNS resolver, sebuah program klien yang berjalan di komputer pengguna, yang membuat permintaan DNS dari program aplikasi. recursive DNS server, yang melakukan pencarian melalui DNS sebagai tanggapan permintaan dari resolver, dan mengembalikan jawaban kepada para resolver tersebut; authoritative DNS server yang memberikan jawaban terhadap permintaan dari recursor, baik dalam bentuk sebuah jawaban, maupun dalam bentuk delegasi (misalkan: mereferensikan ke authoritative DNS server lainnya) Sebuah contoh dari teori rekursif DNS Sebuah contoh mungkin dapat memperjelas proses ini. Andaikan ada aplikasi yang memerlukan pencarian alamat IP dari www.wikipedia.org. Aplikasi tersebut bertanya ke DNS recursor lokal. 1. Sebelum dimulai, recursor harus mengetahui dimana dapat menemukan root nameserver; administrator dari recursive DNS server secara manual mengatur (dan melakukan update secara berkala) sebuah file dengan nama root hints zone (panduan akar DNS) yang menyatakan alamat-alamt IP dari para server tersebut. 172

2. Proses dimulai oleh recursor yang bertanya kepada para root server tersebut - misalkan: server dengan alamat IP "198.41.0.4" - pertanyaan "apakah alamat IP dari www.xxx.org?" 3. Root server menjawab dengan sebuah delegasi, arti kasarnya: "Saya tidak tahu alamat IP dari www.xxx.org, tapi saya "tahu" bahwa server DNS di 204.74.112.1 memiliki informasi tentang domain org." 4. Recursor DNS lokal kemudian bertanya kepada server DNS (yaitu: 204.74.112.1) pertanyaan yang sama seperti yang diberikan kepada root server. "apa alamat IP dari www.xxx.org?". (umumnya) akan didapatkan jawaban yang sejenis, "saya tidak tahu alamat dari www.xxx.org, tapi saya "tahu" bahwa server 207.142.131.234 memiliki informasi dari domain xxx.org." 5. Akhirnya, pertanyaan beralih kepada server DNS ketiga (207.142.131.234), yang menjawab dengan alamat IP yang dibutuhkan. Proses ini menggunakan pencarian rekursif (recursion / recursive searching). Istilah-istilah Pada DNS RR atau Resource Records adalah kumpulan sumber informasi yang berhubungan dengan nama-nama domain. Namespace adalah struktur dari seluruh DNS yang berbentuk pohon terbalik Nameserver adalah program-program yang menyimpan informasi tentang namespace domain. TLD or Top-Level Domain adalah level domain paling atas dibawah root (. ). Contoh dari TLD adalah.com,.net,.org, dan sebagainya. Delegation atau delegasi adalah memberikan sbuah tanggung jawab kepada sebuah subdomain untuk mengatur dirinya sendiri. Registry adalah sebuah organisasi yang bertanggung jawab untuk menjaga file-file data di TLD dan mendelegasikannya ke setiap subdomain dari TLD itu. Contoh Verisign untuk mengelola TLD.com dan.net. 173

Registrar adalah sebuah organisasi yang bertindak sebagai antar muka (interface) antara pelanggan dan registry atau lebih dikenal dengan nama ISP. Contohnya idwebhost. Registration adalah proses dimana pelanggan memberitahukan ke sebuah registrar untuk mendelegasikan sebuah subdomain kepadanya. Zone atau zona adalah sebuah daerah yang mencakup sebuah domain utuh atau hanya sebagian saja. Berkeley Internet Name Domain (BIND) BIND merupakan salah satu implementasi dari DNS yang paling banyak digunakan pada server di Internet. Implementasi DNS pertama adalah JEEVES buatan Paul Mockapetris. BIND dibuat untuk sistem operasi BSD UNIX 4.3 oleh Kevin Dunlap, tapi kemudian banyak di-porting ke banyak turunan UNIX termasuk Linux. BIND sampai sekarang masih dikoordinasi oleh Internet Software Consortium. Program utama dari BIND adalah bernama named yaitu sebuah daemon yang bila dijalankan akan menunggu koneksi pada port 53 (default). Koneksi pada port 53 ini adalah koneksi permintaan informasi pemetaan dari nama domain/mesin ke alamat IP dan sebaliknya. Jika sebuah server DNS mempunyai otorisasi terhadap suatu domain maka si server DNS tersebut akan memberikan informasi mengenai nama-nama mesin/domain yang berada di bawah domain yang dipegangnya. BIND secara umum terdiri dari beberapa berkas yang mendukung yaitu: 1. /etc/resolv.conf Berkas konfigurasi berisi domain atau alamat IP name-server yang pertama dicari oleh resolver ketika sebuah domain/nama mesin diminta untuk dipetakan ke alamat IP. 174

2. /etc/nsswitch.conf Berkas konfigurasi sistem untuk melakukan mekanisme switch sistem database dan name-service. Switch dapat melalui berkas, name-server, atau NIS server. 3. /etc/named.conf Berkas konfigurasi dari BIND yang utama, berisi informasi mengenai bagaimana klien DNS mengakses port 53, letak dan jenis berkas database yang diperlukan. Umumnya berisi letak berkas konfigurasi name-server root, domain, localhost/loopback, dan reverse-mapping. 4. /var/named/named.ca Berkas database name-server root yang bertanggung jawab terhadap Top Level Domain di Internet. Digunakan untuk mencari domain di luar domain lokal. Nama berkas ini bisa anda definisikan sendiri tetapi tetap harus mengacu ke named.conf sebagai berkas konfigurasi utama dari BIND. 5. /var/named/named.local Berkas database name-server untuk alamat loopback/host lokal/alamat diri sendiri. Nama berkas ini bisa anda definisikan sendiri tetapi tetap harus mengacu ke named.conf sebagai berkas konfigurasi utama dari BIND. 6. /var/named/db.domain-kita.com Berkas database name-server untuk domain domain-kita.com yang berisi resource record, informasi nama host dan alamat IP yang berada di bawah domain domainkita.com. Berkas ini bisa lebih dari satu tergantung jumlah domain yang kita kelola. Nama berkas ini bisa anda definisikan sendiri tetapi tetap harus mengacu ke named.conf sebagai berkas konfigurasi utama dari BIND. 7. /etc/rndc.conf Berkas konfigurasi program rndc yaitu suatu program untuk administrasi dan kontrol operasi name-server BIND. 175

Installasi BIND Install package bind dan cache-nameserver dengan mengetikan perintah: [root@server ~]# yum install bind bind-utils cache-nameserver Pada terminal linux CentOS, akan tampak seperti gambar di bawah ini. Pembuatan Zona dan File Zona Untuk membuat DNS, kita perlu melakukan beberapa langkah konfigurasi seperti berikut: 1. Edit konfigurasi named.conf yang terletak pada directory /etc dengan membuatkan zone forward dan zone reverse dengan mengetikkan perintah : [root@server ~]# nano /etc/named.conf kemudian isikan konfigurasi seperti berikut : 176

177

2. Membuat zone forward untuk domain comlabs.net.id dengan nama file comlabs.net.id dan letakkan file tersebut sesuai dengan konfigurasi named.conf di atas, yaitu di /etc/named/. Isi dari konfigurasi file tersebut adalah : $TTL 86400 @ IN SOA comlabs.net.id. root.comlabs.net.id.( 2014101001 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) @ IN NS ns1.comlabs.net.id. @ IN NS ns2.comlabs.net.id. @ IN A 167.205.79.215 ns1 IN A 167.205.79.215 ns2 IN A 167.205.79.215 @ IN MX 10 mail.comlabs.net.id. www IN A 167.205.79.215 mail IN A 167.205.79.215 ezine IN A 167.205.79.215 Kemudian save konfigurasi tersebut dengan nama comlabs.net.id pada direktori /etc/named, seperti gambar di bawah ini. 178

3. Setelah itu membuat zone reverse domain dengan tujuan mentranslasikan ip address dari server ke alamat domain yang merupakan kebalikan dari zone forward. Untuk zone reverse nama file dan lokasi file harus disesuaikan dengan nama dan lokasi yang telah ditentukan pada konfigurasi named.conf. Pada konfigurasi di atas nama reverse zone adalah 79.205.167.rev (IP Address server yang dibalik) dan diletakan dalam directory /etc/named/. Isikan konfigurasi reverse zone seperti berikut : 179

Lalu save konfigurasi file tersebut dengan nama 79.205.167.rev, seperti gambar berikut ini. Keterangan: o SOA (Start Of Authority) untuk mengidentifikasikan otoritas name-server pada zone data atau informasi nama host domain. o TTL (Time To Live) merupakan waktu yang diperlukan server DNS untuk menyimpan hasil resolving ke cache-nya. o Serial merupakan nomor seri database-cache domain my-server.com. Jika ada perubahan data pada berkas zone comlabs.net.id, misalnya menambahkan domain blog.comlabs.net.id, maka harus mengubah/menambah nomor serinya. Sebaiknya digunakan format tahun-bulan-tanggal-jam untuk nomor serialnya. Pada berkas database untuk zone domain comlabs.net.id tersebut terakhir di-update tanggal 10 Oktober 2014 hanya saja untuk 2 digit terakhirnya bukan format jam, melainkan angka 01 itu mendakan bahwa file tersebut telah diedit sebanyak 1 kali. Fungsi dari serial ini adalah untuk memberitahukan kepada secondary-master name-server untuk meng-update database-cache-nya jika ada perubahan pada primary-master name-server yaitu dengan melakukan pengecekan nomor serial. Jika nomor serial berubah/bertambah maka secondary-master name-server akan segera melakukan zone-transfer dari primary-master name-server. o Refresh adalah selang waktu yang diperlukan (dalam detik) secondary-master name-server untuk melakukan pengecekan perubahan database-cache pada primarymaster name-server. o Retry adalah waktu (dalam detik) yang digunakan secondary-master name-server untuk menunggu pengulangan cek berkas zone jika pada saat proses refresh primary-master name-server tidak memberikan respon. o Expire adalah waktu (dalam detik) yang digunakan secondary-master name-server untuk mempertahankan berkas zone jika tidak dapat melakukan zone-refresh. Jika setelah waktu expire telah habis tapi secondary-master name-server tidak dapat melakukan zone-refresh maka berkas zone pada secondary-master name-server akan dihapus. 180

o Minimum adalah nilai waktu (TTL) default untuk semua resource-record yang ada dalam berkas zone. o @ menunjukkan bahwa zone yang bersangkutan adalah zone domain yang ditunjukkan berkas named.conf ke berkas database-cache tersebut atau origin zone o IN adalah singkatan dari Internet. Semua informasi Internet digunakan IN dan untuk informasi non-internet digunakan kode lain. o A menyatakan Address Internet atau alamat IP dari mesin yang ditangani oleh DNS ini proses penerjemahan namanya. o NS menyatakan Name Server. o NS Record merupakan daftar name-server yang otoritatif untuk zone bersangkutan. Pada database domain comlabs.net.id name-servernya adalah ns1.comlabs.net.id dan ns2.comlabs.net.id. NS Record ini yang nantinya akan diserahkan kepada pengelola domain TLD (Top Leve Domain) agar terdaftar dalam registar domain. o MX (Mail Exchanger) merupakan record routing email, untuk domain comlabs.net.id dalam hal ini akan diarahkan ke mail.comlabs.net.id. Sebagai host yang ditunjuk sebagai mail exchanger akan memproses atau meneruskan mail untuk domain comlabs.net.id. o Angka 10 pada MX 10 mail.comlabs.net.id merupakan nilai preferensi (preference value) untuk menunjukkan tingkat prioritas mail exchanger yang digunakan untuk memproses atau meneruskan mail yang menuju domain myserver.com. o Kata mail dan ezine pada bagian mail IN A 103.28.149.76 ezine IN A 103.28.149.76 berfungsi sebagai pengalamatan subdomain padadomain comlabs.net.id sebagai mail. comlabs.net.id dan ezine. comlabs.net.id nantinya. o CNAME (Canonical Name) fungsinya untuk alias, jadi suatu host dapat mempunyai nama lebih dari satu. 181

o PTR (POINTER) menyatakan pemetaan alamat IP ke domain comlabs.net.id yang merupakan reversed-address. Reverse Address ini sangat diperlukan jika kita membuat mail server karena dengan adanya reverse IP Address ke alamat domain kita. Maka proses sent/receive protocol SMPT pada mesin mail server kita dapat berjalan normal. Tanpa adanya reverse Address, IP kita dianggap sebagai spammer oleh mesin smtp mail server lain karena tidak dikenal. 4. Selanjutnya restart service bind dengan mengetikkan perintah : [root@server ~]# service named restart Pastikan service bind/named running OK, seperti gambar di bawah ini Jika saat merestart service bind/named, terdapat kasus proses generating file rndc.key tidak kunjung selesai, seperti berikut : [root@server ~]# etc/init.d/named restart Stopping named: [ OK ] Generating /etc/rndc.key: Maka solusinya adalah cancel terlebih dahulu proses tersebut, kemudian buatkan file [root@server ~]# rndc-confgen -a -r /dev/urandom rndc.key nya secara manual dengan mengetikkan perintah : Pada terminal linux pastikan file rndc.key nya sudah terbuat, lalu restart kembali service named/bind seperti cara sebelumnya. 5. Kemudian atur search hostname dan nameserver menjadi comlabs.net.id dan 127.0.0.1 dengan mengedit file /etc/resolv.conf kemudian save, seperti gambar di bawah ini. [root@server ~]# nano /etc/resolv.conf 182

6. Konfigurasi iptables untuk mengizinkan DNS server dari luar network tersebut. Buka file /etc/sysconfig/iptables, lalu tambahkan dua baris perintah berikut: [root@server ~]# nano /etc/sysconfig/iptables # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT Lalu save konfigurasi tersebut seperti pada gambar di bawah ini: 183

7. Selanjutnya restart iptables dengan mengetikkan perintah : [root@server ~]# service iptables restart Pastikan service iptables running OK, seperti gambar di bawah ini. 8. Cek konfigurasi DNS dan file zone dengan perintah berikut: [root@server ~]# named-checkzone 79.205.167.rev /etc/named/79.205.167.rev [root@server ~]# named-checkzone comlabs.net.id /etc/named/comlabs.net.id Pastikan semua konfigurasi OK dan tidak terdapat error. 184

9. Untuk memastikan konfigurasi forward domain success, cek konfigurasi dengan menggunakan nslookup terhadap domain yang telah dikonfigurasi tadi dengan mengetikkan perintah : [root@server ~]# nslookup comlabs.net.id [root@server ~]# nslookup 167.205.79.215 Pastikan hasilnya seperti pada gambar berikut: 10. Untuk melakukan pengujian terhadapat konfigurasi pointer reverse domain sukses dan berjalan sebagaimana mestinya maka ketikan perintah: [root@server ~]# host 167.205.79.215 185

Pastikan hasilnya seperti pada gambar berikut: 11. Untuk melakukan pengecekkan secara keseluruhan terhadap konfigurasi DNS server yang telah dikonfigurasi tadi maka ketikkan perintah : [root@server ~]# dig comlabs.net.id Pastikan hasilnya seperti pada gambar berikut: 186

12. Melakukan pengujian dengan cara melalukan ping terhadap domain yang telah dikonfigurasi tadi dan untuk memastikan domain sudah berfungsi dengan normal. Pastikan hasilnya seperti pada gambar di bawah: [root@server ~]# ping comlabs.net.id 13. Melakukan pengujian testing akses domain yang sudah dikonfigurasi tadi melalui client windows 7 dengan melakukan ping terhadap domain comlabs.net.id. Sebelumnya, tambahkan terlebih dahulu alamat DNS server pada client windows 7 tersebut seperti tampilan berikut ini. 187

Pastikan hasil yang didapat reply seperti tampilan berikut ini. Jika sudah reply maka konfigurasi sukses. Lakukan juga pengujian dengan perintah nslookup seperti gambar berikut. 188

BAB 9 ELECTRONIC MAIL SUBAB MATERI Memahami Email: Mail Transport Agents, Mail Delivery Agents, dan Mail User Agents Macam-macam E-mail System Alternatif Postfix : Sebuah Alternatif Mail Transport Agent Instalasi dan konfigurasi Postfix Key Terms Mail Server Postfix Dovecot Sendmail Mydomain Myhostname 189

Memahami E-Mail (Mail Transfer Agents, Mail Delivery Agents, dan Mail User Agents) Email merupakan sebuah layanan pengiriman surat elektronik yang di kirim melalui internet. Email dikirim dari suatu alamat email yang terdapat pada sebuah mail server kepada alamat email yang lainnya yang terdapat pada mail server yang sama maupun pada mail server yang berbeda. Email dapat dianalogikan dengan kotak surat yang ada di kantor POS sedangkan server email dapat diibaratkan sebagai kantor POS. Dengan analogi ini sebuah mail server dapat memiliki banyak account email yang ada didalamnya. Untuk mengirim sebuah email dari alamat email yang satu ke alamat email yang lain digunakan sebauh protocol (aturan) yaitu Simple Mail Transfer Protocol SMTP. Protocol SMTP telah menjadi aturan dasar yang disepakati untuk pengiriman email. Dengan demikian semua software email server pasti mendukung protokol ini. SMTP merupakan protokol yang digunakan untuk megirim email (komunikasi antar mail server), dan tidak digunakan untuk berkomunikasi dengan client. Sedangkan untuk client, digunakan protokol imap imaps pop3 pop3s. Supaya sebuah mail server dapat di akses oleh cliet, dikembangkan sebuah aplikasi dimana client dapat mengakses email dari sebuah email server. IMAP adalah sebuah aplikasi pada layer Internet protokol yang memungkinkan client untuk mengakses email yang ada di server. Selain IMAP ada juga POP3 yang fungsinya sama dengan imap, akan tetapi memiliki karakteristik yang berbeda dalam cara pengaksesan pada server. 190

Untuk dapat melakukan tugasnya, sebuah mail server harus dapat melayani pengiriman email yang mempergunakan mempergunakan protokol SMTP serta harus mampu melayani client yang ingin mengakses email dengan menyediakan IMAP dan atau POP3. Mail server, atau email server adalah aplikasi yang menangani penghantaran pesan email. Mesin ini senantiasa menerima pesan dari email client yang digunakan user, atau mungkin dari server email lainnya. Sesuai dengan namanya, server email adalah pusat kendali sistem email. Mail server adalah suatu entitas berupa komputer yang bertindak sebagai sebuah server atau penyedia layanan dalam jaringan komputer sendiri atau jaringan global (internet). 191

Fungsi Mail Server: 1) Mail server memiliki fungsi untuk melakukan penyimpanan (storing) dan distribusi yang berupa pengiriman (sending), penjaluran (routing), dan penerimaan (receiving) email. Mail sever berjalan dengan beberapa protocol pada TCP/IP, yakni SMTP (port 25), POP3 (port 110), dan IMAP (port 143). 2) Mail server bertugas untuk membangun sebuah sistem mail server yang bertugas untuk menangani lalu-lintas email dalam suatu system jaringan komputer yang di implementasikan pada platform Linux yang terkenal free, handal dan stabil dalam menangani sebagai fungsi server dengan menggunakan aplikasi MTA Postfix. Prinsip kerja Mail Server : Pada email server terdapat dua server yang berbeda yaitu incoming dan outgoing server. server yang biasa menangani outgoing email adalah server SMTP(Simple Mail Transfer Protocol) pada port 25 sedangkan untuk menangani incoming email adalah POP3(Post Office Protcol) pada port 110 atau IMAP(Internet Mail Access Protocol) pada port 143. Saat anda mengirim email maka email anda akan ditangani oleh SMTP server dan akan dikirim ke SMTP server tujuan, baik secara langsung maupun melalui melalui beberapa SMTP server dijalurnya. Apabila server tujuan terkoneksi maka email akan dikirim, namun apabila tidak terjadi koneksi maka akan simasukkan ke dalam queue dan di resend setiap 15 menit. Apabila dalam 5 hari tidak ada perubahan maka akan diberikan undeliver notice ke inbox pengirim. 192

Apabila email terkirim email akan masuk pada POP3 server atau IMAP server. jika menggunakan POP3 server maka apabila kita hendak membaca email maka email pada server di download sehingga email hanya akan ada pada mesin yang mendownload email tersebut, dengan kata lain kita hanya bisa membaca email tersebut pada device yang mendownload email tersebut. berbeda dengan POP3 IMAP server mempertahankan email pada server sehingga email dapat dibuka kembali lewat device yang berbeda. Komponen-komponen Mail Server Mail server memiliki tiga komponen utama yang menyusun, yakni Mail Transfer Agent (MTA), Mail Delivery Agent (MDA) atau LDA ( Local Delievery Agent), dan Mail User Agent (MUA). MTA bertugas mengatur pengiriman dan penerimaan email, MDA bertugas mengatur pengiriman email ke alamat yang sesuai pada jaringan local. MDA bekerjasama dengan MTA untuk menangani pesan-pean email yang datang untuk diletakan/didistribusikan sesuai pada mailbox user masing-masing, sementara MUA bertugas menjadi antarmuka yang menghubungkan user dengan Mail server. Proses terjadinya mail server: User menulis isi email pada MUA seperti evolution, kmail, mutt dan lain-lain MUA akan meneruskan email tersebut ke SMTP Server yang membuka port 25 dimana SMTP Server bisa kita sebut sebagai MTA. Kemudian MTA akan membaca alamat tujuan dari email tersebut Kalau email ditujukan ke alamat lokal ( domain yang sama ) maka emailtersebut akan langsung dikirimkan ke alamat yang dituju. Kalau email ditujukan bukan ke alamat lokal maka MTA akan mencari MTA 193

tujuan dari alamat tersebut dengan menggunakan pencarian database DNS Kemudian MTA akan berkomunikasi dengan MTA tujuan kemudian mengirimkan email tersebut ke MTA tujuan Email tersebut akan disimpan dalam storage MTA. Kemudian email tersebut dapat diambil oleh user dari MTA dengan menggunakan protokol pop. Mail Transfer Agents MTA (Mail Transfer Agent) adalah suatu program yang bertanggung jawab dalam hal pengiriman sebuah email ke suatu tujuan alamat. Program ini biasanya akan menjadi sebuah daemon dan membuka koneksi pada port 25 (smtp) yang digunakan sebagai penghubung antar MTA. Menerima email dari pengirim dan mengirim ke MTA yang lain untuk disimpan di server. Fungsi MTA (Mail Transfer Agent) antara lain adalah: 1) MTA mengatur antrian bila ada email amsuk, keluar dan yang tertunda pengirimannya. 2) Menerusakna email yang akan keluar (outgoing) 3) Menerima email yang masuk (incoming) 4) Pertukaran email dengan menggunakan protocol TCP 5) Mail Transfer Agent (MTA) merupakan kantor pos Exchange Server yang memindahkan pesan pesan dari satu server ke server lain dan menempatkan peasan tersebut pada mailbox yang tepat. Demikian pula MTA adalah komponen utama Exchange Server yang memberikan layanan untuk mengatur fungsi routing jika berkomunikasi lewat konektor dengan sistem mail lain. Contoh aplikasi MTA yaitu : Sendmail, Qmail, Postfix, Exim, Mercury, Microsoft Exchange Server Mdaemon Mail Delivery Agents MDA (Mail Delivery Agent) bekerja sama dengan MTA untuk menangani pesanpesan email yang datang untuk diletakkan sesuai pada mailbox user masing - masing. Didalam beberapa kasus, MDA sebenarnya yaitu sebuah Local Delivery 194

Agent (LDA) seperti mail atau procmail. MDA merupakan Bagian dari MTA penerima untuk membantu menyampaikan emai ke MUA penerima. Mail User Agents MUA (Mail User Agent) merupakan sebuah program atau aplikasi yang digunakan oleh seorang pengguna komputer untuk menulis atau membuat suatu email serta digunakan untuk membacanya. MUA merupakan penghubung antara pengguna dan MTA. MUA adalah aplikasi yang berfungsi sebagai antar muka (interface) antara email dengan MTA yang mendukungnya. Fungsi MDA (Mail User Agent) antara lain adalah: 1) MUA berfungsi untuk menulis email dan membaca email yang masuk. 2) MUA berfungsi menatur konfigurasi email sehingga sesuai dengan MTA yang mendukungnya. 3) MUA berfungsi memeberikan kenyamanan kepada user dalam menerima dan mengirim email. Contoh aplikasi MUA yaitu : Outlook Express, Mozilla Thunderbird, Mail.app, Kmail, Evolution. Macam-macam E-mail System Alternatif Menurut FOLDOC (Free Online Dictionary of Computing)6 definisi dari MTA (Message Transfer Agent) adalah suatu program yang bertanggung jawab dalam hal pengiriman sebuah email ke suatu tujuan alamat7. Program ini biasanya akan menjadi sebuah daemon dan membuka koneksi pada port 25 (smtp) yang digunakan sebagai penghubung antar MTA. Dalam beberapa hal, MTA juga merupakan kependekan dari Mail Transfer Agent. Macam-macam aplikasi MTA antara lain : sendmail, Qmail, Mercury, Microsoft Exchange Server dan Mdaemon. a. Sendmail Sendmail merupakan MTA yang paling tua di Internet yang dibuat oleh Eric Allman. Pada saat ini, hampir semua distribusi Linux dan BSD menggunakan sendmail 195

sebagai MTA standarnya. Dengan semakin berkembangnya internet dan perusahaanperusahaan didunia, sendmail merupakan pilihan banyak perusahaan di dunia seperti SUN dan IBM. Sendmail menggunakan bahasa makro dengan m4 sebagai kompilernya, dengan tingkat pemahaman yang lebih sulit serta syntax bahasanya yang cocok buat perusahaan. Sendmail menggunakan bahasa makro dengan m4 sebagai kompilernya, dengan tingkat pemahaman yang lebih sulit serta syntax bahasanya juga relatif susah. Meskipun demikian sendmail juga menyediakan file-file contoh konfigurasi dengan keterangan dan dokumentasi yang lengkap sehingga mudah digunakan dalam beberapa kondisi tertentu. Sendmail versi unix merupakan opensource software. Sendmail menerapkan fasilitas standar internet mail routing seperti aliasing, forwarding, routing otomatis melalui sebuah network gateway dan konfigurasi yang fleksibel. Selain SMTP, protokol lain yang didukung oleh sendmail adalah UUCP dan X.400, sehingga memungkinkan pengalamatan yang unix seperti user@domain atau seperti pengalamatan UUCP misalnya host!user. Format email yang bisa diteruskan oleh sendmail adalah text format saja, jika ada file binary yang disertakan maka digunakan uuencode. Sendmail juga mendukung fasilitas anti SPAM maupun filter terhadap virus, serta beberapa fitur kemanan, misalnya kemampuan untuk menolak email jika sender domain tidak valid. Fitur menarik lain yang ditawarkan adalah kemampuan untuk menolak suatu email berdasarkan ukuran header dari sebuah email. Hal ini untuk mencegah para spammer untuk meneruskan email dengan header yang terlalu banyak atau terlalu panjang. Pada versi komersial (sendmail pro) beberapa fitur security ditambahkan untuk menghindari SPAM yang masuk ke mail server diantaranya adalah, access database yang memungkinkan pembatasan email berdasarkan pengirim, domain ataupun alamat IP, MAPS RBL (Mail Abuse Prevention System Real Time Blackhole List) yaitu database mail server yang open relay, serta beberapa fungsi tambahan misalnya volume limit (pembatasan total dari jumlah atau ukuran email) dan ukuran sebuah email. 196

b. Qmail Qmail adalah sebuah software MTA yang dibuat oleh Dan Bernstein, yang ditujukan sebagai pengganti sendmail yang telah mendominasi disetiap sistem operasi UNIX. Software ini menggunakan protokol SMTP untuk mengirimkan email ke MTA / server yang lain. Qmail menawarkan 4 kelebihan dibandingkan dengan sendmail yaitu : kemanan (security), performa (performance), keandalan (reliability), dan kemudahan (simplicity). Performa pengiriman email di qmail ditingkatkan menjadi 20 koneksi secara bersama-sama (simultan) serta untuk keandalan juga ditingkatkan, sehingga email yang diteriman akan dijamin menuju ke alamat yang sesuai. Qmail relatif lebih aman dibandingkan sendmail, karena untuk melayani proses atau tugas, Qmail relatif lebih aman dibandingkan sendmail, karena untuk melayani proses atau tugas, qmail menggunakan sistem modular, dimana setiap proses akan dilayani (dihandle) oleh modul yang terpisah dengan modul yang lain. Setiap modul berjalan dengan tingkat kemanan (security level) yang berbeda yang tidak berhubungan dengan modul yang lain untuk memastikan sistem email bekerja secara benar. Hal ini diharapkan untuk mencegah kemungkinan pengambil-alihan (take over) suatu sistem qmail secara keseluruhan. Karena setiap modul menggunakan tingkat kemanan yang berbeda, maka suatu kode yang mencurigakan (malicious code) hanya bisa mengambil alih suatu modul tanpa mengganggu modul yang lain. Modul ucspi-tcp merupakan modul yang mengontrol relay dengan metode selektif relay yang bertujuan untuk mencegah SPAM dan penyalahgunaan SMTP. Dalam hal pengaturan struktur queue, qmail menggunakan skema quadratic back-off scheme. Dengan skema ini email yang lama dan menumpuk di antrian queue tidak akan berdiam lebih lama dalam direktori queue. Sedangkan dengan metode split direktori pada queue qmail, jika direktori ini membengkak menjadi besar, performancenya tidak akan turun. Meskipun qmail dianggap sebagai suatu software yang simple, tapi untuk pemula pasti akan mengalamai kesulitan dalam hal mengkonfigurasi qmail. Karena menggunakan sistem modul yang terpisah, dan walaupun setiap modul merupakan suatu modul yang simpel, namun interaksi antar modul merupakan suatu hal yang komplek, rumit dan terkoordinasi dengan baik. 197

c. Mercury Mail Transport System Mercury Mail Transport System dari Pegasus Mail merupakan MTA yang gratis untuk sistem operasi Novell dan Microsoft Windows. Mercury/32, versi yang digunakan dalam sistem operasi Windows hanya membutuhkan 1,5 MB ruangan disk dan sekitar 3MB memori maksimal supaya bisa beroperasi dan bekerja dengan baik. Mercury/32 mempunyai beberapa fitur, seperti integrasi dengan jaringan Novell dan mendukung protokol email yang ada saat ini. Selain itu, versi ini juga kaya akan dukungan terhadap mailing-list dan metode pengiriman surat ke banyak alamat email (mass mailing), termasuk notice board, automatic list subscription and unsubscription, pengiriman file dengan email, pencarian daftar alamat, dan pengoperasian mailing list secara remote. Karena Mercury/32 sangat kecil ukurannya, maka pada versi standar beberapa fitur standar Karena Mercury/32 sangat kecil ukurannya, maka pada versi standar beberapa fitur standar dari sebuah email server tidak disertakan. Dalam hal ini seorang administrator email harus menggunakan software dari pihak ketiga (third-party software), yang bisadibuat untuk menambahkan fitur maupun automasi terhadap proses kelangsungan mail server. Salah satu kekurangan Mercury/32 pada WindowsNT/W2K adalah tidak mendukung sebagai aplikasi email server tersebut kedalam integrasi sebagai NT service. Pembuatnya (developernya) menganjurkan untuk menggunakan utility SRVANY dari NT Resource Kit. Meskipun utiliti ini sangat berguna, namun tetap saja merupakan salah satu kekurangan Mercury/32 sebagai sebuah mail server yang berdiri independen. Dalam hal keamanan (security), Mercury/32 menggunakan model kontrol berdasarkan komputer (machine) dan pengguna (users) untuk mengontrol semua servis atau modul-modul di server. Seorang administrator juga memungkinkan mengeblok alamat email yang diketahui mengirimkan SPAM atau alamat email yang tidak diinginkan oleh user. Mercury/32 juga cocok bagi para pemakai internet dengan menggunakan dial-up sebagai koneksinya. Pengaturan penjadwalan (scheduling manager) memungkinkan seorang administrator untuk mengontrol waktu koneksi serta penggunaan koneksi dial-up. 198

d. Microsoft Exchange Server Microsoft Exchange server adalah sebuah MTA sekaligus sebuah groupware yang dibuat oleh perusahaan Microsoft Corporation. Pada Microsoft Exchange Server 2002 ada 3 tujuan utama dalam hal fitur yang ditawarkan, yaitu : Kendalan (reliability), skalabilitas (scalable) dan pengaturan (manageable) Integrasi yang menyeluruh dalam proses bisnis dengan menggunakan sistem berbasis web (web based interface) Akses terhadap semua fasilitas Exchange dimanapun dan kapanpun. Dalam rilis versi ini, microsoft telah menambahkan bebera macam teknologi, seperti dukungan terhadap XML serta hubungan OLE DB dan ActiveX Data Objects (ADOs). Seperti diketahui OLE DB biasanya digunakan dalam membangun sebuah sistem aplikasi SQL Server, sedangkan ADO digunakan untuk mengakses kontrol data pada ODBC atau OLE-DB diketahui OLE DB biasanya digunakan dalam membangun sebuah sistem aplikasi SQL Server, sedangkan ADO digunakan untuk mengakses kontrol data pada ODBC atau OLE-DB database. Disamping itu Microsoft juga menambahkan dukungan terhadap standar T.20 untuk kerja sama secara nyata (real-time collaboration) yang memungkinkan penggunaan konferensi data (data conferencing) dan penggunaan aplikasi secara bersama-sama (application sharing). e. Mdaemon Mdaemon merupakan sebuah MTA yang terdiri dari 2 buah versi, yaitu versi Standar dan Pro. Versi standar mendukung aplikasi standar sebuah email server, sedangkan versi professional menawarkan fungsi server email standar serta beberapa fitur tambahan seperti dukungan terhadap banyak domain (multi domains) dalam satu buah server dan IMAP yang sangat sesuai untuk sebuah ISP maupun perusahaan pada tingkat enterprise. Pada kenyataannya development dari software ini adalah berdasarkan permintaan dari pengguna (user), jadi kebanyakan fungsi standar sudah cukup untuk melayani suatu sistem email. Untuk mengkonfigurasi server dapat dilakukan secara lokal dengan menggunakan tampilan grafis, atau menggunakan remote acces dengan MDConfig atau 199

Webconfig. Pada saat instalasi, biasanya ditentukan pula fitur-fitur tambahan, seperti autoresponder, forwarding, server-side mail filtering, threading options, dukungan terhadap LDAP, anti SPAM, ATRN, extensive alias options, dukungan terhadap SMS gateway, dan lain-lainnya. MDaemon juga menyertakan fungsi mailing-list yang mempunyai fitur banyak. Sedangkan batasan pada penggunaan jumlah user di MDaemon adalah 50.000 user. Pada kedua versi tersebut diatas, disertakan pula email yang berbasiskan web (web based email) yaitu, WorldClient, yang memungkinkan pengguna dapat mengkases emailnya dari manapun dan kapanpun. MDaemon didesain untuk dijalankan pada semua sistem operasi Windows (kecuali versi 3.1), tapi tidak untuk Unix dan Mac. Hardware minimal yang dibutuhkan adalah mesin 486 dengan 16 MB memori RAM, tapi untuk hasil yang baik dan signifikan diperlukan hardware yang lebih dari itu. Postfix : Sebuah Alternatif Mail Transport Agent Server email Postfix adalah sebuah server email yang dikembangkan sebagai pengganti Send Mail danbisa dijalankan dengan baik di system operasi Unix dan Max O/S X. Postfix ini dibuat olehwietsevenema, seorang ahli pengamanan (security specialist) saat bekerja sebagai peneliti di IBM. Postfix merupakan versi yang dibagikan secara gratis dari perusahaan email komersial IBM. Pertama kalidibuat tahun 1998 dan menjadi popular karena mudah mendapatkan kode programnya dan dijalankan dalam system operasi terbuka. Postfix dipasarkan mulai tanggal 22 Januari 1999. Pada CentOS 5 dan versi sebelumnya Sendmail berlaku sebagai default mail server. Tetapi, sejak CentOS 6 sebagai default mail server adalah Postfix. Postfix dianggap sebagai MTA yang jauh lebih aman daripada SendMail danlebih cepat daripada QMail. Beberapa fitur yang ditawarkan oleh Postfix: Performance. Postfix mampu melayani sejuta e-mail dalam sehari. Hal ini menunjukkan kalau Postfi x dapat dikategorikan sebagai mail server berskala besar. Kompatibilitas. Postfix sangat kompatibel dengan Sendmail (yang sudah banyak dipergunakan orang sebagai MTA di UNIX). 200

Postfix terdiri beberapa program kecil yang saling tidak percaya. Jika Sendmail hanya mempunyai satu program besar dan satu fi le konfi gurasi besar, Postfi x memiliki program-program kecil yang menjalankan tugasnya secara spesifi k. Keamanan. Postfix dijalankan dengan proteksi bertingkat, oleh programprogram kecil yang saling tidak percaya. Masing-masing program dijalankan oleh user khusus (bukan setuid). Multiple Transport. Postfix dapat mengirim surat dengan modus SMTP (Simple Mail Transfer Protocol) dan UUCP (Unix to Unix Copy Protocol) sekaligus. Mendukung format Maildir. Maildir adalah format boks penyimpanan surat dalam bentuk folder daripada berbentuk satu fi le (mbox). Kemudahan konfigurasi. Meskipun Postfix terdiri dari banyak program kecil, namunhanya memiliki satu file konfigurasi yang mudah untuk di-setting, yakni /etc/postfi x/main.cf. Cara kerja Postfix Berikut sekilas gambaran bagaimana Postfix bekerja: 35. Jika ada mail lokal, maupun mail remote yang mempergunakan SMTP, diletakkan ke dalam direktori /var/mail/postfix/maildrop. Direktori ini world writable, dan permission-nya selalu dicek oleh pickup daemon setiap kali ada mail masuk. 36. Di sini akan dicek host, domain, maupun username yang dituju. Pengecekan juga termasuk yang didefi nisikan di /etc/aliases dan ~/.forward. Jika bermasalah, mail akan dikembalikan ke pengirim. Biasanya ada satu tembusan ke postmaster. 37. Dari maildrop, mail akan di-clean-up dengan menambahkan header, dan meletakkannya di direktori /var/mail/postfix/incoming. Di sini program queue manager akan diaktifkan. 38. Queue Manager akan memisahkan mailmail yang ditujukan untuk jaringan lokaldan mail yang ditujukan untuk host/jaringan remote. Jika ada mail yang 201

macet, Queue Manager akan memilahnya,sehingga tidak mempengaruhi pengantaran mail lainnya. 39. Trivial-rewrite adalah program yang dipanggil oleh Queue Manager untuk resolving alamat dari tujuan surat. Instalasi dan Konfigurasi Postfix Untuk melakukan konfigurasi postfix pada CentOS 6.5 installkan packet nya terlebih dahulu. Langkah-langkah yang dilakukan adalah sebagai berikut: 15. Installkan packet apache terlebih dahulu dengan syntax berikut: [root@server ~]# yum install postfix Ketika proses instalasi akan muncul tampilan seperti berikut. 202

16. Setelah packet terinstall, kemudian konfigurasi postfix di file /etc/postfix/main.cf dengan menggunakan perintah berikut ini: root@server ~]# nano /etc/postfix/main.cf Edit file konfigurasi di dalam nya adalah seperi berikut ini: # The myhostname parameter specifies the internet hostname of this # mail system. The default is to use the fully-qualified domain name # from gethostname(). $myhostname is used as a default value for many # other configuration parameters. # myhostname = server.comlabs.net.id #myhostname = virtual.domain.tld # The mydomain parameter specifies the local internet domain name. # The default is to use $myhostname minus the first component. # $mydomain is used as a default value for many other configuration # parameters. # mydomain = comlabs.net.id # For the sake of consistency between sender and recipient addresses, # myorigin also specifies the default domain name that is appended # to recipient addresses that have no @domain part. # #myorigin = $myhostname myorigin = $mydomain # RECEIVING MAIL # Note: you need to stop/start Postfix when this parameter changes. # inet_interfaces = all #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost inet_interfaces = localhost # Enable IPv4, and IPv6 if supported inet_protocols = all # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS". 203

# #mydestination = $myhostname, localhost.$mydomain, localhost, mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # You can also specify the absolute pathname of a pattern file instead of listing the patterns here. Specify type:table for tablebased lookups # (the value on the table right-hand side is not used). # mynetworks = 167.205.79.0/25, 127.0.0.0/8 # The home_mailbox parameter specifies the optional pathname of a # mailbox file relative to a user's home directory. The default # mailbox file is /var/spool/mail/user or /var/mail/user. Specify # "Maildir/" for qmail-style delivery (the / is required). # #home_mailbox = Mailbox home_mailbox = Maildir/ Kemudian save konfigurasi dengan menekan tombol Ctrl+O dan Enter. Dari file /etc/postfix/main.cf konfigurasi yang perlu dilakukan antara lain adalah: Uncomment (Hilangkan tanda # baris ke-75) dan lakukan konfigurasi sesuaikan parameter myhostname dengan nama mail server yang akan digunakan. Seperti berikut ini: myhostname = server.comlabs.net.id Parameter myhostname menjelaskan fully-qualified domain name/fqdn dari mesin yang menjalankan Postfix. $myhostname merupakan parameter acuan bagi parameter yang lain di Postfix. Secara default, myhostname di set sama dengan nama mesin local. Jika nama mesin tidak FQDN (fully-qualified domain name), atau jika menjalankan Postfix pada sebuah virtual interface, sebelumnya harus menentukan fully-qualified domain name yang digunakan mail system. 204

Uncomment (Hilangkan tanda # baris ke-83) dan lakukan konfigurasi sesuaikan parameter mydomain dengan nama domain yang digunakan. Seperti berikut ini: mydomain = comlabs.net.id Parameter mydomain menentukan domain utama dari $myhostname. Secara default nilai ini diperoleh dari $myhostname dengan memotong bagian pertama (kecuali apabila hasilnya adalah top-level domain). Uncomment (Hilangkan tanda # baris ke-99). Ubah menjadi seperti berikut ini: myorigin = $mydomain Parameter myorigin menentukan domain yang tampil di dalam mail yang terkirim pada mesin tersebut. Defaultnya adalah nama local mesin, $myhostname, yang secara default adalah nama dari mesin. Kecuali jika anda menjalankan pada sistem yang kecil, anda mungkin harus menggantinya menjadi $mydomain, yang secara default adalah induk domain dari nama mesin. Pada baris ke-116 untuk parameter inet_interfaces konfigurasi untuk ipv4 ubah menjadi seperti berikut ini : inet_interfaces = all Parameter inet_interfaces menentukan semua alamat network interface dimana Postfix listen pada alamat tersebut; alamat user@[network address] akan dikirim secara lokal, sebagaimana jika alamat pada daftar domain di dalam $mydestination. Secara default Postfix listen pada semua interfaces yang aktif. Jika menjalankan mail system di atas virtual interfaces, anda harus menentukan interface mana yang listen. Sebelumnya harus menentukan interface mesin secara explicit untuk non-virtual mailer yang menerima mail untuk mesin itu sendiri: non-virtual mailer tidak pernah listen pada virtual interface atau nantinya akan mendapatkan mailer loop. Pada baris 119 untuk parameter inet_protocols ubah menjadi all menjadi seperti berikut ini: inet_protocols = all 205

Pada baris 164 Comment parameter #mydestination (Beri tanda # di baris ke- 164) seperi berikut ini: #mydestination = $myhostname, localhost.$mydomain, localhost, Dan untuk baris ke-165 Uncomment parameter #mydestination (Hapus tanda # di baris ke-165) seperi berikut ini: mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain Parameter mydestination menentukan apa nama domain pada mesin yang akan men-deliver mail secara lokal, sementara itu juga melakukan forward kepada mesin lain. Defaultnya adalah untuk menerima mail untuk mesin itu sendiri. Tentukan zero atau lebih banyak nama domain, dengan pola /file/name dan/atau tabel lookup type:name, dipisahkan oleh spasi dan/atau koma. Sebuah /file/name akan diganti oleh isinya, permintaan type:name akan dilakukan dengan lookup ke suatu tabel. Apabila mesin adalah sebuah mail server untuk seluruh domain, harus menyertakan $mydomain. Default setting: mydestination = $myhostname localhost.$mydomain Mailserver dengan domain global: mydestination = $myhostname localhost.$mydomain $mydomain Host dengan banyak record A di DNS: mydestination = $myhostname localhost.$mydomain www.$mydomain ftp.$mydomain Uncomment (Hilangkan tanda # baris ke-264) untuk parameter mynetworks sesuaikan konfigurasi dan ubah menjadi seperti berikut ini: mynetworks = 167.205.79.0/25, 127.0.0.0/8 Parameter mynetworks menampilkan seluruh networks yang dipercaya oleh mesin. Informasi ini dapat digunakan oleh feature anti-uce untuk mengenali client SMTP yang dipercaya yang diperbolehkan untuk merelay mail. 206

Uncomment (Hilangkan tanda # baris ke-419) untuk parameter home_mailbox ubah menjadi seperti berikut ini: home_mailbox = Maildir/ Parameter home_mailbox menentukan letak opsional dari sebuah berkas mailbox relatif dengan direktori pengguna. Default berkas mailbox adalah /var/spool/mail/pengguna atau /var/mail/pengguna. Tentukan "Maildir/" bagi pengiriman bergaya-qmail (tanda / dibutuhkan). 17. Setelah melakukan konfigurasi di file /etc/postfix/main.cf tersebut kemudian buatlah user dengan perintah berikut ini: [root@server ~]# useradd comlabs [root@server ~]# passwd comlabs New password: Retype new password: passwd: all authentication tokens updated successfully. Keterangan : Useradd adalah perintah untuk membuat user baru Syntax nya : useradd [nama user] Passwd adalah peritah untuk menyetting password dari user Syntax nya : passwd [nama user] : Menginputkan password yang akan digunakan. 18. Karena, CentOS memiliki tingkat kemanan yg cukup baik. Tidak sembarang port akan terbuka hanya port-port tertentu saja. Maka, untuk itu terlebih dahulu melakukan konfigurasi firewall untuk membuka port bagi service mail server ini. Port untuk mail server adalah port25. Konfigurasi dapat dilakukan di file /etc/sysconfig/iptables dengan menjalankan syntax berikut ini: [root@server ~]# nano /etc/sysconfig/iptables 207

Edit file konfigurasi tersebut menjadi seperti berikut ini: # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT Lalu, save konfigurasi Ctrl+O dan Enter. 19. Lalu, restart iptables dengan perintah berikut ini: [root@server ~]# service iptables restart iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ] [root@server ~]# 20. Installkan terlebih dahulu packet telnet dengan menggunakan perintah berikut ini: [root@server ~]# yum telnet Ketika proses instalasi akan muncul permintaan seperti berikut maka pilih y kemudian enter. 208

21. Lalu, setelah packet telnet terinstall. Lakukan pengujian dengan melakukan perintah berikut ini: [root@server ~]# telnet localhost smtp Trying ::1... Connected to localhost. Escape character is '^]'. 220 server.comlabs.net.id ESMTP Postfix ehlo localhost 250-server.comlabs.net.id 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from:comlabs 250 2.1.0 Ok rcpt to:comlabs 250 2.1.5 Ok data 6 2 5 4 354 End data with <CR><LF>.<CR><LF> Welcome to COMLABS USDI ITB Mail Server 3 1 7 209

. 250 2.0.0 Ok: queued as B6E49259CF quit 8 221 2.0.0 Bye Connection closed by foreign host. [root@server ~]# Penjelasan: 1) Ketikan perintah telnet localhost smtp kemudian enter dan akan tampil beberapa line respon dari perintah tersebut. 2) Lalu, ketikan ehlo localhost dan enter 3) Ketikan syntax mail from:[user yang telah dibuat sebelumnya] mail from:comlabs jika berhasil aka nada respon 250 2.1.0 Ok 4) Kemudian, ketikan syntax rcpt to:[user yang telah dibuat sebelumnya] rcpt to:comlabs jika berhasil aka nada respon 250 2.1.0 Ok 5) Lalu, ketikan data dan akan muncul tampilan seperti ini: 354 End data with <CR><LF>.<CR><LF> 6) Di bawah line tersebut inutkan pesan yang akan di kirim seperti berikut ini: Welcome to COMLABS USDI ITB Mail Server 7) Kemudian ketikan. (tanda titik) dan enter, maka aka nada respon seperti berikut ini 250 2.0.0 Ok: queued as B6E49259CF yang menandakan pesan telah terkirim. 8) Terakhir, ketikan quit untuk mengakhiri pengiriman pesan. 22. Setelah itu, ketikan perintah berikut ini untuk mengecek apakah email/pesan telah terkirim dengan benar. [root@server ~]# ls /home/comlabs/maildir/new/ 1413192102.V801I42a90M838010.server.tkj.net 23. Lalu, untuk membaca pesan yang telah terkirim gunakan perintah berikut ini: [root@server ~]# cat /home/comlabs/maildir/new/1413192102.v801i42a90m838010.server.tkj.net 210

Tampilan pesan yang diterima adalah sebagai berikut: Return-Path: <comlabs@comlabs.net.id> X-Original-To: comlabs Delivered-To: comlabs@comlabs.net.id Received: from localhost (localhost [IPv6:::1]) by server.comlabs.net.id (Postfix) with ESMTP id B6E49259CF for <comlabs>; Mon, 13 Oct 2014 16:21:11 +0700 (WIB) Message-Id: <20141013092122.B6E49259CF@server.comlabs.net.id> Date: Mon, 13 Oct 2014 16:21:11 +0700 (WIB) From: comlabs@comlabs.net.id To: undisclosed-recipients:; Welcome to COMLABS USDI ITB Mail Server [root@server ~]# 211

BAB 10 DHCP DAN NAT SUBAB MATERI Memahami DHCP Server dan NAT DHCP Server NAT Key Terms DHCP FORWARD IPTABLES MASQUERADE NAT POSTROUTING PREROUTING 212

Memahami DHCP Server dan NAT DHCP Server DHCP (Dynamic Configuration Protocol) adalah layanan yang secara otomatis memberikan nomor IP kepada komputer yang memintanya. Komputer yang memberikan nomor IP disebut sebagai DHCP server, sedangkan komputer yang meminta nomor IP disebut sebagai DHCP Client. Dengan demikian administrator tidak perlu lagi harus memberikan nomor IP secara manual pada saat konfigurasi TCP/IP, tapi cukup dengan memberikan referensi kepada DHCP Server. Pada saat kedua DHCP client dihidupkan, maka komputer tersebut melakukan request ke DHCP-Server untuk mendapatkan nomor IP. DHCP menjawab dengan memberikan nomor IP yang ada di database DHCP. Setelah DHCP server memberikan nomor IP, maka server meminjamkan (lease) nomor IP yang ada ke DHCP-Client dan mencoret nomor IP tersebut dari daftar pool. Nomor IP diberikan bersama dengan subnet mask dan default gateway. Jika tidak ada lagi nomor IP yang dapat diberikan, maka client tidak dapat menginisialisasi TCP/IP, dengan sendirinya tidak dapat tersambung pada jaringan tersebut. Setelah periode waktu tertentu, maka pemakaian DHCP Client tersebut dinyatakan selesai dan client tidak memperbaharui permintaan kembali, maka nomor IP tersebut dikembalikan kepada DHCP Server, dan server dapat memberikan nomor IP tersebut kepada Client yang membutuhkan. Lama periode ini dapat ditentukan dalam menit, jam, bulan atau selamanya. Jangka waktu disebut leased period. KEUNTUNGAN Penggunaan DHCP dari sisi System Administrator, adalah tidak perlu melakukan pencatatan alamat IP pada masing-masing PC client. Mungkin untuk kebutuhan sampai dengan 10 atau 20 PC client masih bisa ditangani, namun jika klien yang ditangani sampai dengan 50 atau 100, bisa dibayangkan betapa rumit dan melelahkan pekerjaan yang harus ditangani. Tujuan utama dari penggunaan Dynamic Host Configuration Protocol adalah untuk memberikan pengaturan IP address secara tersentralisasi melalui suatu server daripada harus melakukan konfigurasi satu persatu pada setiap mesin klien. Sebuah mesin klien yang 213

dikonfigurasi menggunakan DHCP tidak dapat mengatur IP address secara static dengan sendirinya, semuanya diatur dan ditentukan oleh server DHCP yang telah ditentukan. Salah satu cara dalam penggunaan DHCP adalah dengan mengenali alamat hardware terlebih dahulu dari setiap network card (MAC Address, biasanya alamat ini fixed) kemudian memberikan klien tersebut setting IP address yang identik setiap kali terhubung ke server. DHCP juga dapat dikonfigurasi sedemikian rupa sehingga server DHCP dapat memberikan alamat-alamat IP secara dinamis pada host yang terhubung dengannya, dengan menggunakan range IP address yang telah ditentukan. Pada kasus ini server DHCP akan mencoba memberikan alamat yang sama pada mesin klien setiap kali host itu meminta alamat ke server (walaupun untuk waktu yang cukup lama). Hal ini tentu saja tidak berfungsi dengan baik, bila pada jaringan tersebut terdapat lebih banyak host komputer dibandingkan alamat yang disiapkan oleh server. Dengan kelebihan ini, DHCP membuat kerja para administrator jaringan menjadi lebih mudah. Setiap kali ada perubahan yang terkait dengan pengalamatan dan konfigurasi pada jaringan secara global, dapat diimplementasikan secara tersentral dengan hanya melakukan perubahan file konfigurasi pada server. Hal ini tentu saja lebih efisien daripada harus melakukan setting atau mengkonfigurasi pada tiap-tiap host (mesin klien). Disamping memudahkan untuk mengintegrasikan mesin-mesin (host), terutama mesin yang baru ke dalam jaringan karena mesin-mesin tersebut akan mendapatkan alamat melalui pooling alamat yang dibuat pada server. Sebuah server DHCP tidak hanya memberikan alamat IP dan netmask-nya saja, tetapi juga memberikan host name (nama host), domain name, gateway, dan name server (DNS) yang digunakan oleh mesin klien tersebut. DHCP juga dapat memiliki beberapa parameter lain seperti penggunaan time server yang dapat diakses oleh setiap klien. Cara Kerja Karena DHCP merupakan sebuah protokol yang menggunakan arsitektur client/server, maka dalam DHCP terdapat dua pihak yang terlibat, yakni DHCP Server dan DHCP Client. 214

DHCP server merupakan sebuah mesin yang menjalankan layanan yang dapat menyewakan alamat IP dan informasi TCP/IP lainnya kepada semua klien yang memintanya. Beberapa sistem operasi jaringan seperti Windows NT Server, Windows 2000 Server, Windows Server 2003, atau GNU/Linux memiliki layanan seperti ini. DHCP client merupakan mesin klien yang menjalankan perangkat lunak klien DHCP yang memungkinkan mereka untuk dapat berkomunikasi dengan DHCP Server. Sebagian besar sistem operasi klien jaringan (Windows NT Workstation, Windows 2000 Professional, Windows XP, Windows Vista, atau GNU/Linux) memiliki perangkat lunak seperti ini. DHCP server umumnya memiliki sekumpulan alamat yang diizinkan untuk didistribusikan kepada klien, yang disebut sebagai DHCP Pool. Setiap klien kemudian akan menyewa alamat IP dari DHCP Pool ini untuk waktu yang ditentukan oleh DHCP, biasanya hingga beberapa hari. Manakala waktu penyewaan alamat IP tersebut habis masanya, klien akan meminta kepada server untuk memberikan alamat IP yang baru atau memperpanjangnya. DHCP Client akan mencoba untuk mendapatkan lease alamat IP dari sebuah DHCP server dalam proses empat langkah berikut: 1. DHCPDISCOVER: DHCP client akan menyebarkan request secara broadcast untuk mencari DHCP Server yang aktif. 2. DHCPOFFER: Setelah DHCP Server mendengar broadcast dari DHCP Client, DHCP server kemudian menawarkan sebuah alamat kepada DHCP client. 3. DHCPREQUEST: Client meminta DCHP server untuk menyewakan alamat IP dari salah satu alamat yang tersedia dalam DHCP Pool pada DHCP Server yang bersangkutan. 4. DHCPACK: DHCP server akan merespons permintaan dari klien dengan mengirimkan paket acknowledgment. Kemudian, DHCP Server akan menetapkan sebuah 215

alamat (dan konfigurasi TCP/IP lainnya) kepada klien, dan memperbarui basis data database miliknya. Klien selanjutnya akan memulai proses binding dengan tumpukan protokol TCP/IP dan karena telah memiliki alamat IP, klien pun dapat memulai komunikasi jaringan. Empat tahap di atas hanya berlaku bagi klien yang belum memiliki alamat. Untuk klien yang sebelumnya pernah meminta alamat kepada DHCP server yang sama, hanya tahap 3 dan tahap 4 yang dilakukan, yakni tahap pembaruan alamat (address renewal), yang jelas lebih cepat prosesnya. Berbeda dengan sistem DNS yang terdistribusi, DHCP bersifat stand-alone, sehingga jika dalam sebuah jaringan terdapat beberapa DHCP server, basis data alamat IP dalam sebuah DHCP Server tidak akan direplikasi ke DHCP server lainnya. Hal ini dapat menjadi masalah jika konfigurasi antara dua DHCP server tersebut berbenturan, karena protokol IP tidak mengizinkan dua host memiliki alamat yang sama. Selain dapat menyediakan alamat dinamis kepada klien, DHCP Server juga dapat menetapkan sebuah alamat statik kepada klien, sehingga alamat klien akan tetap dari waktu ke waktu. Catatan: DHCP server harus memiliki alamat IP yang statis. DHCP Scope DHCP Scope adalah alamat-alamat IP yang dapat disewakan kepada DHCP client. Ini juga dapat dikonfigurasikan oleh seorang administrator dengan menggunakan peralatan konfigurasi DHCP server. Biasanya, sebuah alamat IP disewakan dalam jangka waktu tertentu, yang disebut sebagai DHCP Lease, yang umumnya bernilai tiga hari. Informasi mengenai DHCP Scope dan alamat IP yang telah disewakan kemudian disimpan di dalam basis data DHCP dalam DHCP server. Nilai alamat-alamat IP yang dapat disewakan harus diambil dari DHCP Pool yang tersedia yang dialokasikan dalam jaringan. Kesalahan yang sering terjadi dalam konfigurasi DHCP Server adalah kesalahan dalam konfigurasi DHCP Scope. DHCP Lease DHCP Lease adalah batas waktu penyewaan alamat IP yang diberikan kepada DHCP client oleh DHCP Server. Umumnya, hal ini dapat dikonfigurasikan sedemikian rupa oleh seorang administrator dengan menggunakan beberapa peralatan konfigurasi (dalam 216

Windows NT Server dapat menggunakan DHCP Manager atau dalam Windows 2000 ke atas dapat menggunakan Microsoft Management Console [MMC]). DHCP Lease juga sering disebut sebagai Reservation. DHCP Options DHCP Options adalah tambahan pengaturan alamat IP yang diberikan oleh DHCP ke DHCP client. Ketika sebuah klien meminta alamat IP kepada server, server akan memberikan paling tidak sebuah alamat IP dan alamat subnet jaringan. DHCP server juga dapat dikonfigurasikan sedemikian rupa agar memberikan tambahan informasi kepada klien, yang tentunya dapat dilakukan oleh seorang administrator. DHCP Options ini dapat diaplikasikan kepada semua klien, DHCP Scope tertentu, atau kepada sebuah host tertentu dalam jaringan. Dalam jaringan berbasis Windows NT, terdapat beberapa DHCP Option yang sering digunakan, yang dapat disusun dalam tabel berikut. Nomor DHCP Nama DHCP Option Apa yang Dikonfigurasikannya Option 003 Router Mengkonfigurasikan default gateway dalam konfigurasi alamat IP. Default gateway merujuk kepada alamat router. 006 DNS Servers Mengkonfigurasikan alamat IP untuk DNS server. 015 DNS Domain Name Mengkonfigurasikan alamat IP untuk DNS server yang menjadi induk dari DNS server yang bersangkutan. 044 NetBIOS over TCP/IP Mengkonfigurasikan alamat IP dari WINS server. Name Server 046 NetBIOS over TCP/IP Node Type Mengkonfigurasikan cara yang digunakan oleh klien untuk melakukan resolusi nama NetBIOS. 047 NetBIOS over TCP/IP Scope Membatasi klien-klien NetBIOS agar hanya dapat berkomunikasi dengan client lainnya yang memiliki alamat DHCP Scope yang sama. 217

NAT (Network Address Translation) Pada jaringan komputer, proses Network Address Translation (NAT) adalah proses penulisan ulang (masquerade) pada alamat IP asal (source) dan alamat IP tujuan (destination), setelah melalui router atau firewall. NAT digunakan pada jaringan dengan workstation yang menggunakan IP Private supaya dapat terkoneksi ke Internet dengan menggunakan satu atau lebih IP Public. Gambar 1. Network Address Translation Pada mesin Linux, untuk membangun NAT dapat dilakukan dengan menggunakan iptables (Netfilter). Dimana pada iptables memiliki tabel yang mengatur NAT. Pada tabel NAT, terdiri dari 3 chain yaitu: - PREROUTING, digunakan untuk memilah paket yang akan diteruskan - POSTROUTING, digunakan untuk memilah paket yang telah diteruskan - FORWARD, digunakan untuk memilih paket yang melalui router. 218

Gambar 2. Tabel NAT Proses NAT dilakukan pada data yang akan meninggalkan ROUTER. Sehingga pada iptables untuk pengolahan NAT dilakukan pada chain POSTROUTING. Rule yang diberikan kepada paket data tersebut adalah MASQUERADE. Tipe NAT Terdapat dua tipe NAT, yaitu Statik dan Dinamik, yang keduanya dapat digunakan secara terpisah maupun bersamaan. Statik Translasi statik terjadi ketika sebuah alamat local (inside) dipetakan ke sebuah alamat global/internet (outside). Alamat local dan global dipetakan satu lawan satu secara static. Dinamik NAT dengan Pool Translasi dinamik terjadi ketika router NAT diset untuk memahami alamat local yang harus ditranslasikan, dan pool alamat global yang akan digunakan untuk terhubung ke internet. Proses NAT dinamik ini dapat memetakan beberapa kelompok alamat lokal ke beberapa kelompok alamat global. NAT Overload Sejumlah IP local/internal dapat ditranslasikan ke satu alamat IP global/outside. Hal ini sangat menghemat penggunaan alokasi IP dari ISP. Pemakaian bersama satu alamat IP ini menggunakan metoda multiplexing atau pengubahan port ke packet outbound. 219

Komponen Utama NAT 220

Pertimbangan Implementasi NAT Keuntungan Menghemat alamat IP legal (ditetapkan oleh NIC atau service provider) Mengurangi terjadinya duplicate alamat jaringan IP. Meningkatkan fleksibilitas untuk koneksi ke internet Menghindari proses pengalamatan kembali (readdressing) pada saat jaringan berubah Kerugian Translasi menimbulkan delay switching. Menghilangkan kemampuan trace (traceability) end-to-end IP. Aplikasi tertentu tidak dapat berjalan jika menggunakan NAT. 221

DHCP Server Berikut langkah-langkah yang perlu dilakukan untuk membuat suatu DHCP Server: 1. Pertama yaitu melakukan konfigurasi network interface yang akan digunakan sebagai interface DHCP Server, untuk pengujian kali ini akan digunakan interface eth2 yang sudah terkonfigurasi IP Address secara statik, seperti langkah berikut. DEVICE=eth2 HWADDR=08:00:27:78:26:32 TYPE=Ethernet #UUID=60474abb-ef88-4cca-8e5e-bb394759bc81 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.0 GATEWAY=0.0.0.0 2. Selanjutnya install package dhcp dengan mengetikan perintah: [root@server ~]# yum y install dhcp Pada terminal linux CentOS, akan tampak seperti gambar di bawah ini. 222

3. Edit file konfigurasi DHCP daemon dengan mengetikan perintah: [root@server ~]# nano /etc/dhcp/dhcpd.conf Isikan konfigurasi sebagai berikut: option domain-name "comlabs.net.id"; option domain-name-servers ns1.comlabs.net.id; default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.1.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.1.10 192.168.1.20; option broadcast-address 192.168.1.255; option routers 192.168.1.1; option domain-name-servers 167.205.79.215; } Konfigurasi ini membuat dhcp server dengan range IP 192.168.1.10 sampai 192.168.1.20. 4. Selanjutnya menentukan interface yang akan digunakan sebagai router dhcp server dengan cara mengedit file konfigurasi dhcpd pada directory /etc/sysconfig dengan mengetikkan perintah : [root@server ~]# nano /etc/sysconfig/dhcpd 5. Isikan file konfigurasi interface dhcp server sesuai kebutuhan, pada percobana kali ini digunakan interface eth2 sebagai router dhcp server, yang mempunyai IP Address 192.168.1.1. Maka ubahlah konfigurasi DHCPDARGS menjadi eth2 dan save konfigurasi tersebut seperti berikut ini. # Command line options here DHCPDARGS="eth2" 223

6. Jalankan service dhcpd dengan perintah: [root@server ~]# service dhcpd start Pastikan service dhcpd running OK, seperti gambar di bawah ini. 7. Untuk pengujian pada client, setting IP client menjadi otomatis (automatic). 8. Setelah klik OK, tunggu beberapa saat. Cek apakah sudah mendapat IP atau belum. Jika sudah mendapat IP akan tampak seperti gambar berikut. 224