Rabu, 16 Desember 2009

puisi cinta

APA ITU CINTA


apa itu cinta??
seperti apa bentuknya?
adakah yang tau??

kita tak mengenal cinta..
bagaimana kita bisa katakan cinta itu hal yg indah..
atau justru hal yg menyakitkan…
tapi..kita dapat rasakan cinta..dengan hati ini!!

percayalah pada hati karena hati itu tak pernah berbohong..
cinta memang indah dan juga menyakitkan..
selayaknya sebuah buku bagaimana kita bisa tahu isinya jika kita tak pernah mencoba untuk membacanya..

begitu jg dgn cinta bagaimana kita bisa mengerti kalau kita tak pernah merasakan cinta..

rasa kan..sepahit apa pun cinta itu..rasakan dengan hati..
karena tanpa citan entah seperti apa dunia ini..
tersenyumlah walau cinta itu melukainmu..

karena tersenyum itu jauh lebih membuatmu tegar ketimbang menangis..
bangkitlah jika cinta itu menjatuhkan mu..
karena didepan akan ada cinta yg lain sedang menanti..


Cinta tak Berbalas
Ingin ku memilikimu
Ingin ku mendengarmu
Dan Ingin ku merasakan cintamu

tapi semua itu
hanya khayal waktu
Yang Membutakan mataku
Di tengah tengah kabut
Tipis , di atas laut

Hujan cerita tentangmu
Menjadi koleksi di telingaku
Bagai alunan melodi merdu
yang tak dapat pudar di makan waktu

Semua gambar dirimu
Menjadi bagian Wallpaper Hp-ku
yang setia ku pandang selalu
Tanpa memperdulikan mutu

oleh: Rizal Ramadhan

Senin, 07 Desember 2009

cara membuat blog

Cara Membuat Blog
Membuat Blog Itu Mudah
Pada Lensa ini Anda akan dipandu membuat blog dari blogger.com. Anda akan mampu membuat blog tanpa perlu berdiri terlebih dari kursi Anda saat ini, karena sangat mudahnya.
Contents at a Glance

1. Langkah 1: Daftar Google
2. Langkah 2: Daftar Blog
3. Langkah 3: Membuat Blog

4. Langkah ke 4 Blog Template
5. Belajar Membuat Blog Selesai
6. Lensa Lainnya

more...
Contents at a Glance

1. Langkah 1: Daftar Google
2. Langkah 2: Daftar Blog
3. Langkah 3: Membuat Blog
4. Langkah ke 4 Blog Template

5. Belajar Membuat Blog Selesai
6. Lensa Lainnya
7. Download eBook Gratis

less...
Langkah 1: Daftar Google
Daftarkan Diri Anda di Google
Lho koq? Koq di Google? Katanya mau ngajarin bikin blog di blogger.com, koq malah di Google? Tidak salah, karena untuk masuk ke blogger, Anda harus memiliki login google.com.

Silahkan kunjungi http://www.blogger.com. Anda akan mendapatkan halaman seperti pada gambar dibawah.

Jika Anda sudah memiliki login di Google, Anda tinggal login, maka Anda akan masuk ke Control Panel atau Panel Kontrol.

Oh ya, Anda bisa memilih bahasa, apakah Bahasa Indonesia atau bahasa Inggris.

Untuk kali ini saya anggap Anda belum memiliki login Google.

Klik tanda panah besar yang bertuliskan CIPTAKAN BLOG ANDA.

Sejauh ini sangat mudah dan akan terus mudah.

Halaman Pertama
Langkah 2: Daftar Blog
Lengkapi Pendaftaran Anda
Setelah Anda klik tanda panah besar yang bertuliskan CIPTAKAN BLOG ANDA, maka akan muncul formulir seperti yang ada pada gambar dibawah ini.

Proses ini akan menciptakan account Google yang dapat Anda gunakan pada layanan Google lainnya. Jika Anda sudah memiliki sebuah account Google mungkn dari Gmail, Google Groups, atau Orkut.

Satu account Google bisa digunakan untuk mengakses semua fasilitas yang disediakan oleh Google.

Jika Anda sudah memiliki accout google, Anda bisa langsung login (masuk). Untuk login ke Google, Anda harus login dengan menggunakan alamat email.

Silahkan lengkapi.

1. Alamat email yang Anda masukan harus sudah ada sebelumnya. Anda akan dikirim konfirmasi ke email tersebut. Jika Anda menggunakan email palsu atau email yang baru rencana akan dibuat, maka pendaftaran bisa gagal. Anda tidak perlu menggunakan email gmail.com. Email apa saja bisa.

2. Lengkapi data yang lainnya.

3. Tandai "Saya menerima Persyaratan dan Layanan" sebagai bukti bahwa Anda setuju. BTW Anda sudah membacanya?

Setelah lengkap, klik tanda panah yang bertuliskan lanjutkan.

Form Pendaftaran 1

Form Pendaftaran 2
Langkah 3: Membuat Blog
Memilih Nama Blog dan URL Blog
Jika Anda berhasil, Anda akan dibawa ke halaman seperti pada gambar dibawah. Jika gagal? Gagal biasanya karena verifikasi kata Anda salah. Itu wajar karena sering kali verifikasi kata sulit dibaca. Yang sabar saja, ulangi sampai benar. Saya sendiri sampai mengulang 3X.

Setelah Anda berhasil mendaftar, Anda akan dibawa ke halaman seperti yang ada pada gambar dibawah. Sekarang Anda mulai membuat blog dengan mengisi nama dan alamat blog Anda.

Sebagai contoh, saya menamakan blog tersebut dengan nama Hasna Zahidah. Sssst, jangan curiga, Hasna adalah putri saya. Saya memilih alamat blog dengan alamat http://hasna-zahidah.blogspot.com
sebagai alaternatif, bisa juga http://hasnazahidah.blogspot.com.

Jika Anda membuat lensa dengan tujuan mempromosikan produk Anda atau produk afiliasi, maka dalam memilih nama, harus berisi nama produk atau jasa yang akan Anda tawarkan. Misalnya jika Anda ingin menjual ebook saya, Anda bisa memilih kata kunci seperti motivasi, sukses, berpikir positif, dan kata-kata kunci lainnya yang sesuai.

Anda juga bisa meneliti kata kunci yang paling banyak dicari orang (tentu harus berhubungan dengan produk yang Anda jual) di
https://adwords.google.com/select/KeywordToolExternal

Anda bisa mengecek ketersediaan alamat blog yang Anda pilih. Jika tersedia bisa Anda lanjutkan. Jika tidak tersedia, maka Anda harus kreatif mencari nama lain atau memodifikasi alamat yang sudah ada, misalnya ditambahkan abc, xzy, 101, dan bisa juga dengan menyisipkan namaAnda.

Lanjutkan dengan klik tanda panah bertuliskan LANJUTKAN.

Proses Pembuatan Blog
Langkah ke 4 Blog Template
Pilih desain yang sesuai dengan selera Anda.
Berhasil? Tentu saja berhasil, memang mudah koq. Jika berhasil, Anda akan diarahkan ke halaman seperti yang ada pada gambar dibawah.

Pilihlah tema yang sesuai dengan selera Anda. Jika tidak ada yang sesui dengan selera Anda, jangan khawatir, nanti masih banyak pilihan tema yang bisa Anda install sendiri. Sekarang pilih saja tema agar proses pembuatan blog bisa diselesaikan. Anda bisa preview tema dengan klik gambarnya.

Untuk Memilih tema Anda klik (tandai) bulatannya o seperti pada gambar dibawah. Lihat yang saya tunjuk dengan panah merah buatan saya.

Setelah itu Anda klik tanda panah yang bertuliskan LANJUTKAN

Memilih Tema
Belajar Membuat Blog Selesai
Sekarang tinggal posting, pengaturan, dan tata letak
Selamat, sekarang Anda sudah memiliki sebuah blog. Sekarang Anda sudah mulai bisa memposting pemikiran Anda di blog dan dibagi ke seluruh dunia (eh Indonesia).

Memang masih ada beberapa hal yang harus Anda lakukan, yaitu pengaturan, tata letak, penambahan eleman, dan penggantian tema jika Anda menginginkan tema yang lain. Ini untuk tingkat lanjut.

Setidaknya, Anda sudah memiliki blog dan bisa posting. Hal ini sudah cukup untuk tahap awal. Untuk mendalami masalah Blog lebih dalam, saya anjurkan Anda membaca ebook Nge-Blog Dapat Duit.

Pada ebook tersebut, bukan hanya diajarkan cara nge-blog, tetapi juga bagaimana mendapatkan uang dari blog. Saya sendiri sudah membuktikannya, saya mendapatkan uang dari ngeblog. Jangan heran kalau saya rajin ngeblog.
Lensa Lainnya
Berikut adalah panduan lainnya yang akan mendukung Anda dalam kegiatan ngeblog. Ngblog perlu kreativitas, oleh karena itu tingkatkan kreativitas Anda. Silahkan baca pada lensa dibawah ini. Ngeblog jelas memerlukan kemampuan menulis? Saya sertakan juga lensa tentang cara menulis. Dan yang terpenting, blog harus dipromosikan supaya banyak pengunjung. Caranya ada pada link dibawah.

featured lens Cara Menulis

Menulis itu ekspresi diri, menulis itu menyenangkan, menulis itu bisa menghasilkan uang, dan menulis adalah bagian dari kehidupan kita. Namun sayang, masih banyak orang yang menganggap bahwa menulis itu sulit. Lensa ini akan menunjukan kepada Anda ba...

featured lens Cara Berpikir Kreatif

Merupakan sebuah kenyataan bahwa upaya kreatif berkaitan dengan antusiasme dan gairah dan dikenal sebagai faktor substantial pada tingkat puncak kinerja. Lensa ini akan menunjukan bagaimana cara kita meningkatkan kreativitas. Jangan sampai Anda hany...

featured lens Promosi Blog

Apakah Anda sudah punya blog? Lalu bagaimana? Tergantung tujuan Anda, jika tujuan Anda membuat blog hanya untuk mencurahkan isi hati dan pikiran tanpa perlu diketahui oleh orang lain, maka sudah punya blog Anda tinggal menggunakannya untuk menulis....


KOMPONEN BLOG DAN FUNGSINYA

- Index Page ~ Halaman depan sebuah Blog..

- Header ~ Bagian teratas dalam sebuah blog.. Biasanya daftar judul Blog..

- Footer ~ Bagian terbawah dalam sebuah blog.. Biasanya daftar navigasi dan pernyataan copyright (Hak megcopy)..

- Sidebar ~ Satu atau lebih kolom sepanjang satu atau kedua sisi dari halaman utama sebagian besar blog..

- Categories ~ Kumpulan topik dari post yang spesifik..

- Post, Entry ~ Artikel bersifat individual yang membangun sebuah blog..

- Comments ~ Memungkinkan pembaca untuk meninggalkan kata-kata..

- Captcha ~ Kependekan dari “Completely Automated Public Turing test to tell Computers and Humans Apart” .. Adalah Kata-kata dan huruf pada gambar verifikasi yang kamu perlu ketik untuk menunjukkan bahwa kamu adalah manusia, bukan sebuah mesin.. Berguna untuk memblok komen spam yang otomatis..

- Ping ~ Kependekan dari Packet Internet Grouper. Blog and ping membantu untuk memberitahukan tracking tools blog lain tentang updates, perubahan dan trackbacks.

- Trackback ~ Sebuah sistem dimana “Ping” dikirim ke blog lain untuk memberitahukan bahwa artikel mereka sudah ditulis / disebut oleh kamu..

- Pingback ~ Lihat trackback (sama).

- Permalink ~ Sebuah link ke artikel yang spesifik..

- Tags ~ Memberi nama / melampirkan kata kunci untuk mengumpulkan post yang mirip..

- Tag cloud ~ Menunjukkan daftar “tags” atau kata kunci di sebuah blog..

- Blogroll ~ Daftar links ke blog lain di sidebar (bar samping).. Lihat juga blogrolling.com..

- Sideblog ~ Sebuah blog yang lebih kecil yang biasanya ditempatkan di sidebar (bar samping) di sebuah blog..

- Template ~ Desain presentasi sebuah blog..

