named.conf.localKetika pertama kali menyalakan atau melakukan restart komputer, ada beberapa rangkaian proses yang dijalankan oleh prosesor sebelum masuk ke jendela login sistem operasi anda. Proses tersebut adalah proses menjalankan atau me-nonaktifkan layanan-layanan yang ada pada sistem komputer anda, mulai dari proses eksekusi kode sumber BIOS (Basic Input Output System), hingga menjalankan proses init. Serangkaian proses tersebut sering disebut dengan proses booting.
Secara garis besar urutan proses booting komputer adalah sebagai berikut:
| Runlevel | Deskripsi |
|---|---|
| 0 | Mengarahkan komputer untuk shutdown. |
| 1 | Level single mode, hal ini hanya user root yang dapat log in. Dalam mode ini sistem tidak menjalankan semua jaringan, X window atau layanan multi-user. |
| 2 | Level multi user tanpa dukungan jaringan. |
| 3 | Mirip dengan runlevel 2, bedanya di runlevel ini layanan jaringan akan dijalankan. Runlevel ini yang paling sering digunakan untuk sistem server yang tidak memerlukan lingkungan desktop. |
| 4 | Runlevel ini tidak digunakan. Runlevel ini dikonfigurasi untuk boot state. |
| 5 | Level multi user dengan dukungan jaringan dan tampilan grafis. |
| 6 | Mengarahkan komputer untuk reboot/restart. |
File sistem merupakan kumpulan file-file pada suatu media penyimpanan di mana mekanisme file-file tersebut diorganisasikan. File sistem Linux tersusun dari sejumlah file dan direktori. Puncak dari hirarki direktori paling atas sering disebut dengan root direktori (/) yang memiliki sejumlah cabang yang disebut dengan direktori. Direktori yang berada tepat di bawah root direktori biasanya bersifat standar, seperti terlihat pada gambar dibawah ini.
Setelah proses instalasi, Linux akan menciptakan sistem file baku, terdiri atas direktori sebagai berikut:
| Direktori | Deskripsi |
|---|---|
| /etc | Berisi file administrative (konfigrasi dll) atau script yang berguna untuk administrasi sistem. |
| /dev | Berisi file khusus yang merepresentasikan peralatan hardware seperti memori, disk, printer, tape, floppy, jaringan dll. |
| /bin | Berisi utilitas sistem level rendah (binary) |
| /sbin | Berisi utilitas sistem untuk super user (membentuk administrasi sistem) |
| /usr/sbin /usr/bin | Berisi utilitas sistem dan program aplikasi level tinggi. |
| /usr/lib | Berisi program library yang diperlukan untuk kompilasi program (misalnya C). Berisi instruksi (command) misalnya untuk Print Spooler (lpadmin) dll. |
| /tmp | Berisi file sementara, yang pada saat Bootstrap akan dihapus (dapat digunakan oleh sembarang user). |
| /boot | Berisi file yang sangat penting untuk proses bootstrap. Kernel vmlinuz disimpan di direktori ini. |
| /proc | Berisi informasi tentang kernel Linux, proses dan virtual system file. |
| /var | Direktori variable, artinya tempat penyimpanan LOG (catatan hasil output program), file ini dapat membengkak dan perlu dimonitor perkembangannya. |
| /home | Berisi direktori untuk pemakai Linux. |
| /mnt | Direktori untuk mounting sistem file. |
| /root | Home direktori untuk superuser (root). |
| /usr/bin/X11 | Symbolic link ke /usr/X11R6/bin, program untuk X-Window. |
| /usr/src | Berisi kode sumber Linux. |
| /opt | Option, direktori ini biasanya berisi aplikasi tambahan (“add-on”) seperti Netscape Navigator, kde, gnome, applix dll. |
Linux yang anda gunakan saat ini, secara penampilan dan kemudahan sistem kerja sudah tidak lagi berbeda dengan sistem operasi Windows. Kemudahan-kemudahan seperti ini seharusnya tidak melupakan kita terhadap teknik menjalankan perintah dengan command line atau baris perintah dalam lingkungan shell. Keuntungan menggunakan baris perintah perintah adalah efektifitas dan maksimalitas kerja. Pemula Linux sebaiknya mengetahui dan sedikitnya pernah menggunakan baris perintah ini karena suatu saat pengetahuan akan perintah-perintah ini bisa sangat diperlukan. Setiap pemakai Linux harus mempunyai nama login (user account) yang sebelumnya harus didaftarkan pada administrator sistem, nama login pada umumnya dibatasi maksimum 8 karakter dan umumnya dalam huruf kecil. Prompt dari shell bash pada Linux menggunakan tanda “$”.
Sebuah sesi pada Linux pada umumnya terdiri dari:
Tergantung atas shell yang digunakan, pada Linux bash maka pada proses login akan mengeksekusi program /etc/profile (untuk semua pemakai) dan berkas bash_profile didirektori HOME masing-masing. Sedangkan pada saat logout, maka program shell bash akan mengeksekusi berkas yang bernama bash_logout.
Format perintah Linux standar mempunyai format sebagai berikut:
$nama_perintah [pilihan] [argumen]
Pilihan adalah option yang dimulai dengan tanda minus (-). Argumen dapat kosong, satu atau beberapa beberapa argumen (parameter).
Contoh:
| $ ls | tanpa argumen |
| $ ls -a | option adalah -a=all, tanpa argumen |
| $ ls /bin | tanpa option, argumen adalah /bin |
| $ ls /bin /etc /usr | ada 3 argumen |
| $ ls -l /usr | 1 option dan 1 argumen |
| $ ls -la /bin /etc | 2 option -l dan -a dan 2 argumen |
Linux menyediakan manual secara online. Manual tersebut akan menampilkan bagaimana cara penggunaan sebuah perintah/instruksi.
$man ls
akan menampilkan cara penggunaan perintah ls
Ada beberapa kunci papan ketik yang penting dalam penggunaan manual adalah:
Q
untuk keluar dari program man
<enter>
ke bawah, baris per baris
<spasi>
ke bawah, per halaman
b
kembali keatas, 1 halaman
/teks
mencari teks (string)
n
meneruskan pencarian string sebelumnya
Manual dibagi atas bab-bab sebagai berikut:
| Bab | Isi |
|---|---|
| 1 | User command |
| 2 | System Calls |
| 3 | Library Calls |
| 4 | Devices |
| 5 | File format |
| 6 | Games |
| 7 | Miscellanous |
| 8 | System Commands |
| 9 | Kernel Internal |
| N | Tcl/Tk command |
Berikut ini adalah beberapa rangkuman perintah praktis Linux, yang sering digunakan baik untuk pemula maupun mahir.
| Memulai dan Mengakhiri Linux | |
|---|---|
| shutdown -h now | Untuk mengakhiri Linux |
| halt | Untuk mengakhiri Linux |
| shutdown -r now | Me-reboot Linux |
| reboot | Me-reboot Linux |
| startx | Untuk menajalankan X window server |
| Memanipulasi File dan Direktori | |
| cd | Untuk pindah direktori kerja |
| cd .. | Untuk pindah direktori kerja dibawah direktori kerja saat ini |
| ls | Untuk menampilkan isi dari sebuah direktori |
| rm | Untuk menghapus berkas |
| mv | Untuk memindahkan berkas atau direktori |
| ls -l | Untuk menampilkan semua file dalam direktori dengan format long (panjang) |
| rm -rf | Untuk menghapus direktori |
| Mounting dan Mengakses Filesystem | |
| mount -t iso9660 /dev/cdrom /mnt/ | Me-mount cdrom dalam format iso9660 dan meletakkannya pada direktori /mnt |
| mount -t msdos /dev/hda /mnt | Me-mount harddisk hda dalam format msdos dan meletakkannya pada direktori /mnt |
| mount -t vfat /dev/hda1 /mnt | Me-mount harddisk hda1 dalam format vfat dan meletakkannya di /mnt |
| umount /mnt | Mengakhiri mounting pada /mnt |
| Instalasi Aplikasi | |
| apt-get install <nama_aplikasi> | Untuk memasang aplikasi |
| apt-get remove <nama_aplikasi> | Untuk membuang aplikasi |
| dpkg -i file.deb | Untuk memasang aplikasi menggunakan file biinary .deb |
sudo merupakan perintah yang dapat digunakan untuk menjalan perintah dengan hak akses “root” (super user) oleh pengguna biasa. Seorang administrator dapat mendelegasikan tugas administratifnya kepada pengguna lain tanpa memberikan password root kepada pengguna tersebut.
su hampir sama dengan sudo, perbedaannya adalah saat menjalankan perintah ini password yang digunakan adalah password root, bukan password pengguna biasa. Jadi administrator harus memberikan password root kepada pengguna yang akan menjalankan perintah ini.
Contoh penggunaannya sudo :
haryani@test1:~$ sudo poweroff [sudo] password for haryani:
Contoh penggunaan su :
haryani@test1:~$ su -c poweroff Password:
Manajemen user dan group merupakan elemen dasar dalam administrasi sistem operasi Linux. User dalam hal ini dapat berupa akun atau akun yang dimiliki dan digunakan oleh sebuah aplikasi. Grup merupakan ekspresi logikal organisasi yaitu sekelompok user yang secara bersama mempunyai tujuan yang sama. User dalam satu grup dapat mempunyai akses yang sama baik membaca, menambah, atau menghapus. Setiap user atau grup mempunyai nomor identitas unik yang dikenal dengan nama UserID (UID) dan GroupID (GID).
Berikut adalah perintah-perintah yang dapat digunakan untuk melakukan pengelolaan user dan grup.
Pada sistem Linux, user dibedakan menjadi 3 kelompok, yaitu:
$ cat /etc/passwd |grep root root:x:0:0:root:/root:/bin/bash
$ cat /etc/passwd |grep lp lp:x:7:7:lp:/var/spool/lpd:/bin/sh
$ cat /etc/passwd |grep tamu tamu:x:501:501:tamu:/home/tamu:/bin/bash
Sistem operasi Linux merupakan sistem operasi multiuser atau banyak pengguna. Linux bisa digunakan oleh banyak pengguna yang memiliki ruang dan lingkungan masing- masing. Setiap pengguna juga memiliki akun pengguna dan kata sandi pengguna. Nama pengguna dan kata sandi ini akan diminta pada saat pertama kali menjalankan Linux. Selain itu, di Linux juga dikenal dengan istilah Group yaitu sekumpulan dari pengguna yang memiliki hak dan wewenang tertentu. Oleh karena itu, pengetahuan manajemen pengguna dan grup sangat dibutuhkan dalam mempelajari Linux. Baik bagi mereka yang sekedar pengguna rumahan yang hanya memiliki satu jenis pengguna di sistem mereka, ataupun mereka yang bertindak sebagai sistem administrator.
Untuk membuat user dan group hanya dapat dilakukan oleh super user “root”. Perintah untuk membuat user baru adalah adduser[spasi]nama_user sedangkan untuk mengisi password user yang dibuat passwd[spasi]nama_user. Berikut ini contoh penggunaannya:
# adduser haryani Adding user `haryani' ... Adding new group `haryani' (1003) ... Adding new user `haryani' (1002) with group `haryani' ... Creating home directory `/home/haryani' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for haryani Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n]
Beberapa informasi yang perlu diketahui pada perintah diatas adalah:
Mengganti password baru cukup menjalankan perintah passwd[spasi]nama_user.
# passwd haryani Changing password for user haryani. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
Untuk menghapus user jalankan perintah berikut ini:
# userdel haryani
atau
# userdel -r haryani
catatan: menghapus dengan menggunakan opsi -r, akan menghapus secara keseluruhan direktori user tersebut.
Group adalah gabungan dari beberapa user membentuk suatu kelompok. User-user yang tergabung dalam satu group dapat saling berbagi file. Berikut ini contoh penggunaan membuat group.
# groupadd manager
# gpasswd -A haryani -M samsul,ubuntu manager
Catatan: opsi -A adalah user administrator adalah “haryani”, dan opsi -M adalah user member, yaitu “samsul”, dan “ubuntu”
# gpasswd manager Changing the password for group manager New Password: Re-enter new password:
# gpasswd -a maarif Adding user maarif to group manager # gpasswd -d maarif Removing user maarif from group manager.
Catatan: opsi -a menambah user baru, dan opsi -d menghapus user.
haryani@test1:~$ newgrp manager Password:
haryani@test1:~$ ls -l total 4 drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share
haryani@test1:~$ groups manager haryani
haryani@test1:~$ exit
Perintah untuk menghapus group adalah groupdel[spasi]nama_group.
# groupdel manager
Ketika sebuah file atau direktori dibuat, maka file atau direktori tersebut kepemilikikannya akan melekat pada suatu user dan group tertentu. Selain itu pada file tersebut akan melekat juga tiga hak akses yang berbeda, yaitu baca (read), tulis (write), dan eksekusi (execute), terhadap pemilik, grup, atau user lain. Hak akses tersebut dapat diubah oleh root atau user yang memilikinya. Hal-hal yang berkaitan dengan hak akses file tersebut merupakan kemampuan dasar dalam administrasi sistem operasi Linux.
Mekanisme kepemilikan dan akses file tersebut sangat penting, karena Linux bersifat multiuser, sehingga harus ada mekanisme untuk mencegah akses-akses ilegal terhadap file.
Secara umum pengaturan hak akses atas file atau direktori mempunyai prinsip sebagai berikut:
Hak akses
Kelompok pemakai
Kemudian tanda (+) untuk menandakan pemberian hak akses, sedangkan tanda (-) untuk menandakan penghapusan hak akses.
Perhatikan perintah berikut ini:
haryani@test1:~$ ls -l total 4 drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share -rwxr--r-- 1 haryani manager 0 Aug 24 06:06 test.txt
Berikut ini penjelasannya
| -rwxr–r– | Merupakan tipe akses |
| 1 | jumlah link |
| haryani | user owner file |
| manager | group pemilik file |
| 0 | ukuran file |
| Aug 24 06:06 | Tanggal & waktu dibuat |
| test.txt | nama file |
Tipe akses terdiri dari 10 digit, yaitu:
| Digit | Tipe Akses | Deskripsi |
|---|---|---|
| 1 | (-) atau (d) | Jika digit 1 (-) artinya itu adalah sebuah file, sedangkan jika digit 1 (d) maka itu adalah sebuah direktori. |
| 2 | r | Artinya bahwa sebuah file atau direktori tersebut bisa dibaca, ditulis, dan dieksekusi oleh user pemilik file (owner) “haryani” |
| 3 | w | |
| 4 | x | |
| 5 | r | Artinya bahwa file atau direktori tersebut hanya bisa dibaca oleh group pemilik file, yaitu “manager” |
| 6 | - | |
| 7 | - | |
| 8 | r | Artinya file atau direktori tersebut hanya dapat dibaca oleh user lain selain “haryani”. |
| 9 | - | |
| 10 | - |
Untuk merubah hak akses sebuah file atau direktori hanya bisa dilakukan oleh user root. Contoh berikut menunjukkan agar group (g) dan other (o) bisa menulis (w).
haryani@test1:~$ chmod go+w test.txt haryani@test1:~$ ls -l total 4 drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share -rwxrw-rw- 1 haryani manager 0 Aug 24 06:06 test.txt
Sedangkan untuk merubah agar user pemilik file (owner) bisa menjalankan eksekusi (x), group (g) hanya bisa membaca ( r ), dan user lain (o) tidak bisa membaca dan menulis dapat dilakukan dengan perintah berikut:
haryani@test1:~$ chmod u+x,g-w,o-rw test.txt haryani@test1:~$ ls -l total 4 drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share -rwxr----- 1 haryani manager 0 Aug 24 06:06 test.txt
Selain menggunakan kombinasi huruf, hak akses file atau direktori dapat dilakukan dengan kombinasi bilangan numerik, yaitu 0 sampai 7.
| Numerik | Tipe Akses | Deskripsi | ||
|---|---|---|---|---|
| 4 | 2 | 1 | ||
| 0 | - | - | - | Tidak bisa Read, Write, Execute |
| 1 | - | - | x | Hanya bisa Execute |
| 2 | - | w | - | Hanya bisa Write |
| 3 | - | w | x | Hanya bisa Write dan Execute |
| 4 | r | - | - | Hanya bisa Read |
| 5 | r | - | x | Hanya bisa Read dan Execute, tidak bisa Write |
| 6 | r | w | - | Hanya bisa Read dan Write, tidak bisa Execute |
| 7 | r | w | x | Bisa Read, Write, dan Execute |
Untuk merubah kepemilikan file atau direktori baik user maupun grup gunakan perintah chown, kepemilikan file ini terkadang perlu dilakukan dengan alasan keamanan.
root@test1:~# cd /home/haryani root@test1:/home/haryani# ls -l total 4 drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share -rwxr----- 1 haryani manager 0 Aug 24 06:06 test.txt
Merubah owner (pemilik file) “haryani” pada file test.txt, ke user “samsul”.
root@test1:/home/haryani# chown samsul test.txt root@test1:/home/haryani# ls -l total 4 drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share -rwxr----- 1 samsul manager 0 Aug 24 06:06 test.txt
Merubah group (pemilik file) “manager” pada file test.txt, ke user “samsul”.
root@test1:/home/haryani# chgrp samsul test.txt root@test1:/home/haryani# ls -l total 4 drwxrwxr-x 2 haryani manager 4096 Aug 24 05:53 share -rwxr----- 1 samsul samsul 0 Aug 24 06:06 test.txt
Untuk merubah owner dan group pemilik file atau direktori secara rekursif (menyeluruh).
root@test1:/home/haryani# chown -R samsul share/ root@test1:/home/haryani# chgrp -R samsul share/ root@test1:/home/haryani# ls -l total 4 drwxrwxr-x 2 samsul samsul 4096 Aug 24 05:53 share -rwxr----- 1 samsul samsul 0 Aug 24 06:06 test.txt
Sama hal nya dengan sistem operasi lainnya, Linux juga melakukan proses inisialisasi sistem ketika proses booting berjalan. Kita dapat melihat banyak sekali yang dijalankan pada saat melakukan booting, hal itu terjadi karena Linux adalah sistem operasi yang multitasking sehingga memungkinkan untuk dapat menjalankan banyak proses. Manajemen proses sangat diperlukan untuk stabilitas, keamanan, realibilitas, dan availibilitas sistem. Setiap proses pada sistem operasi Linux mempunyai identitas yang unik yang disebut dengan Proses ID (PID).
Nomor identitas proses dapat diketahui dengan menggunakan perintah ps dan pgrep, ps merubah informasi nomor identitas proses (PID) ke string aplikasi, sedangkan pgrep merubah informasi string aplikasi ke PID. Informasi identitas proses dapat dilihat dengan perintah berikut ini.
$ pstree -ap $ ps -aux
Sebuah proses dapat dihentikan apabila mengalami crash atau error pada saat sedang berjalan, untuk menghentikan proses tersebut dapat menggunakan perintah berikut.
# kill no_pid # kill 1023
Sebuah sistem manajemen paket bagi suatu distribusi sistem operasi Linux adalah seperangkat tools untuk mengotomatisasi proses penginstalan, pengkonfigurasian, dan pembuangan suatu paket perangkat lunak dari sistem operasi Linux. Biasanya sistem ini merupakan satu bagian dari sistem operasi yang datang dalam distribusi resmi suatu distro Linux.
Tools sistem manajemen paket ini biasa dikenal dengan paket manajer. Paket manajer di Linux biasanya mempunyai kemampuan memeriksa dan mengatur semua paket di dalam sistem operasi Linux.
APT merupakan sistem manajemen paket (package manager) yang bertugas untuk melakukan pemasangan, pembuangan, dan pengkonfigurasian suatu paket perangkat lunak di distro turuanan debian, termasuk ubuntu.
APT mempermudah proses manajemen paket di Linux dengan mengotomatisasi penerimaan, pengkonfigurasian, pemasangan, dan pembuangan paket perangkat lunak baik yang bertipe binari maupun kode sumber. Pada awalnya APT dibuat sebagai front- end untuk dpkg (Debian Package Managemenet System), untuk bekerja dengan paket debian dalam format .deb, tetapi sekarang telah dimodifikasi agar bekerja juga dengan sistem paket manajer RPM (RedHat Package Manager) melalui apt-rpm.
Seperti yang telah disebutkan sebelumnya, bahwa ubuntu dan turunan debian Linux menggunakan format .deb pada paket-paketnya, berkas-berkas dalam format .deb dikenal sebagai paket debian. Format .deb sebetulnya merupakan sebuah file arsip, yang dapat diekstrak menggunakan tools archiver biasa, semisal GNU Archiver, tar.
Untuk bekerja dengan berkas .deb ini, pada ubuntu Linux menggunakan dpkg, sebuah tools manajemen paket yang bisa digunakan untuk mengakses berkas .deb secara langsung, memasang berkas deb, dan membuang paket perangkat lunak. Dpkg merupakan tools dasar dalam manajemen paket berbasis debian. Perintah dpkg ini akan banyak digunakan ketika akan melakukan pemasangan paket perangkat lunak secara offline, dimana paket telah di download secara manual dari internet.
Beberapa perintah tools dpkg yang umum digunakan:
$ sudo dpkg -i namapaket.deb
$ sudo dpkg -r namapaket
$ sudo dpkg --purge namapaket
$ dpkg -l
$ dpkg -l > daftarpaket.txt
$ dpkg -L namapaket
Namun dibalik kemudahan yang dimiliki dpkg, terdapat juga kekurangan fitur diantaranya yang melatar belakangi dikembangkannya APT yakni:
Karena keterbatasan itulah, APT diciptakan. Sistem APT mengembangkan kemampuan dari dpkg sehingga mampu menangani masalah ketergantungan antar paket (dependenciy). APT juga mampu menjalankan tugas memasang paket perangkat lunak dengan mengambil secara online suatu paket dari gudang paket, yang disebut dengan repository.
APT bekerja dengan cara tetap menjaga daftar paket apa saja yang tersedia dalam sistem dengan membaca sebuah daftar paket yang dapat di download dari sebuah repository. Sumber-sumber repository dimana APT dapat mengambil paket-paketnya dikonfigurasi melalui sebuah berkas di /etc/apt/sources.list.
Sistem APT bukanlah sebuah tools tunggal, APT mempunyai opsi-opsi perintah yang bisa digunakan untuk manajemen paket, berikut fungsi-fungsi APT yang sering digunakan, diantaranya:
Penjadwalan otomatis digunakan untuk mengatur pekerjaan secara terjadwal, salah satu aplikasi penjadwalan otomatis adalah crond (cron daemon) atau sering disebut dengan crontab. Dengan aplikasi ini pengguna dimungkinkan untuk melakukan eksekusi aplikasi, kode, atau service dengan waktu yang telah ditentukan. Untuk konfigurasi crond ditangani oleh berkas /etc/crontab dan di beberapa direktori, seperti /etc/cron.d, /etc/cron.hour, /etc/cron.daily. /etc/cron.monthly, dan /etc/cron.weekly.
Penulisan penjadwalan dengan menggunakan crond menggunakan parameter tertentu yang terdiri atas waktu (detik, menit, jam, hari, minggu, bulan) dan perintah. Format penulisan crontab.
Contoh:
$sudo crontab -e 30 14 1 1 1 /sbin/reboot $sudo /etc/init.d/cron start
$sudo crontab -e 30 17 1 6,12 1 mv db_penting.tar.gz /home/data/backup $ sudo /etc/init.d/cron start
Sistem Penamaan Domain (bahasa Inggris: (Domain Name System; DNS) adalah sebuah sistem yang menyimpan informasi tentang nama host ataupun nama domain dalam bentuk basis data tersebar (distributed database) di dalam jaringan komputer, misalkan: Internet. DNS menyediakan alamat IP untuk setiap nama host dan mendata setiap server transmisi surat (mail exchange server) yang menerima surel (email) untuk setiap domain. Menurut browser Google Chrome, DNS adalah layanan jaringan yang menerjemahkan nama situs web menjadi alamat internet.
DNS menyediakan pelayanan yang cukup penting untuk Internet, ketika perangkat keras komputer dan jaringan bekerja dengan alamat IP untuk mengerjakan tugas seperti pengalamatan dan penjaluran (routing), manusia pada umumnya lebih memilih untuk menggunakan nama host dan nama domain, contohnya adalah penunjukan sumber universal (URL) dan alamat surel. Analogi yang umum digunakan untuk menjelaskan fungsinya adalah DNS bisa dianggap seperti buku telepon internet di mana saat pengguna mengetikkan www.blankonlinux.or.id di peramban web maka pengguna akan diarahkan ke alamat IP 64.140.165.106 (IPv4).
Instalasi dari sebuah paket biasanya merupakan cara termudah. Dalam Ubuntu, dapat di install dengan menggunakan perintah :
$ sudo apt-get install bind9
Dalam praktek kali ini, asumsikan alamat IP yang akan digunakan adalah 192.168.7.7 dan domain yang akan digunakan adalah sekolahku.sch.id. Silahkan sesuaikan konfigurasinya jika alamat IP dan nama domain yang digunakan berbeda.
Nah, setelah tadi kita menginstall paket bind9 langkah selanjutnya adalah mengonfigurasinya. Semua berkas konfigurasi bind9 ada di direktori /etc/bind. Ketikkan perintah berikut untuk masuk ke direktori tersebut :
$ cd /etc/bind
Pertama kita akan konfigurasi adalah berkas named.conf.local dalam direktori tadi
$ sudo nano named.conf.local
Ganti nano dengan teks editor favorit Anda, jika diperlukan. Tambahkan konfigurasinya sebagai berikut :
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "sekolahku.sch.id" {
type master;
file "/etc/bind/db.sekolahku";
};
zone "7.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};
Pada zone yang kedua, angka 7.168.192 merupakan tiga blok pertama alamat IP yang dibalik urutannya.
Jangan lupa simpan konfigurasi tersebut dengan menekan tombol Ctrl+x lalu tekan y, selanjutnya Enter.
Lalu buat/salin berkas db.local ke db.sekolahku1) dan berkas db.127 ke db.1922). Hal tersebut dapat dilakukan dengan perintah berikut :
$ sudo cp db.local db.sekolahku $ sudo cp db.127 db.192
Gunakan perintah ls untuk melihat isi folder, dan akan terlihat file yang baru dibuat tadi sebagai berikut :
samsul@maarif:/etc/bind$ ls bind.keys db.192 db.local named.conf named.conf.options db.0 db.255 db.root named.conf.default-zones rndc.key db.127 db.empty db.sekolahku named.conf.local zones.rfc1918 samsul@maarif:/etc/bind$
Selanjutnya kita akan mengonfigurasi berkas db.sekolahku dan db.192.
$ sudo nano db.sekolahku
Sunting berkas db.sekolahku sehingga menjadi seperti :
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA sekolahku.sch.id. root.sekolahku.sch.id. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.sekolahku.sch.id. @ IN A 192.168.7.7 @ IN MX 10 mail.sekolahku.sch.id. ns IN A 192.168.7.7 www IN A 192.168.7.7 mail IN A 192.168.7.7 ftp IN A 192.168.7.7
simpan dengan Ctrl+x lalu tekan y, selanjutnya Enter. Dan sunting berkas db.192 :
$ sudo nano db.192
sehingga seperti sebagai berikut :
; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA sekolahku.sch.id. root.sekolahku.sch.id. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.sekolahku.sch.id. 7 IN PTR ns.sekolahku.sch.id. 7 IN PTR www.sekolahku.sch.id. 7 IN PTR mail.sekolahku.sch.id. 7 IN PTR ftp.sekolahku.sch.id.
simpan dengan Ctrl+x lalu tekan y, selanjutnya Enter.
Angka 7 pada konfigurasi di atas 7 IN PTR ns.blabalaba adalah blok terakhir alamat IP yang kita gunakan. Jadi silahkan sesuaikan jika alamat IP yang digunakan berbeda.
Konfigurasi berikutnya pada berkas named.conf.options bersifat pilihan saja, tidak wajib. Tapi sangat disarankan untuk diaktifkan apalagi jika server kita juga difungsikan sebagai gateway.
$ sudo nano named.conf.options
Dalam hal ini misalnya kita akan memforward (meneruskan) permintaan ke DNS milik google, maka konfigurasinya adalah sebagai berikut :
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
8.8.8.8;
};
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
simpan dengan Ctrl+x lalu tekan y, selanjutnya Enter.
Sampai di sini, kita telah selesai mengonfigurasi BIND9 sebagai DNS server kita. Langkah berikutnya adalah dengan merestart layanan dns server tersebut dengan perintah berikut :
$ sudo service bind9 restart
atau
$ sudo /etc/init.d/bind9 restart
Jika tidak ada pesan error, artinya konfigurasi DNS server yang kita buat telah berhasil.
Namun untuk memastikan apakah sudah benar-benar berhasil atau belum, kita perlu melakukan pengujian. Beberapa alat yang dapat kita gunakan untuk melakukan pengujian adalah nslookup, dig, dan ping. Berikut adalah contoh-contoh hasil pengujiannya :
samsul@maarif:/etc/bind$ nslookup sekolahku.sch.id Server: 127.0.0.1 Address: 127.0.0.1#53 Name: sekolahku.sch.id Address: 192.168.7.7 samsul@maarif:/etc/bind$ nslookup 192.168.7.7 Server: 127.0.0.1 Address: 127.0.0.1#53 7.7.168.192.in-addr.arpa name = mail.sekolahku.sch.id. 7.7.168.192.in-addr.arpa name = ns.sekolahku.sch.id. 7.7.168.192.in-addr.arpa name = www.sekolahku.sch.id. 7.7.168.192.in-addr.arpa name = ftp.sekolahku.sch.id. samsul@maarif:/etc/bind$ ping sekolahku.sch.id -c 4 PING sekolahku.sch.id (192.168.7.7) 56(84) bytes of data. 64 bytes from mail.sekolahku.sch.id (192.168.7.7): icmp_seq=1 ttl=64 time=0.076 ms 64 bytes from mail.sekolahku.sch.id (192.168.7.7): icmp_seq=2 ttl=64 time=0.133 ms 64 bytes from mail.sekolahku.sch.id (192.168.7.7): icmp_seq=3 ttl=64 time=0.114 ms 64 bytes from mail.sekolahku.sch.id (192.168.7.7): icmp_seq=4 ttl=64 time=0.126 ms --- sekolahku.sam ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 0.076/0.112/0.133/0.023 ms samsul@maarif:/etc/bind$
File Transfer Protocol (FTP) adalah suatu protokol yang berfungsi untuk tukar-menukar file dalam suatu network yang menggunakan TCP koneksi bukan UDP. Dua hal yang penting dalam FTP adalah FTP Server dan FTP Client. FTP server adalah suatu server yang menjalankan software yang berfungsi untuk memberikan layanan tukar menukar file dimana server tersebut selalu siap memberikan layanan FTP apabila mendapat permintaan (request) dari FTP client.
Instalasi FTP Server cukup mudah,
$ sudo apt-get -y install proftpd
Ubah konfigurasi proftpd dengan perintah berikut :
$ sudo nano /etc/proftpd/proftpd.conf
Pada berkas konfigurasi tersebut, cari dan sesuaikan konfigurasi sebagaimana berikut ini :
# baris 11: nonaktifkan jika tidak digunakan UseIPv6 off # baris 15: ganti dengan nama host Anda ServerName "ftp.sekolahku.sch.id" # baris 34: hapus komentar (sesuaikan direktori untuk chroot) DefaultRoot ~
Simbol “~” pada DefaultRoot artinya setiap user yang mengakses dengan user-name dan password loginnya akan diarahkan ke home direktori masing-masing.
Jika ingin membatasi (melarang) pengguna untuk mengakses FTP Server, tambahkan nama pengguna tersebut pada file /etc/ftpusers (satu nama akun per baris).
$ sudo nano /etc/ftpusers
Setelah disimpan, restart ftp server :
$ sudo /etc/init.d/proftpd restart
atau dengan perintah
$ sudo systemctl restart proftpd
Lalu coba login dengan akun user Linux yang sudah dibuat sebelumnya. Berikut ini contoh mengakses ftp server melalui terminal Linux dengan perintah ftp :
samsul@studio:~$ ftp ftp> open 192.168.7.7 Connected to 192.168.7.7. 220 ProFTPD 1.3.5a Server (Debian) [192.168.7.7] Name (192.168.7.7:samsul): haryani 331 Password required for haryani Password: 230 User haryani logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful 150 Opening ASCII mode data connection for file list drwxrwxr-x 2 1001 1001 4096 Aug 24 05:53 share -rwxr----- 1 1001 1001 0 Aug 24 06:06 test.txt 226 Transfer complete ftp>
Web server adalah sebuah software yang memberikan layanan berbasis data dan berfungsi menerima permintaan dari HTTP atau HTTPS pada klien yang dikenal dan biasanya kita kenal dengan nama web browser (Mozilla Firefox, Google Chrome) dan untuk mengirimkan kembali yang hasilnya dalam bentuk beberapa halaman web dan pada umumnya akan berbentuk dokumen HTML.
Install Apache Web Server dari repository
$ sudo apt-get update $ sudo apt-get install apache2
Selesai install, kita bisa mencobanya dengan mengakses alamat ip server kita melalui browser.
Untuk mengonfigurasi virtualhost, kita perlu menentukan nama domain (nama host) yang akan kita gunakan. Misalnya sekolahku.sch.id. Dalam hal ini, alamat Ip yang digunakan adalah 192.168.7.7.
Oiya, kita juga perlu menentukan lokasi folder tempat kita akan menyimpan file aplikasi web kita. Misalnya lokasinya di /var/www/html/sekolahku/
maka langkah konfigurasinya sebagai berikut :
Buat folder yang akan digunakan sebagai DocumentRoot :
$ sudo mkdir -p /var/www/html/sekolahku/
Ubah hak akses direktori tersebut :
$ sudo chown -Rfv www-data.www-data /var/www/html/sekolahku/
Buat sebuah berkas index.html
$ sudo nano /var/www/html/sekolahku/index.html
lalu isi file tersebut (diketik) dengan :
<html> <head> <title>Belajar Membuat VirtualHost</title> </head> <body> <h1>Belajar Membuat VirtualHost</h1> <p>Paragraf pertama</p> <p>paragraf kedua</p> </body>
Selanjutnya kita konfigurasi Webservernya. Pindah direktori kerja :
$ cd /etc/apache2/sites-available/
Salin berkas konfigurasi default ke berkas baru,
$ sudo cp 000-default.conf sekolahku.conf
Edit dengan teks editor nano,
$ sudo nano sekolahku.conf
Ubah hingga sebagai berikut :
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. ServerName sekolahku.sch.id ServerAlias www.sekolahku.sch.id ServerAdmin hay@samsul.web.id DocumentRoot /var/www/html/sekolahku/ # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Simpan dengan menekan Ctrl+X, lalu Y, kemudian Enter. Aktifkan kofigurasi tersebut dengan perintah :
$ sudo a2ensite sekolahku
Outputnya sebagai berikut :
Enabling site sekolahku. To activate the new configuration, you need to run: service apache2 reload
Berdasarkan keluaran tersebut, maka kita perlu menjalankan perintah :
$ sudo service apache2 reload
Sampai tahap ini, konfigurasi web server beserta VirtualHost-nya sudah selesai, namun supaya nama domain dapat diakses dari client kita memerlukan DNS Server.
Buka peramban web (misalnya Mozilla Firefox, atau Google Chrome), dan ketikkan alamat http://sekolahku.sch.id. Jika berhasil, maka tampilannya akan sebagai berikut :
~~DISQUS~~