- BlogThis ~ Sebuah fungsi yang mengizinkan blogger untuk ngeblog entri yang mereka baca..

- Plugins ~ File-file kecil yang ditambahkan untuk memajukan fungsi dan fitur-fitur baru.. Plugins di WordPress bisa memajukan dengan hebat penggunaan blogmu dan interaktivitas..

- Dashboard ~ Saat kamu login(masuk)ke account kamu, Dashboard ini adalah layar pertama yang muncul dengan kontrol, tools (alat), dan fungsi..

- Archives ~ Sebuah kumpulan semua post mu dalam sebuah halaman.. Bisa dikategorikan per bulan, dll..

- Expandable post summaries ~ Menunjukkan bagian pertama yang pendek / rangkuman (biasanya dibatasi dengan “Read More”) di halaman index yang menghubungkan ke post yang utuhnya..

-Jump ~ Sambungan dari cerita dari halaman lain untuk menjaga bagian yang kosong pada halaman index..

- FTP ~ kependekan dari file transfer protocol. Mengirim file ke dan dari webhost kamu menggunakan alat/software FTP seperti Filezilla..

pengertian blogger

PENGERTIAN BLOGGER
Bloger adalah suatu media internet yang menyediakan sebuah catatan pribadi yang bisa dilihat semua kalangan masyarakat local maupun internasional,dan menjadi sebuah media untuk berbagi infomasi dengan mudah dan gratis.Salah satu fungsi Blog adalah sebagai sarana untuk mengekspresikan pendapat, berbagi cerita dengan orang lain di seluruh penjuru dunia, bisa juga sebagai tempat atau sarana untuk mencari uang, dan masih banyak fungsi lainnya.

Fungsi Blog yang paling bermanfaat adalah dengan membuat blog kita mempunyai kesempatan untuk menghasilkan uang melalui blog kita.

Blog adalah kependekan dari Weblog, istilah yang pertama kali digunakan oleh Jorn Barger pada bulan Desember 1997. Jorn Barger menggunakan istilah Weblog untuk menyebut kelompok website pribadi yang selalu diupdate secara kontinyu dan berisi link-link ke website lain yang mereka anggap menarik disertai dengan komentar-komentar mereka sendiri. Secara garis besar, Weblog dapat dirangkum sebagai kumpulan website pribadi yang memungkinkan para pembuatnya menampilkan berbagai jenis isi pada web dengan mudah, seperti karya tulis, kumpulan link internet, dokumen-dokumen(file-file WOrd,PDF,dll), gambar ataupun multimedia. Para pembuat blog dinamakan Blogger. Melalui Blognya, kepribadian Blogger menjadi mudah dikenali berdasarkan topik apa yang disukai, apa tanggapan terhadap link-link yang di pilih dan isu-isu didalamnya. Oleh karena itu Blog bersifat sangat personal. Perkembangan lain dari Blog yaitu ketika Blog memuat tulisan tentang apa yang seorang Blogger pikirkan, rasakan, hingga apa yang dia lakukan sehari-hari. Blog kemudian juga menjadi Diary Online yang berada di Internet. Satu-satunya hal yang membedakan Blog dari Diary atau Jurnal yang biasa kita miliki adalah bahwa Blog dibuat untuk dibaca orang lain. Jika kita perhatikan sekarang ini jumlah blog di Internet sudah terlalu banyak, mungkin sudah menjangkau jutaan jumlahnya, (Berdasarkan dari Alexa Rank, jumlah blog saat ini mencapai angka 5.612.854 buah blog). Tentunya para penulis telah mengetahui fungsinya. Bagi anda yang belum mengerti betul mengenai blog, saya kira anda perlu membaca tulisan saya ini supaya anda juga nanti akan mengetahuinya dan seterusnya mengambil langkah menyertai bidang blogging ini. Sekarang ini, umumnya para penulis blog mengunakannya sebagai alat perhubungan atau pun disebut juga “media”, yang di bedakan atas dua cara yaitu secara sehala maupun berbagai hala. Melalui keterangan singkat di atas akan saya paparkan apa saja guna/fungsi blog.

1.Blog sebagai media searah:Bentuk ini hanya memaparkan pengalaman hidup penulis,atau satu nukilan, semata-mata hanya suka-suka saja, kemudian menutup ruang komen bagi pembaca.

2.Blog sebagai media dua arah:Bentuk ini serupa seperti yang pertama, hanya saja dengan cara ini, mampu memberi peluang kepada pembaca untuk memberi komen serta mengenali penulis seterusnya menjalin persahabatan melalui blog itu.

3.Blog sebagai media berbagai Tujuan:Bentuk ini pun hanya memiliki perbedaan tipis dengan dua bentuk diatas, jika keduanya hanya di buat dengan seadanya, yang ini di buat dengan tujuan tertentu. Diantaranya sebagai maklumat dan pendidikan, promosi barang jualan, dan pengiklanan.

· Maklumat dan Pendidikan:Blog jenis ini hanya boleh di buat oleh penulis yang berpendidikan ataupun yang mempunyai pengalamannya sendiri.

· Promosi barang/jualan :Blog jenis ini sekiranya kita tidak mampu membuatnya kita boleh mengupah orang lain, yang penting kita ada barangs sendiri atau pun mengedarkan barangan orang lain yang ingin kita pasarkan.

· Pengiklanan:Blog jenis ini saya dapati adalah blog yang lebih mudah digunakan, kita hanya perlu mengetahui sedikit sebanyak cara dan teknik “blogging”. Bagi yang mampu bisa menggunakan domain dan hosting yang membutuhkan biaya seperti di www.namsahaz.com serta mengunakan weblog www.wordpress.com Salah satu contohnya adalah “Google Adsense” dan ini juga disebut dengan “pay per click”. Apabila kita menggunakan blog bentuk ini, maka kita berperan sebagai “Adsense Publisher”, yang mana kita berkerja dengan Google sebagai majikan. Setiap iklan yang diklik akan dibayar berupa cek setelah sampai minimum USD100 apabila nilai minimum tidak dapat dicapai pada bulan itu, maka akan dibawa ke hadapan hingga nilai USD100 cukup dan cek akan tiba di tangan anda.

Blog sebagai media dengan cara yang salah:Bentuk ini selalu di gunakan oleh mereka yang tidak bertanggungjawab, yang mereka tahu akan mendapat keuntungan secara mudah dengan memaparkan benda-benda yang dilarang, bagi mereka yang penting adalah uang. ( saya kira saya tidak perlu mengulas lanjut tentang rupa bentuk blog ini, tentunya anda semua sudah dapat memaklumi hal tersebut).

Jumat, 06 November 2009

Membuat BIND

BIND

26.1. Perkenalan

Domain name system (DNS) digunakan untuk mengkonversi nama host yang mudah diingat (sebagai contoh www.slackware.com) menjadi alamat IP. BIND (Berkeley Internet Name Domain) adalah daemon DNS yang paling banyak digunakan, dan akan dibahas pada bab ini.

26.1.1. Delegasi

Salah satu fitur utama adalah permintaan DNS dapat didelegasikan. Sebagai contoh, misalkan Anda memiliki domain “linuxcorp.com”. Anda bisa menyediakan nameserver yang memiliki otoritas untuk domain ini, nameserver Anda adalah bersifat otoritatif untuk “linuxcorp.com”. Misalkan terdapat cabang dari perusahaan Anda, dan Anda hendak memberikan setiap cabang sebuah otoritas pada zona miliknya masing-masing, ini bukanlah masalah bagi DNS. Anda bisa mendelegasikan DNS untuk misalnya “sales.linuxcorp.com” pada nameserver lain dalam konfigurasi DNS untuk zona “linuxcorp.com”.

Sistem DNS memiliki apa yang disebut server root, yang mendelegasikan DNS untuk jutaan nama domain dan ekstensi (misalnya, ekstensi yang spesifik terhadap sebuah negara, seperti “.nl” atau “.uk”) untuk mengotorisasi server DNS. Sistem ini mengijinkan bentuk pohon delegasi, yang sangat fleksibel dan mendistribusikan beban DNS.

26.1.2. Jenis catatan DNS

Jenis-jenis berikut adalah jenis catatan DNS yang umum:

Tabel 26.1. Catatan DNS

Awalan Deskripsi
A Catatan A menunjuk pada alamat IPv4.
AAAA Catatan AAAA menunjuk pada alamat IPv6.
CNAME Catatan CNAME menunjuk pada daftar DNS lain.
MX Catatan MX menentukan yang harus menangani pesan (e-mail) untuk domain tersebut.

26.1.3. Master dan slave

Dua jenis nameserver dapat disediakan untuk sebuah domain: master dan slave. Server DNS master bersifat otoritatif. Server slave mendownload catatan DNSnya dari server master. Menggunakan server slave disamping server master sangatlah disarankan untuk ketersediaan yang tinggi dan juga bisa digunakan untuk pembagian beban.

26.2. Membuat caching nameserver

Sebuah caching nameserver menyediakan layanan DNS untuk sebuah mesin atau jaringan, tetapi tidak menyediakan DNS untuk sebuah domain. Ini berarti bahwa nameserver jenis ini hanya bisa digunakan untuk mengkonversi nama host menjadi alamat IP. Melakukan setting sebuah nameserver dengan Slackware Linux cukup mudah, karena BIND sudah terkonversi sebagai jenis ini secara default. Mengaktifkan caching nameserver hanya membutuhkan dua langkah: Anda harus menginstall BIND dan mengubah script inisialisasinya. BIND dapat diinstall dengan menambahkan paket BIND dari set disk “n”. Setelah itu, bind bisa dijalankan dengan menjalankan perintah named. Jika Anda hendak menjalankan BIND secara default, ganti berkas /etc/rc.d/rc.bind menjadi bersifat executable. Hal ini bisa dilakukan dengan menjalankan perintah berikut sebagai root:

# chmod a+x /etc/rc.d/rc.bind

Jika Anda hendak menggunakan nameserver pada mesin yang menjalankan BIND, Anda harus mengubah /etc/resolv.conf.

IP sec

Teori

IPsec adalah standar untuk mengamankan komunikasi IP melalui authentikasi, dan enkripsi. Selain itu, juga bisa mengkompresi paket, mengurangi beban. Protokol berikut merupakan bagian dari standar IPsec:

  • AH (Authentication Header) menyediakan jaminan authentikasi untuk paket yang dikirimkan. Hal ini dilakukan dengan menghitung checksum dari paket menggunakan algoritma kriptografi. Jika checksum benar, maka penerima bisa yakin bahwa paket tidak dimodifikasi, dan paket benar-benar berasal dari pengirim (diasumsikan bahwa kunci hanya diketahui oleh pengirim dan penerima).

  • ESP (Encapsulating Security Payload) digunakan untuk mengenkripsi paket. Hal ini membuat data pada paket aman, dan hanya dapat dibaca oleh host yang memiliki kunci dekripsi yang benar.

  • IPcomp (IP payload compression) menyediakan kompresi sebelum paket dienkripsi. Hal ini berguna, karena data yang dienkripsi biasanya terkompresi lebih jelek daripada data yang tidak terenkripsi.

  • IKE (Internet Key Exchange) menyediakan media untuk melakukan negosiasi kunci secara aman. Harap diperhatikan bahwa IKE bersifat opsinal, kunci bisa dikonfigurasikan secara manual.

Terdapat dua mode operasi: mode transport digunakan untuk mengenkripsi koneksi normal antar dua host, mode tunnel mengenkapsulasi paket asli pada header baru. Pada bab ini, kita akan melihat pada mode transport, karena tujuan utama dari bab ini adalah menunjukan bagaimana membuat pengaturan koneksi yang aman antara dua host.

Terdapat dua metode utama untuk otentikasi. Anda bisa menggunakan kunci manual, atau daemon Internet Key Exchange (IKE) seperti racoon, yang secara otomatis bertukar kunci diantara dua host secara aman. Pada kedua kasus, Anda harus menentukan aturan pada Security Policy Database (SPD). Basis data ini digunakan oleh kernel untuk menentukan jenis aturan keamanan apa yang diperlukan untuk berkomunikasi dengan host lain. Jika Anda menggunakan kunci manual, Anda harus mengatur Security Association Database (SAD), yang menentukan algoritma enkripsi dan kunci yang harus digunakan untuk komunikasi yang aman dengan host lain. Jika Anda menggunakan daemon IKE, asosiasi keamanan akan dibuat secara otomatis.

23.2. Konfigurasi Linux

Dukungan native IPsec hanya tersedia pada kernel Linux 2.6.x. Kernel versi sebelumnya tidak memiliki dukungan native terhadap IPsec. Jadi, pastikan Anda sudah memiliki kernel 2.6.x. Kernel 2.6 tersedia pada Slackware Linux 10.0, 10.1, dan 10.2 dari direktori testing pada CD2 dari CD Slackware Linux, atau sembarang mirror resmi Slackware Linux. Kernel 2.6 adalah kernel default semenjak Slackware Linux 12.0. Default kernel 2.6 Slackware Linux sudah mendukung AH, ESP dan IPcomp pada IPv4 dan IPv6. Jika Anda mengkompilasi kernel sendiri, aktifkan paling tidak opsi-opsi berikut pada konfigurasi kernel Anda:

CONFIG_INET_AH=y
CONFIG_INET_ESP=y
CONFIG_INET_IPCOMP=y

Atau, Anda bisa mengkompilasi dukungan untuk protokol IPsec sebagai modul:

CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m

Pada bab ini, kita hanya akan menggunakan transformasi AH dan ESP, tetapi bukan ide yang jelek untuk mengaktifkan transformasi IPComp untuk konfigurasi lebih lanjut dari IPsec. Selain dukungan untuk protokol IPsec, Anda harus mengkompilasi dukungan kernel untuk algoritma enkripsi dan hash yang akan digunakan oleh AH atau ESP. Linux atau dukungan modul untuk algoritma ini bisa diaktifkan pada opsi CONFIG_CRYPTO. Tidaklah merepotkan untuk mengkompilasi semua algoritma cipher dan hash sebagai sebuah modul.

Ketika Anda memilih untuk mengkompilasi dukungan IPsec sebagai modul, pastikan bahwa modul yang diperlukan sudah dimuat. Sebagai contoh, jika Anda hendak menggunakan ESP untuk koneksi IPv4, muat modul esp4.

Kompilasi kernel seperti biasa dan boot kernel tersebut.

23.3. Installing IPsec-Tools

Langkah berikutnya adalah menginstall IPsec-Tools. Aplikasi ini merupakan port dari utilitas IPsec KAME. Download kode terbaru dan uraikan, konfigurasi, dan install:

# tar jxf ipsec-tools-x.y.z.tar.bz2
# cd ipsec-tools-x.y.z
# CFLAGS="-O2 -march=i486 -mcpu=i686" \
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-hybrid \
--enable-natt \
--enable-dpd \
--enable-frag \
i486-slackware-linux

# make
# make install

Ganti x.y.z dengan kode versi yang didownload. Flag yang kita tentukan selama konfigurasi kode sumber adalah:

  • --enable-dpd: mengaktifkan dead peer detection (DPD). DPD adalah metode untuk mendeteksi apakah sembarang host dimana asosiasi keamanan sudah ditentukan tidak dapat dapat dicapai. Jika benar, maka asosiasi keamanan untuk host tersebut bisa dihapus.

  • --enable-natt: mengaktifkan NAT traversal (NAT-T). Karena NAT mengganti header IP, hal ini menimbulkan masalah untuk penjaminan authentikasi dari paket. NAT-T adalah metode yang membantu mengatasi masalah ini. Mengkonfigurasi NAT-T diluar batasan dari artikel ini.

23.4. Mengatur IPsec dengan kunci manual

23.4.1. Perkenalan

Kita akan menggunakan sebuah contoh sebagai panduan untuk mengatur koneksi tidak terenkripsi diantara dua host. Host akan memiliki alamat IP 192.168.1.1 dan 192.168.1.169. “Mode transport ” akan digunakan dengan transformasi AH dan ESP beserta kunci manual.

23.4.2. Menulis berkas konfigurasi

Langkah pertama adalah menulis berkas konfigurasi yang akan kita beri nama /etc/setkey.conf. Pada host pertama (192.168.1.1) berkas konfigurasi /etc/setkey.conf berikut akan digunakan:

#!/usr/sbin/setkey -f

# Flush the SAD and SPD
flush;
spdflush;

add 192.168.1.1 192.168.1.169 ah 0x200 -A hmac-md5
0xa731649644c5dee92cbd9c2e7e188ee6;
add 192.168.1.169 192.168.1.1 ah 0x300 -A hmac-md5
0x27f6d123d7077b361662fc6e451f65d8;

add 192.168.1.1 192.168.1.169 esp 0x201 -E 3des-cbc
0x656c8523255ccc23a66c1917aa0cf30991fce83532a4b224;
add 192.168.1.169 192.168.1.1 esp 0x301 -E 3des-cbc
0xc966199f24d095f3990a320d749056401e82b26570320292

spdadd 192.168.1.1 192.168.1.169 any -P out ipsec
esp/transport//require
ah/transport//require;

spdadd 192.168.1.169 192.168.1.1 any -P in ipsec
esp/transport//require
ah/transport//require;

Baris pertama (baris yang diakhiri “;”) menambahkan kunci untuk pengujian checksum header untuk paket yang datang dari 192.168.1.1 dan menuju 192.168.1.169. Baris kedua menambahkan hal yang sama untuk paket datang dari 192.168.1.169 menuju 192.168.1.1. Baris keempat dan kelima mendefinisikan kunci untuk enkripsi data seperti yang dilakukan oelh dua baris pertama. Akhirnya, baris “spadd” mendefinisikan dua aturan, yaitu paket yang keluar dari 192.168.1.1 menuju 192.168.1.169 harus (require) di-enkodekan (esp) dan “signed” dengan header otorisasi. Aturan kedua adalah untuk paket yang masuk dan melakukan hal yang sama dengan paket keluar.

Harap Anda perhatikan bahwa Anda tidak seharusnya menggunakan kunci ini, tetapi kunci unik Anda sendiri. Anda bisa menghasilkan kunci menggunakan perangkat /dev/random :

# dd if=/dev/random count=16 bs=1 | xxd -ps

Perintah ini menggunakan dd untuk menghasilkan 16 byte dari /dev/random. Jangan lupa untuk menambahkan “0x” pada awal baris pada berkas konfigurasi. Anda bisa menggunakan 16 byte (128 bit) untuk algoritma hmac-md5 yang digunakan untuk AH. Algoritma 3des-cbc yang digunakan untuk ESP pada contoh harus menggunakan kunci 24 byte (192 bit). Kunci-kunci ini bisa dihasilkan dengan :

# dd if=/dev/random count=24 bs=1 | xxd -ps

Pastikan bahwa berkas /etc/setkey.conf hanya bisa dibaca oleh pengguna root. Jika pengguna biasa dapat membaca IPsec tidak menyediakan keamanan sama sekali. Anda bisa melakukannya dengan cara:

# chmod 600 /etc/setkey.conf

Berkas /etc/setkey.conf yang sama bisa dibuat pada host 192.168.1.169, dengan opsi -P in dan -P out dibalik. Jadi, berkas /etc/setkey.conf akan tampak seperti berikut :

#!/usr/sbin/setkey -f

# Flush the SAD and SPD
flush;
spdflush;

add 192.168.1.1 192.168.1.169 ah 0x200 -A hmac-md5
0xa731649644c5dee92cbd9c2e7e188ee6;
add 192.168.1.169 192.168.1.1 ah 0x300 -A hmac-md5
0x27f6d123d7077b361662fc6e451f65d8;

add 192.168.1.1 192.168.1.169 esp 0x201 -E 3des-cbc
0x656c8523255ccc23a66c1917aa0cf30991fce83532a4b224;
add 192.168.1.169 192.168.1.1 esp 0x301 -E 3des-cbc
0xc966199f24d095f3990a320d749056401e82b26570320292

spdadd 192.168.1.1 192.168.1.169 any -P in ipsec
esp/transport//require
ah/transport//require;

spdadd 192.168.1.169 192.168.1.1 any -P out ipsec
esp/transport//require
ah/transport//require;

23.4.3. Mengaktifkan konfigurasi IPsec

Konfigurasi IPsec bisa diaktifkan dengan perintah setkey :

# setkey -f /etc/setkey.conf

Jika Anda hendak mengaktifkan IPsec secara permanen, Anda bisa menambahkan baris berikut pada /etc/rc.d/rc.local pada kedua host :

/usr/sbin/setkey -f /etc/setkey.conf

Setelah mengkonfigurasi IPsec, Anda bisa menguji koneksi dengan menjalankan tcpdump dan melakukan ping ke host yang lain. Anda bisa melihat jika AH dan ESP digunakan pada hasil keluaran perintah tcpdump :

# tcpdump -i eth0
tcpdump: listening on eth0
11:29:58.869988 terrapin.taickim.net > 192.168.1.169: AH(spi=0x00000200,seq=0x40f): ESP(spi=0x00000201,seq=0x40f) (DF)
11:29:58.870786 192.168.1.169 > terrapin.taickim.net: AH(spi=0x00000300,seq=0x33d7): ESP(spi=0x00000301,seq=0x33d7)

23.5. Mengatur IPsec dengan pertukaran kunci otomatis

23.5.1. Perkenalan

Judul dari pertukaran kunci otomatis sudah dibahas sebentara pada perkenalan dari bab ini. Secara sederhana, IPsec dengan IKE bekerja seperti berikut.

  1. Beberapa proses pada host hendak terhubung ke host lain. Kernel menguji apakah terdapat aturan keamanan yang sudah ditentukan untuk host lain. Jika sudah terdapat asosiasi keamanan yang berhubungan dengan aturan, koneksi bisa dibuat, dan akan diautentikasi, dienkripsi, dan atau dikompresi sesuai dengan definisi. Jika tidak ada asosiasi keamanan, kernel akan meminta daemon IKE untuk membuat asoasiasi keamanan yang diperlukan.

  2. Pada tahap pertama dari pertukaran kunci, daemon IKE mencoba memverifikasi authentikasi dari host lain. Hal ini biasanya dilakukan dengan kunci yang sudah dipersiapkan (preshared) atau sertifikat. Jika authentikasi berhasil, maka kanal rahasia akan dibentuk diantara dua host, yang biasanya disebut asosiasi keamananan IKE, untuk melanjutkan dengan pertukaran kunci.

  3. Selama fase kedua dari pertukaran kunci, asosiasi keamanan untuk komunikasi dengan host lain akan dibentuk. Hal ini melibatkan pemilihan algoritma enkripsi yang akan digunakan, dan menghasilkan kunci yang akan digunakan untuk mengenkripsi komunikasi.

  4. Pada tahap ini, langkah pertama akan diulangi kembali, tetapi karena sudah ada asosiasi keamanan, komunikasi bisa dilanjutkan.

Daemon IKE racoon disertakan dengan aplikasi KAME IPsec, bagian berikut menjelaskan bagaimana mengatur racoon.

23.5.2. Menggunakan dengan kunci yang preshared

Seperti biasa, langkah pertama untuk mengatur IPsec adalah untuk mendefinisikan aturan keamanan. Kebalikan dari kunci manual, Anda tidak perlu membuat asosiasi keamanan, karena racoon akan membuatkan untuk Anda. Kita akan menggunakan IP host yang sama dengan contoh diatas. Aturan keamanan tampak seperti berikut:

#!/usr/sbin/setkey -f

# Flush the SAD and SPD
flush;
spdflush;

spdadd 192.168.1.1 192.168.1.169 any -P out ipsec
esp/transport//require;

spdadd 192.168.1.169 192.168.1.1 any -P in ipsec
esp/transport//require;

Orang yang cermat akan melihat bahwa aturan AH tidak ada pada contoh ini. Pada sebagian besar kasus, hal ini bukanlah masalah, ESP bisa menyediakan authentikasi. Tetapi Anda harus waspada bahwa authentikasi menjadi lebih lebar; ia tidak menjaga informasi diluar header ESP. Tetapi lebih efisien daripada mengenkapsulasi paket ESP pada AH.

Dengan aturan keamanan sudah terbentuk, Anda bisa mengkonfigurasi racoon. Karena informasi yang spesifik untuk koneksi, seperti metode authentikasi ditentukan pada konfigurasi fase satu, kita bisa menggunakan konfigurasi fase dua yang lebih umum. Juga dimungkinkan untuk membuat pengaturan fase dua yang spesifik untuk beberapa host tertentu. Tetapi secara umum, konfigurasi umum akan cukup untuk pengaturan sederhana. Kita juga akan menambahkan path untuk berkas kunci preshared, dan direktori sertifikat. Ini adalah contoh dari /etc/racoon.conf dengan path dan aturan tahap kedua yang sudah dibuat:

path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

sainfo anonymous {
{
pfs_group 2;
lifetime time 1 hour;
encryption_algorithm 3des, blowfish 448, rijndael;
authentication_algorithm hmac_sha1, hmac_md5;
compression_algorithm deflate;
}

Penanda sainfo digunakan untuk membuat blok yang menentukan pengaturan untuk asosiasi keamanan. Parameter anonymous digunakan untuk menentukan bahwa pengaturan ini harus digunakan untuk semua host yang tidak memiliki konfigurasi spesifik. pfs_group menentukan grup mana dari eksponensial Diffie-Hellman yang harus digunakan. Grup yang berbeda menyediakan panjang angka bilangan prima yang berbeda yang akan digunakan untuk proses authentikasi. Grup 2 menyediakan panjang kunci 1024 bit jika Anda hendak menggunakan panjang yang lebih besar. Untuk keamanan yang lebih baik, Anda bisa menggunakan grup lain (seperti 14 untuk panjang 2048 bit). encryption_algorithm menentukan algoritma enkripsi apa yang hendak digunakan oleh host untuk enkripsi ESP. authentication_algorithm menentukan algoritma yang digunakan untuk Authentikasi ESP atau AH. Akhirnya, compression_algorithm digunakan untuk menentukan algoritma kompresi ketika IPcomp ditentukan pada asosiasi.

Langkah berikutnya adalah menambahkan konfigurasi fase satu untuk pertukaran kunci dengan host lain pada berkas konfigurasi racoon.conf. Sebagai contoh:

remote 192.168.1.169
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
}

Blok remote menentukan konfigurasi fase satu. Opsi exchange_mode digunakan untuk mengkonfigurasi mode pertukaran apa yang harus digunakan untuk fase. Anda bisa menyebutkan lebih dari satu mode, tetapi mode pertama akan digunakan jika host ini adalah pelaku awal dari pertukaran kunci. Opsi my_identifier menentukan penanda apa yang harus dikirimkan pada host remote. Jika opsi ini diabaikan, address akan digunakan, yang mengirimkan alamat IP sebagai penanda. Blok proposal menentukan parameter yang akan diusulkan ke host lain selama authentikasi fase satu. Opsi encryption_algorithm, dan dh_group sudah dijelaskan diatas. Opsi hash_algorithm bersifat wajib, dan mengkonfigurasi algoritma hash yang harus dipakai. Hal ini bisa berupa md5, atau sha1. Opsi authentication_method sangat penting untuk konfigurasi ini, karena parameter ini digunakan untuk menentukan kunci preshared apa yang harus digunakan, dengan pre_shared_key.

Dengan racoon yang sudah diatur, terdapat satu hal lagi yang perlu dilakukan, kunci preshared harus ditambahkan pada /etc/racoon/psk.txt. Sintaksnya sangat sederhana, setiap baris berisi alamat IP host dan kunci. Parameter ini dipisahkan dengan tab. Sebagai contoh:

192.168.1.169 somekey

23.5.3. Mengaktifkan konfigurasi IPsec

Pada tahap ini, konfigurasi dari aturan keamanan dan racoon sudah selesai, dan Anda bisa mulai menguji konfigurasi. Merupakan ide yang bagus untuk menjalankan racoon dengan parameter -F. Hal ini akan menjalankan racoon didepan layar (foreground), membuatnya lebih mudah untuk menangkap pesan kesalahan. Untuk menjalankannya:

# setkey -f /etc/setkey.conf
# racoon -F

Sekarang karena Anda telah menambahkan aturan keamanan pada basis data, dan menjalankan racoon, Anda bisa menguji konfigurasi IPsec Anda. Sebagai contoh, Anda bisa melakukan ping ke host lain sebagai permulaan. Pertama kali Anda melakukan ping, Anda akan menemui kegagalan:

$ ping 192.168.1.169
connect: Resource temporarily unavailable

Alasannya adalah karena asosiasi keamanan harus dibentuk. Tetapi paket ICMP akan memicu pertukaran kunci. Ping akan memicu pertukaran kunci. Anda bisa melihat apakah pertukaran berhasil atau tidak dengan melihat pada pesan log racoon pada /var/log/messages, atau hasil keluaran dari terminal jika Anda menjalankan racoon pada foreground. Pertukaran kunci yang sukses akan tampak seperti berikut:

 Apr  4 17:14:58 terrapin racoon: INFO: IPsec-SA request for 192.168.1.169 queued due to no phase1 found.
Apr 4 17:14:58 terrapin racoon: INFO: initiate new phase 1 negotiation: 192.168.1.1[500]<=>192.168.1.169[500]
Apr 4 17:14:58 terrapin racoon: INFO: begin Aggressive mode.
Apr 4 17:14:58 terrapin racoon: INFO: received Vendor ID: DPD
Apr 4 17:14:58 terrapin racoon: NOTIFY: couldn't find the proper pskey, try to get one by the peer's address.
Apr 4 17:14:58 terrapin racoon: INFO: ISAKMP-SA established 192.168.1.1[500]-192.168.1.169[500] spi:58c4669f762abf10:60593eb9e3dd7406
Apr 4 17:14:59 terrapin racoon: INFO: initiate new phase 2 negotiation: 192.168.1.1[0]<=>192.168.1.169[0]
Apr 4 17:14:59 terrapin racoon: INFO: IPsec-SA established: ESP/Transport 192.168.1.169->host1ip; spi=232781799(0xddff7e7)
Apr 4 17:14:59 terrapin racoon: INFO: IPsec-SA established: ESP/Transport 192.168.1.1->192.168.1.169 spi=93933800(0x59950e8)

Setelah pertukaran kunci, Anda bisa memastikan bahwa IPsec sudah dikonfigurasi dengan benar dengan menganalisa paket yang masuk dan keluar dengan tcpdump. tcpdump tersedia pada set disk n. Misalkan koneksi keluar ke host lain melalui antarmuka eth0, Anda bisa menganalisa paket yang melalui antarmuka eth0 dengan tcpdump -i eth0. Jika paket keluar dienkripsi dengan ESP, Anda bisa melihatnya pada hasil keluaran tcpdump. Sebagai contoh:

# tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
17:27:50.241067 IP terrapin.taickim.net > 192.168.1.169: ESP(spi=0x059950e8,seq=0x9)
17:27:50.241221 IP 192.168.1.169 > terrapin.taickim.net: ESP(spi=0x0ddff7e7,seq=0x9)

Konfigurasi Jaringan

22.1. Perangkat Keras

Kartu jaringan (NIC)

Driver untuk NIC sudah terinstall sebagai modul kernel. Modul untuk NIC Anda harus sudah dimuat saat inisialisasi Slackware Linux. Pada sebagian besar sistem, NIC sudah otomatis terdeteksi dan terkonfigurasi saat installasi Slackware Linux. Anda bisa mengkonfigurasi ulang NIC Anda dengan perintah netconfig. netconfig menambahkan driver (modul) untuk kartu yang terdeteksi pada /etc/rc.d/rc.netdevice.

Juga dimungkinkan untuk mengkonfigurasi secara manual modul-modul mana yang hendak dimuat selama inisialisasi sistem. Hal ini bisa dilakukan dengan menambahkan baris modprobe pada /etc/rc.d/rc.modules. Sebagai contoh, jika Anda hendak memuat modul untuk NIC 3Com 59x NIC (3c59x.o), tambahkan baris berikut pada /etc/rc.d/rc.modules

/sbin/modprobe 3c59x

Kartu PCMCIA

Kartu PCMCIA yang didukung akan terdeteksi secara otomatis oleh perangkat lunak PCMCIA. Paket pcmcia-cs dari set disk “a” menyediakan fungsionalitas PCMCIA untuk Slackware Linux.

22.2. Konfigurasi antarmuka

Kartu jaringan tersedia pada Linux melalui “antarmuka”. Perintah ifconfig digunakan untuk menampilkan antarmuka yang tersedia:

# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:20:AF:F6:D4:AD
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1301 errors:0 dropped:0 overruns:0 frame:0
TX packets:1529 errors:0 dropped:0 overruns:0 carrier:0
collisions:1 txqueuelen:100
RX bytes:472116 (461.0 Kb) TX bytes:280355 (273.7 Kb)
Interrupt:10 Base address:0xdc00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:77 errors:0 dropped:0 overruns:0 frame:0
TX packets:77 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8482 (8.2 Kb) TX bytes:8482 (8.2 Kb)

Kartu jaringan mendapatkan nama ethn, dimana n adalah sebuah angka, dimulai dari 0. Pada contoh diatas, kartu jaringan pertama (eth0) sudah memiliki alamat IP. Tetapi antarmuka yang belum terkonfigurasi tidak akan mendapatkan alamat IP, perintah ifconfig tidak akan menampilkan alamat IP untuk antarmuka yang belum dikonfigurasi. Antarmuka bisa dikonfigurasi pada berkas /etc/rc.d/rc.inet1.conf. Anda bisa membaca komentar yang ada, dan mengisi informasi yang diperlukan. Sebagai contoh:

# Config information for eth0:
IPADDR[0]="192.168.1.1"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

Pada contoh ini, alamat IP 192.168.1.1 dengan netmask 255.255.255.0 diberikan pada antarmuka ethernet pertama (eth0). Jika Anda menggunakan server DHCP, Anda bisa mengganti baris USE_DHCP="" menjadi USE_DHP[n]="yes" (ganti “n” dengan nomor antarmuka). Variabel lain, selain DHCP_HOSTNAME akan diabaikan ketika menggunakan DHCP. Sebagai contoh:

IPADDR[1]=""
NETMASK[1]=""
USE_DHCP[1]="yes"
DHCP_HOSTNAME[1]=""

Hal yang sama berlaku pada antarmuka yang lain. Anda bisa mengaktifkan pengaturan dengan me-reboot sistem atau menjalankan /etc/rc.d/rc.inet1. Juga dimungkinkan untuk mengkonfigurasi ulang satu antarmuka dengan /etc/rc.d/rc.inet1 ethX_restart, dimana ethX harus diganti dengan nama antarmuka yang hendak dikonfigurasi ulang.

22.3. Konfigurasi pada antarmuka (IPv6)

22.3.1. Perkenalan

IPv6 adalah protokol internet generasi berikutnya. Salah satu keuntungannya adalah ia memiliki ruang alamat yang jauh lebih besar. Pada IPv4 (protokol internet yang umum digunakan saat ini) alamat berjumlah 32-bit, ruang alamat ini hampir sepenuhnya terisi dan adanya kekurangan alamat IPv4. IPv6 menggunakan alamat 128-bit, yang menyediakan ruang alamat yang sangat besar (2^128 alamat). IPv6 menggunakan notasi alamat yang berbeda, pertama-tama menggunakan nomor heksadesimal dan bukan lagi menggunakan nomor desimal, dan alamat dinotasikan dalam pasangan 16-bit yang dipisahkan oleh tanda titik dua (“:”). Mari kita lihat pada sebuah contoh:

fec0:ffff:a300:2312:0:0:0:1

Blok yang bernilai nol bisa digantikan dengan dua titik dua (“::”). Sehingga, alamat diatas bisa ditulis sebagai:

fec0:ffff:a300:2312::1

Setiap alamat IPv6 memiliki prefix. Biasanya berisi dua elemen: 32 bit yang mengidentifikasi ruang alamat yang disediakan oleh penyedia, dan angka 16-bit yang menunjukan jaringan. Dua elemen ini membentuk sebuah prefix, dan pada kasus ini panjang prefix adalah 32 + 16 = 48 bit. Sehingga, jika Anda memiliki prefix /48, Anda bisa membuat 2^16 subnet dan 2^80 host pada setiap subnet. Gambar dibawah menunjukan struktur dari alamat IPv6 dengan prefix 48-bit.

Gambar 22.1. Anatomi alamat IPv6

Anatomi alamat IPv6

Terdapat beberapa prefix yang sudah dipakai, misalnya:

Tabel 22.1. Prefix IPv6 Penting

Prefix Deskripsi
fe80:: Link alamat lokal, yang tidak dirutekan.
fec0:: Alamat lokal situs, yang dirutekan secara lokal, tetapi tidak pada atau ke Internet.
2002:: alamat 6to4, yang digunakan untuk transisi dari IPv4 ke IPv6.

22.3.2. Dukungan IPv6 pada Slackware Linux

Kernel Linux yang disertakan pada Slackware Linux tidak mendukung IPv6 secara default, tetapi dukungan disertakan sebagai modul kernel. Modul ini bisa dimuat menggunakan modprobe:

# modprobe ipv6

Anda bisa memverifikasi jika dukungan IPv6 sudah dimuat dengan benar dengan melihat hasil keluaran kernel menggunakan dmesg:

$ dmesg
[..]
IPv6 v0.8 for NET4.0

Dukungan IPv6 bisa diaktifkan secara permanen dengan menambahkan baris berikut pada /etc/rc.d/rc.modules:

/sbin/modprobe ipv6

Antarmuka bisa dikonfigurasi menggunakan ifconfig. Tetapi direkomendasikan untuk menggunakan pengaturan IPv6 menggunakan perintah ip, yang merupakan bagian dari paket “iputils” yang dapat ditemukan pada direktori extra/ dari pohon Slackware Linux.

22.3.3. Menambahkan alamat IPv6 pada antarmuka

Jika terdapat sembarang router pada jaringan, maka ada kemungkinan bahwa antarmuka pada jaringan tersebut sudah menerima sebuah alamat IPv6 ketika dukungan kernel untuk IPv6 sudah dimuat. Jika tidak, sebuah alamat IPv6 bisa ditambahkan pada sebuah antarmuka menggunakan utilitas ip. Misalkan kita hendak menambahkan alamat “fec0:0:0:bebe::1” dengan panjang prefix 64 (berarti “fec0:0:0:bebe” adalah prefix). Hal ini bisa dilakukan dengan sintaks berikut:

# ip -6 addr add / dev 

Sebagai contoh:

# ip -6 addr add fec0:0:0:bebe::1/64 dev eth0

22.4. Antarmuka nirkabel

Antarmuka nirkabel biasanya membutuhkan konfigurasi tambahan, seperti pengaturan ESSID, kunci WEP dan mode nirkabel. Pengaturan antarmuka yang khusus pada antarmuka nirkabel bisa ditentukan pada berkas /etc/rc.d/rc.wireless.conf. Script /etc/rc.d/rc.wireless mengkonfigurasikan antarmuka nirkabel berdasarkan deskripsi dari /etc/rc.d/rc.wireless.conf. Pada rc.wireless.conf pengaturan dibuat untuk setiap alamat MAC antarmuka. Secara default, berkas ini memiliki sebuah bagian yang cocok dengan setiap antarmuka:

## NOTE : Comment out the following five lines to activate the samples below ...
## --------- START SECTION TO REMOVE -----------
## Pick up any Access Point, should work on most 802.11 cards
*)
INFO="Any ESSID"
ESSID="any"
;;
## ---------- END SECTION TO REMOVE ------------

Merupakan ide bagus untuk menghapus bagian ini untuk membuat pengaturan per kartu. Jika Anda malas dan hanya memiliki satu kartu nirkabel, Anda bisa membiarkan bagian ini dan menambahkan parameter konfigurasi yang Anda perlukan. Karena bagian ini cocok dengan sembarang antarmuka nirkabel, maka kartu nirkabel Anda akan cocok dengan terkonfigurasi. Anda bisa menambahkan bagian untuk antarmuka kartu nirkabel Anda. Setiap bagian memiliki format sebagai berikut:

)

;;

Anda bisa menemukan alamat MAC dari sebuah antarmuka dengan melihat hasil keluaran ifconfig untuk sebuah antarmuka. Sebagai contoh, jika kartu nirkabel memiliki nama antarmuka eth1, Anda bisa mencari alamat MAC dengan cara berikut:

# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:01:F4:EC:A5:32
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:1 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:504 (504.0 b)
Interrupt:5 Base address:0x100

Alamat heksadesimal yang dicetak setelah HWaddr adalah alamat MAC, dalam kasus ini 00:01:F4:EC:A5:32. Ketika Anda telah menemukan alamat MAC dari antarmuka, Anda bisa menambahkan bagian untuk perangkat keras ini pada /etc/rc.d/rc.wireless.conf. Sebagai contoh:

00:01:F4:EC:A5:32)
INFO="Cabletron Roamabout WLAN NIC"
ESSID="home"
CHANNEL="8"
MODE="Managed"
KEY="1234-5678-AB"
;;

Hal ini mengatur antarmuka dengan alamat MAC 00:01:F4:EC:A5:32 untuk menggunakan ESSID home, bekerja pada mode Managed pada kanal 8. Kunci yang digunakan untuk enkripsi WEP adalah 1234-5678-AB. Terdapat banyak parameter lain yang bisa ditentukan. Untuk gambaran dari semua parameter, lihat pada contoh terakhir pada rc.wireless.conf.

Setelah mengkonfigurasi antarmuka nirkabel, Anda bisa mengaktifkan perubahan dengan menjalankan script inisialisasi jaringan /etc/rc.d/rc.inet1. Anda bisa melihat pengaturan nirkabel aktual dengan perintah iwconfig :

eth1      IEEE 802.11-DS  ESSID:"home"  Nickname:"HERMES I"
Mode:Managed Frequency:2.447 GHz Access Point: 02:20:6B:75:0C:56
Bit Rate:2 Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:1234-5678-AB
Power Management:off
Link Quality=0/92 Signal level=134/153 Noise level=134/153
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:27 Invalid misc:0 Missed beacon:0

22.5. Resolve

Nama host

Setiap komputer pada Internet memiliki sebuah nama host. Jika Anda tidak memiliki nama host yang dapat di-resolve oleh DNS, merupakan ide yang bagus untuk mengkonfigurasi nama host Anda, karena beberapa perangkat lunak menggunakannya. Anda bisa mengkonfigurasikan nama host pada /etc/HOSTNAME. Sebuah baris tunggal dengan nama host mesin sudah cukup. Biasanya sebuah nama host memiliki bentuk seperti berikut: host.domain.tld, sebagai contoh darkstar.slackfans.org. Hati-hati bahwa nama host harus dapat di-resolve, yang berarti GNU/Linux harus bisa mengkonversi nama host menjadi alamat IP. Anda bisa memastikan nama host dapat di-resolve dengan menambahkan pada /etc/hosts. Baca bagian berikutnya untuk informasi tentang berkas ini.

/etc/hosts

/etc/hosts adalah tabel alamat IP dengan nama host yang berhubungan. Berkas ini bisa digunakan untuk memberi nama komputer pada jaringan yang kecil. Mari kita lihat contoh dari berkas /etc/hosts :

127.0.0.1               localhost
192.168.1.1 tazzy.slackfans.org tazzy
192.168.1.169 flux.slackfans.org

Baris localhost harus selalu ada. Bari ini memberi nama localhost pada antarmuka khusus, loopback. Pada contoh ini, nama tazzy.slackfans.org dan tazzy diberi alamat IP 192.168.1.1, dan nama flux.slackfans.org diberi alamat IP 192.168.1.169. Pada sistem dimana berkas ini berada, kedua komputer akan tersedia sesuai dengan nama host yang diberikan.

Juga dimungkinkan untuk menambahkan alamat IPv6, yang akan digunakan jika sistem Anda terkonfigurasi untuk IPv6. Berikut adalah contoh berkas /etc/hosts untuk alamat IPv4 dan IPv6 :

# IPv4 entries
127.0.0.1 localhost
192.168.1.1 tazzy.slackfans.org tazzy
192.168.1.169 gideon.slackfans.org

# IPv6 entries
::1 localhost
fec0:0:0:bebe::2 flux.slackfans.org

Harap diperhatikan bahwa “::1” adalah loopback IPv6 default.

/etc/resolv.conf

Berkas /etc/resolv.conf digunakan untuk menentukan nameserver mana yang harus digunakan sistem. Sebuah nameserver mengkonversi nama host menjadi alamat IP. Penyedia Internet Anda seharusnya memberikan paling tidak dua alamat nameserver (server DNS). Anda bisa menambahkan nameserver ini pada /etc/resolv.conf dengan menambahkan baris nameserver alamatIP untuk setiap nameserver. Sebagai contoh:

nameserver 192.168.1.1
nameserver 192.168.1.169

Anda bisa menguji apakah nama host ditranslasikan dengan benar atau tidak dengan perintah host namahost. Ganti namahost dengan nama hostname yang ada., sebagai contoh website dari penyedia layanan Internet Anda.

22.6. IPv4 Forwarding

IPv4 forwarding menghubungkan dua atau lebih jaringan dengan mengirimkan paket yang tiba pada satu antarmuka ke antarmuka lain. Hal ini memungkinkan sebuah mesin GNU/Linux berfungsi sebagai sebuah router. Sebagai contoh, Anda bisa menghubungkan banyak jaringan, atau jaringan rumah dengan Internet. Mari kita lihat pada sebuah contoh:

Gambar 22.2. Contoh Router

Contoh Router

Pada contoh terdapat dua jaringan, 192.168.1.0 dan 192.168.2.0. Tiga host terhubung pada kedua jaringan. Salah satu dari host ini terhubung ke kedua jaringan dengan beberapa antarmuka. Antarmuka pada jaringan 192.168.1.0 memiliki alamat IP 192.168.1.3, antarmuka pada jaringan 192.168.2.0 memiliki alamat IP 192.168.2.3. Jika host bertindak sebagai router antar jaringan, maka ia mengirimkan paket dari jaringan 192.168.1.0 ke jaringan 192.168.2.0 dan sebaliknya. Routing dari paket TCP/IP IPv4 normal bisa diaktifkan dengan mengaktifkan IPv4 forwarding.

IPv4 forwarding bisa diaktifkan atau dinonaktifkan pada Slackware Linux dengan mengubah bit executable dari berkas /etc/rc.d/rc.ip_forward. Jika bit executable diaktifkan pada berkas ini, IP forwarding akan diaktifkan pada saat sistem boot, selain itu, tidak akan diaktifkan. Anda bisa menguji apakah bit executable sudah diaktifkan dengan ls -l (deskripsi dari perintah ls bisa ditemukan pada Bagian 8.2.1, “Menampilkan berkas”).

Juga mungkin untuk mengaktifkan IPv4 forwarding pada sistem yang berjalan dengan perintah berikut (0 menonaktifkan forwarding, 1 mengaktifkan forwarding):

# echo 0 > /proc/sys/net/ipv4/ip_forward

Hati-hati! Secara default, tidak ada filter paket yang aktif. Hal ini berarti bahwa semua orang bisa mengakses jaringan lain. Beban bisa difilter dan dicatat dengan filter paket kernel iptables. Iptables bisa dikelola melalui perintah iptables. NAT (Network Address Translation) juga bagian dari iptables, dan bisa dikontrol dan diaktifkan melalui perintah iptables. NAT memungkinkan untuk “menyembunyikan” sebuah jaringan dibelakang sebuah alamat IP. Hal ini memungkinkan Anda menggunakan Internet pada jaringan yang lengkap hanya dengan satu alamat IP.

Membangun kernel

Perkenalan

Kernel Linux secara singkat dibahas pada Bagian 2.1, “Apa itu Linux?”. Salah satu keunggulan dari Linux adalah ketersediaan dari kode sumbernya (seperti pada sistem Slackware Linux). Hal ini berarti Anda bisa mengkompilasi ulang kernel. Terdapat banyak situasi dimana mengkompilasi ulang kernel menjadi berguna. Sebagai contoh:

  • Membuat kernel lebih ringkas: Anda dapat menonaktifkan beberapa fungsionalitas dari kernel, untuk mengurangi ukurannya. Hal ini menjadi penting pada lingkungan dimana memori sangat terbatas.

  • Mengoptimalkan kernel: dimungkinkan untuk mengoptimalkan kernel. Sebagai contoh, dengan mengkompilasinya untuk jenis prosesor yang spesifik.

  • Dukungan perangkat keras: Dukungan untuk beberapa perangkat keras tidak diaktifkan secara default pada kernel Linux yang disediakan oleh Slackware Linux. Contoh sederhana adalah dukungan untuk sistem SMP.

  • Menggunakan perbaikan khusus: Terdapat banyak perbaikan tidak resmi untuk kernel Linux. Secara umum merupakan ide bagus untuk menghindari perbaikan tidak resmi. Tetapi beberapa perangkat lunak pihak ketiga, seperti Win4Lin, memaksa Anda menginstall perbaikan kernel tambahan.

  • Membuat header dan infrastruktur pembangunan yang benar untuk membangun modul pihak ketiga.

Bab ini berfokus pada seri kernel default yang digunakan pada Slackware Linux 12.0, Linux 2.6. Mengkompilasi ulang kernel tidaklah susah, asalkan Anda membuat salinan kernel yang bisa Anda gunakan ketika terjadi masalah. Kompilasi Linux melibatkan langkah-langkah berikut:

  • Mengkonfigurasi kernel.

  • Membangun kernel.

  • Membangun modul-modul.

  • Menginstall kernel dan modul-modul.

  • Mengupdate konfigurasi LILO.

Pada bab ini, kami mengasumsikan bahwa kode sumber kernel tersedia pada /usr/src/linux. Jika Anda telah menginstall paket kernel-sources dari set disk “k”, kode sumber kernel tersedia pada /usr/src/linux-versikernel, dan /usr/src/linux adalah link simbolis pada direktori kode sumber kernel yang sebenarnya. Jadi, jika Anda menggunakan paket kernel standar dari Slackware Linux, Anda sudah siap.

Berbeda dengan versi kernel yang lama, tidak lagi diperlukan untuk menggunakan link simbolik /usr/src/linux. Jika Anda telah menguraikan kode sumber kernel y ang baru pada /usr/src, Anda bisa membangun kernel pada /usr/src/linux-, dan menggunakan direktori tersebut pada contoh di bab ini.

18.2. Konfigurasi

Seperti yang dijelaskan diatas, langkah pertama adalah mengkonfigurasi kode sumber kernel. Untuk mempermudah konfigurasi kernel, merupakan ide yang bagus untuk menyalin konfigurasi kernel default Slackware Linux ke kode sumber kernel. Berkas konfigurasi kernel standar Slackware Linux disimpan pada media distribusi sebagai kernels//config. Misalkan Anda hendak menggunakan konfigurasi kernel hugesmp.s sebagai awal (yang merupakan kernel default), dan Anda telah memiliki CD-ROM Slackware Linux yang sudah di-mount pada /mnt/cdrom, Anda bisa menyalin konfigurasi kernel Slackware Linux dengan :

# cp /mnt/cdrom/kernels/hugesmp.s/config /usr/src/linux/.config

Konfigurasi kernel yang berjalan juga bisa didapatkan pada /proc/config.gz jika kernel dikompilasi dengan opsi CONFIG_IKCONFIG dan CONFIG_IKCONFIG_PROC. Kernel default Slackware Linux sudah mengaktifkan opsi tersebut. Jadi, jika Anda hendak menggunakan konfigurasi dari kernel yang berjalan, Anda bisa menjalankan:

# zcat /proc/config.gz > /usr/src/linux/.config

Jika Anda menggunakan berkas konfigurasi untuk versi kernel lain yang hendak Anda kompilasi, pada biasanya kedua versi kernel tidak memiliki opsi yang sama. Opsi baru ditambahkan (misalnya driver baru ditambahkan), dan terkadang beberapa komponen kernel dihapus. Anda bisa mengkonfigurasikan opsi baru (dan menghapus opsi yang tidak dipakai) dengan perintah make oldconfig :

# cd /usr/src/linux ; make oldconfig

Hal ini akan menanyakan Anda tentang opsi-opsi, apakah Anda hendak mengkompilasinya secara penuh (Y), mengkompilasi sebagai modul (M), atau tidak menyertakannya (N). Sebagai contoh:

IBM ThinkPad Laptop Extras (ACPI_IBM) [N/m/y/?] (NEW)

Seperti yang Anda lihat, opsi yang mungkin ditampilkan, dengan pilihan default dengan huruf kapital. Jika Anda menekan , maka opsi yang berhuruf besar akan digunakan. Jika Anda hendak melihat informasi tentang sebuah opsi, Anda bisa masukkan tanda tanya (?):

    IBM ThinkPad Laptop Extras (ACPI_IBM) [N/m/y/?] (NEW) ?

This is a Linux ACPI driver for the IBM ThinkPad laptops. It adds
support for Fn-Fx key combinations, Bluetooth control, video
output switching, ThinkLight control, UltraBay eject and more.
For more information about this driver see
and .

If you have an IBM ThinkPad laptop, say Y or M here.

IBM ThinkPad Laptop Extras (ACPI_IBM) [N/m/y/?] (NEW)

Hasil keluaran dari perintah ini bisa cukup panjang, karena opsi yang digunakan pada berkas konfigurasi, dan yang tersedia pada kernel yang berjalan juga ditampilkan, tetapi konfigurasinya akan diisi sesuai dengan berkas konfigurasi.

Pada tahap ini, Anda bisa mulai mengkonfigurasi kernel secara detail. Terdapat tiga cara untuk mengkonfigurasi kernel. Pertama adalah config, yang hanya menanyakan kepada Anda apa yang hendak Anda lakukan untuk setiap opsi kernel. Hal ini memakan waktu sangat lama. Jadi biasanya ini bukan cara yang baik untuk mengkonfigurasi kernel. Cara yang lebih ramah adalah dengan menuconfig, yang menggunakan sistem berbasis menu yang bisa Anda gunakan untuk mengkonfigurasi kernel. Terdapat sistem berbasis X, yang bernama xconfig. Anda bisa menjalankannya dengan berpindah ke direktori kode sumber kernel, dan menjalankan make . Sebagai contoh, untuk mengkonfigurasi kernel dengan tampilan berbasis menu, Anda bisa menggunakan perintah berikut:

# cd /usr/src/linux
# make menuconfig

Tentu saja, jika Anda suka, Anda bisa mengedit berkas .config secara langsung dengan editor teks Anda.

Seperti yang kita lihat sebelumnya, pada konfigurasi kernel terdapat tiga opsi untuk setiap pilihan: “n” menonaktifkan fungsionalitas, “y” mengaktifkan fungsionalitas, dan “m” mengkompilasi fungsionalitas sebagai modul. Konfigurasi default kernel pada Slackware Linux adalah konfigurasi yang sangat bagus, ia menyertakan dukungan untuk semua pengontrol disk dan sistem berkas yang umum, dan sisanya dikompilasi sebagai modul. Apapun pilihan Anda, Anda harus memastikan bahwa driver untuk pengontrol disk dan dukungan untuk sistem berkas yang berisi sistem berkas root Anda harus disertakan. Jika tidak, kernel tidak akan bisa me-mount sistem berkas root, dan kernel akan panik karena tidak bisa menyerahkan inisialisasi pada program init.

[Catatan] Catatan

Selalu merupakan ide bagus untuk menyimpan kernel lama Anda, jika terjadi kesalahan pada saat konfigurasi. Jika kernel yang hendak dikompilasi memiliki nomor versi yang sama dengan kernel yang berjalan, Anda harus dengan serius mempertimbangkan untuk memodifikasi opsi CONFIG_LOCALVERSION. String yang ditentukan pada opsi ini ditambahkan pada nama versi. Sebagai contoh, jika kernel memiliki versi 2.6.21.6, dan CONFIG_LOCALVERSION diisi dengan "-smp-ddk", versi kernel akan menjadi 2.6.21.6-smp-ddk.

Jika Anda tidak memodifikasi versi dengan cara ini, installasi dari modul kernel baru akan menimpa modul dari kernel yang berjalan. Hal ini tentunya tidak baik jika Anda harus kembali ke kernel lama.

18.3. Kompilasi

Kompilasi kernel dahulu terdiri dari beberapa langkah, tetapi kernel Linux 2.6 bisa dikompilasi dengan menjalankan make pada direktori kode sumber kernel. Perintah ini akan menghitung ketergantungan, membangun kernel, dan membangun dan menghubungkan modul kernel.

# cd /usr/src/linux
# make

Setelah kompilasi selesai, pohon yang berisi modul yang sudah dikompilasi, dan citra kernel yang terkompresi bernama bzImage akan berada pada /usr/src/linux/arch/i386/boot. Anda bisa melanjutkan dengan installasi dari kernel dan modulnya.

18.4. Installasi

18.4.1. Menginstall kernel

Langkah berikutnya adalah untuk menginstall kernel dan modul kernel. Kita akan mulai dengan menginstall modul kernel, karena hal ini bisa dilakukan dengan satu perintah dari pohon kode sumber kernel:

# make modules_install

Hal ini akan menginstall modul pada /lib/modules/. Jika Anda mengganti kernel dengan nomor versi yang sama, maka merupakan ide bagus untuk menghapus modul lama sebelum menginstall yang baru. Misalnya:

# rm -rf /lib/modules/2.6.21.5-smp

Anda bisa “menginstall” kernel dengan menyalinnya pada direktori /boot. Anda bisa memberikan nama sesuai selera Anda, tetapi alangkah baiknya menggunakan konvensi nama. Misalnya vmlinuz-versi. Sebagai contoh, jika Anda menamainya vmlinuz-2.6.21.5-smp-ddk, Anda bisa menyalinnya dari pohon kode sumber kernel dengan:

# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.21.5-smp-ddk

Pada tahap ini, Anda sudah hampir selesai. Langkah terakhir adalah menambahkan kernel baru pada konfigurasi Linux boot loader (LILO).

18.4.2. Configuring LILO

LILO (Linux Loader) adalah boot loader default yang digunakan Slackware Linux. Konfigurasi dari LILO bekerja dalam dua langkah; langkah pertama adalah mengubah konfigurasi LILO pada /etc/lilo.conf. Langkah kedua adalah menjalankan lilo, yang akan menulis konfigurasi LILO pada boot loader. Konfigurasi LILO sudah memiliki informasi untuk kernel aktual yang Anda gunakan. Merupakan ide bagus untuk mempertahankan informasi ini, sebagai opsi kembali jika kernel baru Anda tidak bekerja. Jika Anda melihat akhir dari /etc/lilo.conf Anda akan melihat informasi yang serupa dengan ini:

# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/hda5
label = Slack
read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends

Cara termudah untuk menambahkan kernel baru adalah menduplikasi informasi yang ada, lalu mengedit informasi pertama, mengubah opsi image, dan label. Setelah mengubah, contoh diatas menjadi :

# Linux bootable partition config begins
image = /boot/vmlinuz-2.6.21.5-smp-ddk
root = /dev/hda5
label = Slack
read-only # Non-UMSDOS filesystems should be mounted read-only for checking

image = /boot/vmlinuz
root = /dev/hda5
label = SlackOld
read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends

Seperti yang Anda lihat, informasi image pertama mengarah pada kernel baru, dan label dari informasi kedua diganti ke “SlackOld”. LILO akan secara otomatis boot ke yang pertama. Anda sekarang bisa menginstall konfigurasi LILO baru dengan perintah lilo :

# lilo
Added Slack *
Added SlackOld

Pada saat Anda boot berikutnya, kedua informasi akan tersedia, dan bagian “Slack” akan dipakai sebagai default.

[Catatan] Catatan

Jika Anda hendak LILO menampilkan menu dengan informasi yang dikonfigurasikan pada lilo.conf pada setiap kali boot, pastikan Anda menambahkan baris yang berisi

prompt

pada lilo.conf. Jika tidak, LILO akan mem-boot informasi default yang ditentukan dengan default=, atau informasi pertama ketika tidak ada kernel default yang ditentukan. Anda bisa mengakses menu kapan saja dengan menekan kunci ketika LILO dijalankan.

Perkenalan perintah dasar linux slackware

7.1. Perkenalan

Pada bab ini kita akan melihat lingkungan kerja tradisional dari sistem UNIX: shell. Shell adalah sebuah interpreter yang dapat digunakan secara interaktif dan non-interaktif. Ketika shell digunakan pada mode non-interaktif, fungsinya sebagai bahasa pemrograman yang sederhana, namun bagus.

Prosedur untuk menjalankan shell tergantung dari apakah Anda menjalankan login berbasis grafis atau teks. Jika Anda login pada mode teks, maka shell sudah langsung dijalankan setelah memasukkan kata sandi yang benar. Jika Anda menjalankan manajer login grafis seperti KDM, lakukan proses login secara normal, dan lihat pada manajer jendela atau menu desktop untuk sebuah isian bernama “XTerm”, “Terminal” atau “Konsole”. XTerm adalah emulator terminal, setelah emulator terminal dijalankan, shell akan muncul.

Sebelum kita pergi lebih jauh, kami harus harus memperingatkan kepada Anda bahwa Slackware Linux menyediakan lebih dari sekedar satu shell. Terdapat dua rasa shell yang menjadi populer, Bourne shell dan C shell. Pada bab ini kita akan membahas Bourne shells yang sesuai dengan standar IEEE 1003.1. Shell Bash (Bourne Again Shell) dan ksh (Korn Shell) sesuai dengan standar ini juga. Jadi merupakan ide bagus untuk menggunakan salah satu dari dua shell ini. Anda bisa melihat shell yang digunakan pada sistem dengan menjalankan echo $SHELL. Ini yang akan dilaporkan pada shell Bash:

$ echo $SHELL
/bin/bash

Jika Anda menggunakan shell yang berbeda, Anda bisa mengganti shell default Anda. Sebelum mengganti shell yang berbeda, Anda harus menyediakan path lengkap dari shell. Anda bisa melakukannya dengan perintah which. Misalnya:

$ which bash
/bin/bash
$ which ksh
/bin/ksh

Pada sistem Slackware, path lengkap terhadap shell bash adalah /bin/bash, dan shell ksh /bin/ksh. Dengan informasi ini, dan perintah chsh Anda bisa mengganti shell default. Contoh berikut mengganti shell default menjadi bash:

$ chsh -s /bin/bash
Changing shell for daniel.
Password:
Shell changed.

Shell baru akan diaktifkan setelah keluar dari shell yang saat ini sedang dipakai (dengan logout atau exit), atau dengan membuka jendela terminal X baru jika Anda menjalankan X11.

7.2. Mengeksekusi perintah-perintah

Shell interaktif digunakan untuk menjalankan program dengan mengeksekusi perintah-perintah. Terdapat dua jenis perintah yang dapat dijalankan shell:

  • Perintah bawaan (built-in): perintah built-in terintegrasi pada shell. Perintah yang paling sering digunakan adalah: cd, fg, bg, dan jobs.

  • Perintah eksternal: perintah eksternal adalah program yang bukan merupakan bagian dari program shell, dan disimpan secara terpisah pada sistem berkas. Perintah yang paling sering digunakan : ls, cat, rm, dan mkdir.

Semua perintah shell dieksekusi dengan sintaks yang sama:

perintah [argumen1 argumen2 ... argumenN]

Jumlah parameter bebas dan selalu dikirimkan ke perintah. Perintah bisa menentukan apa yang harus dilakukan dengan argumen.

Semua perintah built-in selalu dapat dieksekusi, karena merupakan bagian dari shell. Perintah eksternal bisa dieksekusi ketika program masuk didalam pencarian path oleh shell. Jika tidak, Anda harus menentukan path ke program. Pencarian path dari shell disimpan pada variabel bernama PATH. Sebuah varibel adalah bagian dari memory, dimana nilainya bisa diganti. Kita bisa melihat isi dari variabel PATH dengan cara berikut:

$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/daniel/bin

Path direktori pada variabel PATH dipisahkan dengan karakter titik dua (:). Anda bisa menggunakan perintah which untuk memeriksa apakah perintah yang diberikan terdapat pada path shell. Anda bisa melakukannya dengan memberikan perintah sebagai argumen bagi which. Sebagai contoh:

$ which pwd
/bin/pwd
$ which sysstat
/usr/bin/which: no sysstat in (/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/daniel/bin)

Jika sebuah program bukan bagian dari path, Anda masih bisa menjalankannya dengan memasukkan path absolut atau relatifnya.

7.3. Berpindah-pindah

Seringkali kita perlu melompat pada berbagai bagian dari sebuah baris dan mengubahnya, ketika Anda mengedit perintah yang besar. Baik bash dan ksh memiliki jalan pintas (shortcut) untuk melakukan beberapa operasi umum. Terdapat dua mode shell, yang memiliki dua kunci shortcut yang berbeda. Mode ini bersesuaian dengan dua editor UNIX yang populer. Editor ini adalah vi dan emacs. Pada buku ini kita hanya akan membahas kunci EMACS-like. Anda bisa melihat pada mode apa yang digunakan oleh shell yang sedang digunakan dengan mencetak variabel SHELLOPTS. Pada contoh pertama shell digunakan pada mode emacs, pada contoh kedua digunakan mode vi. Anda bisa mengidentifikasi mode dengan melihat pada string emacs atau vi pada isi dari variabel.

$ echo $SHELLOPTS
braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
$ echo $SHELLOPTS
braceexpand:hashall:histexpand:history:interactive-comments:monitor:vi

Jika shell Anda menggunakan mode vi, Anda bisa berpindah ke mode emacs dengan menentukan opsi emacs:

$ set -o emacs

Dengan mode pengeditan emacs diaktifkan, Anda bisa menjalankan dengan shortcut. Kita akan melihat tiga jenis shortcut: pengeditan karakter, pengeditan kata, dan pengeditan baris. Pada bagian lain dari bab ini, kita juga akan emlihat pada beberapa shortcut yang digunakan untuk mengambil isian dari sejarah perintah.

7.3.1. Pengeditan karakter

Grup pertama dari shortcut menggunakan karakter sebagai unit logisnya, berarti mereka mengijinkan operasi pengeditan perintah baris pada karakter. Tabel 7.1, “Berpindah per karakter” menyediakan gambaran dari shortcut yang digunakan untuk berpindah melalui baris pada karakter.

Tabel 7.1. Berpindah per karakter

Kunci Deskripsi
Ctrl-b Pindah satu karakter kebelakang.
Ctrl-f Pindah satu karakter kedepan.

Shortcut ini sangat sederhana, dan tidak melakukan hal-hal yang tidak diinginkan. Misalkan Anda sudah menulis baris seperti ini:

find ~/music -name '*.ogg' - -print 

Kursor akan berada di akhir. Anda bisa berpindah ke awal baris dengan menekan Ctrl-b:

find ~/music - -name '*.ogg' -print

Anda juga bisa kembali ke akhir baris dengan menekan Ctrl-f. Terdapat kesalahan pada baris ini, karena terdapat satu karakter yang salah (-). Untuk menghilangkan karakter ini, Anda bisa menggunakan salah satu shortcut untuk penghapusan karakter.

Tabel 7.2. Menghapus karakter

Kunci Deskripsi
Ctrl-h Menghapus sebuah karakter sebelum kursor. Hal ini memiliki efek yang sama dengan menggunakan kunci Backspace pada sebagian besar komputer pribadi.
Ctrl-d Menghapus karakter pada posisi kursor berada.

Anda bisa menghapus karakter minus (-) dengan dua cara. Cara pertama adalah dengan memindahkan kursor ke karakter yang akan dihapus:

find ~/music - -name '*.ogg' -print

lalu tekan Ctrl-d dua kali. Hal ini akan menghapus karakter minus, dan spasi yang mengikuti karakter minus:

find ~/music -name '*.ogg' -print

Dengan melihat pada potongan aslinya, pendekatan lain adalah dengan meletakkan posisi kursor pada spasi setelah tanda minus:

find ~/music -  -name '*.ogg' -print

lalu menekan Ctrl-h dua kali untuk menghapus dua karakter sebelumnya, yaitu karakter minus dan spasi sebelum karakter minus. Hasilnya akan sama, kecuali kursornya akan berpindah:

find ~/music -name '*.ogg' -print

Salah satu fitur menarik dari shell modern adalah Anda bisa melakukan transposisi (menukar) karakter. Hal ini cukup berguna jika Anda melakukan kesalahan penulisan dimana dua karakter tertukar. Tabel 7.3, “Menukar karakter” mendaftar shortcut untuk pertukaran karakter.

Tabel 7.3. Menukar karakter

Kunci Deskripsi
Ctrl-t Menukar (transposisi) karakter dimana kursor berada dan karakter sebelum kursor. Hal ini berguna untuk memperbaiki kesalahan pengetikan dengan cepat.

Misalkan Anda sudah menuliskan perintah berikut:

cat myreport.ttx

Ekstensi memiliki kesalahan kesalahan pengetikan karena Anda hendak menuliskan cat myreport.txt. Hal ini bisa diperbaiki dengan shortcut transposisi karakter. Pertama-tama pindahkan kursor ke karakter kedua dari pasangan karakter yang berada pada urutan yang salah:

cat myreport.ttx

Anda bisa menekan Ctrl-t. Karakter akan ditukar dan kursor akan diletakkan diantara karakter yang dipertukarkan:

cat myreport.txt 

7.3.2. Pengeditan kata

Seringkali diperlukan perpindahan pada level karakter. Untungnya shell Korn dan Bash juga bisa berpindah baris pada level kata. Kata adalah urutan dari karakter yang dipisahkan oleh karakter khusus, misalnya spasi. Tabel 7.4, “Berpindah per kata” mendaftar shortcut yang bisa digunakan untuk melakukan navigasi baris per kata.

Tabel 7.4. Berpindah per kata

Kunci Deskripsi
Esc b Pindah ke awal dari kata aktual atau kata sebelumnya.
Esc f Pindah maju ke karakter terakhir dari kata aktual atau kata selanjutnya.

Seperti yang Anda lihat bahwa huruf pada shortcut sama dengan ketika berpindah per karakter. Logika dari perubahan ini cukup menarik. Berpindah kedepan meletakkan kursor di akhir dari kata aktual, bukan pada karakter pertama dari kata selanjutnya seperti yang Anda prediksikan. Mari kita lihat pada sebuah contoh. Pada awalnya kursor berada pada karakter pertama dari sebuah baris.

find ~/music -name '*.ogg' -print

Menekan Esc f akan memindahkan kursor diakhir karakter pertama, yang berupa find pada kasus ini:

find ~/music -name '*.ogg' -print

Maju kedepan sekali akan meletakkan kursor dibelakang ~/music:

find ~/music -name '*.ogg' -print

Perpindahan kebelakang meletakkan kursor di karakter pertama dari kata aktual, atau karakter pertama dari kata sebelumnya jika kursor berada di karakter pertama dari sebuah kata. Jadi berpindah kebelakang satu kata pada contoh sebelumnya akan meletakkan kursor pada kata pertama dari “music”:

find ~/music -name '*.ogg' -print

Menghapus kata memiliki cara kerja yang sama dengan perpindahan kata, tetapi karakter yang ditemukan akan dihapus. Tabel 7.5, “Menghapus kata” mendaftar shortcut yang digunakan untuk menghapus kata.

Tabel 7.5. Menghapus kata

Kunci Deskripsi
Alt-d Menghapus kata, dimulai dari posisi kursor aktual.
Alt-Backspace Menghapus setiap karakter dari posisi kursor aktual hingga karakter pertama dari kata yang ditemukan.

Akhirnya, terdapat beberapa shortcut yang berguna untuk memanipulasi kata. Shortcut ini dapat dilihat pada Tabel 7.6, “Memodifikasi kata”.

Tabel 7.6. Memodifikasi kata

Kunci Deskripsi
Alt-t Menukar (transposisi) kata aktual dengan kata sebelumnya.
Alt-u Membuat kata menjadi huruf kapital, dimulai dari kursor aktual.
Alt-l Membuat kata menjadi huruf kecil, dimulai dari kursor aktual.
Alt-c Membuat karakter aktual menjadi huruf kapital atau karakter pertama dari kata selanjutnya yang ditemukan.

Transposisi menukar antar kata. Jika kata biasa digunakan, maka perilakunya bisa diprediksi. Misalnya jika kita memiliki baris berikut dengan kursor berada pada “two

one two three

Transposisi kata akan menukar “two” dan “one”:

two one three

Tetapi jika terdapat karakter bukan kata, shell akan menukar kata dengan kata sebelumnya sambil mempertahankan urutan dari karakter bukan kata. Hal ini cukup berguna untuk mengedit argumen dari sebuah perintah. Misalkan Anda membuat kesalahan, dan mencampurkan ekstensi berkas yang hendak Anda cari dari parameter print:

find ~/music -name '*.print' -ogg

Anda bisa memperbaiki hal ini dengan meletakkan kursor pada kata kedua yang salah, dalam kasus ini “ogg”, dan menukar dua kata tersebut. Hal ini akan memberikan hasil yang kita inginkan:

find ~/music -name '*.ogg' -print

Akhirnya, terdapat beberapa shortcut yang mengubah kapitalisasi dari kata. Shortcut Alt-u membuat semua karakter menjadi huruf kapital, dimulai dari posisi kursor aktual hingga akhir kata. Jadi, jika kita memiliki nama dengan huruf kecil “alice”, membuatnya menjadi huruf besar dengan kursor berada pada “i” memberikan hasil “alICE”. Alt-l memiliki perilaku yang sama, tetapi mengubah huruf menjadi huruf kecil. Jadi menggunakan Alt-l pada “alICE” dengan kursor pada “I” akan mengubahnya menjadi “alice”. Alt-c hanya mengubah karakter dimana kursor berada, atau karakter kata selenjutnya yang ditemukan, menjadi huruf kapital. Sebagai contoh, menekan Alt-c dengan posisi kursor pada “a” dalam kata “alice” akan menghasilkan “Alice”.

7.3.3. Pengeditan baris

Level tertinggi yang bisa kita edit adalah baris itu sendiri. Tabel 7.7, “Berpindah per baris” mendaftar dua shortcut.

Tabel 7.7. Berpindah per baris

Kunci Deskripsi
Ctrl-a Berpindah ke awal baris.
Ctrl-e Berpindah ke akhir baris.

Misalkan kursor berada di tengah-tengah sebuah baris:

find ~/music -name '*.ogg' -print

Menekan Ctrl-e sekali akan memindahkan kursor ke akhir baris:

find ~/music -name '*.ogg' -print 

Menekan Ctrl-a akan mmemindahkan kursor ke awal baris:

find ~/music -name '*.ogg' -print

Anda bisa menghapus karakter per baris. Shortcutnya dapat dilihat pada Tabel 7.8, “Menghapus baris”. Shortcut ini bekerja seperti pergerakan, tetapi menghapus karakter yang ditemukan. Ctrl-k akan menghapus karakter dimana kursor itu berada, tetapi Ctrl-x Backspace tidak akan menghapusnya. Berpindah ke awal baris dengan Ctrl-a, diikuti dengan Ctrl-k, adalah untuk menghapus sebuah baris sepenuhnya.

Tabel 7.8. Menghapus baris

Kunci Deskripsi
Ctrl-k Menghapus semua karakter pada baris, dimulai dari posisi kursor.
Ctrl-x Backspace Menghapus semua karakter pada baris hingga posisi aktual kursor.

7.4. Catatan sejarah perintah

Seringkali Anda harus menjalankan perintah yang pernah Anda jalankan sebelumnya. Untungnya, Anda tidak harus mengetikkan semuanya kembali. Anda bisa melihat catatan sejarah dari perintah-perintah yang pernah ditulis dengan kunci panah atas dan bawah. Selain itu, juga dimungkinkan untuk mencari perintah. Menekan Control-r dan mulailah menuliskan perintah yang hendak Anda tulis. Anda akan melihat bahwa bash akan menampilkan perintah yang cocok yang bisa ditemukan. Jika yang ditampilkan bukan yang Anda cari, Anda bisa bisa melanjutkan menuliskan perintah (sampai unik dan ditemukan sebuah kecocokan), atau menekan Control-r sekali lagi untuk mencari kembali. Ketika Anda sudah menemukan perintah yang dicari, Anda bisa mengeksekusinya dengan menekan .

7.5. Pelengkap

Pelengkap adalah satu fungsi yang paling berguna dalam shell UNIX-like. Misalkan Anda memiliki direktori dengan dua berkas bernama websites dan recipe. Dan misalkan Anda hendak melakukan cat pada berkas websites (cat menampilkan isi sebuah berkas), dengan menentukan websites sebagai parameter ke perintah cat. Biasanya Anda cukup mengetikkan “cat websites”, dan mengeksekusi perintah. Cobalah untuk mengetikkan “cat w”, dan tekan kunci . Bash akan secara otomatis melengkapi apa yang Anda tulis menjadi “cat websites”.

Tetapi apa yang terjadi jika Anda memiliki berkas yang namanya dimulai dengan karakter yang sama? Misalkan Anda memiliki berkas recipe1.txt dan recipe2.txt. Mengetikkan “cat r” dan menekan , Bash akan melengkapi nama berkas sejauh yang bisa dilakukan. Hal ini akan memberikan “cat recipe”. Coba untuk menekan lagi, dan Bash akan memberikan daftar nama berkas yang dimulai dengan “recipe”, dalam hal ini kedua berkas recipe. Pada posisi ini Anda harus membantu Bash mengetikkan karakter selanjutnya dari berkas yang Anda perlukan. Misalkan Anda hendak melakukan cat recipe2.txt, Anda bisa menekan kunci <2>. Setelah itu tidak ada masalah dalam melengkapi nama berkas, dan menekan akan melengkapi perintah menjadi “cat recipe2.txt”.

Pelengkap ini bekerja pada perintah. Sebagian besar perintah GNU/Linux cukup pendek, sehingga tidak akan banyak berguna.

Merupakan ide yang bagus untuk berlatih dengan pelengkap, karena bisa menghemat banyak penekanan kunci jika Anda bisa memanfaatkannya. Anda bisa membuat beberapa berkas kosong dengan menggunakan perintah touch. Misalkan untuk membuat berkas dengan nama recipe3.txt, jalankan touch recipe3.txt.

7.6. Wildcard

Sebagian besar shell, termasuk Bash dan ksh, mendukung wildcard. Wildcard adalah karakter spesial yang bisa digunakan untuk melakukan pencocokan pola. Tabel berikut menampilkan beberapa wildcard yang umum dipakai. Kita akan melihat pada beberapa contoh untuk memberikan ide tentang bagaimana wildcard bekerja.

Tabel 7.9. Wildcard Bash

Wildcard Cocok dengan
* Sebuah string dari karakter
? Karakter tunggal
[] Sebuah karakter dalam sebuah array karakter

7.6.1. Pencocokan string dari karakter

Seperti yang Anda lihat pada tabel diatas, karakter “*” cocok dengan string dari karakter. Sebagai contoh *.html cocok dengan semua yang diakhiri dengan .html, d*.html cocok dengan semua yang diawali dengan d dan diakhiri dengan .html.

Misalkan Anda hendak menampilkan semua berkas pada direktori aktual dengan ekstensi .html, perintah berikut akan melakukan pekerjaan tersebut:

$ ls *.html
book.html installation.html pkgmgmt.html usermgmt.html
filesystem.html internet.html printer.html xfree86.html
gfdl.html introduction.html proc.html
help.html slackware-basics.html shell.html

Kita juga bisa menghapus semua berkas diawali dengan in:

$ rm in*

7.6.2. Pencocokan satu karakter

Wildcard “?” bekerja seperti “*”, tetapi hanya cocok untuk satu karakter saja. Misalkan kita memiliki tiga berkas, file1.txt, file2.txt dan file3.txt. String file?.txt cocok dengan semua berkas ini, tetapi tidak cocok dengan file10.txt (“10” adalah dua karakter).

7.6.3. Pencocokan karakter dari sekumpulan

Wildcard “[]” cocok dengan semua karakter diantara kurung siku. Misalkan kita memiliki berkas dari contoh sebelumnya, file1.txt, file2.txt dan file3.txt. String file[23].txt cocok dengan file2.txt dan file3.txt, tetapi tidak untuk file1.txt.

7.7. Pengalihan dan pipe

Salah satu fitur utama dari shell UNIX-like adalah pengalihan dan pipe. Sebelum kita mulai melihat kedua teknik, kita harus melihat bagaimana perintah UNIX-like bekerja. Ketika sebuah perintah tidak mendapatkan data dari sebuah berkas, maka akan membuka sebuah berkas-pseudo khusus bernama stdin, dan menunggu data yang muncul. Prinsip yang sama bisa diterapkan pada hasil keluaran sebuah perintah, ketika tidak ada alasan khusus untuk menyimpan hasil keluaran ke sebuah berkas, berkas-pseudo stdout akan dibuka untuk keluaran data. Prinsip ini ditampilkan secara sistematis pada Gambar 7.1, “Masukan dan keluaran standar”

Gambar 7.1. Masukan dan keluaran standar

Masukan dan keluaran standar

Anda bisa melihat stdin dan stdout bekerja dengan perintah cat. Jika cat dimulai tanpa sembarang parameter, maka dia akan menunggu masukkan dari stdin dan menampilkan data yang sama pada stdout. Jika tidak ada pengalihan yang digunakan, masukan dari keyboard akan digunakan untuk stdin, dan keluaran stdout akan dicetak ke terminal:

$ cat
Hello world!
Hello world!

Seperti yang Anda lihat, cat akan mencetak data ke stdout setelah memasukkan data ke stdin menggunakan keyboard.

7.7.1. Pengalihan

Shell mengijinkan Anda untuk menggunakan stdin dan stdout menggunakan “<” dan “>”. Data dialihkan ke arah anak panah. Pada contoh berikut kita akan mengalihkan hasil md5 yang dihitung untuk sekumpulan berkas pada sebuah berkas bernama md5sums:

$ md5sum * > md5sums
$ cat md5sums
6be249ef5cacb10014740f61793734a8 test1
220d2cc4d5d5fed2aa52f0f48da38ebe test2
631172a1cfca3c7cf9e8d0a16e6e8cfe test3

Seperti yang bisa kita lihat pada keluaran perintah cat, hasil keluaran dari perintah md5sum * dialihkan ke berkas md5sums. Kita juga bisa menggunakan pengalihan untuk menyediakan masukkan ke sebuah perintah:

$ md5sum <>
6be249ef5cacb10014740f61793734a8 -

Hal ini memberikan isi dari test1 ke md5sum.

7.7.2. Pipe

Anda juga bisa menghubungkan masukan dan keluaran dari perintah menggunakan pipe. Sebuah pipe dapat dibuat dengan karakter “|”. Dua atau lebih perintah yang digabungkan disebut pipeline. Gambar 7.2, “Sebuah pipeline” menampilkan sistematis bagaimana sebuah pipeline yang terdiri dari dua perintah.

Gambar 7.2. Sebuah pipeline

Sebuah pipeline

Sintaks” dari pipeline adalah: perintah1 | perintah2 ... | perintahN. Jika Anda tahu bagaimana sebagian besar perintah UNIX bekerja, Anda bisa menggabungkannya. Mari kita lihat dalam sebuah contoh:

$ cat /usr/share/dict/american-english | grep "aba" | wc -l
123

Perintah pertama, cat, membaca berkas kamus /usr/share/dict/american-english. Hasil keluaran dari perintah cat dikirimkan melalui pipe ke grep, yang akan mencetak semua berkas yang mengandung frase “aba”. Berikutnya, keluaran dari “grep” akan dikirimkan melalui pipe ke wc -l, yang akan menghitung jumlah baris yang diterima dari stdin. Akhirnya, ketika aliran sudah selesai, wc mencetak jumlah baris yang dihitung. Jadi ketiga perintah yang digabung akan menghitung jumlah baris yang mengandung frase “aba” pada kamus ini.

Terdapat banyak sekali utilitas kecil yang menangani tugas-tugas yang spesifik. Seperti yang Anda bayangkan, perintah-perintah ini bisa menyediakan sebuah kotak kerja yang hebat dengan membuat kombinasi dengan pipe

 

agnatu © 2008. Design By: SkinCorner