Vous êtes sur la page 1sur 265

Server Linux

Membangun Linux sebagai Internet/Intranet Server

Ahmad Sofyan
Editor : Tim KPLI Jakarta

Buku ini dipersembahkan untuk Dina Aprilia


kekasih, teman, musuh, sahabat
yang tak pernah layu memberi warna terhadap hari-hari

Distributed by: http://abebudi.blogspot.com/


Server Linux
Membangun Linux sebagai Internet/Intranet Server
Pengarang : Ahmad Sofyan
Tim Editor : KPLI Jakarta
Versi Elektronis : I Made Wiryana
Versi Cetak : Warsono, Muhammad Akbar Marwan, Prihantoosa, Purwanto,
Rusmanto, Zuki Harahap
Desain Sampul: Steve Pillar Setiabudi
Pracetak : Ngadiyanto
Diterbitkan pertama kali oleh
Nurul Fikri Computer & Statistics (ncs@nurulfikri.com)
Bekerjasama dengan
Yayasan Pengembangan Teknologi Elektro (ypte@elektroindonesia.com)
Jakarta, Juli 2000
Copyright (c) 2000 by Ahmad Sofyan
ISBN: 9796451549
Seluruh atau sebagian buku ini dapat direproduksi dan didistribusikan, dengan kriteria sebagai
berikut :
• Hak cipta buku ini ada pada pengarang dan bukan ``public domain atau di luar lindungan
hak cipta.''
• Pernyataan tentang hak cipta di atas dan penjelasan berikut ini harus disertakan
seluruhnya atau sebagian.
• Setiap translasi dan turunannya terhadap buku ini harus memperoleh persetujuan tertulis
dari pengarang sebelum didistribusikan.
• Bila buku ini didistribusikan sebagian, petunjuk untuk memperoleh versi yang lengkap
harus disertakan.
• Sebagian isi buku ini dapat direproduksi sebagai ilustrasi untuk review atau acuan dengan
syarat memberikan kutipan yang benar.
• Pernyataan GNU General Public License pada lampiran buku ini dapat direproduksi sesuai
dengan kriteria yang tercantum di dalamnya.
This book may be reproduced and distributed in whole or in part, subject to the following
conditions :
• This book is copyrighted by their respective authors and it is not in the public domain.
• The copyright notice above and this permission notice must be preserved complete on all
complete or partial copies.
• Any translation or derivative work of this book must be approved by the authod in writing
before distribution.
• If you distribute this book in part, instructions for obtaining the complete version of the
manual must be included, and a means for obtaining the complete version provided.
• Small portions my be reproduced as illustrations for reviews or quotes in other works
without his permission notice if proper citation is given.
• The GNU General Public License referenced below may be reproduced under the
conditions given within it. (http://www.gnu.org/copyleft/gpl.html).

Distributed by: http://abebudi.blogspot.com/


PRAKATA
Assalaamu'alaikum Wr. Wb.
Saat Anda memegang buku ini, maka saat itulah penantian yang sudah lama didambakan KPLI
Jakarta khususnya dan para pecinta Linux Indonesia umumnya. Keinginan untuk membuat sebuah
buku Linux termasuk obsesi yang pertama kali muncul waktu pertama kali KPLI Jakarta didirikan,
yaitu pada tanggal 31 Oktober 1998. Kesibukan di tempat kerja masing-masing dari para anggota
KPLI Jakarta merupakan kendala klasik yang sekaligus menjadi tantangan terhadap terbitnya buku
ini dan kehidupan organisasi non-profit ini pada umumnya.
Di sisi lain, boleh dikatakan bahwa buku ini merupakan bukti sejarah yang monumental, tidak
hanya bagi KPLI Jakarta dan KPLI seluruh Indonesia tetapi juga untuk dunia penerbitan Indonesia.
``Open Content !'' itulah sebabnya.
Akhir kata dengan segala harap, kiranya buku ini bisa menjadi salah satu bagian dari untaian
mutiara ilmu yang sedang dirajut oleh bangsa Indonesia tercinta dalam rangka mencerdaskan
bangsa untuk menuju masyarakat yang bermartabat, adil dan makmur.
Keputusan ini diambil dalam rangka ikut serta menggemakan konsep keterbukaan akan ilmu
pengetahuan yang terkandung dalam semangat ``Open Source''. Mungkin selama ini kita hanya
mendapati di setiap buku sebentuk tulisan yang klasik yaitu ``Copyright'' atau hak cipta dengan
ancaman yang menakutkan bagi yang melanggarnya. Dalam konsep Open Content yang dikenal
adalah ``Copyleft''. Artinya sekali buku ini sampai ke tangan Anda, maka sepenuhnya adalah hak
Anda. Anda bisa memperbanyak, dan memodifikasi buku ini serta mendistribusikan dan mengambil
keuntungan dari buku ini dengan bebas tanpa harus membayar royalti kepada pengarang buku.
Aturan mainnya hanyalah: Anda diminta tetap mencantumkan pengarang dan penerbit asli buku ini.
Dengan model inilah 'hak cipta pengarang' dihargai dengan cara yang sangat ideal yang tidak dapat
dihargai hanya dengan sejumlah rupiah. Harga hak cipta itu tidak ada yang bisa menentukan
nilainya kecuali dengan penghargaan yang tulus dari hati yang terdalam.
Sofyan adalah anggota KPLI Jakarta yang cukup banyak berperan di milis
kpli@jakarta.linux.or.id. Sebuah milis yang cukup tinggi aktivitasnya dengan jumlah
anggota yang banyak. Milis ini dikelola oleh KPLI Jakarta bukan untuk para anggotanya saja, tetapi
untuk siapa saja yang berminat dengan Linux. Buku ini juga banyak memperoleh inspirasi dari
respon para anggota milis.

Wassalaamu'alaikum Wr. Wb.


Jakarta 23 Juni 2000

H. Prihantoosa Soepradja S. Si.


Ketua KPLI Jakarta 1999-2000
http://jakarta.linux.or.id
toosa@jakarta.linux.or.id

Distributed by: http://abebudi.blogspot.com/


Ucapan Terima Kasih
Penulis mengucapkan puji syukur kehadirat Allah SWT atas rahmat-Nya buku ini dapat
terselesaikan.
Terima kasih kepada Ibunda atas do'anya, Atik, Mbak Nita & keluarga, Mas Rofik & keluarga atas
dukungannya, kepada YPTE dan NCS yang telah menerbitkan buku ini, terutama kepada Bapak
Rusmanto, atas kesediaan waktunya untuk mengecek dan review (dan juga CD SuSe 6.2-nya), dan
Mas Prihantoosa yang telah mengirimkan dan memperkenalkan draft pertama dari buku ini kepada
orang-orang yang kompeten. Terima kasih juga untuk Mas Warsono atas review dan koreksinya,
dan paling penting, artikel Sendmail dan DNS-nya yang memacu untuk menggali lebih dalam lagi,
Mas Purwanto untuk CD RedHat 6.2, dan Slackaware 7, serta traktiran makan siangnya di Kenny
Rogers.
Terima kasih pula terhadap rekan yang aktif di milis linux-admin@linux.or.id serta rekan KPLI
Jakarta yang tergabung dalam milis kpli@jakarta.linux.or.id. Kontribusi Anda semua memberikan
banyak sumbangan terhadap ide penulisan buku ini.
Tambahan untuk Versi Elektronik
Terima kasih untuk Mas Made Wiryana, yang tak bosan mengedit buku ini, dan memberikan
masukan-masukan untuk hasil akhir yang terbaik.
Pengarang
Ahmad Sofyan

Distributed by: http://abebudi.blogspot.com/


Daftar Isi
1. Server Linux
2. PRAKATA
3. Ucapan Terima Kasih
4. Pengantar
• Bagaimana memanfaatkan buku ini ?
• Bagaimana buku ini disusun?
• Ringkasan
5. Bab 1Mengenal Linux
• Apa Linux itu?
• Linux sebagai kloning UNIX
• Dokumentasi Linux
• Tux sebagai logo
• Kemampuan Linux
• Distribusi Linux
• Ringkasan
6. Bab 2 Instalasi Linux
• Slackware
• Instalasi Slackware
• Kebutuhan Perangkat keras
• Pre Instalasi
• Instalasi dengan Boot Disk
• Partisi
• Setup
• Swap
• Instalasi SuSE
• Instalasi RedHat
• Boot Loader Windows NT
• Loadlin
• Ringkasan
7. Bab 3 Konfigurasi Sistem
• Booting
• Direktori Standar
• YaST di SuSE

Distributed by: http://abebudi.blogspot.com/


• LinuxConf di RedHat
• Seting Kartu Jaringan
• Seting manual di Slackware
• Seting Kartu Jaringan melalui YaST
• Seting Kartu Jaringan melalui LinuxConf
• Koneksi ke Internet
• Koneksi Manual
• Koneksi dengan menggunakan pppsetup (Slackware)
• Koneksi dengan Wvdial (SuSE)
• Koneksi dengan skrip if-up (RedHat)
• IP Masquerade
• Kompilasi Kernel
• Menjalankan modul
• Konfigurasi Klien
• Administrasi forwarding
• Ringkasan
8. Bab 4 Konektivitas dengan Windows
• Implementasi Microsoft dalam Jaringan
• Domain Controller
• WINS (Windows Internet Name Service)
• Master Browser
• Otentikasi
• Samba
• Fasilitas Samba
• Distribusi Samba
• Instalasi Samba
• Instalasi Samba dari kode sumber
• Instal SWAT
• Binary Samba pada Distribusi Linux
• Administrasi Samba
• Konfigurasi Samba
• Konfigurasi Samba lewat LinuxConf (RedHat)
• Level Keamanan (Security Level)
• Menggabungkan Samba dengan NT
• Samba sebagai Domain Logon

Distributed by: http://abebudi.blogspot.com/


• Berbagi printer dan file
• Ringkasan
9. Bab 5 Server DNS
• Bagaimana DNS bekerja?
• Komponen DNS
• Resolver
• Resolution
• Caching
• Konfigurasi Domain Name Server
• Konfigurasi BIND v8
• Administrasi BIND
• Seting DNS lewat LinuxConf (RedHat)
• Seting DNS di SuSE
• Ringkasan
10.Bab 6 Server Web
• Pendahuluan
• Instalasi
• Modul Apache
• Dynamic Shared Object
• Konfigurasi
• File Konfigurasi Apache
• Global Environment
• Virtual Hosts
• Atribut Direktori
• Program Bantu Apache
• apxs (Apache Extension Tool)
• ab (Apache HTTP Server Benchmarking Tools)
• Binary Apache
• Binary Apache di Slackware
• Binary Apache di SuSE
• Binary Apache di RedHat
• Ringkasan
11.Bab 7 Server Mail
• Sendmail
• Menjalankan sendmail sebagai Daemon.

Distributed by: http://abebudi.blogspot.com/


• POP3 di Sendmail
• Administrasi Sendmail
• Sendmail.cf
• qmail
• Instalasi qmail
• Seting mbox
• Seting Maildir
• Test mengirim e-mail
• Seting Klien Windows 9x atau Windows NT
• Program Tambahan qmail (Add on)
• Ringkasan
12.Bab 8 Keamanan LINUX
• Account Pemakai (User Account)
• Kontrol Akses secara Diskresi (Discretionary Access Control)
• su (Substitute User).
• shadow.
• Pro aktif Password
• Network Access Control
• Tentang Firewall
• Tipe firewall :
• Filter Paket di Linux
• Enkripsi
• Enkripsi Password
• Enkripsi komunikasi data
• Secure Shell (SSH)
• SSL (Secure Socket Layer)
• Logging
• lastlog
• last
• xferlog
• access_log
• error_log
• messages
• Deteksi Penyusupan (Intrusion Detection)
• Ringkasan

Distributed by: http://abebudi.blogspot.com/


13.Lampiran 1. GNU General Public License
14.About this document ...

Distributed by: http://abebudi.blogspot.com/


Distributed by: http://abebudi.blogspot.com/
Pengantar
Selama beberapa tahun terakhir, Linux hanyalah sebagai kuda hitam buat siapa saja yang
ingin mencari alternatif selain Microsoft. Entah beranjak dari kebosanan, keluhan sistem yang tidak
stabil, harga yang terlalu mahal, atau idealisme, membuat Linux menjadi pilihan. Satu hal yang
cukup jelas, Linux terjangkau oleh rata-rata kantong orang Indonesia, dan dapat diperoleh
programnya yang lengkap tanpa dicap sebagai pengguna program bajakan. Satu contoh menarik
bahwa sejak India menerapkan hukum yang ketat terhadap pembajakan perangkat lunak, dunia IT
(Informasi Teknologi) di India berkembang pesat. Pelaku IT 'dipaksa' untuk mempelajari dan
mengembangkan perangkat lunaknya sendiri. Hasilnya bisa dilihat bahwa India saat ini merupakan
pemberi kontribusi yang cukup berarti dalam pengembangan IT dunia. Migrasi ke Linux User
Friendliness atau kemudahan untuk dipergunakan oleh pengguna, adalah isu yang menarik dan
sering muncul saat pengguna secara umum ingin bermigrasi dari Windows (atau sebagian
diantaranya dari Macintosh) ke Linux. Keragu-raguan muncul bisa jadi karena absurditas dari
istilah itu sendiri. Rekan saya yang bertahun-tahun menggunakan WS dan Lotus menjadi gagap saat
memakai Word atau Excel. Dalam hati kecil ia beranggapan bahwa Word atau Excel lebih sulit, dan
kurang user friendly.
Berkaitan dengan user friendliness, banyak pengguna komputer mengalami kesulitan pada
saat instalasi pertama kali. Kehilangan data, atau perangkat keras yang tidak dikenali sering kali
membuat pengguna baru menjadi surut. Selanjutnya, saat instalasi berjalan mulus, pengguna
dihadapkan pada prompt dengan perintah-perintah asing untuk dapat membuatnya bekerja. Realita
(atau mitos) semacam ini tampaknya disadari sepenuhnya oleh para pengembang Linux. Beberapa
distribusi terakhir telah mempergunakan modus grafik dalam instalasinya, dan pengenalan
perangkat keras yang terus membaik dari versi ke versi. Untuk pengguna UNIX, tentu Linux
bukanlah barang baru. Perintah-perintah yang ada di dalamnya sama dengan apa yang mereka
pergunakan sehari-hari. Program-program yang berjalan di dalamnya juga relatif sama, membuat
kelompok pengguna ini tidak terlalu terpengaruh dengan isu user friendliness. Perbedaannya dengan
UNIX, adalah bahwa Linux dapat diperoleh secara gratis.
Saat buku ini ditulis, literatur tentang Linux berbahasa Indonesia masih jarang ditemukan.
Dalam mengisi kekosongan, penulis mencoba menyajikan semacam manual yang berisi langkah-
langkah praktis. Penyusunan dilakukan sesistematis mungkin berdasarkan pengalaman mendesain
beberapa jaringan berskala kecil. Bahasan yang ada bukanlah kajian mendalam tentang sistem, tapi
merupakan metode langkah demi langkah bagaimana membuat sistem berjalan, diikuti dengan
penjelasan singkat apa yang dilakukan oleh program pada saat dijalankan. Dengan mengikuti apa
yang tersaji dalam buku ini, Linux sudah bisa dijalankan sebagai server internet atau intranet yang
relatif tangguh.
Mengingat banyaknya distribusi yang ada di Linux, buku ini terfokus pada beberapa
distribusi yang banyak digunakan di Indonesia. Distribusi tersebut adalah Slackware, RedHat, dan
SuSE. Versi yang dipakai sebagai contoh merupakan versi akhir saat buku ini ditulis :
• Slackware Versi 7.0 Kernel 2.2.13
• SuSE Versi 6.2 Kernel 2.2.13
• RedHat Versi 6.2 Kernel 2.2.14-5.0
Pada setiap bab, dibahas konsep dan cara kerjanya secara umum, kemudian dilanjutkan
penerapannya pada masing-masing distribusi.

Distributed by: http://abebudi.blogspot.com/


Bagaimana memanfaatkan buku ini ?
• Administrator Jaringan
Untuk Administrator jaringan dengan sistem Unix/Linux, buku ini bermanfaat sebagai
pedoman untuk menerapkan layanan internet/intranet. Semua perintah yang ada disini akan
mudah diikuti. Dianjurkan untuk membaca semua bab, atau bisa langsung mulai Bab IV jika
Anda sudah menjalankan Linux dalam jaringan.
Untuk Administrator jaringan non Unix/Linux, buku ini dapat dipergunakan sebagai
perbandingan implementasi antara sistem jaringan yang sekarang dengan sistem Linux.
Dimulai dari Bab I dengan mengenal Linux, hingga aspek keamanannya yang dibahas di
Bab VIII. Atau jika berminat lebih jauh, buku ini dapat dijadikan acuan untuk uji coba
mendesain sebuah jaringan dengan Linux sebagai servernya.
• Pengguna Linux
Untuk pengguna Linux secara umum, buku ini bermanfaat untuk mengembangkan
kemampuan Linux Anda. Bahasan yang ada disemua bab sudah menjurus ke penerapan
yang spesifik pada beberapa program, sehingga dapat dijadikan sebagai pemicu untuk
mengeksplorasi program-program lain yang sejenis. Silakan langsung mulai ke Bab III
untuk mengkonfigurasikan Linux ke dalam jaringan. Jika Linux masih dipergunakan sebagai
komputer pribadi, Anda bisa ke Bab II untuk sambungan ke internet, Bab VII untuk
mengkonfigurasikan program mail agar bisa mengirim dan menerima e-mail dengan mail
server sendiri, Bab VIII untuk melindungi diri saat terhubung ke Internet. Meskipun
demikian, tidak ada salahnya dibaca semua bab sebagai sumber pengetahuan.
• Pengguna non Linux
Pengguna yang memakai sistem selain Linux, dan belum pernah bekerja di lingkungan
Linux/Unix akan sedikit kesulitan dalam mengikuti perintah-perintah yang dijalankan dalam
uji coba di buku ini. Meskipun demikian, konsep-konsep dasar yang dibahas dalam tiap bab
tentu akan memberikan pengetahuan baru. Untuk dapat memanfaatkan buku ini secara
maksimal, lebih baik jika terlebih dahulu membaca pengenalan tentang UNIX dan
turunannya. Jika Anda kesulitan menemukannya di toko buku, Anda bisa meminjam rekan
Anda yang kuliah bidang informatika. Atau, sebagai alternatifnya literatur elektronis
berbahasa Inggris akan banyak ditemukan di Internet. Situs-situs besar yang menyediakan
buku elektronik secara gratis, antara lain adalah http://www.itknowledge.com dan
http://www.mcp.com.
Untuk dapat mempraktekkan aplikasi-aplikasi yang dibahas dalam buku ini, dibutuhkan
sebuah jaringan dengan minimal dua komputer yang tersambung satu sama lain. Jika Anda
memiliki jaringan yang sudah berjalan, instalasi dapat dilakukan tanpa mengganggu
aktivitas yang ada (meskipun back-up data merupakan keharusan).

Distributed by: http://abebudi.blogspot.com/


Bagaimana buku ini disusun?
Buku ini terdiri atas 8 Bab dan 3 Lampiran.
• Bab I Pengenalan Linux
Bab ini terdiri atas pengenalan umum terhadap sistem operasi Linux, kemampuannya,
program-program yang berjalan di dalamnya, sekilas bahasan tentang logo, dan review
singkat terhadap distribusi Linux. Untuk Anda yang sudah terlalu sering membaca tentang
kemampuan Linux, Anda bisa lewatkan bab ini.
• Bab II Instalasi Linux
Bab ini membahas instalasi pada tiga buah distribusi, yakni Slackware, RedHat dan SuSE.
Pada bagian Slackware Anda akan temukan review paket-paket yang disertakan, pembuatan
disket boot dan disket root, partisi hardisk dengan menggunakan fdisk, dan keterangan
tentang menu instalasi di Slackware. Di bagian SuSE instalasi berisi langkah berurutan
(sebanyak 32 langkah), dimulai dari menjalankan skrip setup lewat prompt Dos. Dibagian
RedHat, berisi gambaran instalasi dan beberapa petunjuk dalam menentukan pilihan-pilihan
yang relevan dengan bahasan buku ini.
• Bab III Konfigurasi Sistem
Bab ini membahas cara mengatur beberapa file konfigurasi agar mesin Linux dapat
berfungsi baik dalam jaringan. Beberapa konfigurasi yang dibahas mencakup pengaturan
program yang dijalankan saat booting Linux, instalasi kartu jaringan, koneksi ke Internet,
dan pengaturan IP Masquerade dengan aturan sederhana. IP Masquerade adalah program
yang memungkinkan mesin lain dalam satu jaringan dapat mengakses internet bersama-sama
dengan menggunakan satu sambungan telepon.
• Bab IV Konektivitas dengan Windows
Samba adalah program yang memungkinkan mesin Linux dapat berinteraksi dengan mesin
Windows 9x dan atau Windows NT. Dengan Samba, mesin Linux Anda dapat
menggantikan tugas NT server, dan memungkinkan file atau printer Anda dishare kepada
pengguna lain dalam jaringan. Bab ini membahas bagaimana konsep Microsoft dalam
jaringannya, bagaimana Samba dapat ambil bagian di dalamnya, keterangan aplikasi-
aplikasi yang disertakan dalam paket Samba, instalasi SWAT (Samba Web Administration
Tool), pembahasan tentang level keamanan (Security level) di Samba, serta instalasi Samba
sebagai Server PDC (Primary Domain Controller) atau sebagai anggota dalam domain NT.
• Bab V Server DNS
Bab ini membahas secara singkat konsep Domain Name System, membuat file konfigurasi
untuk BIND versi 8 dengan penjelasan pada masing-masing file konfigurasi, serta perintah-
perintah untuk administrasi name server.
• Bab VI Server Web
Bab ini membahas tentang Apache secara umum, kompilasi dan instalasinya. Untuk
konfigurasi, dibahas juga dukungan Dynamic Shared Object (DSO), analisa file
httpd.conf, access.conf dan srm.conf, serta keterangan singkat atribut
direktori yang sering digunakan.
• Bab VII Server Mail
Bab ini membahas server mail yang cukup populer digunakan sebagai Mail Transfer Agent

Distributed by: http://abebudi.blogspot.com/


(baca: mail server), yaitu sendmail dan qmail. Tentang sendmail membahas konfigurasi
sendmail.cf, administrasi sendmail, serta contoh sendmail.cf dengan beberapa fitur.
Bagian qmail membahas instalasi, mulai dari download file sumber yang dikompres,
kompilasi, instalasi, pengaturan dasar, hingga percobaan mengirim dan menerima. Tercakup
pula di dalamnya bagaimana user Windows 9x atau Windows NT dapat mengambil surat
elektronik (E-mail) di mesin Qmail yang baru saja dikonfigurasikan.
• Bab VIII Keamanan Jaringan
Bab ini membahas komponen arsitektur keamanan di Linux yang terdiri atas :
• Account Pemakai (User Account)
• Kontrol Akses secara Diskresi (Discretionary Access Control)
• Kontrol Akses Jaringan (Network Access Control)
• Enkripsi (Encryption)
• Logging
• Deteksi penyusupan (Intrusion Detection)

Distributed by: http://abebudi.blogspot.com/


Ringkasan
Begitulah gambaran singkatnya. Semoga bermanfaat bagi pengembangan ilmu pengetahuan dan
teknologi di tanah air. Dengan semangat open source, kita realisasikan kejayaan Indonesia di
kancah TI dunia. Silakan kirim komentar dan kritik Anda ke sofyan@shipway.org

Distributed by: http://abebudi.blogspot.com/


Linux is power

Subsections
• Mengenal Linux
• Apa Linux itu?
• Linux sebagai kloning UNIX
• Dokumentasi Linux
• Tux sebagai logo
• Kemampuan Linux
• Distribusi Linux
• Ringkasan

• Instalasi Linux
• Slackware
• Instalasi Slackware
• Kebutuhan Perangkat keras
• Pre Instalasi
• Instalasi dengan Boot Disk
• Partisi
• Setup
• Swap
• Target
• Source
• Select
• Instal
• Exit
• Instalasi SuSE
• Instalasi RedHat
• Boot Loader Windows NT
• Loadlin
• Ringkasan

Distributed by: http://abebudi.blogspot.com/


• Konfigurasi Sistem
• Booting
• Direktori Standar
• YaST di SuSE
• LinuxConf di RedHat
• Seting Kartu Jaringan
• Seting manual di Slackware
• Seting Kartu Jaringan melalui YaST
• Seting Kartu Jaringan melalui LinuxConf
• Koneksi ke Internet
• Koneksi Manual
• Koneksi dengan menggunakan pppsetup (Slackware)
• Koneksi dengan Wvdial (SuSE)
• Koneksi dengan skrip if-up (RedHat)
• IP Masquerade
• Kompilasi Kernel
• Menjalankan modul
• Konfigurasi Klien
• Windows 9x
• Windows for Workgroup 3.11
• Windows NT
• Sistem UNIX
• DOS dengan paket NCSA Telnet
• MacOS yang menjalankan MacTCP
• MacOS yang menjalankan Open Transport
• Novell network dengan DNS
• OS/2 Warp
• Konfigurasi Sistem Lain
• Administrasi forwarding
• Ringkasan

• Konektivitas dengan Windows


• Implementasi Microsoft dalam Jaringan
• Domain Controller
• WINS (Windows Internet Name Service)

Distributed by: http://abebudi.blogspot.com/


• Master Browser
• Otentikasi
• Samba
• Fasilitas Samba
• Distribusi Samba
• Instalasi Samba
• Instalasi Samba dari kode sumber
• Instal SWAT
• Binary Samba pada Distribusi Linux
• Administrasi Samba
• Konfigurasi Samba
• Konfigurasi Samba lewat LinuxConf (RedHat)
• Level Keamanan (Security Level)
• Menggabungkan Samba dengan NT
• Samba sebagai Domain Logon
• Berbagi printer dan file
• Ringkasan

• Server DNS
• Bagaimana DNS bekerja?
• Komponen DNS
• Resolver
• Resolution
• Caching
• Konfigurasi Domain Name Server
• Konfigurasi BIND v8
• SOA record
• NS Record
• Other records,
• /etc/resolv.conf
• /etc/named.conf
• /var/named/root.cache
• /var/named/ut.zone ( file zone domain )
• /var/named/ut.rev
• MX Records

Distributed by: http://abebudi.blogspot.com/


• Administrasi BIND
• Seting DNS lewat LinuxConf (RedHat)
• Seting DNS di SuSE
• Ringkasan

• Server Web
• Pendahuluan
• Instalasi
• Modul Apache
• Dynamic Shared Object
• Konfigurasi
• File Konfigurasi Apache
• Global Environment
• Virtual Hosts
• Atribut Direktori
• AllowOverride
• Options
• Program Bantu Apache
• apxs (Apache Extension Tool)
• ab (Apache HTTP Server Benchmarking Tools)
• Binary Apache
• Binary Apache di Slackware
• Binary Apache di SuSE
• Binary Apache di RedHat
• Ringkasan

• Server Mail
• Sendmail
• Menjalankan sendmail sebagai Daemon.
• Slackware
• SuSE
• RedHat
• POP3 di Sendmail
• Administrasi Sendmail
• Alias sendmail (sendmail aliases)

Distributed by: http://abebudi.blogspot.com/


• Personal Mail Forwarding
• Sendmail.cf
• Bagaimana membuat konfigurasi sendmail (sendmail.cf)?
• sendmail.cf di SuSE
• sendmail.cf di RedHat
• qmail
• Instalasi qmail
• Seting mbox
• Seting Maildir
• Test mengirim e-mail
• Seting Klien Windows 9x atau Windows NT
• Program Tambahan qmail (Add on)
• Ringkasan

• Keamanan LINUX
• Account Pemakai (User Account)
• Kontrol Akses secara Diskresi (Discretionary Access Control)
• su (Substitute User).
• shadow.
• Pro aktif Password
• passwd+
• anlpasswd
• npasswd
• Network Access Control
• Tentang Firewall
• Tipe firewall :
• Filter Paket di Linux
• TCP Wrapper sebagai Kontrol Akses
• Enkripsi
• Enkripsi Password
• Enkripsi komunikasi data
• Secure Shell (SSH)
• Instalasi SSH
• Konfigurasi Server
• SSL (Secure Socket Layer)

Distributed by: http://abebudi.blogspot.com/


• SSL dengan Apache
• Logging
• lastlog
• last
• xferlog
• access_log
• error_log
• messages
• Deteksi Penyusupan (Intrusion Detection)
• Ringkasan

Distributed by: http://abebudi.blogspot.com/


Mengenal Linux
Buat sebagian besar masyarakat, tentu Linux merupakan benda asing yang tak dikenal. Lebih
spesifik lagi, untuk yang bergelut di dunia komputer, kata Linux hanyalah memberikan kesan
sistem operasi alternatif yang mencoba menggusur dominasi Microsoft dalam kancah teknologi
informasi. Bab berikut mencoba memberikan gambaran secara umum tentang Linux, dan mencoba
mengajak Anda untuk mengetahui lebih banyak dari masyarakat umum. Atau paling tidak,
meluruskan pemahaman yang selama ini tergambarkan kurang tepat di benak sebagian masyarakat.
Jika Anda merasa mual karena terlalu sering membaca pengenalan Linux, silakan lanjut ke Bab II,
Instalasi Linux.

Subsections
• Apa Linux itu?
• Linux sebagai kloning UNIX
• Dokumentasi Linux
• Tux sebagai logo
• Kemampuan Linux
• Distribusi Linux
• Ringkasan

Distributed by: http://abebudi.blogspot.com/


Apa Linux itu?
Linux adalah sebuah program open source yang gratis di bawah lisensi GNU, sistem operasi 32-64
bit, yang merupakan turunan dari Unix dan dapat dijalankan pada berbagai macam platform
perangkat keras mulai dari Intel (x86), hingga prosesor RISC. Linux sebagai program open source
yang gratis Salah satu yang membuat Linux terkenal adalah karena gratis. Dengan lisensi GNU
(Gnu Not Unix) Anda dapat memperoleh program, lengkap dengan kode sumbernya (source code).
Tidak hanya itu, Anda diberikan hak untuk mengkopi sebanyak Anda mau, atau bahkan mengubah
kode sumbernya.Dan itu semua legal dibawah lisensi. Meskipun gratis, lisensi GNU
memperbolehkan pihak yang ingin menarik biaya untuk penggandaan maupun pengiriman program.
Lisensi lengkap dari GNU, dapat Anda baca di Lampiran III. Penerjemahan lisensi GNU ke dalam
Bahasa Indonesia, saat buku ini disusun masih dilakukan.
Catatan :

Literatur lengkap tentang GNU dapat Anda baca di situs web mereka yaitu
http://www.gnu.org.

Dengan demikian, dapat dikatakan bahwa Anda dapat memperoleh Linux tanpa harus membayar
sama sekali. Jika Anda harus membayar tiap kali instal perangkat lunak di lain komputer, maka
dengan Linux Anda dapat menginstalnya dimana saja tanpa harus membayar lisensi.
Kebebasan yang paling penting dari Linux, terutama bagi programmer dan administrator jaringan,
adalah kebebasan memperoleh kode sumber (source code) dan kebebasan untuk mengubahnya. Ini
berimplikasi pada beberapa hal penting. Pertama keamanan, yang kedua dinamika.
Jika perangkat lunak komersial tidak memperkenankan Anda untuk mengetahui kode sumbenya
maka Anda tidak akan pernah tahu apakah program yang Anda beli dari mereka itu aman atau tidak
(sering disebut security by obscurity). Hidup Anda di tangan para vendor. Dan jika ada
pemberitahuan tentang bug dari perangkat lunak komersial tersebut, seringkali sudah terlambat.
Dengan Linux, Anda dapat meneliti kode sumbernya langsung, bersama dengan pengguna Linux
lainnya. Berkembangnya pengguna Linux sebagai komunitas yang terbuka, membuat bug akan
cepat diketahui, dan secepat itu pula para programmer akan memperbaiki programnya. Anda sendiri
juga yang menentukan kode yang cocok sesuai dengan perangkat keras maupun kebutuhan dasar
perangkat lunak lainnya untuk dapat diimplementasikan. Ibarat sebuah mobil, Anda bisa
memodifikasi sesukanya, bahkan hingga mesin sekalipun, untuk memperoleh bentuk yang
diinginkan.
Keterbukaan kode sumber juga memungkinkan sistem operasi berkembang dengan pesat. Jika
sebuah program dengan sistem tertutup dan hanya dikembangkan oleh vendor tertentu, paling
banyak sekitar seribu hingga lima ribu orang. Sedangkan Linux, dengan keterbukaan kode
sumbernya, dikembangkan oleh sukarelawan seluruh dunia. Bug lebih cepat diketahui dan program
penambalnya (patch) lebih cepat tersedia. Pendekatan pengembangan sistem operasi ini disebut
Bazaar. Kebalikannya sistem Chatedraal sangat tertutup dan hanya berpusat pada satu atau dua
pengembang saja.
Sebagai tambahan, Linux menyediakan bahasa pemrograman gratis, lengkap dengan kompilernya,
maupun program pembantunya. Beberapa diantaranya adalah :
• ADA
• BASIC
• C
• C++

Distributed by: http://abebudi.blogspot.com/


• Expect
• FORTRAN
• GTK, untuk membuat aplikasi GUI di Linux
• PASCAL
• Phyton
• Skrip Shell
• TCL
• Perl (The Practical Extraction and Report Language), sering dipakai untuk membuat skrip
CGI di web.

Distributed by: http://abebudi.blogspot.com/


Linux sebagai kloning UNIX
Saat ini lisensi Linux dipegang oleh penyusun kernelnya pertama kali, L INUS TORVALDS. Untuk
menelusuri asal mulanya, kembali ke tahun 1991. Di Suoen Tasavalta, Republik Finlandia, seorang
mahasiswa bernama LINUS TORVALDS mengikuti mata kuliah Unix dan bahasa pemrograman C.
Saat itu TORVALDS menggunakan sistem operasi mini berbasiskan Unix bernama Minix. Ia merasa
bahwa Minix mempunyai banyak kelemahan, dan Ia berkeyakinan mampu untuk membuat lebih
baik dari itu. Di usia 23, Ia mulai mengotak-atik kernel Minix dan menjalankannya di mesin Intel
x86. Pada Oktober 1991, Torvalds mempublikasikan sistemnya yang baru dan relatif sudah stabil ke
newsgroup. Dia menawarkan untuk mempublikasikan kode sumbernya dan mengundang para
developer lain untuk mengembangkannya bersama-sama. Sejak saat itulah Linux berkembang, dan
merubah wajah dunia komputasi hingga saat ini.
Beberapa fitur Linux yang patut dicatat diantaranya :
• Multi tasking dan dukungan 32 bit; mampu menjalankan beberapa perintah secara
bersamaan, dan dengan memanfaatkan model terlindung (protected mode) dari Intel 80836
keatas, Linux merupakan sistem operasi 32 bit.
• Multi user dan Multi session; Linux dapat melayani beberapa user yang login secara
bersamaan. Sistem filenya sendiri mempunyai keamanan yang ketat, dan dapat dimodifikasi
secara optimal untuk akses file kepada user atau group tertentu saja. - Sebagian besar Linux
ditulis dalam bahasa C
• Dukungan Java; jika dikompilasi pada level kernel, Linux dapat menjalankan Java Applet
sebagai aplikasi.
• Virtual Memory. Linux menggunakan sebagian dari hardisk Anda dan memperlakukannya
sebagai memory, sehingga meningkatkan memory Anda yang sebenarnya.
• Linux menawarkan sistem file yang hierarkis, dengan beberapa folder utama yang sudah
dibakukan (File System Standard/FSSTND)
• Grafis antar muka pemakai (Graphical User Interface/GUI) yang dipergunakan Linux
adalah sistem X Window atau X dari MIT.

Distributed by: http://abebudi.blogspot.com/


Dokumentasi Linux
Linux mempunyai dokumentasi yang sangat komprehensif untuk mendukung setiap program yang
diberikan. Hampir semua distribusi selalu menyediakan petunjuk bagaimana menginstal, cara kerja
hingga mengoperasikannya. File bantu ini sering disebut sebagai HOW-TO. Misalnya Anda ingin
mencari tahu bagaimana menggabungkan Linux dengan Windows NT dalam satu mesin, dapat
Anda ketahui informasinya di:

Linux-WindowsNT-MINI-HOWTO, atau Linux-NTLoader-MINI-HOWTO. Jika Anda sudah


menginstal Linux, biasanya dokumen ini terletak di direktori /usr/doc
Catatan :

Mini-HOWTO adalah dokumen sejenis HOWTO yang lebih singkat. Biasanya berisi
petunjuk langsung untuk mengoperasikan sesuatu, tanpa bahasan yang detail. Baik
HOWTO maupun Mini-HOWTO dapat Anda temukan di /usr/doc (yang secara
default akan diinstal pada saat Anda menginstal Linux)

Seiring dengan pesatnya perkembangan Linux, dokumen-dokumen ini juga dirawat dengan baik
oleh pihak-pihak non profit berdedikasi tinggi yang bekerja dengan nama The Linux Documentation
Project (LDP). Perkembangan terakhir dari LDP ini dapat Anda lihat di
http://www.linuxdoc.org. Untuk proyek penejemahan dokumentasi ke dalam bahasa
Indonesia dapat Anda lihat di http://ldp.linux.or.id.

Tux sebagai logo


Ada cerita menarik yang menyebabkan TORVALDS menggunakan penguin sebagai logo dari sistem
operasi Linux. Saat itu TORVALDS sedang berjalan jalan bersama ANDREW TRIDGELL (Penyusun
Sambatypeset@protect @@footnote SF@gobble@opt Samba adalah sebuah program yang
memungkinkan mesin Unix (termasuk Linux) berkomunikasi dengan Windows dalam sebuah
jaringan. Bahasan yang cukup detail tentang Samba dapat Anda temukan di bab IV) ) disebuah
taman. Tiba tiba TORVALDS dipatok pinguin, dan semenjak itu Ia mengalami demam selama
berhari hari. Dia pikir, karakter ini cocok untuk mewakili Linux. Ia ingin pemakainya menjadi
demam alias tergila-gila untuk menggunakan dan mengotak atik Linux. Dan ternyata, apa yang
dibayangkannya menjadi kenyataan. Hampir setiap pemakai saat pertama kali berkenalan dengan
Linux menjadi susah tidur, dan menghabiskan waktunya berjam-jam didepan komputer untuk
bermain main dengan Linux.
Visualisasi logonya dikompetisikan kepada umum lewat diskusi pada mailing list Linux Kernel.
Pencetusnya adalah ALAN COX, dan logo terpilih diberi nama Tux, dibuat oleh LARRY EWING
(http://www.isc.tamu.edu/lewing/linux).
Gambar 1 Tux, penguin logo Linux
Catatan :

Perspektif Torvalds tentang logo Linux dapat Anda baca di


http://www.linux.org/info/penguin.html. Visualisasi logo lainnya dapat
dilihat di http://www.solluna.org/higgins/linuxlogo/linux.html.

Distributed by: http://abebudi.blogspot.com/


Kemampuan Linux
Sebagai standalone PC, atau komputer pribadi yang berdiri sendiri, Anda akan temukan bawa Linux
adalah sistem operasi yang dapat diandalkan. Tidak ada lagi gangguan virus, hang ditengah jalan,
atau reboot puluhan kali. Apalagi jika komputer Anda terhubung ke Internet, Linux menjanjikan
keamanan yang cukup memadai. Beberapa program untuk aplikasi sehari-hari yang sudah berjalan
di Linux diantaranya adalah :
• Program Database Case, CodeBase, DBMS, Informix, LEAP, Postgresql, MySql.
• Progam Bisnis Star Office, Apllixware, Koffice, Xspreadsheet, Abiword, WordPerfect 8,
TEX.
• Aplikasi Grafis Blender, Gimp, ME10, Megahedron, OCRShop, PostShop, ScanShip,
Sketch, VariCAD
• Aplikasi Jaringan SAINT, Nmap, MRTG, Tripwire, SSH (Secure Shell), VisualRoute,
SQUID
Di Linux, semua program (yang berada dibawah lisensi GNU) dapat Anda peroleh secara cuma-
cuma dan legal dengan mendownloadnya dari internet. Hampir setiap hari bermunculan program-
program baru yang dikembangkan oleh para sukarelawan maupun organisasi non profit diseluruh
dunia. Beberapa situs terkenal yang menyajikan informasi program baru di Linux diantaranya
http://www.freshmeat.net, http://www.linuxberg.com,
http://linux.davecentral.com.
Sebagian besar program di Linux berukuran relatif kecil, terutama yang berbasiskan console (non
GUI).Yang perlu Anda lakukan hanyalah mengambilnya dari sebuah situs (download), dan instal di
komputer Anda.
Catatan :

Peta perkembangan aplikasi Linux juga dirawat dengan baik oleh Jeff Kopmaniz, yang
kemudian diambil alih oleh LARS WIRZENIUS. Linux Software Map (LSM) ini
menyajikan daftar yang komprehensif, disertai komentar dan pembuatnya. Sebelum
Anda download/instal programnya, lebih baik jika melihat dulu reviewnya, di
http://www.execpc.com/lsm/LSM. Program yang terdaftar disini diupdate
secara berkala. Filenya juga bisa Anda peroleh di
ftp://ftp.execpc.com/pub/lsm/lsm-current.gz

Selain tangguh sebagai komputer pribadi, Linux menawarkan kinerja optimal untuk dijadikan
sebagai server. Beberapa aplikasi server yang selalu disertakan hampir di setiap distribusi
diantaranya :
• Web Server (httpd)
• FTP Server (ftpd)
• Mail Server (smtp, pop 3, LDAP, IMAP)
• Name Server
• Daemon standar (telnetd, fingerd, identd, syslogd dsb)
• DHCP Server
Selain itu, protokol-protokol standar sebagai platform dalam komunikasi jaringan, telah terintegrasi
pada level kernel, di antaranya :
• File Transfer Protocol (FTP)
• Gopher Protocol

Distributed by: http://abebudi.blogspot.com/


• Hypertext Transfer Protocol (HTTP)
• Post Office Protocol (POP)
• Point to Point Protocol (PPP)
• Serial Line Internet Protocol (PLIP)
• Simple Mail Transfer Protocol (SMTP)
• Telnet Protocol
• Transmission Control Protocol/Internet Protocol (TCP/IP)

Distribusi Linux
Saat ini banyak beredar distribusi linux yang namanya relatif sudah dikenal bagi pengguna
komputer. RedHat, SuSE, Mandrake, Slackware, dan Debian adalah beberapa dari distribusi besar
yang digunakan di Indonesia. Pada prinsipnya Linux itu satu, yakni kernel yang dikembangkan oleh
LINUS TORVALDS dan kawan-kawan.
Yang membedakan antar distribusi biasanya berkisar tentang :
1. Instalasi
Masing-masing distribusi menggunakan metode dan antar muka sendiri-sendiri untuk
instalasinya. Bahkan pada beberapa distribusi, sudah mulai menggunakan antar muka grafis
untuk membimbing proses instalasinya.
Gambar 2 Instalasi Grafis RedHat 6.2
Catatan :

Beberapa distribusi terkenal yang sudah mulai menggunakan modus grafis untuk
instalasi diantaranya RedHat, Caldera Open Linux, Corel Linux, WinLinux.

2. Aplikasi yang disertakan


Program-program di Linux (atau sering disebut sebagai paket) jumlahnya saat ini banyak
sekali. Dan masing-masing distribusi, memberikan paket-paket alternatif yang berbeda di
samping paket standar yang dapat ditemui hampir di setiap distribusi.
3. Program bantu
Hampir di setiap distribusi mempunyai program bantu yang memudahkan pemakai.
Misalnya distribusi RedHat, menyertakan programrpm (RedHat Package Manager) yang
memudahkan pengguna untuk menginstall dan menghapus program binary. SuSE
menyertakan YaST (Yet Another Setup Tool) untuk manajemen program dan sistem danSaX
(SuSE advanced X-Configuration) untuk membantu instalasi X Window. Slackware
menyertakan paket pkgtool untuk instal dan menghapus program, sementara Debian
menyertakan dpkg untuk fungsi yang sama. Namun semakin lama menggunakan Linux,
pada akhirnya akan terasa sama saja antara masing-masing distribusi.
Catatan:

Review berbahasa Indonesia tentang masing-masing distribusi dapat Anda


temukan di http://linindo.cakraweb.org

Distributed by: http://abebudi.blogspot.com/


Ringkasan
Dalam bab ini Anda telah baca beberapa kemampuan yang ditawarkan Linux. Dengan membaca
prediksi ke depan, kemungkinan besar Linux akan memperoleh pasar yang cukup dominan untuk
kelas sistem operasi. Hal ini menyehatkan iklim TI yang saat ini didominasi oleh satu produk saja.
Banyak sekali artikel yang mendiskusikan tentang penggunaan Linux sebagai pengganti sistem
operasi yang sudah ada. Sebagai literatur Anda dapat menyimak beberapa artikel menarik tentang
hal itu.
• http://adhi.linux-smg.or.id/unix-vs-nt.html ; Artikel komprehensif yang membahas
perbandingan antara NT dengan Unix. Versi bahasa Inggrisnya dapat dibaca di
http://www.unix-vs-nt.org/kirch
• http://jakarta.linux.or.id/sumber_linux/artikel/metode.htm ; Kajian menarik berbahasa
Indonesia, tentang metode pengembangan sistem operasi yang paradoksal : Katedral vs
Bazaar.
• http://nakula.rvs.uni-biefeld.de/made/artikel/abad21 ; Platform terbaik abad 21, artikel
menarik tentang perkembangan dan prediksi bidang TI.

Distributed by: http://abebudi.blogspot.com/


Instalasi Linux
Bab ini memfokuskan instalasi pada tiga buah buah distribusi, yakni Slackware, SuSE dan RedHat.
Jika Anda memiliki distribusi lain, prinsip untuk instalasinya kurang lebih sama yakni :
• Inisialisasi Kernel ke komputer, dan pengenalan perangkat keras (biasanya lewat disket boot
dan root, atau langsung dijalankan dari CD-ROM lewat loadlin).
• Membuat partisi Linux, tempat program nanti akan disimpan, sekaligus pembuatan swap.
Swap adalah bagian dari hard disk yang dipergunakan sebagai virtual memory.
• Menentukan letak sumber file Linux. Sumber file ini bisa berupa CD-ROM, komputer lain
dalam satu jaringan, bahkan lewat ftp langsung.
• Pemilihan paket-paket yang diinstal
• Instalasi dan konfigurasi dasar agar sistem bisa berjalan.

Subsections
• Slackware
• Instalasi Slackware
• Kebutuhan Perangkat keras
• Pre Instalasi
• Instalasi dengan Boot Disk
• Partisi
• Setup
• Swap
• Instalasi SuSE
• Instalasi RedHat
• Boot Loader Windows NT
• Loadlin
• Ringkasan

Distributed by: http://abebudi.blogspot.com/


Slackware
Distribusi Slackware dapat diperoleh secara online di http://www.cdrom.com
Catatan :

Di Indonesia saat ini sudah ada beberapa online store yang menyediakan distribusi
Linux yang cukup lengkap. Anda bisa memesannya secara online, atau menghubungi
lewat telepon. CD yang akan Anda dapatkan dari beberapa online store di Indonesia
biasanya merupakan hasil peleburan ke CD dari download di Internet. Dari beberapa
online store yang pernah penulis pesan, rata-rata berkualitas bagus, dan ada garansi
penggantian jika CD rusak atau tidak jalan. Perlu diingat bahwa semua CD salinan
tersebut adalah legal dan dilindungi lisensi GNU. Daftar online store yang menyediakan
distribusi Linux dapat Anda lihat di lampiran

Program Linux biasanya dipaket dalam dua CD:


1. Binary
Berisi program-program yang sudah dikompilasi oleh distributor/pengemas distribusi
(Precompiled Binary). Yang Anda lakukan dengan program-program ini adalah
menyalinnya ke dalam PC.Precompiled binary termasuk kernel.
2. Source
Berisi kode sumber (source code) program, dan Anda bisa mengkompilasinya sendiri sesuai
kebutuhan. Ditujukan untuk yang sudah terbiasa dengan lingkungan Linux. Jika lebih dari
dua CD, maka biasanya berisi program-program tambahan yang sifatnya pilihan.

Subsections
• Instalasi Slackware
• Kebutuhan Perangkat keras
• Pre Instalasi
• Instalasi dengan Boot Disk
• Partisi
• Setup
• Swap
• Target
• Source
• Select
• Instal
• Exit

Distributed by: http://abebudi.blogspot.com/


Instalasi Slackware
Sebelumnya, dimulai dengan mereview isi CD ROM Slackwareprecompiled binary.
$ ls -al
total 849
drwxr-xr-x 13 root root 4096 Oct 26 1999 ./
drwxr-xr-x 19 root root 4096 Apr 22 07:14 ../
drwxr-xr-x 2 root root 2048 Oct 26 1999 .eltorito/
-r-r-r- 1 root root 1185 Oct 26 1999 00_TRANS.TBL
-rw-r-r- 1 root root 18605 Jun 29 1996 BOOTING.TXT
-rw-r-r- 1 root root 2659 Oct 23 1999 CDROM.TXT
-rw-r-r- 1 root root 17976 Jun 10 1994 COPYING
-rw-r-r- 1 root root 10445 Oct 23 1999 COPYRIGHT.TXT
-rw-r-r- 1 root root 204041 Oct 26 1999 ChangeLog.txt
-rw-r-r- 1 root root 32145 Oct 11 1999 FAQ.TXT
-rw-r-r- 1 root root 303391 Oct 26 1999 FILELIST.TXT
-rw-r-r- 1 root root 155 Oct 22 1999 GLIBC_WARNING
-rw-r-r- 1 root root 5846 Oct 23 1999 LOWMEM.TXT
-rw-r-r- 1 root root 8137 Oct 23 1999 MIRRORS.TXT
-rw-r-r- 1 root root 152883 Oct 26 1999 PACKAGES.TXT
-rw-r-r- 1 root root 3682 Oct 23 1999 README.TXT
-rw-r-r- 1 root root 18756 Oct 26 1999 README7.TXT
-rw-r-r- 1 root root 7868 Oct 23 1999 UPGRADE.TXT
drwxr-xr-x 2 root root 2048 Oct 26 1999 bootdsks.12/
drwxr-xr-x 2 root root 10240 Oct 26 1999 bootdsks.144/
drwxr-xr-x 6 root root 8192 Oct 26 1999 contrib/
drwxr-xr-x 8 root root 2048 Oct 23 1999 docs/
drwxr-xr-x 64 root root 10240 Oct 22 1999 kernels/
drwxr-xr-x 3 root root 2048 Oct 23 1999 live/
drwxr-xr-x 3 root root 4096 Oct 23 1999 modules/
drwxr-xr-x 2 root root 2048 Oct 23 1999 rootdsks/
drwxr-xr-x 3 root root 2048 Oct 25 1999 slaktest/
drwxr-xr-x 40 root root 6144 Oct 26 1999 slakware/
Beberapa direktori yang penting adalah:
• Slakware; berisi program sumber instalasi. Isi direktori ini akan direview nanti
• bootdsks.144; berisi file untuk membuat boot disk format 1.44

Distributed by: http://abebudi.blogspot.com/


• rootdsks; berisi image file root disk, termasuk di dalamnya skrip setup
• kernels; berisi kumpulan precompiled kernel untuk berbagai macam jenis perangkat
keras.
Direktori Slakware, berisi paket program yang dikelompokkan dalam beberapa kategori yang
disebut disk set.
1. Paket Aplikasi Disk Set A
Berisi program dasar untuk menjalankan Linux Slackware. Program disini cukup untuk
dimuat dalam Disket 1.22. Instal program dari sini saja cukup untuk menjalankan Linux,
dengan editor teks Elvis dan beberapa program komunikasi, serta sistem file standard (file
system standard /FSSTND). Disk Set A membutuhkan 25 MB.
2. Disk Set AP
Berisi aplikasi yang sering dijalankan di Linux. Di antaranya man pages, groff, ispell (GNU
and international versions), term, joe, jove, ghostscript, Midnight Commander (seperti
Norton Commander di DOS), bc, dan quota. Disk Set AP membutuhkan 20 MB.
3. Disk Set D
Berisi program pengembangan. Beberapa diantaranya GCC/G++/Objective C compiler make
(GNU and BSD), byacc dan GNU bison, flex, library C libraries, gdb debugger, Fortran,
ncurses, clisp, f2c, p2c, Pascal, perl, dan rcs. Disk Set D membutuhkan 48 MB.
4. Disk Set E
Berisi program paket editor teks GNU emacs 20.3. Disk Set E membutuhkan 35 MB.
5. Disk Set F
Berisi koleksi FAQ, HOWTO, Mini-HOWTO, dan dokumentasi lainnya. Set ini berisi
banyak sekali informasi bermanfaat. Disk Set F membutuhkan 11 MB.
6. Disk Set K
Berisi kode sumber kernel (Kernel Source Code). Anda dapat mempergunakannya untuk
mengkompilasi ulang kernel. Disk Set K membutuhkan 27 MB.
7. Disk Set N
Berisi aplikasi pendukung jaringan. Termasuk di dalamnya dukungan TCP/UUCP, SLIP,
PPP untuk koneksi ke Internet. Program pendukungnya adalah browser Lynx basis teks,
Apache Web Server, Pine, Elm, Trn dan aplikasi Internet lainnya.
8. Disk Set N
membutuhkan 23 MB. Disk Set T Berisi program format teks TEX and LATEX2. TEX
merupakan program terkenal dan canggih dalam format teks, termasuk penggunaan ekspresi
matematis. Disk Set T membutuhkan 42 MB.
9. Disk Set TCL
Berisi paket program pengembangan dari keluarga itcl, diantaranya Tcl dan Tk dapat dipakai
untuk menyusun program yang dijalankan dibawah sistem X Window. Disk Set TCL
membutuhkan 7 MB.
10.Disk Set X
Berisi program dasar sistem Xfree86 3.3.2 dari MIT. Di dalamnya termasuk Library dan
grafis antar muka pemakai yang dapat dijalankan di sistem Slackware. Disk Set X

Distributed by: http://abebudi.blogspot.com/


membutuhkan 70 MB.
Catatan :

Di Linux dan sistem Unix lainnya, tampilan grafis dijalankan dengan sistem
client server. Sedangkan untuk tampilannya bisa dipilih bermacam macam,
disebut Window Manager. Beberapa Window Manager yang terkenal adalah
Gnome, KDE (K Desktop Evironment), Window Maker dan sebagainya. Jika
tertarik Anda bisa mencarinya di http://www.freshmeat.net

11.Disk Set XAP


Berisi berbagai macam aplikasi yang dijalankan di X, seperti Window Manager fvwm,
fvwm95, browser grafis (arena& Netscape) dan berbagai macam game X. Disk Set XAP
membutuhkan 65 MB.
12.Disk Set XD
Berisi program pengembangan X. Termasuk di dalamnya X11 libraries, server linkkit, dan
PEX support. Disk Set XD membutuhkan 14 MB.
13.Disk Set XV
Xview yang mendukung Open Look window Manager yang biasa dijalankan pada mesin
SUN. Termasuk pula di dalamnya program compiler Xview. Disk Set XV membutuhkan 11
MB.
14.Disk Set Y
Berisi berbagai macam game yang dijalankan di atas console (tidak membutuhkan tampilan
grafis). Disk Set Y membutuhkan 8 MB.

Distributed by: http://abebudi.blogspot.com/


Kebutuhan Perangkat keras
Minimal CPU dengan prosesor 80836 atau 80846 sudah bisa menjalankan Linux. Emulator
matematis juga tidak diharuskan meskipun akan sangat membantu jika Anda memilikinya. Memori
minimal 4 hingga 8 mega, dan paling tidak 16 Mega jika Anda berencana menjalankan aplikasi X.
Meskipun demikian, pada beberapa distribusi Anda cukup mempunyai memory 2 Mega. Cakram
keras (hard disk), baik IDE maupun SCSI dan banyak jenis perangkat keras lain telah didukung
oleh Slackware 7.0. Spasi hard disk yang dibutuhkan minimal 20 mega untuk menginstal aplikasi
dasar Linux. Jika semua program diinstal paling tidak membutuhkan spasi hard disk hingga 400
Megabyte.

Pre Instalasi
Setelah mengenal sedikit mengenal beberapa aplikasi yang disertakan dalam distribusi Slackware
(dan semua distribusi Linux), lanjutkan dengan prosedur instalasi. Namun sebelum mulai instalasi,
ada beberapa hal yang perlu disiapkan :
1. Usahakan untuk mencatat perangkat keras yang Anda miliki. Perangkat keras tersebut
meliputi monitor, VGA card, Mouse, Hard disk dan CDROM (untuk yang SCSI), dan
perangkat keras khusus yang Anda punya. Di Windows, Anda dapat melihatnya dengan klik
kanan My Computer pada desktop, pilih Properties, klik Device.
2. Back up data-data yang penting. Meskipun penyusunan partisi dan format partisi di Linux
dapat dijalankan secara aman tanpa mengganggu data yang ada, namun bisa saja terjadi
salah ketik atau salah pilih yang membuat semua data hilang.
3. Siapkan partisi khusus untuk Linux. Jika sistem operasi yang ada tidak memungkinkan
untuk diinstal ulang, gunakan program penambahan partisi seperti Partition Magic (program
komersial) atau fips yang disertakan dalam CD. Program ini memungkinkan Anda untuk
menambah partisi dari sisa hard disk kosong, tanpa harus menghapus partisi yang sudah ada.
Lebih mudah jika Anda menghapus semua partisi dalam hard disk Anda, kemudian dipisah
menjadi tiga hingga empat partisi. Satu untuk instal Windows (jika perlu), sistem file Linux,
dan Swap Linux. Tentang partisi ini akan dibahas dalam tahapan instalasi.
Catatan :

Anda dapat menginstal Linux pada ruang yang tidak dipergunakan (free space) tanpa
harus partisi ulang. Linux menjalankannya di atas partisi umsdos. Kelemahan dari
sistem file ini adalah aplikasi yang dijalankan menjadi lebih lambat, dan manfaat Linux
tidak dapat dirasakan secara maksimal.

Distributed by: http://abebudi.blogspot.com/


Instalasi dengan Boot Disk
1. Masuk ke lingkungan DOS prompt
C:\>
2. Pindah ke direktori Bootdsks.144
C:\>cd d:\Bootdsks.144 D:Bootdsks.144\>
3. Masukkan disket kosong ke dalam drive disket Anda. Jalankan rawrite untuk menuliskan
program boot Linux kedalam disket. Pilih image sesuai dengan perangkat keras Anda
D:Bootdsks.144\>rawrite bare.I a:\ #untuk perangkat keras IDE
secara umum
D:Bootdsks.144\>rawrite scsi.s a:\ #untuk perangkat keras SCSI
secara umum
4. Setelah selesai, keluarkan disket Anda dan beri label boot disk. Pindah ke direktori root disk.
D:Bootdsks.144\>cd ../rootdsks D:rootdsks\>
5. Jalankan kembali rawrite untuk menuliskan root disk ke dalam disket.
D:rootdsks\>rawrite color.gz a: # untuk monitor color
D:rootdsks\>rawrite text.gz a: # untuk monitor monokrom
D:rootdsks\>rawrite pcmcia.gz a: # untuk instalasi pada laptop
dengan dukungan pcmcia
D:rootdsks\>rawrite rescue.gz a: # untuk membuat disket
rescue
D:rootdsks\>rawrite umsdos.gz a: # untuk menginstal Slackware
pada partisi UMSDOS
6. Setelah selesai, keluarkan disket, dan beri label root disk.
7. Masukkan boot disk ke drive a, kemudian booting komputer Anda.
8. Akan terlihat tulisan LILO, dan tampil pesan dari boot linux. Anda tinggal tekan Enter.
Kernel akan mencoba mengenali perangkat keras Anda. Perhatikan hingga sampai pada teks
:
VFS: Insert root floppy disk to be loaded into ramdisk and
press enter
9. Keluarkan boot disk, dan ganti dengan root disk. Tekan Enter. Root disk akan dimuat dalam
memory. Anda bisa login sebagai root.
Slackware login : root
#
Anda sudah berhasil masuk ke prompt Linux Slackware dan siap untuk instalasi. Langkah
berikutnya adalah menyiapkan ruang untuk file Linux Anda. Partisi hard disk Diasumsikan Anda
sudah menyiapkan partisi kosong. Jika belum, maka Anda perlu melakukannya terlebih dahulu
dengan program Partition Magic yang harus dibeli secara terpisah atau Fips yang disertakan dalam
CD.
Catatan :

Distributed by: http://abebudi.blogspot.com/


Kemampuan Fips terbatas, dan tidak ada garansi jika Anda mengalami error dalam
menjalankannya. Untuk itu, back up data sangat diperlukan. Atau lebih mudah jika
Anda partisi ulang semuanya dengan menggunakan fdisk yang akan dibahas pada
bagian berikutnya.

Partisi
Bahasan pertama adalah review sekilas tentang partisi. Hard disk untuk bisa diisi sistem operasi,
membutuhkan satu wadah, yang dinamakan partisi. Jika Anda terbiasa menggunakan Microsoft,
partisi disimbolkan dengan Drive. Misal, Drive C:(partisi pertama) Drive D:(partisi kedua) dan
seterusnya.
Dengan membagi hard disk ke dalam beberapa partisi Anda dapat menjalankan berbagai sistem
operasi secara bersamaan. Misalnya Linux - Windows 98 - Windows NT.
Gambar 3 Bentuk Hardisk, track, sector dan data (Sumber: Maximum Linux Security, Anonymous)
Partisi dikategorikan dalam tiga jenis. Primary, Extended dan Logical Partition. Partisi utama,
disebut primary, dalam satu hard disk maksimal hanya 4 partisi. Jika Anda ingin lebih dari 4 partisi,
maka perlu dibuat extended partition yang bisa memuat logical partition dengan jumlah lebih
banyak. Jadi data hanya terletak di partisi primary atau logical, sedangkan extended hanya
merupakan wadah dari partisi logical. Contoh pengaturan hard disk dan nama yang biasa
dipergunakan di Linux.
Gambar 4 Pengaturan Partisi dan Sistem File (Sumber: Maximum Linux Security, Anonymous)
Kembali ke prompt instalasi. Sebagai contoh, diasumsikan Anda mempunyai hard disk 2 Giga, dan
1 Giga sudah terisi Windows NT (misalnya), sementara sisanya masih kosong (belum dipartisi).
Setelah berhasil masuk shell, jalankan fdisk guna pengaturan partisi.
# fdisk
Using /dev/hda as default device!
Command (m for help): m # ketik m dan tekan enter
a toggle bootable flag
b edit bsd dick label
c toggle the DOS compatibility flag
d delete a partition
l list of known partition types
m print this menu
n add new partition
o create a new empty DOS partition table
q quit without saving changes
t change partition system ID
u change display /entry units
v verify partition table
w write table to disk and exit
x extra functionality (expert only)
Command (m for help): p # ketik p untuk mengetahui partisi dalam
hard disk Anda,lalu tekan enter

Distributed by: http://abebudi.blogspot.com/


Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 2 2 126 63000 6 DOS 16-bit>=32M
Dari tampilan partisi di atas, hard disk Anda, diwakili dengan /dev/hda, hanya mempunyai satu
partisi, yakni /dev/hda1. Di MSDOS ataupun windows Anda biasa melihatnya sebagai Drive C.
Partisi tersebut mempunyai sistem file DOS 16-bit, dan menempati silinder 2 hingga 204. Lanjutkan
dengan pembuatan partisi baru.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (204-683): 204
Last cylinder or +size or +sizeM or +sizeK (204-683): +80M
Pada Partition Number atau nomor partisi, isi 2, karena partisi satu sudah terisi Ms DOS. First
cylinder adalah silinder pertama yang dipakai partisi ke dua ini. Last cylinder, Anda bisa isikan
nomor silinder, atau +xM, dimana x adalah jumlah Megabyte yang Anda inginkan, atau +xK,
dimana x adalah jumlah Kilobyte yang Anda inginkan.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (474-683): 474
Last cylinder or +size or +sizeM or +sizeK (474-683): +10M
Command (m for help): p
Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units =
cylinders of 608 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M
/dev/hda2 204 204 473 82080 83 Linux native
/dev/hda3 474 474 507 10336 83 Linux native
Dari tampilan di atas, tabel 3 partisi yang kesemuanya primary sudah berhasil dibuat. Untuk partisi
extended biasanya dimulai dari angka 5 ke atas. Misalnya /dev/hda5, /dev/hda6 dan
seterusnya.
Lanjutkan dengan mengganti system ID atau format sistem file untuk menambahkan swap. Swap
adalah bagian dari Hard disk, baik berupa file atau satu partisi penuh yang dipakai sebagai virtual
memory. Swap sangat membantu jika Anda punya memory fisik yang terbatas.

Distributed by: http://abebudi.blogspot.com/


Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): L
0 Empty 9 AIX bootable 75 PC/IX b7 BSDI fs
1 DOS 12-bit FAT a OS/2 Boot Manag 80 Old MINIX b8 BSDI swap
2 XENIX root 40 Venix 80286 81 Linux/MINIX c7 Syrinx
3 XENIX usr 51 Novell? 82 Linux swap db CP/M
4 DOS 16-bit <32M 52 Microport 83 Linux native e1 DOS access
5 Extended 63 GNU HURD 93 Amoeba e3 DOS R/O
6 DOS 16-bit>=32 64 Novell Netware 94 Amoeba BBT f2 DOS secondary
7 OS/2 HPFS 65 Novell Netware a5 BSD/386 ff BBT
8 AIX
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 82
Command (m for help): p
Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders
Units = cylinders of 608 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 203 61693 6 DOS 16-bit >=32M
/dev/hda2 204 204 473 82080 83 Linux native
/dev/hda3 474 474 507 10336 82 Linux swap
Anda lihat bahwa /dev/hda3 telah berubah dari Linux native menjadi Linux swap. Langkah
berikutnya adalah menyimpan tabel partisi yang telah Anda buat.
Command (m for help): w
Anda akan kembali ke shell prompt. Lanjutkan dengan instalasi. Pertama , aktifkan swap yang telah
dibuat sebelumnya
# mkswap /dev/hda3
# swapon
Hal ini membantu jika Anda hanya memiliki sedikit memory.

Distributed by: http://abebudi.blogspot.com/


Setup
Setelah mengaktifkan swap, jalankan skrip setup dari Slackware.
# setup
Akan muncul menu :
• Help ; File help dari slackware, menyangkut instalasi
• Key Map ; Memetakan keyboard, jika menggunakan keyboard non english
• Swap ; Membuat dan mengaktifkan swap file
• Target; Menentukan direktori tempt Linux akan diinstal
• Source ; Menentukan direktori sumber file yang akan diinstal
• Select ; Memilih perangkat lunak yang akan diinstal
• Instal; Memulai instalasi dari paket program yang telah dipilih sebelumnya
• Configure ; Mengkonfigurasikan Linux sebelum di restart
• Exit ; Selesai instalasi dan keluar
Perlu dicatat bahwa menu tersebut merupakan urutan instalasi yang harus dipilih satu demi satu.
Untuk memulai instalasi, Anda dapat abaikan dua menu pertama.

Swap
Secara default, Anda akan ditanya apakah akan memasukkan /dev/hda3 sebagai swap. Jika ya, maka
Slackware akan menjalankan perintah mkswap untuk memformat /dev/hda3 dengan file sistem
swap, kemudian mengaktifkannya dengan perintah swapon. Karena perintah ini telah dilakukan
sebelumnya, Anda dapat abaikan. Yang penting adalah memasukkan /dev/hda3 ke dalam file fstab
sehingga saat Linux boot dapat langsung menggunakan swap.
Catatan :

Linux menuliskan semua sistem file dan divais yang dipergunakan ke dalam file
/etc/fstab. Saat akan dipergunakan dengan perintah mount, Linux akan membaca file
ini. Divais yang dipergunakan termasuk semua hard disk dan partisinya, CDROM,
floppy dan divais untuk back up. Untuk lebih jelasnya, ketikkan man fstab pada shell
prompt.

Subsections:
• Target
• Source
• Select
• Instal
• Exit

Distributed by: http://abebudi.blogspot.com/


Target

Secara default akan muncul /dev/hda2 sebagai satu-satunya Linux native yang ada dalam partisi
Anda. Jika Anda membuat lebih dari satu partisi yang berisi Linux native, Slackware akan
menanyakan mount point dari masing-masing partisi. Misalnya /dev/hda5 mount pointnya /,
lalu /dev/hda6 mount pointnya /usr/local dan seterusnya. Pada bagian ini ditanyakan pula
apakah Anda akan mengaitkan (mounting)/dev/hda1 dengan sistem file DOS? Mengaitkan
/dev/hda1 memungkinkan Anda membaca file-file yang berada dalam lingkungan
DOS/Windows dari Linux. Selesai mengkonfigurasikan partisi di mana Linux akan diinstal,
lanjutkan dengan sumber di mana file Linux Slackware binary berada.

Source

Slackware akan menampilkan pilihan beberapa metode instalasi berdasarkan di mana sumber file
berada.
1. Floppy; Instal Slackware dari disket
2. Instal Slackware from CD-ROM; Instal Slackware dari CD-ROM. Kadang Linux gagal
mendeteksi CD-ROM yang Anda punyai. Hal ini disebabkan pilihan kernel yang tidak tepat
saat membuat boot disk. Pastikan Anda memilih kernel yang sesuai dengan perangkat keras
Anda.
3. Instal Slackware from Hardrive partition; Instal Slackware dari hard disk (misalnya Anda
telah menyalin file dari CD-ROM ke dalam hard disk). Path harus ditulis secara benar, sebab
dalam lingkungan Linux semua huruf diperlakukan case sensitive. Dalam arti perbedaan
huruf besar dan kecil dapat membuat file tidak dikenal.
4. Instal via NFS; Instal Slackware dari NFS (Network File Server)
5. Instal from pre-mounted directory; Jika Anda sudah mempunyai partisi Linux sebelumnya,
dan berisi file source, maka Anda bisa melakukan pengaitan (mounting) sebelum instalasi
dimulai. Direktori ini yang dipakai sebagai sumber instalasi. Pilih sesuai kebutuhan Anda,
dan ikuti perintah-perintah berikutnya.

Select

Slackware memberikan pilihan paket aplikasi yang akan diinstal. Paket yang ditawarkan adalah :
1. A Aplikasi dasar yang dibutuhkan sistem Linux
2. AP Berbagai aplikasi yang dapat dijalankan di console tanpa membutuhkan X
3. D Program pengembangan, terdiri atas berbagai bahasa pemrograman
4. E GNU Emacs, editor teks
5. F Daftar FAQ, dan dokumentasi How To lengkap
6. K Sumber (Source) dari kernel Linux
7. N Networking (TCP/IP, UUCP, Mail, News)
8. T Program pengolah kata tingkat lanjut TCL Bahasa Skrip Tcl/Tk
9. X X Free, Server untuk tampilan grafis
10.XD Program pengembangan X Free
11.XV X View (Window Manager dan berbagai aplikasi tampilan grafis)
12.Y Games yang tidak membutuhkan X (dijalankan di console)

Distributed by: http://abebudi.blogspot.com/


Instal

Selesai memilih paket aplikasi yang dibutuhkan, dilanjutkan dengan instalasi. Slackware
menawarkan berbagai metode instalasi :
1. Newbie; Slackware akan menanyakan setiap program yang akan diinstal, disertai dengan
gambaran singkat dari berbagai program yang akan diinstal.
2. Expert ; Slackware akan memberikan daftar seluruh aplikasi, dan Anda cukup memilihnya
dengan memberikan pointer.
3. Full ; Instal seluruh aplikasi yang tersedia Configure Anda dapat menjalankan konfigurasi
awal dari sistem Linux yang telah diinstal. Konfigurasi mencakup password untuk root,
Pembuatan disket boot, pengaturan LILO (Linux Loader, program yang menjalankan Linux
saat booting), modem, mouse, dan beberapa konfigurasi network jika komputer Anda sudah
terhubung satu sama lain dalam jaringan.

Exit

Setelah mengkonfigurasi sistem Linux, Anda dapat keluar dari program setup, dan tekan Ctrl-Alt-
Del untuk booting komputer.

Distributed by: http://abebudi.blogspot.com/


Instalasi SuSE
SuSE dapat langsung diinstal tanpa mempergunakan disket pada komputer yang sudah memiliki
sistem operasi Windows atau DOS. Untuk sistem operasi lainnya, instalasi membutuhkan disket
untuk inisialisasi kernel di komputer. Sebelum memulai instalasi, pastikan Anda mempersiapkan
hal-hal sebagaimana dibahas dalam tahapan pre instalasi di sub bab sebelumnya. Berikut langkah-
langkah instalasi SuSE :
1. Masukkan CD-ROM SuSE
2. Jika Anda masih berada di Microsoft Windows, restart komputer ke dalam MSDOS mode.
3. Pindah ke drive dimana CD-ROM SuSE berada (misalnya D:\).
4. Saat berada di drive CD-ROM, jalankan program setup. D:\> setup
5. Pertama kali muncul adalah pilihan bahasa. Anda bisa pilih Bahasa Indonesia atau Inggris.
Contoh dalam langkah instalasi berikut menggunakan pilihan Bahasa Inggris.
6. Kemudian muncul pertanyaan drive tempat CD-ROM berada. Ketikkan D:\ atau E:\ ,
tergantung komputer Anda.
7. Berikutnya adalah metode instalasi. Pilihan yang ada adalah :
1. CD; jika Linux sudah mendukung CD-ROM yang Anda miliki.
2. Hard disk; jika Linux sudah disalin dari CD-ROM ke hard disk.
8. Selanjutnya adalah pemilihan kernel. Kernel adalah program utama Linux, inti dari sistem
operasinya. SuSE menyediakan beberapa pilihan kernel yang sudah dikompilasi sebelumnya
untuk mendukung perangkat keras secara spesifik. Misalnya kernelEIDE01 untuk
perangkat keras(E)IDE secara umum, atau kernelSCSI01 untuk SCSI Adapter Aic
7xxx (Adaptec 274x). Pemilihan kernel ini tergantung konfigurasi komputer masing-masing.
9. Masukkan parameter kernel. Jika Anda tidak mengetahuinya, langsung tekan enter.
10.Berikutnya SuSE akan menanyakan apakah Anda menginginkan untuk instal Loadlin
sekarang? Loadlin adalah program yang dijalankan di DOS untuk menginisialisikan kernel
(menjalankan Linux) lewat MSDOS. Jawab ya jika Anda belum memilikinya, dan
sebaliknya.
11.Selesai proses instalasi Loadlin, kernel akan langsung dijalankan. Untuk inisialisasi kernel,
secara otomatis dijalankan perintah :
LOADLIN E:/suse/images/EIDE01 root=200 rw 2 Initrd
E:/suse/images/initdisk.gz lang=english
Jika Anda pelajari instalasi Slackware pada bagian sebelumnya, maka disini ditemukan
metode yang serupa. Perintah pertama meminta loadlin untuk menjalankan
kernelEIDE01, yang terletak di direktori E:/suse/images, dan status read write.
Perintah kedua meminta initrd untuk menjalankan initdisk.gz dengan Bahasa Inggris
(tergantung pilihan bahasa sebelumnya) setelah kernel berhasil diinisialisasi. Pada instalasi
Slackware, tugas ini dijalankan oleh disk boot dan disk root. Perintah diatas mengeluarkan
pesan di monitor:
Load Linux now!
12.Dari perintah kedua, initrd akan menjalankan Linuxrc (Versi 0.91) ke dalam komputer
Anda. Pertama kali Anda harus memilih monitor. Anda dapat memilih monitor monokrom
(hitam putih) atau warna. Berikut menu utama (Main Menu) Linuxrc, jalankan pengaturan
dalam menu-menu berikut secara berurutan.

Distributed by: http://abebudi.blogspot.com/


1. Settings, meliputi
• Language; untuk pengaturan bahasa
• Display; untuk pengaturan monitor
• Keymap; untuk pengaturan keyboard
• Debug; pilihan untuk pengguna Linux tingkat lanjut. Isinya berupa pilihan
Animation, Force rootimage, Enter rootimage, Instalation system, Scripting
NFS port. Jika tidak tahu, Anda dapat abaikan pilihan ini, dan relatif tidak
mengganggu proses instalasi secara keseluruhan.
2. System Information, meliputi
• Kernel Messages; Seluruh pesan yang disampaikan kernel saat booting
(termasuk pengenalan perangkat keras). Dari pesan kernel ini Anda dapat
mengetahui perangkat mana yang sudah didukung oleh kernel dan mana yang
belum.
• Hard disk /CD-ROMs; Catatan hard disk dan CD-ROM yang dikenali oleh
kernel.
• Modules; Catatan tentang driver perangkat keras (di Linux disebut sebagai
modul) yang sudah diaktifkan
• PCI; Catatan tentang kartu PCI yang dimiliki berdasarkan pengenalan oleh
kernel.
• Memory; Catatan tentang memory yang dimiliki berdasarkan pengenalan oleh
kernel.
• IO Port; Port Input Output
• Interrupts; Catatan interrupts.
3. Kernel Modules, meliputi
• Load SCSI module; mengaktifkan modul SCSI yang belum dikenal oleh
kernel. Hal ini diketahui dengan membaca pesan kernel pada bagian
sebelumnya.
• Load CD-ROM module; Mengaktifkan modul CD-ROM
• Load network card module; Mengaktifkan modul kartu jaringan.
• Load PCMCIA module; Mengaktifkan modul PCMCIA.
• Show Loaded modules; Melihat modul-modul yang telah diaktifkan.
• Unload modules; Menon-aktifkan kembali modul-modul yang telah aktif.
• Autoload modules; Mengaktifkan modul secara otomatis dengan melakukan
inspeksi (probing) terhadap semua perangkat keras yang ada.
4. Start Instalation System; meliputi
• Start Instalation; Mulai instalasi
• Boot Instalation; Selesai instalasi dan boot komputer
• Start Rescue System
• Start Live CD
13.Pada saat memilih Start Instalation, Linuxrc menanyakan media tempat di mana sumber file
SuSE yang akan diinstal. Pilihan tersebut meliputi CD-ROM, Network (NFS), Network
(FTP), Hard disk. Pilih sesuai kebutuhan Anda. Dalam contoh berikut instalasi dilakukan
lewat CD-ROM.
14.Setelah memilih media instalasi, segera muncul program YaST yang menawarkan tipe
instalasi. Tipe yang ditawarkan adalah :

Distributed by: http://abebudi.blogspot.com/


1. Install Linux from scratch; Instal SuSE baru ke dalam komputer dengan metode
standar.
2. Update existing file system; Upgrade SuSE dari versi sebelumnya.
3. Instalation using expert mode; Instalasi dengan pilihan-pilihan khusus yang
menawarkan modifikasi penuh.
4. Abort; membatalkan instalasi.
Pilih install Linux from scratch
15.Langkah selanjutnya adalah penentuan partisi. Sebelum melanjutkan, silakan baca tentang
partisi pada sub bab instalasi Slackware. Pilihan pertama adalah partitioning hardware; ada
dua pilihan :
1. partitioning; SuSE akan melakukan partisi otomatis sisa spasi hard disk yang masih
kosong. Partisi otomatis ini meliputi partisi Linux sekaligus swap.
2. Do not partitioning; Untuk langkah partisi normal. Untuk belajar melakukan partisi,
pilih do not partitioning.
16.Setelah dipilih do not partitioning, akan muncul pilihan lagi, yakni :
1. Whole hard disk; SuSE akan mempartisi seluruh hard disk. Hindarkan pilihan ini.
2. Partitioning; melakukan partisi secara manual. Pilih partitioning untuk menjalankan
partisi hard disk secara manual.
17.Langkah selanjutnya adalah mengedit tabel partisi. Jalankan langkah ini secara hati-hati
terutama jika Anda memiliki data dalam hard disk Anda. Berikut contoh tabel partisi yang
sudah ada :
Device Name From To Blocks Partition Type
/dev/hda1 1 319 2562336 b Win 95 Fat 32
/dev/hda2 320 1048 5855692 5 extended
/dev/hda5 320 447 1028128 83 Linux Native
/dev/hda6 448 463 128488 82 Linux Swap
18.Tampilan tabel partisi bisa bermacam-macam, tergantung pengaturan di komputer Anda
sebelumnya. Untuk membuat partisi baru, tekan F5.
Starting Cylinder :
End of partition: +1000M
Pada pilihan Starting Cylinder, biarkan kosong, langsung tekan enter. Selanjutnya
muncul End of Partition, masukkan jumlah megabyte yang Anda inginkan, diawali
dengan tanda plus. Contoh di atas adalah membuat partisi baru dengan ukuran 1 Gigabyte
(1000 Megabyte). Lakukan langkah ini hingga diperoleh daftar partisi yang diinginkan. 18.
Selesai membuat partisi baru, lanjutkan dengan pemilihan partisi swap. Pilih Continue,
dan akan muncul pertanyaan Select Swap Partition. Pilih partisi swap yang Anda
tentukan sebelumnya. Anda akan dikonfirmasi, apakah Anda ingin melakukan cek swap
yang akan diaktifkan? Cek ini meliputi bad blocks dan cek permukaan piringan hard disk
yang akan digunakan. Pilih yes.
19.Langkah selanjutnya adalah melakukan format terhadap sistem file Linux yang baru saja
Anda buat partisinya. Contoh sistem file yang sudah ada :
List of existing hard drive
Device Blocks Inodes Format fstype mountpoint partition
/dev/hda5 1028128 4096 No ext2 Linux

Distributed by: http://abebudi.blogspot.com/


Pilih F6 untuk format partisi yang ada. Pilih Normal Format. Selanjutnya, tekan F4 untuk
menentukan mount point. Pilih /. Tekan Continue, dan partisi Anda akan diformat.
20.Instalasi akan kembali ke prompt YaST untuk load configuration. Pilih default SuSE. Anda
bisa pilih secara manual paket-paket yang diinginkan. Bagian ini memakan waktu yang
cukup lama, sebab proses instalasi program yang dipilih sedang berjalan.
21.Selesai instalasi program, Anda diminta memilih kernel lewat menu Select Kernel, dan pilih
Standard (E)IDE kernel (jika hard disk atau CD-ROM Anda IDE) atau SCSI kernel (jika
hard disk atau CD-ROM Anda SCSI).
22.Berikutnya Anda akan ditanyakan untuk membuat boot disk. Jawab ya jika Anda memang
menginginkan Linux di boot dari disket. Siapkan satu disket kosong. Jika tidak, teruskan.
23.Setelah itu muncul menu LILO Instalation. Jawab yes dan segera Anda dibawa ke menu :
1. Pilihan berikut biarkan kosong
Append line for hardware parameter :
2. Pilih Master Boot Record untuk menempatkan LILO di MBR sehingga saat # boot
akan dijalankan.
Where do you want install LILO :
Master Boot Record
Boot sector of root partition
Boot sector of boot partition
On floppy disk
3. Boot delay adalah lama waktu dalam satuan detik pada saat memilih menu sistem
operasi yang akan dijalankan saat komputer dinyalakan.
Boot Delay :
24.Proses selanjutnya penentuan time configuration. Ini adalah satuan waktu yang digunakan
oleh sistem operasi. Anda bisa memilih antara menggunakan GMT atau waktu lokal.
25.Setelah itu penentuan hostname dan domain name. Isian ini sangat penting untuk
memastikan program-program daemon yang membutuhkan nama mesin dan nama domain
seperti server web dan server mail berjalan dengan baik. Untuk pengisian, misalnya:
Hostname : spawn
Domain Name : heaven.or.id
26.Menu berikutnya adalah konfirmasi peran komputer Anda. Pilihannya adalah :
1. IP Loopback only; untuk mesin yang berjalan sendiri dan tidak terhubung ke jaringan
2. Real network; untuk mesin yang terhubung dalam jaringan.
Pada bagian DHCP client, pilih no (kecuali jika Anda terhubung dalam jaringan dengan
DHCP). Dalam contoh berikut, pilih real network.
Catatan:

DHCP atauDynamic Host Configuration Programadalah program yang


mendistribusikan alamat IP pada setiap mesin yang terhubung ke dalam jaringan.
Pemberian alamat IP secara dinamis ini memudahkan jaringan dengan user yang
banyak, dan alamat IP tidak perlu diset satu per satu di tiap mesin. Cukup DHCP
yang membagikannya secara acak. Program ini biasa dipergunakan di ISP

Distributed by: http://abebudi.blogspot.com/


(Internet Service Provider), di mana setiap user yang tersambung lewat modem,
memperoleh alamat IP berubah-ubah pada tiap koneksi.

27.Jika dipilih real network, menu berikutnya adalah memasukkan alamat jaringan :
1. type of network; piliheth0. Ini berarti dalam menghubungkan ke jaringan
menggunakan kartu jaringan. Jika pada boot sebelumnya kernel belum mengenal
kartu jaringan yang ada, Anda dapat mengkonfigurasikannya nanti. Lihat di Bab III,
Sub Bab konfigurasi kartu jaringan.
2. IP Address of your machine; isikan alamat IP misalnya 192.168.1.100
3. Netmask; Isikan netmask berdasarkan kelasnya. Misal 255.255.255.0
4. Gateway; Biarkan kosong. Gambaran tentang gateway dapat Anda baca di Bab III
sub bab IP Masquerade.
5. IP Address of PPP Partner; Isikan DNS server dari ISP Anda. Misalnya 202.158.3.7.
28.Selanjutnya adalah mengkonfigurasikan sendmail lewat sendmail.cf. Menu yang
diberikan:
1. Host with permanent network connection; Jika Anda terhubung dalam jaringan
dengan sambungan yang permanen.
2. Single user machine without network connection; Jika komputer tidak terhubung
dalam jaringan (standalone)
3. Host with temporarily network connection; Jika dalam waktu-waktu tertentu
komputer Anda terhubung dalam jaringan (misalnya Internet).
4. Use UUCP to send mail; Jika mesin Anda terhubung dalam jaringan UNIX, dan
mempergunakan protokol UUCP (Unix to Unix Copy Protocol)
5. Do not install /etc/sendmail.cf; Melewati menu ini, dan jika perlu sendmail.cf dapat
dikonfigurasikan sendiri nantinya.
29.Selesai konfigurasi sementara untuk sendmail, komputer akan direstart. Selanjutnya adalah
mengisikan password untuk root. Usahakan untuk mengisi lebih dari 8 huruf.
30.Langkah berikutnya membuat satu user sebagai contoh. Anda dapat menggunakan user
contoh ini untuk login pertama kali nantinya. Usahakan untuk menggunakan user root
seminimal mungkin.
31.Langkah terakhir, mengkonfigurasikan beberapa peralatan tambahan seperti modem, dan
mouse. Selesai langkah ini, Anda bisa langsung masuk ke Linux prompt, dan login dengan
menggunakan account root atau user contoh yang telah anda tentukan sebelumnya.
Welcome to SuSE 6.2 (i386) - kernel 2.2.10 (tty1)

Spawn login :

Distributed by: http://abebudi.blogspot.com/


Instalasi RedHat
Sejak Versi 6.2, RedHat sudah mulai menggunakan modus grafis untuk instalasinya. Langkah
instalasi yang disampaikan berikut, mempergunakan modus teks. Hal ini berdasarkan pertimbangan
bahwa dengan penguasaan modus teks akan memudahkan Anda saat menjalankan proses dengan
modus grafis. Selain itu, untuk menjalankan administrasi server, perintah modus teks akan
menjembatani semua distribusi.
Langkah instalasi RedHat :
1. Jika Anda berada dalam lingkungan Windows, restart Computer ke dalam DOS mode, dan
lanjutkan ke langkah3.
2. Jika Anda telah menggunakan Linux sebelumnya, mount CD-ROM RedHat (atau media lain
yang berisi sumber file instalasi RedHat), dan buat boot disk.
$ mount /dev/cdrom /cdrom
$ cd /cdrom/images
$ dd if=boot.img of=/dev/fd0 bs=1440k
Boot komputer Anda dengan boot disk tersebut, dan lanjutkan ke langkah 4.
3. Jika Anda berada di DOS mode, jalankan program autoboot yang berada di CD-ROM
direktori Dosutils. Autoboot ini adalah file batch yang memanggil Loadlin untuk
menjalankan kernel boot.
C:\> d: (di mana d adalah direktori CD-ROM )
D:\> cd dosutils
D:\dosutils> autoboot
Selain boot lewat CD-ROM, alternatif lainnya adalah lewat boot disket. Cara membuat boot
disket lewat DOS :
C:\> d:
D:\> cd\dosutils
D:\dosutils> rawrite
Enter disk image source file name: ..\images\boot.img
Enter target diskette drive: a:
Please insert a formatted diskette into drive A: and press
-ENTER- : Enter
D:\dosutils>
4. Setelah kernel dijalankan, init akan berjalan di level 4 untuk instalasi modus grafis. Jika
Anda menginginkan modus teks, dapat ditambahkan boot=text setelah boot dengan
disket dan akan memulai instalasi.
5. Layar pertama yang muncul adalah Language Selection. PilihEnglish.
6. Selanjutnya Keyboad Configuration. Masukkan parameter berdasarkan keyboard Anda, atau
biarkan kosong.
7. Lalu akan beralih ke Mouse Configuration. Tentukan jenis Mouse dan port yang
dipergunakan. Misalnya tipe mouse 2 button mouse (serial), Port & Device : ttyS0 atau

Distributed by: http://abebudi.blogspot.com/


/dev/ttyS0 (Com 1 under DOS)
8. Berikutnya akan masuk layar RedHat 6.2 System Installer. Pilihan model instalasi :
• GNOME Workstation Sebagai workstation dengan Window Manager GNOME
• KDE Workstation Sebagai workstation dengan Window Manager KDE
• Server
• Custom
Yang membedakan masing-masing pilihan tersebut adalah paket-paket program yang
disertakan. RedHat telah memberikan pilihan aplikasi dengan standar yang memadai, baik
sebagai workstation maupun server. Untuk fleksibilitas penuh dalam instalasi, dapat
memilih custom.
Selain instal program penuh, pada bagian ini juga ditawarkan upgrade sistem. Jika anda
sebelumnya telah menjalankan RedHat dan ingin mempertahankan konfigurasi yang telah
dibuat, anda bisa pilih upgrade. Perlu diingat bahwa back up merupakan keharusan untuk
anda yang memiliki data penting. Pada layar ini juga ada pilihan untuk menggunakan
fdisk (use fdisk) untuk partisi. Jika Anda telah membaca partisi program lewat
fdisk pada instalasi Slackware, Anda dapat memanfaatkannya disini.
9. Selanjutnya tentang partisi, RedHat menawarkan automatic partition dan manually partition.
Pilihan Automatic Partition akan membuat data-data yang ada menjadi hilang, karena
RedHat mempartisi ulang semuanya dengan model standar. Pilih manually partition.
10.Diasumsikan Anda tidak menggunakan program fdisk, maka RedHat akan menjalankan
program diskdruid. Layar partisi dengan diskdruid menampilkan jumlah partisi yang
ada, sisa spasi yang masih ada, serta ringkasan informasi hardisk. Menu yang ada untuk
partisi adalah :
• add; untuk menambah partisi
• edit; untuk mengedit partisi yang telah dibuat
• delete; menghapus partisi tertentu
• reset; menghapus seluruh partisi
11.Pilih add untuk menambah partisi. Misalnya :
Add - Mount Point : /
Grow to fill disk :
aktifkan jika anda ingin partisi ini memanfaatkan sisa spasi yang belum dipergunakan.
Biasanya diaktifkan untuk swap.
Partition type : Linux Native
Size : 850 (membuat partisi sebesar 850 Megabyte)
Add - Mount Point : (biarkan kosong)
Grow to fill disk : aktifkan
Partition type : Linux Swap
Size : 150 (membuat partisi memory swap sebesar 150 Megabyte)
12.Selesai dengan partisi, dilanjutkan dengan format partisi swap yang telah dibuat, dan
mengaktifkannya untuk membantu memory dalam proses instalasi.
13.Choose partitions to format; Pilih partisi yang telah dibuat untuk diformat. Jika anda
menentukan mount point lebih dari satu (misalnya: /, /usr, dan /home) di mana partisi
/home sudah berisi data, maka anda dapat memilih partisi/ dan /usr saja yang diformat.

Distributed by: http://abebudi.blogspot.com/


14.Selanjutnya adalah instalasi LILO (Linux Loader). Pilihannya adalah :
• Master Boot Record (MBR)
Intal LILO di Master Boot Record, sehingga bisa langsung boot ke Linux pada saat
komputer dinyalakan. Perlu diingat, jika anda melindungi MBR dengan virus
protection lewat BIOS, maka akan muncul peringatan tentang virus yang mencoba
menulis di MBR. Abaikan peringatan ini, atau virus protection-nya dinon-aktifkan
sementara. Hal ini terjadi karena BIOS akan menganggap semua usaha untuk
menulis di MBR sebagai virus.
• First Sector of Boot partition
Instal LILO pada sektor pertama partisi root. Anda dapat menjalankan Linux
Loadlin, atau boot loader lainnya seperti Boot Loader Windows NT, atau System
Commander. Aktifkan create boot disk, jika anda ingin membuat disket boot. Perlu
diperhatikan, jika anda memilih tipe instalasi Workstation, pilihan di atas tidak
diberikan, dan RedHat secara otomatis menginstal LILO ke dalam MBR. Jika anda
memilih Workstation, silakan lanjut ke langkah 16.
15.Selanjutnya adalah konfigurasi jaringan (Network Configuration). Pada divais eth0 (baca:
kartu jaringan pertama), tersedia pilihan :
• Configure using DHCP; memanfaatkan DHCP (Dynamic Host Configuration
Protocol) atau
penomoran IP terhadap host secara dinamis. Biarkan kosong kecuali anda terhubung
ke DHCP server.
• Activate on boot; kartu jaringan akan diaktifkan saat booting.
• IP Address ; misalnya 192.168.100.1
• Netmask; misalnya 255.255.255.0
• Network; biarkan kosong, atau misalnya 192.168.100.254
• Broadcast; biarkan kosong, atau misalnya 192.168.100.255
• Hostname; misalnya spawn.heaven.id
• Gateway; biarkan kosong, atau misalnya 192.168.100.1. Gambaran tentang
implementasi gateway bisa anda baca nanti di Bab III Konfigurasi Sistem sub bab IP
Masquerade.
• Primary DNS; isikan Name Server dari ISP anda, atau biarkan kosong dulu.
16.Berikutnya konfigurasi Time Zone, dan user. Isikan password root, dan jika perlu
tambahkan beberapa user untuk meminimalkan penggunaan account root. User ini dapat
dipergunakan untuk login saat booting pertama kali ke RedHat.
17.Authentication Configuration, pilih MD5 Password dan Shadow Password. MD5
password memungkinkan pemberian password hingga 256 karakter. Sedangkan shadow
adalah metode penyimpanan password dari file password (/etc/passwd) ke dalam file
lain (/etc/shadow) yang hanya bisa dibaca oleh root. Lebih lanjut baca Bab VII tentang
keamanan jaringan.
18.Selanjutnya adalah pemilihan paket program. Pilih paket program yang diperlukan. Untuk
pemilihan masing masing program (Bukan berdasarkan paket), klik Select Individual
Packages.
19.Configuration; mengkonfigurasikan X Window untuk aplikasi grafis. Dimulai dengan
pemilihan server berdasarkan kartu VGA yang ada. Misalnya S3 3D Trio, dengan jumlah
memory 8 Megabyte (8192k). Aktifkan Use Graphical Login jika nanti
menginginkan langsung masuk ke modus grafis (init 5) saat booting. Skip X
Configuration, jika Anda tidak membutuhkan tampilan grafis, atau anda dapat

Distributed by: http://abebudi.blogspot.com/


konfigurasikan X belakangan.
20.Setelah ini proses instalasi dilakukan. Ujicoba pada buku ini memakan waktu kurang lebih
10 menit. 21. Selesai instalasi, proses dilanjutkan dengan membuat bootdisk. Siapkan floppy
jika anda menginginkannya, atau skip create boot disk jika anda tidak
menginginkan pembuatan boot disk.
21.Instalasi selesai. Booting komputer, dan masuk ke dalam prompt Linux RedHat. Jangan lupa
untuk memasukkan boot disk jika anda instal LILO di sektor pertama partisi root.
Welcome to RedHat 6.2 i686 (Zoot)

Spawn login :

Distributed by: http://abebudi.blogspot.com/


Boot Loader Windows NT
Dalam masa transisi, biasanya ada keengganan untuk melepaskan sistem operasi yang sudah jalan
dengan baik di komputer. Linux menyediakan pemecahan dengan menginstal Windows NT dan
Linux berbarengan dalam satu komputer dan memilih antar keduanya saat komputer menyala.
Intinya adalah mengkonfigurasikan boot start up sehingga nanti dapat memilih antara Linux atau
NT. Sebelumnya, ketahui dulu tips dalam menginstal dua sistem operasi ini, berdasarkan Linux-NT
Loader Mini HOW-TO v1.11:
1. Usahakan untuk menginstal Windows NT lebih dahulu. Jika Anda menggunakan format
NTFS, perlu diingat bahwa saat buku ini ditulis, Linux hanya mampu membacanya (read-
only). Maksudnya adalah jika nanti Anda masuk lingkungan Linux dan akan mengakses file-
file yang berada di partisi windows NT dengan sistem file NTFS, Anda hanya dapat
membacanya.
2. Tidak disarankan utuk membuat partisi sistem file Linux dan swap lewat Disk Administrator
yang ada di NT. Gunakan fdisk dari Linux.
3. Saat pertama instalasi Linux, boot dari disket. Partisi NTFS biasanya dikenal sebagai hpfs.
Anda bisa kompilasi ulang kernel nantinya, agar partisi NTFS dapat dikenal sebagai NTFS
dan dapat diakses meskipun hanya bisa membacanya.
4. Saat konfigurasi LILO (Linux Loader), gunakan partisi Linux Anda untuk booting. Jangan
gunakan Master Boot Record terlebih dahulu karena sudah dimiliki oleh NT. Misalnya,
Linux Anda instal di partisi kedua primary, maka dalam lilo.conf Anda harus masukkan
parameter : Boot=/dev/hda2. Atau jika Anda instal Linux di partisi extended, entri pada
/etc/lilo.conf Boot=/dev/hda5 (atau 6,7, dan seterusnya). Jika Anda boot ulang
komputer, maka seharusnya NT Loader dapat berjalan sebagaimana biasa. Namun jika saat
boot ulang yang muncul adalah LILO, dipastikan Anda instal LILO dalamMaster Boot
Record. Anda perlu mengkonfigurasikan ulang LiLO Anda sehingga boot sector-nya
diletakkan di sektor pertama dari partisi Linux.
Windows NT memiliki program kecil, sebut saja boot loader yang diletakkan di Master Boot
Record. Boot loader ini membaca file boot.ini yang terletak di c:\ atau direktori root dari partisi
yang diset aktif. Berikut contoh boot.ini di c:\
[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Server"

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Serve[vga mode]"

Atribut file tersebut adalah system, dan read-only. Keterangan entri pada boot loader tersebut :
• Timeout sebelum pengguna memilih salah satu menu adalah 30 detik
• Default kursornya berada pada entri
multi(0)disk(0)rdisk(0)partition(1)\WINNT
• Dibawah sub bagian [operating systems] adalah pilihan sistem operasi yang akan

Distributed by: http://abebudi.blogspot.com/


diboot.
Untuk menambahkan kernel Linux Anda pada boot loader sehingga dapat memasukkan menu Linux
dalam pilihannya, Anda harus menyalin kernel Anda ke partisi /drive Windows NT. Caranya:
1. Masuk ke lingkungan Linux. Siapkan disket jika perlu.
2. Dengan asumsi Linux Anda berada pada/dev/hda2 jalankan perintah berikut dengan
account root :
# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1
3. Salin file bootsect.lnx ke dalam partisi Windows NT. Jika Anda dapat mengaitkan
(mounting) partisi Windows NT di Linux Anda dapat menyalin langsung.
# cd /
# mount -t ntfs /dev/hda1 /mnt
# cp bootsect.lnx /mnt
# umount /dev/hda1
4. Atau dengan cara menyalin ke disket.
# cd /
# mount -t msDOS /dev/fd0 /mnt
# cp bootsect.lnx /mnt
# umount /dev/fd0
5. Selesai menyalin ke disket, jangan lupa untuk memindahkan ke Drive C:\ jika nanti sudah
berada pada lingkungan Windows NT.
6. Boot komputer Anda. Masuk ke lingkungan Windows NT. Jalankan DOS prompt.
7. Sebelum mengedit file boot.ini hilangkan dulu atributnya.
C:\ attrib -r -s boot.ini
8. Lalu edit entri pada boot.ini guna menambahkan salinan kernel Linux Anda ke dalamnya.
Edit bisa menggunakan notepad atau program edit di DOS prompt.
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating
systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Server"
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT
Server[vga mode]"
c:\bootsect.lnx="Linux"
9. Berikutnya, kembalikan lagi atribut filenya.
C:\ attrib +r +s boot.ini
10.Boot komputer Anda dan lihat perbedaannya. Sekarang Anda memiliki menu Linux untuk di
jalankan.

Distributed by: http://abebudi.blogspot.com/


OS Loader V4.00
Please select the operating system to start:
Windows NT Server Version 4.0
Windows NT Server Version 4.0 [VGA mode]
Linux

Loadlin
Selain menambahkan entri pada boot loader, Anda bisa menjalankan Linux lewat loadlin (load
Linux). Pada distribusi Slackware, Anda bisa peroleh di diskset a8.
Loadlin adalah program yang menjalankan kernel Linux lewat DOS prompt. Paket Loadlin
(loadlin.tgz) setelah diekstrak pada direktori Windows, biasanya terdiri atas :
readme.1st file

readme

loadlin.exe

Loader

copying GPL dari Free Software Foundation

test.par contoh file parameter

linux.bat contoh file batch

initrd.tgz contoh yang sangat sederhana initrd (/linuxrc)

doc

doc/changes sejarah LOADLIN

doc/quicksta.rt manual

doc/params.doc penjelasan parameter perintah Linux

doc/announce.txt porting saat mengumumkan bzImage+initrd

doc/initrd.txt penjelasan initrd (sebagaimana linux/Documentation/*)

doc/lodlin16.lsm

src sumber

Distributed by: http://abebudi.blogspot.com/


src/loadlin.asm

rc/loadlin.asm

src/loadlini.asm

src/loadlinj.asm

src/loadlinm.asm

src/makefile makefile untuk TASM

src/pgadjust.asm bagian 32-bit dari Loadlin, yang dihasilkan oleh /srclinux.tgz

src/srclinux.tgz sumber 32-bit (harus dikompilasi di Linux)

Paket loadlin tidak dibahas secara detail disini. Untuk dapat menjalankan Linux dengan Loadlin
dengan cepat :
1. Pastikan Anda sudah menginstal loadlin di Windows, dan salinan dari image kernel Anda
(Bzimage atau Vmlinuz). Catat pula pada partisi berapa Linux Anda berada
(/dev/hdax).
2. Untuk menjalankan secara cepat, restart komputer Anda dan masuk dalam DOS Mode.
Menjalankan Loadlin dari prompt di Windows tidak akan berhasil.
3. Masuk ke direktori Loadlin. Diasumsikan bahwa Linux Anda berada di /dev/hda2 dan
kernel Anda sudah disalin ke dalam direktori loadlin dengan nama VmLinuz.
C:\cd loadlin
C:loadlin\> loadlin c:\loadlin/Vmlinuz root=/dev/hda2 ro
4. Untuk memudahkan Anda, buatlah sebuah batch file (misal: Linux.bat) yang berisi
perintah loadlin diatas.

Distributed by: http://abebudi.blogspot.com/


Ringkasan
Pada bab ini, telah dipelajari bersama bagaimana instalasi Linux (khusus tiga distribusi). Distribusi
Slackware memberikan pilihan yang cukup beragam untuk metode instalasinya. Selain metode
standar di atas, Anda dapat pula menginstal Slackware dengan disket. Pada direktori slakware,
cukup dijalankan skrip makeflop, untuk menyalin paket aplikasi ke dalam disket. Semua kernel
yang ditawarkan Slackware disini, merupakan kernel standar, dibuat dengan menyesuaikan
perangkat keras. Jika nantinya Anda sudah terbiasa dengan Linux, Anda perlu mengkompilasi ulang
kernel disesuaikan dengan kebutuhan dan perangkat keras yang Anda miliki. Hal demikian akan
membantu kinerja mesin Linux dalam melayani pengguna.
Distribusi SuSE memberikan modus instalasi yang cukup kompleks. Konfigurasi standar pada saat
instalasi sudah menyentuh beberapa program (misalnya sendmail), sehingga begitu SuSE
dijalankan dapat langsung menjalankan layanannya dengan baik. Sedangkan RedHat yang sudah
mulai menggunakan tampilan grafis, memberikan kemudahan bagi pengguna. Pilihan model
instalasi yang mencakup wokstation, Server, atau Custom membuat pendatang baru akan lebih
mudah dalam menjatuhkan pilihan tanpa perlu memilih paket-paket program yang relatif belum
dikenal. Kemampuan dalam memberikan pilihan secara bebas bagi pengguna tingkat lanjut pun
masih diwakili dengan pilihan Custom.
Upgrade program dari tiap distribusi (misalnya dari Slackware 4.0 ke Slackware 7.0), pada
prinsipnya tidak diperlukan. Yang perlu dijalankan hanyalah upgrade dari kernel yang Anda punyai.
Semakin baru kernel Anda, semakin banyak fitur yang ditawarkan.

Distributed by: http://abebudi.blogspot.com/


Konfigurasi Sistem
Bab ini membahas bagaimana mengkonfigurasi beberapa setting pada Linux secara umum. Bahasan
utama mempergunakan distribusi Slackware, dengan tambahan catatan pada distribusi SuSE dan
RedHat untuk seting mempergunakan program bantu. Pilihan Slackware sebagai bahasan utama
dilatarbelakangi oleh sebab bahwa seting di Slackware sebagian besar manual (tidak memiliki
program bantu) sehingga bisa diterapkan pada Linux semua distribusi. Penambahan informasi
dengan program bantu, pada prinsipnya hanya mempermudah dalam konfigurasi, namun
mempunyai keterbatasan hanya berlaku di satu distribusi saja.
Konfigurasi dasar yang disampaikan di bab ini cukup untuk membuat Linux dapat dimanfaatkan
sebagai server ataupun workstation pada jaringan. Pertama adalah review apa yang sebetulnya
terjadi pada Linux saat komputer booting.

Subsections
• Booting
• Direktori Standar
• YaST di SuSE
• LinuxConf di RedHat
• Seting Kartu Jaringan
• Seting manual di Slackware
• Seting Kartu Jaringan melalui YaST
• Seting Kartu Jaringan melalui LinuxConf

• Koneksi ke Internet
• Koneksi Manual
• Koneksi dengan menggunakan pppsetup (Slackware)
• Koneksi dengan Wvdial (SuSE)
• Koneksi dengan skrip if-up (RedHat)

• IP Masquerade
• Kompilasi Kernel
• Menjalankan modul
• Konfigurasi Klien
• Windows 9x
• Windows for Workgroup 3.11
• Windows NT
• Sistem UNIX

Distributed by: http://abebudi.blogspot.com/


• DOS dengan paket NCSA Telnet
• MacOS yang menjalankan MacTCP
• MacOS yang menjalankan Open Transport
• Novell network dengan DNS
• OS/2 Warp
• Konfigurasi Sistem Lain
• Administrasi forwarding
• Ringkasan

Distributed by: http://abebudi.blogspot.com/


Booting
Pada saat komputer dinyalakan, bios akan mengecek integritas hardware mesin Anda. Jika semua
berjalan dengan baik, bios akan membaca sektor pertama dari disk yang ada. Biasanya dengan
urutan floppy kemudian hardisk. Hal ini tergantung dari seting bios komputer. Jika floppy tidak
ditemukan, proses dilanjutkan dengan membaca sektor pertama dari hardisk. Sektor ini disebut
sebagai boot sector atau MBR (Master Boot Record).
Boot sektor berisi satu program kecil yang akan membaca sistem operasi pada hardisk dan
menjalankannya pada memori. LILO merupakan program yang sering digunakan untuk memanggil
Linux, dan biasanya terletak di boot sector. Saat dijalankan, LILO akan membaca tabel partisi yang
telah ditentukan dalam konfigurasi sebelumnya (LILO dapat diatur sendiri dengan mengedit file
/etc/lilo.conf). Setelah menemukan partisi yang diset aktif, LILO akan memanggil kernel
untuk dijalankan pada memory.
Pada saat menemukan image kernel Linux, yang sebenarnya terjadi adalah :
1. Kernel diinstal dalam bentuk terkompress. Proses yang pertama kali dilakukan adalah
unkompress kernel. Ini dijalankan oleh program kecil yang terletak di awal kernel.
2. Kemudian kernel akan mencoba mengenali semua hardware yang Anda miliki. Semua
proses itu biasanya tergambar dalam monitor. Berikut contoh outputnya :
Linux version 2.2.6 (root@zap) (gcc version 2.7.2.3) #14 Tue
Apr27 15:06:58 CDT 1999
Detected 266320422 Hz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 265.42 BogoMIPS
Memory: 127752k/131072k available (1280k kernel code, 408k
reserved, 1576k data, 56k init)
VFS: Diskquotas version dquot_6.4.0 initialized
CPU: Intel Pentium II (Klamath) stepping 04 Checking 386/387
coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
Checking for popad bug... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.26 (19981001) Richard Gooch (rgooch@atnf.csiro.au)
PCI: PCI BIOS revision 2.10 entry at 0xf6930
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: 00:00 [8086/1237]: Passive release enable (00)
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.

Distributed by: http://abebudi.blogspot.com/


NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
Initializing RT netlink socket Starting kswapd v 1.5
Detected PS/2 Mouse Port. Serial driver version 4.27 with HUB-
6 MANY_PORTS MULTIPORT SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Real Time Clock Driver v1.09
RAM disk driver initialized: 16 RAM disks of 4096K size
loop: registered device at major 7
PIIX3: IDE controller on PCI bus 00 dev 21
PIIX3: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x0500-0x0507, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x0508-0x050f, BIOS settings: hdc:DMA, hdd:pio
hdc: HITACHI CDR-8330, ATAPI CDROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hdc: ATAPI 24X CD-ROM drive, 128kB Cache
Uniform CDROM driver Revision: 2.54
Floppy drive(s): fd0 is 1.44M FDC 0 is a National
Semiconductor PC87306
md driver 0.36.6 MAX_MD_DEV=4, MAX_REAL=8
linear personality registered
raid0 personality registered
(scsi0) <Adaptec AIC-7860 Ultra SCSI host adapter> found at
PCI 7/0
(scsi0) Narrow Channel, SCSI ID=7, 3/255 SCBs
(scsi0) Warning - detected auto-termination
(scsi0) Please verify driver detected settings are correct.
(scsi0) If not, then please properly set the device
termination
(scsi0) in the Adaptec SCSI BIOS by hitting CTRL-A when
prompted
(scsi0) during machine bootup.
(scsi0) Cables present (Int-50 YES, Ext-50 NO)
(scsi0) Downloading sequencer code... 419 instructions
downloaded

Distributed by: http://abebudi.blogspot.com/


scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI)
5.1.10/3.2.4
<Adaptec AIC-7860 Ultra SCSI host adapter>
scsi : 1 host.
Vendor: HP Model: 4.26GB A 50-S65A Rev: S65A
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
scsi : detected 1 SCSI disk total.
(scsi0:0:0:0) Synchronous at 20.0 Mbyte/sec, offset 15.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 8330543
[4067 MB] [4.1 GB]
Partition check:
sda: sda1 sda2 sda3 sda4 < sda5 sda6 >
3. Kemudian kernel akan mengaitkan (mounting) sistem file root (root file system), biasanya
dengan status read only. Hal ini untuk memudahkan pengecekan terhadap integritas dari
sistem file yang dilakukan oleh program fsck. Jika proses mounting gagal, maka akan
muncul pesan kernel panic.
4. Proses selanjutnya adalah memuat modul-modul yang diperlukan untuk mengenali hardware
yang tidak didukung oleh kernel. Proses ini dijalankan dengan membaca file
/etc/rc.d/rc.modules atau /etc/conf.modules. Modul dapat diibaratkan
sebagai driver untuk hardware yang tidak didukung oleh kernel. Hal ini biasanya terjadi
karena saat kompilasi kernel, modul hardware tersebut tidak dimasukkan ke dalam kernel.
Jika Anda sudah mengkompilasi kernel sesuai dengan kebutuhan hardware Anda sendiri,
maka modul tidak perlu dijalankan karena sudah menyatu di dalam kernel.
Catatan :

Inisialisasi dari semua proses yang dijalankan kernel biasanya bersumber pada
skrip yang semuanya terletak pada direktori /etc/rc.d. Direktori ini standar
dipergunakan di tiap distribusi, hanya saja skrip-skrip yang berada di dalamnya
berbeda tergantung jenis init system-nya.

5. Selanjutya, kernel akan menjalankan program init, yang terletak di/sbin/init. Ada
beberapa level init yang dijalankan secara default. Anda dapat mengaturnya dengan
mengedit file /etc/inittab.
Berikut level init default yang dijalankan di masing-masing distribusi :

Distributed by: http://abebudi.blogspot.com/


Table: Init Level Slackware

Run Level Keterangan


0 Mematikan komputer (halt)
Modus user tunggal. Biasanya dipergunakan root untuk administrasi
1
sistem
2 Tidak dipergunakan (tapi dikonfigurasikan sama dengan level 3)
3 Modus multi user (default yang dijalankan Slackware saat booting)
4 X11 dengan xdm, inisialisasi dengan tampilang grafis (GUI)
5 Tidak dipergunakan (tapi dikonfigurasikan sama dengan level 3)
6 Reboot

Table: Init Level SuSE


Run Level Keterangan
0 Mematikan komputer (halt)
Modus user tunggal. Biasa dipakai root untuk administrasi
S
sistem
1 Multi user tanpa network
2 Multi user dengan network
3 X11 dengan xdm, inisialisasi denga tampilang grafis
6 Reboot

Table: Init Level RedHat


Run Level Keterangan
0 Mematikan komputer (halt)
Modus user tunggal, biasa dipergunakan untuk administrasi
1
sistem
2 Multi user tanpa NFS
3 Multi user penuh (default yang dijalankan RedHat)
4 Tidak dipergunakan
5 X11, inisialisasi tampilan grafis
6 Reboot

Distributed by: http://abebudi.blogspot.com/


Dalam hal ini, init dijalankan dengan run level 3 (multi user).
• Dengan memasuki run level 3, init menjalankan beberapa daemon. Daemon adalah program
yang berjalan bersamaan dengan sistem, biasanya di belakang layar. Daemon dapat berjalan
dengan baik meskipun tanpa campur tangan pengguna. Daemon akan memberikan reaksi
tertentu jika ada permintaan. Contoh, http daemon, samba daemon, mail daemon.
• Selesai menjalankan beberapa daemon, init akan memanggil getty, untuk memulai virtual
console dan line serial. Dengan demikian, pengguna sudah dapat login ke mesin Linux, dan
bekerja secara normal.

Direktori Standar
Berikut susunan direktori standar yang ada pada Slackware (dan Linux secara umum).
1. /
Direktori root, yang menampung seluruh file yang ada dalam Linux. Pada direktori root
biasanya tidak menampung file, kecuali image dari kernel (vmlinuz).
2. /bin
Berisi file yang dapat dieksekusi/dijalankan (file dengan ekstension exe pada
DOS/Windows).
3. /boot
Direktori berisi file yang dieksekusi saat Linux booting.
4. /dev
Linux memperlakukan semua sebagai file. Direktori ini merupakan file dari hardware
komputer Anda. Misal floppy disk menjadi file /dev/fd0, CD ROM menjadi /dev/hdb
bahkan hingga memory. Yang cukup terkenal adalah /dev/null, semua file yang dikopi
kesini akan dibuang.
5. /etc
Berisi file-file konfigurasi Linux. Biasanya berbentuk file text dan dapat diedit dengan
mudah.
6. /home
Berisi direktori dari masing-masing user.
7. /lib
Berisi kumpulan library yang diperlukan oleh program di root direktori. (file DLL pada
sistem operasi Windows).
8. /lost+found
9. /mnt
Direktori tempat mounting divais Anda. Misalnya /dev/fd0 (disket) akan dimount ke
/mnt/floppy, /dev/hda1 (partisi DOS) dimount ke /mnt/dos. Secara default
direktori ini kosong, dan Anda harus membuat direktori sendiri sebagai mount point-nya.
10./proc
Sistem file semu yang ditulis di atas memory. Digunakan untuk menginformasikan sistem

Distributed by: http://abebudi.blogspot.com/


(biasanya tentang proses yang sedang berjalan).
11./root
Direktori home bagi root /sbin File eksekusi yang dijalankan oleh sistem atau root.
12./tmp
Berisi file-file sementara
13./usr
Berisi file dan program yang berorientasi pada user. Hampir semua program yang disertakan
dalam distribusi diinstal di sini.
14./var
Berisi data yang berubah pada saat Linux berjalan. Data ini biasanya hanya spesifik pada
satu komputer, dan tidak dibagi dengan komputer lain dalam jaringan.

Distributed by: http://abebudi.blogspot.com/


YaST di SuSE
SuSE memiliki program bantu untuk mengkonfigurasikan Linux dengan menu interaktif yang
mudah dimengerti yakni yast (Yet another Setup Tool). Untuk menjalankannya, cukup ketikkan
yast dengan user root.
# yast

Segera akan muncul kotak dialog YaST v.1.01. Program bantu ini perlu disampaikan di awal
bahasan, sebab untuk sebagian besar bab ini, dikonfigurasikan dengan mengacu program bantu.
YaST mempunyai struktur menu konfigurasi :
1. General help for installation
File help yang berisi tentang tombol-tombol yang dipergunakan untuk navigasi YaST.
2. Adjustments of installation Bagian untuk instalasi atau update instalasi.
1. Select Language
2. Select Keymap
3. Select Installation Medium
4. Configure harddisk partitions
5. Set target partitions/filesystems
6. Installation to a directory
3. Choose/Install packages
Penambahan atau pengurangan (uninstall) paket aplikasi.
4. Update system
Pengecekan terhadap perubahan program-program lain serta sistem yang terpengaruh
dengan instalasi program yang baru.
5. System Administration
Konfigurasi sistem, termasuk hardware, network dan user. Bagian ini terdiri dari :
1. Integrate hardware into system
1. Mouse configuration
2. Modem
3. CD-ROM
4. Configure printers
5. Configure ISDN hardware
6. Configure your scanner
7. Configure networking device
2. Kernel and boot configuration
1. Select boot kernel
2. Create a boot disk
3. Create a rescue disk
4. LILO Configuration
3. Network configuration
4. Network base configuration
1. Change hostname
2. Configure network services

Distributed by: http://abebudi.blogspot.com/


3. Configure name server
4. Configure YP Client
5. DHCP client
6. Configure sendmail
7. Configure ISDN parameters
8. Configure a PPP network
9. Administer remote printers
10.Connect to printer via Samba
11.Connect to printer via novell network
5. Login configuration
1. Settings of SuSE WM
2. User Administration
3. Group Administration
4. Create backups
5. Set the console font
6. Set Time Zone
6. Configure XFREE86 (tm)
7. Configure GPM
8. Security Settings
9. Change Configuration file
6. Show README file for installation media
7. CopyRight
8. Exit YaST

Distributed by: http://abebudi.blogspot.com/


LinuxConf di RedHat
Sebagaimana SuSE dengan YaST, RedHat memiliki program bantu yang lebih kompleks dan
komprehensif, yakni LinuxConf. Selain dijalankan di basis teks, LinuxConf dapat dijalankan di
bawah X (tampilan grafis) untuk memudahkan pengguna. Dengan Window Manager Gnome, Anda
dapat mengaktifkan LinuxConf lewat panel Gnome - System - linuxconf. Jalankan X
server lewat user root.
Catatan :

Situs Resmi LinuxConf adalah http://www.solucorp.qc.ca/linuxconf.


Jika Anda tertarik untuk mengetahui lebih dalam tentang LinuxConf, dapat mengikuti
mailing list yang informasinya dapat diperoleh di
http://www.solucorp.qc.ca/linuxconf/mailinglist.html.

Guna menjalankan LinuxConf di konsol, dengan user root cukup ketikkan :


# linuxconf

Secara umum, LinuxConf (Versi 1.16 pada RedHat 6.2) menawarkan pilihan dalam
mengkonfigurasikan Linux dengan struktur sebagai berikut :
1. Config
1. Networking
1. Client Tasks
Konfigurasi standar untuk mesin, diantaranya hosts.conf, DNS (Domain
Name System), NIS (Network Information Server), PPP (Point to Point
Protocol, biasanya untuk koneksi ke internet) dan konfigurasi umum lainnya.
2. Server Tasks
Konfigurasi server yang dijalankan oleh Linux. Misalnya Apache, Mail
Delivery system, Samba dan aplikasi server lainnya. Misc
3. Information about other hosts
Edit pemetaan nama mesin lain dalam file /etc/hosts
4. Information about other networks
Edit pemetaan jaringan dalam file /etc/networks
5. LinuxConf net access
Mengaktifkan LinuxConf untuk dapat diakses lewat browser dengan
memanggilhttp://nama_mesin_linux:98
2. User Accounts
1. Normal
Mengambah, mengurangi dan mengatur user Linux.
2. Special Accounts
Menambah, mengurangi dan mengatur user khusus seperti PPP, SLIP, POP,

Distributed by: http://abebudi.blogspot.com/


dan VPOP (untuk mail).
3. Email aliases
4. Policies
5. File Systems
6. Miscellaneous Service
Mengatur user untuk layanan lainnya.
7. Boot mode
Mengatur default init yang dijalankan saat Linux dijalankan.
2. Control
1. Control Panel
1. Activate Configuration
Mengaktifkan LinuxConf yang telah diperbarui
2. Shutdown/Reboot
Pilihan untuk mematikan atau reboot komputer.
3. Control Service Activity
Mengatur layanan yang dijalankan lewat inetd.
4. Mount/Umount
Mengatur mounting partisi dan divais lain (CD-ROM, disket, tape drive).
2. Control Files and systems
Mengatur, menambah dan mengurangi program user dan server yang bisa
dikonfigurasikan lewat LinuxConf. Biasanya setiap program server langsung
ditambahkan dalam menu LinuxConf.
3. Logs
4. Date/times
5. Features

Distributed by: http://abebudi.blogspot.com/


Seting Kartu Jaringan

Subsections
• Seting manual di Slackware
• Seting Kartu Jaringan melalui YaST
• Seting Kartu Jaringan melalui LinuxConf

Distributed by: http://abebudi.blogspot.com/


Seting manual di Slackware
1. Catat vendor dan seri dari kartu jaringan (ethernet card/network interface card) yang Anda
punyai
2. Cek apakah kernel waktu booting sudah mengenali kartu jaringan yang Anda miliki, dengan
perintah dmesg.
# tail dmesg

PPP: version 2.3.3 (demand dialling)

PPP line discipline registered.

eth0: OEM i82557/i82558 10/100 Ethernet at 0xf8e0, 00:A0:C9:99:5C:4C, IRQ 9.

Board assembly 690106-001, Physical connectors present: RJ45

Primary interface chip i82555 PHY #1.

General self-test: passed.

Serial sub-system self-test: passed.

Internal registers self-test: passed.

ROM checksum self-test: passed (0x49caa8d6).

Receiver lock-up workaround activated.

Atau cara kedua, dengan perintah ifconfig.


# ifconfig

eth0 Link encap:Ethernet HWaddr 00:A0:C9:99:5C:4C

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:4679 errors:0 dropped:0 overruns:0 frame:0

TX packets:3520 errors:0 dropped:0 overruns:83 carrier:0


collisions:2 txqueuelen:100

Interrupt:9 Base address:0xf8e0

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

Distributed by: http://abebudi.blogspot.com/


UP LOOPBACK RUNNING MTU:3924 Metric:1

RX packets:96 errors:0 dropped:0 overruns:0 frame:0

TX packets:96 errors:0 dropped:0 overruns:0 carrier:0


collisions:0 txqueuelen:0

3. Jika kernel belum mengenal kartu jaringan Anda (outputnya hanya lo/loopback), maka
Anda dapat menjalankannya dengan mengaktifkan modul kartu jaringan yang Anda miliki.
Caranya, buka file /etc/rc.d/rc.modules. Cari di dalamnya modul dari ethernet
sesuai catatan Anda. Jika tidak terdaftar dalam listing yang ada, Anda harus mendownload
kernel versi terbaru, kemudian mengkompilasinya sesuai dengan hardware yang ada. Atau
mencarinya di homepage vendor kartu jaringan Anda.
4. Jika Anda tidak menemukan rc.modules (distribusi selain Slackware), maka Anda dapat
mencarinya langsung di /lib/modules atau di /etc/conf.modules untuk melihat
konfigurasi aktivasi modul-modul yang ada. Untuk mengaktifkannya cukup jalankan
perintah modprobe. Misalnya :
# modprobe ne2k-pci
5. Setelah Anda temukan dalam file rc.modules, hilangkan tanda pagar agar dieksekusi oleh
kernel pada saat booting. Berikut contoh potongan file /etc/rc.d/rc.modules
# PCI NE2000 clone support:
#/sbin/modprobe ne2k-pci
# SMC Ultra support:
#/sbin/modprobe smc-ultra
# SMC Ultra32 EISA support:
#/sbin/modprobe smc-ultra32
# Western Digital WD80*3 (and clones) support:
#/sbin/modprobe wd
6. Misal, kartu jaringan Anda adalah NE 2000 kompatibel, Anda cukup hilangkan tanda pagar
di depan /sbin/modprobe ne2k-pci dengan editor teks, dan simpan.
# PCI NE2000 clone support:
/sbin/modprobe ne2k-pci
# SMC Ultra support:
#/sbin/modprobe smc-ultra
# SMC Ultra32 EISA support:
#/sbin/modprobe smc-ultra32
# Western Digital WD80*3 (and clones) support:
#/sbin/modprobe wd

Distributed by: http://abebudi.blogspot.com/


Catatan :

Selain kartu jaringan, Anda dapat memasukkan modul hardware lain


yang belum dikenal oleh kernel dengan menghilangkan tanda pagar
di depan baris perintah yang akan mengenal hardware Anda.

7. Setelah memasukkan modul kartu jaringan agar dieksekusi oleh kernel saat booting,
lanjutkan dengan memberikan nomor IP pada kartu jaringan. Caranya adalah dengan
mengedit file /etc/rc.d/rc.inet1. Jika file rc ini tidak ada, maka Anda dapat
memasukkannya ke dalam rc.local (ada di setiap distribusi), atau membuat sendiri skrip
rc sejenis. Berikut contoh isi file rc.inet1 yang telah diedit sesuai kebutuhan.
#!/bin/sh
#
# rc.inet1 This shell script boots up the base INET system.
#
# Version: @(#)/etc/rc.d/rc.inet1 1.01 05/27/93
#
HOSTNAME=`hostname`
# Attach the loopback device.
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
# IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to
configure the
# eth0 interface. If you're only using loopback or SLIP, don't
include the
# rest of the lines in this file.
# Edit for your setup.
IPADDR="192.168.1.1" # REPLACE with YOUR IP address!
NETMASK="255.255.255.0" # REPLACE with YOUR netmask!
#NETWORK="128.253.154.0" # REPLACE with YOUR network
address!
#BROADCAST="128.253.154.255" # REPLACE with YOUR broadcast
address, if you
# have one. If not, leave blank
and edit below.
GATEWAY="192.168.1.1" # REPLACE with YOUR gateway address!

# Uncomment the line below to initialize the ethernet device.


/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask
${NETMASK}
# Older kernel versions need this to set up the eth0 table:
#KVERSION=`uname -r | cut -f 1,2 -d .`
#if [ "$KVERSION" = "1.0" -o "$KVERSION" = "1.1"\
# -o "$KVERSION" = "1.2" -o "$KVERSION" = "2.0" -o "$KVERSION"
= "" ]; then
# /sbin/route add -net ${NETWORK} netmask ${NETMASK} eth0
#fi

Distributed by: http://abebudi.blogspot.com/


# Uncomment this to set up your gateway route:
/sbin/route add default gw ${GATEWAY} netmask 0.0.0.0 metric
1
# End of rc.inet1
Catatan :

Hanya baris yang telah dihilangkan pagarnya saja yang dieksekusi. Selain itu
hanya berupa komentar yang membantu untuk mengedit.

8. Saat booting berikutnya, kartu jaringan Anda akan dikenal oleh Kernel dan siap untuk
dijalankan. Untuk mengetesnya, Anda dapat menjalankan perintah dmesg atau ifconfig. Cara
lain, jika mesin Anda sudah tersambung ke dalam jaringan, Anda dapat mencoba ping
nomor ip mesin lain dalam jaringan.
# ping -c 5 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=128 time=0.6 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=128 time=0.4 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=128 time=0.4 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=128 time=0.5 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=128 time=0.4 ms
-- 192.168.1.2 ping statistics --
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.4/0.4/0.6 ms
Selain menentukan nomor IP dengan memasukkannya ke dalam skrip yang dijalankan pada
saat booting, pemberian nomor IP juga bisa dilakukan jika sudah berada dalam lingkungan
shell. Hal ini bermanfaat jika suatu saat akan mengganti nomor IP mesin (atau tepatnya
nomor IP kartu jaringan).
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:A0:C9:99:5C:4C
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:4679 errors:0 dropped:0 overruns:0 frame:0
TX packets:3520 errors:0 dropped:0 overruns:83 carrier:0
collisions:2 txqueuelen:100
Interrupt:9 Base address:0xf8e0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1

Distributed by: http://abebudi.blogspot.com/


RX packets:96 errors:0 dropped:0 overruns:0 frame:0
TX packets:96 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
#ifconfig eth0 down # nonaktifkan dulu kartu jaringannya
#ifconfig eth0 ip=192.168.1.100 netmask=255.255.255.0
#ifconfig eth0 up # aktifkan kembali
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:A0:C9:99:5C:4C
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4679 errors:0 dropped:0 overruns:0 frame:0
TX packets:3520 errors:0 dropped:0 overruns:83 carrier:0
collisions:2 txqueuelen:100
Interrupt:9 Base address:0xf8e0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:96 errors:0 dropped:0 overruns:0 frame:0
TX packets:96 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
Dengan demikian, kartu jaringan diganti dari nomor IP 192.168.1.1 menjadi 192.168.1.100.

Distributed by: http://abebudi.blogspot.com/


Seting Kartu Jaringan melalui YaST
1. Masuk sebagai user root, dan jalankan yast
$ su
password:
# yast
2. Segera muncul yast, masuk ke bagian System administration - Integrate
hardware into system - Configure networking device.
• Networking type : eth0
Nama divais yang dipergunakan. Jika mampunyai kartu jaringan lebih dari satu,
dapat mengisikan secara berurutan, misal eth0, eth1 dan seterusnya.
• Networking Device Type : ne2k-pci
Modul (driver) yang dipergunakan untuk kartu jaringan yang ada. Banyaknya modul
tergantung versi kernel yang dipergunakan. Jika pilihan modul tidak ada yang sesuai
dengan kartu jaringan yang Anda miliki, Anda dapat mengupgrade kernel terbaru,
atau mengunjungi situs web kartu jaringan Anda.
• Module Options
Paramater port input output yang dipergunakan. YaST akan mengisikan secara
otomatis berdasarkan modul yang dipilih.
3. Setelah disimpan, keluar dari YaST, dan cek file /etc/conf.modules untuk melihat
apakah modul kartu jaringan Anda sudah di-remark (dihilangkan karakter pagar di depan
modulnya).
4. Jika modul yang dipilih sesuai dengan kartu jaringan yang dimiliki, maka kartu jaringan
akan otomatis aktif saat booting berikutnya. Untuk mengaktifkan kartu jaringan tanpa
booting (manual) jalankan perintah modprobe. Lihat seting kartu jaringan di Slackware
langkah ke 4 yang telah dibahas sebelumnya.
5. Lakukan pengetesan dengan menjalankan ping terhadap komputer lain dalam jaringan Anda.
Caranya dapat merujuk pada seting kartu jaringan sebelumnya.

Seting Kartu Jaringan melalui LinuxConf


1. Masuk sebagai user root, dan jalankan linuxconf.
$ su
password:
# linuxconf
2. Masuk ke bagian Config - Networking - Client tasks - Basic host
information.
3. Bagian hostname isikan nama host komputer Anda. Misalnya spawn.
4. Di bagian adapter 1 ;
• Klik enabled untuk mengaktifkan

Distributed by: http://abebudi.blogspot.com/


• Config mode ; pilih manual.
• Primary name + domain ; isikan nama host dan domain Anda. Misalnya
spawn.heaven.or.id
• Aliases; biarkan kosong untuk seting pertama kali. Anda bisa menambahkan
nantinya jika kartu jaringan Anda sudah aktif.
• IP Address; isikan alamat IP komputer Anda. Misalnya 192.168.100.1
• Netmask; tentukan netmask berdasarkan kelas IP yang telah diisikan sebelumnya.
Biarkan kosong jika Anda tidak yakin.
• Net Device; Nama divais yang dipergunakan. Misalnya eth0
• Kernel Module; Nama modul kartu jaringan Anda. Pilih yang sesuai, misalnya
ne2k-pci untuk kartu kompatibel ne 2000.
5. Selesai dengan seting di atas klik Accept. Atau bisa ditambahkan ke pilihan Adapter 2 jika
Anda memiliki kartu jaringan lebih dari 1.
6. Saat booting berikutnya, jika modul yang dipilih sesuai maka kartu jaringan akan segera
aktif. Lakukan langkah pengetesan sebagaimana yang telah dijelaskan pada sub bab
sebelumnya.

Distributed by: http://abebudi.blogspot.com/


Koneksi ke Internet
Hubungan ke internet merupakah hal yang cukup esensial di Linux. Mengingat Linux tumbuh dan
berkembang lewat komunitas di Internet, maka sebagian besar fiturnya akan berjalan secara baik
jika tersambung ke internet (atau dalam skup kecil, LAN (Local Area Network). Sebut saja layanan
daemon dalam inetd, seperti telnet daemon (yang membuat mesin dapat ditelnet mesin lain),
finger daemon (memberikan informasi user kepada pihak-pihak yang dikehendaki), ftp daemon
(file transfer protocol daemon, memberikan layanan kepada komputer lain untuk mengirimkan file
ke komputer) dan sebagainya.
Keamanan juga akan terasa di Linux, saat mesin tersambung ke Internet. Aplikasi TCP Wrapper
yang memfilter setiap host yang akan mengakses komputer, lebih terasa manfaatnya saat
tersambung ke internet. Apalagi keamanan terhadap serangan virus yang bertebaran di Internet,
discretionary access control (baca di bab terakhir) di Linux memberikan perasaan aman saat
menerima sisipan email atau saat berjalan jalan di web site favorit.
Koneksi ke internet yang dibahas di sini adalah sambungan Point to Point Protocol (PPP). Lebih
sering disebut sambungan dial up. Koneksi untuk menghubungkan ke ISP. Sambungan lewat leased
line, ISDN, VSAT dan sebagainya tidak akan dibahas, sebab cakupannya terlalu luas.
Banyak program dialer yang ada di Linux. Untuk basis teks yang banyak digunakan adalah
wvdial. Sedangkan basis GUI dengan Window Manager KDE, ada KPP. Di sini yang akan
dibahas adalah prinsip menyambungkan ke internet, seting secara manual, seting untuk dial dengan
menggunakan pppsetup (skrip dialer khas Slackware), dan seting mempergunakan YaST (WvDial)
& LinuxConf. Seting dengan basis GUI tidak akan dibahas, karena setingnya tergantung Window
Manager yang dipergunakan. Untuk Anda yang sudah terbiasa menggunakan Windows tentu akan
familiar mengkonfigurasikannya meskipun tanpa bimbingan.
Pada prinsipnya, dial ke internet membutuhkan :
1. Dukungan kernel untuk ppp. Hampir semua binary kernel pada tiap distribusi
menyertakannya
2. Skrip ppp, skrip yang akan dipergunakan untuk otomatisasi koneksi.
3. Modem. Anda harus mengetahui berapa kecepatan modemnya (misal 33,6 kbps, 56,6 kbps
dan sebagainya). Selain itu perlu Anda catat pada port berapa modem Anda disambungkan
ke komputer. COM1 pada DOS/Windows, adalah /dev/Cua0 atau /dev/Tty0 di Linux.
COM2 pada DOS/Windows, adalah /dev/Cua1 atau /dev/Tty1 di Linux. Pengetahuan
ini akan bermanfaat pada saat seting dialer nanti.
4. Dan tentu saja Anda membutuhkan sambungan telepon dengan account yang masih aktif di
ISP.
Autentikasi di ISP biasanya menggunakan metode PAP (Password Authentication Protocol). Jika
Anda harus memasukkan user name dan password langsung dengan menuliskan teksnya, berarti
tidak menggunakan metode PAP (Biasanya untuk account shell).

Subsections
• Koneksi Manual
• Koneksi dengan menggunakan pppsetup (Slackware)

Distributed by: http://abebudi.blogspot.com/


• Koneksi dengan Wvdial (SuSE)
• Koneksi dengan skrip if-up (RedHat)

Distributed by: http://abebudi.blogspot.com/


Koneksi Manual
Untuk koneksi ke ISP secara manual, jalankan langkah berikut :
1. Seting modem
Pastikan modem yang Anda miliki bukan winmodem, dan terpasang dengan baik.
Winmodem adalah modem yang beberapa fungsinya digantikan oleh software (Windows).
Modem ini biasanya jauh lebih murah dari modem biasa. Sebagian besar internal modem
adalah winmodem. Catat terlebih dahulu port modem Anda misalnya :
Com1 pada DOS -> /dev/cua0 atau /dev/ttys0
Com2 pada DOS -> /dev/cua1 atau /dev/ttys1 dan seterusnya.
2. Seting Nama dan DNS
Pastikan /etc/hosts telah berisi nama domain Anda. Selain itu, edit file /etc/resolv.conf
Anda :
domain nama.isp.Anda
nameserver 10.25.0.1 # nomor IP DNS ISP Anda.
nameserver 10.25.1.2 #Bisa diisi lebih dari 1
Dan cek pula file /etc/host.conf, seharusnya berisi :
order hosts,bind
multi on
3. Buka folder/etc/ppp.
Edit file option yang ada disitu, sehingga menjadi seperti berikut (setelah pagar adalah
komentar, dan tidak dijalankan):
# /etc/ppp/options
#
# Melindungi pppd untuk berjalan dibackground.
-detach
#
# menggunakan modem
modem
# memastikan modem tidak dipakai program lain saat digunakan
device
lock
crtscts
# membuat defaultroute untuk koneksi ini kedalam routing table
defaultroute
asyncmap 0

Distributed by: http://abebudi.blogspot.com/


# Maksimum transmisi paket 552 bytes
mtu 552
# Maksimum penerimaan paket
552 bytes
mru 552
#
# memaksa pppd untuk menggunakan user name ISP sebagai 'host
name'
# saat proses autentikasi.
name <nama isp Anda>
4. Buat file/etc/ppp/pap-secret yang berisi nama user dan password Anda di ISP.
Pastikan file ini mempunyai atribut yang ketat, sehingga tidak dapat dilihat oleh user lain.
chmod file berikut ke 700
# Secrets for authentication using PAP
# client server secret acceptable local IP addresses
fade * linuxispower
5. Test koneksi ke ISP.
Jalankan perintah berikut dengan user root :
# pppd -d -detach /dev/ttySx 3524001 &
6. Untuk mengetes koneksi Anda, cobalah ping ke website terkenal.
# ping -c 5 sunsite.unc.edu
PING sunsite.unc.edu (152.2.254.81): 56 data bytes
64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms
64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms
64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms
64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms
64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms
-- sunsite.unc.edu ping statistics --
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 169.8/176.3/190.1 ms
7. Untuk mematikan koneksi Anda, cukup jalankan ppp-off.
# ppp-off

Distributed by: http://abebudi.blogspot.com/


Koneksi dengan menggunakan pppsetup (Slackware)
Skrip ppp setup merupakan skrip yang dibuat oleh R OBERT S. LIESENFELD dan disertakan hampir
di setiap distribusi Slackware. Untuk memanggilnya cukup ketikkan pppsetup dengan account root.
$ su #pindah ke account root
password:
# pppsetup
Segera akan muncul layar pppsetup Versi 1.98, informasi pembuatnya dan kegunaannya. Tekan
Enter. Pertama kali adalah permintaan untuk mengetikkan nomor telepon ISP yang akan dihubungi.
Misalnya :
atdt3524001 <- untuk menelpon dengan tone
atdp3524001 <- untuk menelpon denga pulse
Selanjutnya tekan enter, dan masuk ke penentuan modem.
Pilih ttys0 jika modem Anda disambungkan ke port Com1
Pilih ttys1 jika modem Anda disambungkan ke port Com2
Pilih ttys2 jika modem Anda disambungkan ke port Com3
Pilih ttys3 jika modem Anda disambungkan ke port Com4
Setelah menentukan modem, dilanjutkan dengan menentukan baudrate dari modem.
460800 untuk modem dengan kecepatan 460KBps - Modem ISDN
230400 untuk modem dengan kecepatan 230KBps - Modem 56KBps atau
ISDN
115200 untuk modem dengan kecepatan 115KBps - Modem 56KBps atau
33.6 atau 28.8
57600 untuk modem dengan kecepatan 57.6KBps - Modem 56KBps atau
33.6 atau 28.8
38400 untuk modem dengan kecepatan 38.4KBps - Modem 56KBps atau
33.6 atau 28.8
19200 untuk modem dengan kecepatan 19.2KBps - Modem ISDN
57600 untuk modem dengan kecepatan 9.6KBps - Modem ISDN
Pilih sesuai konfigurasi modem Anda. Selanjutnya akan muncul pertanyaan :
Does your service provider provide call back?
Jawab no. Call back adalah fasilitas yang memungkinkan server untuk menelepon kembali
beberapa saat setelah login. Pertanyaan selanjutnya adalah tentang init string dari modem. Tekan
enter langsung dan biarkan pppsetup memasukkan nilai standar.
Konfigurasi selanjutnya adalah nama domain dari ISP. Misal; indosat.net.id,
telkom.net.id dan sebagainya. Isikan nama domain ini, diikuti dengan nomor IP dari DNS
Name Server ISP. Jika Anda tidak yakin, tanyakanlah pada ISP Anda. Lalu akan ditanyakan metode
autentikasi, pilih PAP. Dua konfigurasi terakhir adalah username dan password Anda untuk login
ke ISP. Semua input yang diisikan selama setup ini akan disimpan dalam satu file yang berada di
/etc/ppp/pppsetup.txt (minus username dan password untuk login ke ISP). Berikut contoh
filenya :
===============================================================

Distributed by: http://abebudi.blogspot.com/


PPPSETUP 1.98 on SLACKWARE.
Written by Robert S. Liesenfeld <xunil@bitstream.net> <IRC:Xunil>
Changes for 1.98 by Kent Robotti <robotti@erols.com>
Patched for Slackware by Patrick Volkerding
<volkerdi@slackware.com>
You should get these docs if you don't already have them:
ftp://metalab.unc.edu/pub/Linux/docs/howto/PPP-HOWTO
ftp://metalab.unc.edu/pub/Linux/docs/faqs/PPP-FAQ
Press [Enter] to continue with pppsetup...
===============================================================
These are your PPP configuration files and instructions...
===============================================================
# This is your /etc/ppp/pppscript.
TIMEOUT 60
ABORT ERROR
ABORT BUSY
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
"" "AT&FH0"
OK "atdt3524001"
TIMEOUT 75
CONNECT
# This is your /etc/ppp/options file.
# General configuration options for PPPD:
lock
defaultroute
noipdefault
modem
/dev/ttyS1
57600
crtscts
# Uncomment the line below for more verbose error reporting:
#debug
# If you have a default route already, pppd may require the other

Distributed by: http://abebudi.blogspot.com/


side
# to authenticate itself, which most ISPs will not do. To work
around this,
# uncomment the line below. Note that this may have negative side
effects
# on system security if you allow PPP dialins. See the docs in
/usr/doc/ppp*
# for more information.
#noauth
passive
asyncmap 0
name "fade"
I created the symbolic link: /dev/modem -> /dev/ttyS1
# This is your /etc/ppp/options.demand dialing file.
# General configuration options for PPPD:
lock
defaultroute
noipdefault
modem
/dev/ttyS1
57600
crtscts
# Uncomment the line below for more verbose error reporting:
#debug
# If you have a default route already, pppd may require the other
side
# to authenticate itself, which most ISPs will not do. To work
around this,
# uncomment the line below. Note that this may have negative side
effects
# on system security if you allow PPP dialins. See the docs in
/usr/doc/ppp*
# for more information.
#noauth
passive
asyncmap 0

Distributed by: http://abebudi.blogspot.com/


name "fade"
ipcp-accept-local
ipcp-accept-remote
0.0.0.0:10.10.10.10
demand
connect "/usr/sbin/chat -v -f /etc/ppp/pppscript"
If you have a ethernet connection you should change the
local:remote
IP addresses in the options.demand file, to your actual local and
remote address. Example: 215.346.117.89:312.217.187.96
# This in your /etc/resolv.conf file.
search cbn.net.id
nameserver 202.158.3.7
202.158.3.7 <-IMPORTANT: This should be the IP address of
your service providers nameserver.
# This is your /etc/ppp/pap-secrets file.
Look at /etc/ppp/pap-secrets.
Does everything look correct? if not, run 'pppsetup' again...
===============================================================
To connect to your service provider.
===============================================================
# ppp-go <-Make PPP connection.)
You'll hear and see the modem dialing then once connected,
logging you in Username: or Login: and Password: etc.
You won't see a Username or Login: and Password: prompt
if they're using PAP or CHAP to authenticate you.
If they use PAP or CHAP you'll just see CONNECT - got it.
If the connection was successful you'll see the Local IP and
Remote IP address printed to the screen, you can press [Enter].
If you run ppp-go in X windows you probably won't see a Local
and Remote IP address printed to the screen, you'll just see
the connection process come to a end, wait a few seconds and
press [Enter] at that point.
If you don't connect for whatever reason e.g. Failed No

Distributed by: http://abebudi.blogspot.com/


Dialtone, Busy, No Carrier, Whatever, Exit, just press
[Enter] at that point.
if you have syslogd running, you can see the output messages
from pppd and chat in the /var/log/messages and or debug file.
Sample /var/log/messages file.
spawn pppd[562]: Serial connection established.
spawn pppd[562]: Using interface ppp0
spawn pppd[562]: Connect: ppp0 <-> /dev/modem
spawn pppd[562]: local IP address 215.87.78.18
spawn pppd[562]: remote IP address 205.94.97.35
You don't have a successful PPP connection until you
receive a local & remote IP address like above.
If you have the X window system, you could connect in a Xterm.
spawn # startx
spawn # ppp-go
spawn # netscape mosaic etc.
# ppp-off <-To end the ppp connection.)
# ppp-go -h <-For help.)
There is no support in linux for "WinModems", if you have a
WinModem you will not be able to use it in linux.
There is support for plug n play modems, if you have a pnp
modem you may need "isapnptools" to get it recognized.
===============================================================
#### Look at the /usr/doc/pppsetup/pppsetup-1.98.README. ####
#### A copy of this text can be found in: /etc/ppp/pppsetup.txt
####
===============================================================
Done... You can exit now...
End...

Distributed by: http://abebudi.blogspot.com/


Koneksi dengan Wvdial (SuSE)
Jika saat instalasi menggunakan pilihan SuSE default, seharusnya wvdial telah terinstal. Untuk
memanggilnya lewat dua cara (keduanya dengan user root) :
• Lewat yast -system administration -configure PPP network
• Langsung mengetikkan wvdial.lxdialog di prompt shell.
# wvdial.lxdialog
Segera akan muncul layar WvDial V 1.20 Configuration. Berikut review dari menu yang ada :
1. Change the language of SuSE WvDial
Memilih bahasa konfigurasi WvDial. Bahasa yang tersedia adalah Bahasa Inggris, Jerman
dan Spanyol.
2. Configure the current profile
Seting utama untuk melakukan hubungan ke ISP. Terdiri atas :
a. Phone number : 1234567 (isikan nomor telepon Anda)
b. Account Name : fade (user name di ISP)
c. Password : linuxispower (password untuk menghubungi ISP)
d. Automatic DNS (Pilih ini jika ISP Anda mendukung DNS
otomatis.
Jika tidak, Anda bisa isi langsung /etc/resolv.conf lewat
YaST
atau manual)
e. Dial method (Metode menelepon, menggunakan tone dial atau
pulse dial)
f. PAP/CHAP authentification (Metode otentikasi. Pilihan
lainnya adalah
Compuserve, Germany T-online dan Non Standard Login untuk
ISP
yang tidak mendukung model PAP/CHAP).
3. Autodetectmodem
WvDial akan mencoba deteksi semua port serial untuk menemukan modem.
4. Configure DNS with YaST
Jika pada pilihan sebelumnya Anda tidak mengaktifkan DNS (dalam kasus ISP tidak
mendukung DNS secara otomatis), maka Anda dapat mengkonfigurasikan di sini. Intinya
adalah menuliskan name server pada file /etc/resolv.conf
5. Run WvDial

Distributed by: http://abebudi.blogspot.com/


6. Menghubungi internet untuk mencoba konfigurasi yang baru saja dibuat.
Sebagai tambahan, SuSE WvDial menyertakan beberapa dokumentasi yang dapat dibaca langsung
lewat menunya :
1. Show the README.SuSE for WvDial
Pernyataan dan beberapa petunjuk ringkas dari SuSE tentang penggunaan WvDial for SuSE.
2. Show the trouble shooting file
Beberapa contoh kemungkinan pesan kesalahan / error message
3. Show the original WvDial README
README asli yang disertakan dalam file sumber WvDial.
4. Load an alternatif profile
Memanfaatkan wvdial.conf yang sudah diseting oleh pihak lain

Distributed by: http://abebudi.blogspot.com/


Koneksi dengan skrip if-up (RedHat)
Skrip PPP di RedHat dapat dibuat secara otomatis oleh LinuxConf. Berikut cara
mengkonfigurasikannya :
1. Aktifkan LinuxConf
# linuxconf
2. Masuk ke bagian Config - Networking - Routing and Gateways -
PPP/SLIP/PLIP
3. Pilih Add - PPP, dan masukkan konfigurasi Anda :
• phone number : 1234567 (isi nomor ISP yang akan
dihubungi)
• modem port : /dev/ttyS1 (Port Com2 pada DOS, port yang
akan dipergunakan oleh modem)
• Aktifkan Use PAP Authentication
• Password : linuxispower (isikan password koneksi ke ISP)
Untuk konfigurasi lebih detail, tekan customize (bila perlu) :
• Hardware:
Non-aktifkan kontrol line di sini jika Anda mempunyai dua komputer dengan
sambungan langsung.
• Escape control characters:
Biasanya dipergunakan untuk negosiasi secara otomatis dengan server. Biarkan
kosong.
• Abort connection on well-known errors:
Pemutusan hubungan jika muncul pesan kesalahan/terjadi kesalahan umum.
• Allow any user to (de)activate the interface:
Mengganti ijin akses file dari skrip if-up dan if-down sehingga dapat dijalankan
oleh user (tidak harus root).
• Line speed:
Dengan asumsi16550 UARTS, untuk modem berkecepatan 14.4 kbps harus diset
57600 dan modem berkecepatan 28.8kbps atau lebih harus diset ke 115200.
• Modem port:
Port untuk modem. Biasanya /dev/modem, atau pada distribusi Linux yang lama
diset ke /dev/cua1 or /dev/cua2. Pada distribusi baru, diset ke /dev/ttyS0
or /dev/ttyS1.
• PPP options:
Menambahkan parameter ekstra untuk pppd. Untuk keterangan lebih lanjut bisa baca
manual pppd. Sebagai gambaran bagaimana skrip ini dijalankan dan memanggil
pppd, dapat Anda baca pada bagian koneksi ke internet secara manual.

Distributed by: http://abebudi.blogspot.com/


• Communication:
• Modem String: Biarkan kosong.
• Modem dial command: ATDT untuk model tone, ATDP untuk model pulse.
• Phone Number: Nomor ISP yang akan dihubungi
• Debug Connection: Biarkan kosong
• Chat:
Perintah yang dijalankan lewat skrip chat. Biasanya berisi username dan password
atau keterangan konfigurasi.
• Networking:
• activate interface at boot time:
Dijalankan saat boot. Aktifkan ini jika Anda memiliki sambungan yang
permanen.
• set default route:
Semua paket dikirimkan lewat ppp. Jika Anda sebelumnya sudah menentukan
gateway secara default, maka pilihan ini tidak akan berfungsi.
• Restart link when connection fails:
Skrip akan melakukan koneksi ulang (redial) jika hubungan terputus.
• Time out value in seconds:
Tenggang waktu PPP akan memutuskan sambungan jika nomor yang
dikontak tidak memberikan respons.
• Maximum packet size:
Ukuran maksimum paket yang dikirim. Semakin besar nilainya, akan semakin
cepat koneksinya. Tapi pada sambungan yang berisik (sudah mengalami
induksi, justru akan memperlambat akses).
• Infrequently used options:
Alamat IP lokal dan remote yang diberikan secara otomatis oleh ISP.
• PAP:
Password dan username yang diberikan oleh ISP
4. Untuk mengatur user yang bisa menjalankan dialing, diatur lewat LinuxConf di bagian
Config - User Account- Special Accounts
5. Untuk menjalankan koneksi, jalankan skrip ifup diikuti konfigurasi PPP yang sudah
ditentukan sebelumnya. Dan untuk memutuskan, jalankan skrip ifdown. Semua
konfigurasi ini disimpan di /etc/ppp. Untuk menjalankan dengan user selain root,
pastikan memakai user yang telah diseting lewat LinuxConf - User Accounts -
Special Accounts.
$ ifup ppp0
$ ifdown ppp0

Distributed by: http://abebudi.blogspot.com/


IP Masquerade
IP Masquerade adalah salah satu fasilitas di Linux yang memungkinkan komputer yang tidak
memiliki nomor IP resmi dapat tersambung ke internet melewati komputer Linux. IP Masquerade
dibutuhkan jika jaringan Anda mempunyai nomor IP resmi yang lebih sedikit daripada jumlah
komputer yang ada. Selain menjembatani kekurangan nomor IP, IP Masquerading dengan
digabungkan ipchains atau ipfwadm juga dapat menjadi filter paket-paket yang keluar masuk. Dapat
diibaratkan, mesin Linux berfungsi sebagai gateway.
Cara kerja IP Masquerade dapat digambarkan sebagai berikut :
1. Mesin klien diseting dengan menempatkan mesin Linux sebagai gatewaynya.
2. Jika ada paket dari klien ke mesin Linux, IP Masquerade akan membuat nomor port baru,
header IP baru berdasarkan IP mesin Linux, dan menyimpan paket aslinya. Paket tersebut
kemudian diteruskan ke internet lewat koneksi PPP atau SLIP.
3. Jika ada paket baru dari Internet, IP Masquerade akan mencocokkan dengan nomor port.
Jika sesuai dengan nomor port yang telah dibuat sebelumnya, maka paket tersebut
dibungkus kembali dengan header yang telah disimpan sebelumnya, dan diteruskan kepada
klien.
4. Baik klien maupun host di Internet yang mengirimkan paket tidak pernah merasakan
perbedaannya.
Untuk menjalankan IP Masquerade pada mesin Linux dengan Kernel 2.2.x, Anda membutuhkan :
1. Kernel 2.2.x atau berikutnya
2. Modul kernel yang dapat dijalankan, minimal versi 2.1.121 atau berikutnya
3. Jaringan dengan menggunakan TCP/IP yang telah berjalan dengan baik.
4. Koneksi ke internet untuk mesin Linux
5. IP Chains versi 1.3.8 atau berikutnya
Sedangkan pada Kernel versi 2.0.x Anda membutuhkan :
1. Kernel 2.0.x atau berikutnya
2. Modul kernel yang dapat dijalankan, minimal versi 2.0.0 atau berikutnya
3. Jaringan dengan menggunakan TCP/IP yang telah berjalan dengan baik.
4. Koneksi ke internet untuk mesin Linux
5. Ipfwadm versi 2.3 atau berikutnya
Sebelum melakukan seting IP Masquerade, pastikan bahwa mesin Linux Anda tidak berisi data-data
penting. Mesin Linux ini akan jadikan gateway, yang merupakan mesin terdepan yang terkena
sasaran jika ada penyusupan atau serangan ke dalam jaringan Anda (Baca Bab VII tentang
Keamanan Linux). Jika Anda berencanan menjadikan Linux sebagai file server, mail server, web
server atau aplikasi server yang penting lainnya, dianjurkan untuk menginstal IP Masquerade pada
mesin Linux lainnya. Anda dapat memanfaatkan mesin-mesin 486 lama yang mungkin sekarang
tersimpan di gudang.

Distributed by: http://abebudi.blogspot.com/


Subsections
• Kompilasi Kernel
• Menjalankan modul
• Konfigurasi Klien
• Windows 9x
• Windows for Workgroup 3.11
• Windows NT
• Sistem UNIX
• DOS dengan paket NCSA Telnet
• MacOS yang menjalankan MacTCP
• MacOS yang menjalankan Open Transport
• Novell network dengan DNS
• OS/2 Warp
• Konfigurasi Sistem Lain

• Administrasi forwarding

Distributed by: http://abebudi.blogspot.com/


Kompilasi Kernel
Untuk seting IP Masquerade, langkah standar pertama yang harus dilakukan adalah kompilasi ulang
kernel Anda untuk mendukung IP Masquerade. Pada binary Slackware SuSE dan RedHat yang
dipergunakan di buku ini, kompilasi kernel tidak diperlukan karena sudah otomatis mendukung IP
Masquerade.
Pilihan yang perlu dikompilasi, dengan menjawab YES pada pilihan berikut :
CONFIG_EXPERIMENTAL
CONFIG_MODULES
CONFIG_NET
CONFIG_FIREWALL
CONFIG_INET
CONFIG_IP_FORWARD
CONFIG_IP_FIREWALL
CONFIG_IP_MASQUERADE
CONFIG_IP_MASQUERADE_IPPORTFW
CONFIG_IP_MASQUERADE_IPAUTOFW
CONFIG_IP_MASQUERADE_ICMP
CONFIG_IP_ALWAYS_DEFRAG
CONFIG_DUMMY
CONFIG_IP_MASQUERADE_MFW
Setelah itu ikuti dengan kompilasi modul.
# make modules
# make modules_install
Catatan :

Di semua distribusi yang dibahas di buku ini, binary kernelnya sudah mendukung IP
Masquerade tanpa harus kompilasi ulang. Pedoman tentang kompilasi ini berguna saat
akan memperbarui kernel yang dimiliki. Kernel terbaru dapat diperoleh di
http://www.kernel.org.

Distributed by: http://abebudi.blogspot.com/


Menjalankan modul
Selesai kompilasi ulang kernel Anda, maka jalankan modul pada saat booting. Caranya, masukkan
perintah-perintah berikut ke dalam file rc.local atau skrip lainnya yang dieksekusi saat booting.
Perintah ini bergungsi untuk menjalankan modul yang tersimpan di /var/lib/2.2.x/ipv4
atau /var/lib/2.0.x/ipv4.
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
(dan modul lain yang tersedia)
Setelah proses ini selesai, jalankan booting pada mesin Linux Anda, dan IP Masquerading siap
untuk dimanfaatkan.

Konfigurasi Klien
Agar klien dapat memanfaatkan Linux sebagai gateway ke internet, ada beberapa hal yang perlu
dikonfigurasikan. Berdasarkan Dokumen Linux IP Masquerade Mini HOWTO, berikut cara
mengkonfigurasikan beberapa klien dari beberapa sistem operasi. Cara ini berasumsi bahwa mesin
Linux Anda mempunyai nomor IP 192.168.1.1, Subnet 255.255.255.0.

Subsections
• Windows 9x
• Windows for Workgroup 3.11
• Windows NT
• Sistem UNIX
• DOS dengan paket NCSA Telnet
• MacOS yang menjalankan MacTCP
• MacOS yang menjalankan Open Transport
• Novell network dengan DNS
• OS/2 Warp
• Konfigurasi Sistem Lain

Distributed by: http://abebudi.blogspot.com/


Windows 9x

1. Instal terlebih dahulu kartu jaringan di mesin Windows 95 yang akan disetup
2. Masuk ke 'Control Panel'/'Network'.
3. Tambahkan 'TCP/IP protocol' jika Anda belum menggunakannya.
4. Di 'TCP/IP properties', klik tab 'IP Address', tentukan nomor IP 192.168.1.x, (1 < x < 255),
dan tentukan pula Subnet Mask-nya dengan nomor 255.255.255.0
5. Tambahkan 192.168.1.1 sebagai gateway di bawah tab 'Gateway'.
6. Di bawah tab 'DNS Configuration'/'DNS Server search order' tambahkan DNS yang
dipergunakan Linux (biasanya ditemukan dalam file/etc/resolv.conf). Masukkan
sama persis.
7. Sebagai tambahan, Anda dapat menambahkan domain search suffix yang cocok. Tapi ini
tidak harus, kecuali Anda mempunyai seting khusus, dan Anda yakin dengan isiannya.
8. Klik 'OK' dan boot ulang komputer Anda.
9. Saat menyala kembali, ping komputer Linux Anda untuk menjalankan test terhadap
sambungan dalam jaringan. 'Start/Run', ketik: ping 192.168.1.1 (Ini adalah tes sambungan
LAN, dan belum bisa ping komputer di Internet/luar jaringan).
10.Sebagai tambahan, Anda dapat membuat file HOSTS dalam direktori Windows sehingga
Anda dapat mengunakan nama host atas komputer dalam jaringan. Sebagai contoh, bisa
dilihat file HOSTS.SAM dalam direktori Windows.

Windows for Workgroup 3.11

1. Install terlebih dahulu kartu jaringan pada mesin Windows For Workgroup yang akan
disetup.
2. Install paket TCP/IP 32b jika Anda belum memilikinya.
3. Dalam kotak 'Main'/'Windows Setup'/'Network Setup', klik 'Drivers'.
4. Pilih 'Microsoft TCP/IP-32 3.11b' pada tab 'Network Drivers' dan klik 'Setup'.
5. Bari nomor IP 192.168.1.x (1 < x < 255), dan Subnet Mask 255.255.255.0 serta Gateway
192.168.1.1
6. Jangan pilih 'Automatic DHCP Configuration' dan tambahkan 'WINS Server' jika ada Server
Windows NT (atau mesin Samba yang berperan sebagai Windows NT. Lihat Bab tentang
Samba).
7. Klik 'DNS', isikan informasi yang perlu, dan klik 'OK' jika sudah selesai.
8. Klik 'Advanced', beri tanda pada pilihan 'Enable DNS for Windows Name Resolution' dan
'Enable LMHOSTS lookup' jika Anda menggunakan file host
9. Klik 'OK' dan boot ulang komputer Anda.
10.Saat menyala kembali, ping komputer Linux Anda untuk menjalankan test terhadap
sambungan dalam jaringan. 'Start/Run', ketik: ping 192.168.1.1 (Ini adalah tes sambungan
LAN, dan belum bisa ping komputer di Internet/luar jaringan).
Gambar 5

TCP/IP Properties di windows 9x

Distributed by: http://abebudi.blogspot.com/


Windows NT

1. Install terlebih dahulu kartu jaringan pada mesin Windows NT yang akan disetup.
2. Masuk ke 'Main'/'Control Panel'/'Network'
3. Tambahkan protokol TCP/IP Protocol dan komponen lainnya dari menu 'Add Software' jika
Anda belum menggunakan protokol TCP/IP.
4. Di bawah bagian 'Network Software and Adapter Cards', pilih 'Installed Network Software'
dan klik 'TCP/IP Protocol'.
5. Pada bagian 'TCP/IP Configuration', pilih kartu jaringan yang sesuai, misalnya.[1]Novell
NE2000 Adapter. Kemudian beri nomor IP 192.168.1.x (1 < x < 255), Subnet Mask to
255.255.255.0 dan Default Gateway 192.168.1.1
6. Jangan aktifkan 'Automatic DHCP Configuration' dan berikan isian yang sesuai pada 'WINS
Server' jika Anda tergabung dalam domain Windows NT, dan Anda tahu persis apa yang
Anda kerjakan.
7. Klik 'DNS', isikan informasi yang perlu, dan klik 'OK' jika sudah selesai.
8. Klik 'Advanced', beri tanda pada pilihan 'Enable DNS for Windows Name Resolution' dan
'Enable LMHOSTS lookup' jika Anda menggunakan file host
9. Klik 'OK' dan boot ulang komputer Anda.
10.Saat menyala kembali, ping komputer Linux Anda untuk menjalankan test terhadap
sambungan dalam jaringan. 'Start/Run', ketik: ping 192.168.1.1 (Ini adalah tes sambungan
LAN, dan belum bisa ping komputer di Internet/luar jaringan).

Sistem UNIX

1. Jika kartu jaringan belum terinstal, jalankan kompilasi ulang pada kernel, dan masukkan
driver yang sesuai (atau ikuti petunjuk pada bab sebelumnya, tentang seting kartu jaringan).
2. Install TCP/IP sebagai bagian dari perangkat jaringan jika Anda belum melakukannya.
3. Set IPADDR ke 192.168.1.x (1 < x < 255), NETMASK 255.255.255.0, GATEWAY
192.168.1.1, dan BROADCAST 192.168.1.255. Sebagai contoh pada distribusi RedHat,
Anda dapat mengedit file /etc/sysconfig/network-scripts/ifcfg-eth0 atau
langsung lewat Control Panel. (Pada distribusi Slackware, seting nomor IP bisa dilihat pada
sub bab sebelumnya, tentang kartu jaringan).
4. Tambahkan domain name service (DNS) dan domain search suffix pada file
/etc/resolv.conf. (Jika Anda menggunakan sambungan PPP ke Penyedia Jasa
Internet (PJI), Anda dapat isikan DNS PJI Anda di sini.)
5. Update beberapa bagian pada direktori /etc/networks jika perlu. (Pada distribusi
Slackware, seting sebelumnya sudah mencukupi).
6. Restart beberapa service yang barkaitan, atau langsung boot ulang komputer Anda.
7. Saat menyala kembali, ping komputer Linux Anda untuk menjalankan test terhadap
sambungan dalam jaringan. 'Start/Run', ketik: ping 192.168.1.1 (Ini adalah tes sambungan
LAN, dan belum bisa ping komputer di Internet/luar jaringan).

Distributed by: http://abebudi.blogspot.com/


DOS dengan paket NCSA Telnet

1. Install terlebih dahulu kartu jaringan pada mesin DOS yang akan disetup
2. Jalankan driver yang cocok dengan kartu jaringan Anda. Misalnya kartu NE2000, ketikkan
nwpd 0x60 10 0x300, jika kartu Anda diset pada IRQ 10 dan hardware address di
0x300
3. Bikin direktori baru, kemudian ekstrak paket Telnet NCSA;
pkunzip tel2308b.zip
4. Edit file config.tel dengan editor teks
5. Set myip=192.168.1.x (1 < x < 255), dan netmask=255.255.255.0
6. Dalam contoh ini, Anda harus set hardware=packet, interrupt=10,
ioaddr=60
7. Minimal Anda harus mempunyai satu mesin khusus yang dipergunakan sebagai gateway,
misalnya mesin Linux:
name=default
host=namamesinlinuxAnda
hostip=192.168.1.1
gateway=1
8. Tambahkan spesifikasi lain untuk DNS (Domain Name Service):
name=dns.domain.com ; hostip=123.123.123.123; nameserver=1
Catatan :

Ganti isian DNS sesuai dengan yang dipergunakan Linux gateway Anda

9. Simpan file Config.tel yang baru saja diedit


10.Telnet mesin Linux Anda untuk melakukan tes terhadap sambungan jaringan:
telnet 192.168.1.1

MacOS yang menjalankan MacTCP

1. Instal terlebih dahulu kartu jaringan pada mesin MacOS yang akan disetup
2. Buka MacTCP control panel. Pilih network driver yang cocok (Ethernet, BUKAN
EtherTalk) dan klik tombol 'More...'.
3. Di bawah 'Obtain Address:', klik 'Manually'.
4. Di bawah 'IP Address:', pilih class C dari menu pop up yang muncul. Abaikan sisanya.
5. Isikan informasi yang sesuai di bawah 'Domain Name Server Information:'.
6. Di bawah 'Gateway Address:', ketikkan 192.168.1.1
7. Klik 'OK' untuk menyimpan seting. Pada menu utama Control Panel MacTCP, isikan nomor
IP dari mesin Mac Anda (192.168.1.x, 1 < x < 255) pada kotak 'IP Address:'
8. Tutup control panel MacTCP. Jika muncul kotak dialog untuk merestart komputer, jalankan.
9. Anda bisa melakukan tes sambungan jaringan dengan menjalankan ping. Jika Anda
mempunyai program freeware MacTCP Watcher, klik tombol 'Ping', dan masukkan nomor
IP dari mesin Linux gateway Anda (192.168.1.1) pada kotak dialog yang muncul (Ini adalah
tes sambungan LAN, dan belum bisa ping komputer di Internet/luar jaringan).

Distributed by: http://abebudi.blogspot.com/


10.Bila perlu, Anda dapat menambahkan file Hosts dalam System Folder untuk dapat
menggunakan nama host dalam jarigan. File harus sudah ada dalam System Folder, dan
terdiri atas contoh entri yang dapat dimodifikasi tergantung kebutuhan Anda.

MacOS yang menjalankan Open Transport

1. Install terlebih dahulu kartu jaringan pada mesin MacOS yang akan disetup
2. Buka TCP/IP Control Panel dan pilih 'User Mode ...' dari menu Edit. Pastikan user mode
minimal diset 'Advanced' dan klik tombol 'OK'
3. Dari menu File, pilih 'Configurations...'. Pilih konfigurasi 'Default' Anda dan klik tombol
'Duplicate...'. Tekan 'IP Masq' (atau sesuatu untuk memberitahu Anda bahwa ini adalah
konfigurasi khusus) pada kotak dialog 'Duplicate Configuration' dialog, semacam 'Default
copy'. Lalu klik tombol 'OK', dan tombol 'Make Active'
4. Pilih 'Ethernet' dari menu pop up 'Connect via:'.
5. Pilih bagian yag cocok dari menu pop up 'Configure:'. Jika Anda tidak tahu pilihan yang
harus Anda ambil, mungkin Anda harus memilih ulang konfigurasi 'Default' Anda dan
berhenti. Saya menggunakan 'Manually'.
6. Masukkan nomor IP dari mesin Mac Anda (192.168.1.x, 1 < x < 255) ke dalam kotak 'IP
Address:'.
7. Ketikkan 255.255.255.0 ke dalam kotak 'Subnet mask:'.
8. Ketikkan 192.168.1.1 ke dalam kotak 'Router address:'
9. Masukkan nomor IP domain name server pada kotak 'Name server addr.'
10.Masukan nama domain Internet Anda (Misal 'microsoft.com') dalam kotak 'Starting domain
name' di bawah 'Implicit Search Path:'.
11.Prosedur berikutnya tidak harus Anda jalankan. Jika nilai yang dimasukkan tidak benar, bisa
menimbulkan perilaku aneh pada mesin Anda. Jika Anda tidak yakin, lebih baik tinggalkan
saja.
12.Klik tombol 'Options...' untuk meyakinkan bahwa TCP/IP telah aktif. Bila perlu gunakan
pilihan 'Load only when needed'. Jika Anda sering menjalankan aplikasi TCP/IP tanpa
menyalakan ulang komputer Anda, mungkin Anda akan temukan bahwa pilihan 'Load only
when needed' dibiarkan kosong (unchecked) akan mencegah/mengurangi akibat manajemen
memori dari mesin Anda. Dengan membiarkan pilihan tersebut kosong, protokol TCP/IP
akan selalu dipergunakan dan tersedia jika dibutuhkan. Jika dipilih, maka TCP/IP otomatis
dimuat (loaded) jika dibutuhkan, dan dihapus (un-loaded) kembali jika tidak. Proses
memuat dan menghapus ini dapat menimbulkan fragmentasi pada memori mesin.
13.Anda bisa melakukan tes sambungan jaringan dengan menjalankan ping. Jika Anda
mempunyai program freeware MacTCP Watcher, klik tombol 'Ping', dan masukkan nomor
IP dari mesin Linux gateway Anda (192.168.1.1) pada kotak dialog yang muncul (Ini adalah
tes sambungan LAN, dan belum bisa ping komputer di Internet/luar jaringan).
14.Bila perlu, Anda dapat menambahkan file Hosts dalam System Folder untuk dapat
menggunakan nama host dalam jarigan. File harus sudah ada dalam System Folder, dan
terdiri atas contoh entri yang dapat dimodifikasi tergantung kebutuhan Anda. Jika tidak,
Anda dapat memperoleh kopi file dari sistem yang menjalankan MacTCP, atau membuat
sendiri (dengan mengikuti format file /etc/hosts di Unix, sebagaimana digambarkan
dalam RFC 952). Selesai Anda membuat file tersebut, buka control panel TCP/IP, klik
tombol 'Select Hosts File...' dan buka file Hosts.
15.Klik tombol close atau pilih 'Quit' dari menu File, dan klik tombol 'Save' untuk menyimpan
semua perubahan yang telah dibuat.
16.Semua perubahan akan segera terlihat bedanya, namun lebih baik jika komputer diboot
ulang.

Distributed by: http://abebudi.blogspot.com/


Novell network dengan DNS

1. Install terlebih dahulu kartu jaringan pada mesin Novell yang akan disetup.
2. Download file tcpip16.exe dari
ftp.novell.com/pub/updates/unixconn/lwp5
3. edit c:\nwclient\startnet.bat
SET NWLANGUAGE=ENGLISH
LH LSL.COM
LH KTC2000.COM
LH IPXODI.COM
LH tcpip
LH VLM.EXE
F:
4. edit c:\nwclient\net.cfg
Link Driver KTC2000
Protocol IPX 0 ETHERNET_802.3
Frame ETHERNET_802.3
Frame Ethernet_II
FRAME Ethernet_802.2
NetWare DOS Requester
FIRST NETWORK DRIVE = F
USE DEFAULTS = OFF
VLM = CONN.VLM
VLM = IPXNCP.VLM
VLM = TRAN.VLM
VLM = SECURITY.VLM
VLM = NDS.VLM
VLM = BIND.VLM
VLM = NWP.VLM
VLM = FIO.VLM
VLM = GENERAL.VLM
VLM = REDIR.VLM
VLM = PRINT.VLM
VLM = NETX.VLM
Link Support

Distributed by: http://abebudi.blogspot.com/


Buffers 8 1500
MemPool 4096
Protocol TCPIP
PATH SCRIPT C:\NET\SCRIPT
PATH PROFILE C:\NET\PROFILE
PATH LWP_CFG C:\NET\HSTACC
PATH TCP_CFG C:\NET\TCP
ip_address 192.168.1.xxx #(isi no IP mesin)
ip_router 192.168.1.1
5. buat file c:\bin\resolv.cfg. Isi dengan domain name server Anda. Misal :
SEARCH DNS HOSTS SEQUENTIAL
NAMESERVER 202.158.3.7
NAMESERVER 192.168.1.2
6. Proses ini dapat dijalankan pada Novell Netware 3.1x atau 4.x.

OS/2 Warp

1. Install terlebih dahulu kartu jaringan pada mesin OS/2 Warp yang akan disetup.
2. Install protokol TCP/IP jika Anda belum melakukannya.
3. Masuk ke Program/TCP/IP (LAN) / TCP/IP Settings
4. Pada bagian 'Network' tambahkan nomor IP dan tentukan Netmask (255.255.255).
5. Di bawah 'Routing' tekan 'Add'. Set ke tipe 'default' dan ketikkan nomor IP dari mesin Linux
Gateway Anda pada kolom 'Router Address'(192.168.1.1).
6. Masukkan alamat DNS (Nameserver) yang dipergunakan Linux sebagaimana yang
tercantum dalam file 'Hosts'.
7. Tutup control panel TCP/IP. Jawab 'Yes' jika ada pertanyaan pada saat Anda menutupnya.
8. Reboot komputer Anda.
9. Jalankan ping ke komputer Linux untuk tes konfigurasi jaringan.

Konfigurasi Sistem Lain

Untuk melakukan seting pada sistem lain, dapat menggunakan logika yang sama. Seting TCP/IP
untuk mesin yang bersangkutan, seting DNS sesuai dengan yang tertera di Linux gateway-nya (di
file /etc/resolv.conf) dan menunjuk mesin Linux sebagai gatewaynya.

Distributed by: http://abebudi.blogspot.com/


Administrasi forwarding
Secara default, IP Masquerade akan meneruskan setiap permintaan dari user. Hal ini membuka
kemungkinan, semua user akan bisa memanfaatkannya tanpa batasan yang jelas. Implikasi ini juga
memudahkan pihak-pihak yang tidak dikehendaki untuk memanfaatkan IP Masquerade ini. Untuk
itu ditetapkan perlu ditetapkan kebijakan, host-host yang mana saja yang boleh menjalankan
fasilitas masquerading ini.
Penetapan kebijakan dalam masquerading, mempergunakan program ipchains atau ipfwadm.
Ipchais dipergunakan pada Kernel 2.2.x, sedangkan ipfwadm dipergunakan pada Kernel 2.0.x.
Dalam contoh berikut, diasumsikan nomor IP mesin Linux Anda adalah 192.168.1.1 dan
menggunakan Subnet Mask 255.255.255.0.
ipchains -P forward DENY
ipchains -A forward -s yyy.yyy.yyy.yyy/x -j MASQ
yyy.yyy.yyy.yyy dapat Anda isi nomor IP per mesin, atau dibuat secara umum satu kelas. x
merupakan nomor yang ditentukan berdasarkan kelas subnetnya.

Table: Angka dan Subnet


Netmask x Subnet
255.0.0.0 8 Kelas A
255.255.0.0 16 Kelas B
255.255.255.0 24 Kelas C
255.255.255.255 32 Point to Point

Contoh :
ipchains -P forward DENY
ipchains -A forward -s 192.168.1.0/24 -j MASQ
Rule set ini akan meneruskan setiap permintaan dari seluruh host dengan nomor ip 192.168.1.x dan
subnet mask 255.255.255.0.
ipchains -P forward DENY
ipchains -A forward -s 192.168.1.2/24 -j MASQ
ipchains -A forward -s 192.168.1.3/255.255.255.0 -j MASQ
Rule set di atas hanya memperbolehkan mesin dengan nomor IP 192.168.1.2 dan 192.168.1.3 yang
bisa memanfaatkan IP Masquerading. Angka 24 dan subnet 255.255.255.0 mempunyai nilai yang
sama.
Anda bisa meletakkan semua kebijakan lewat IP Chains ini kedalam skrip yang dijalankan pada saat

Distributed by: http://abebudi.blogspot.com/


memulai komputer (dalam /etc/rc.d atau /etc/init.d) atau meletakkannya di dalam skrip
ip-up (/etc/ppp/ip-up). Sebab semua perintah di atas jika dijalankan langsung lewat shell,
maka akan hilang begitu komputer dinyalakan kembali.
Untuk test penggunaan, sambungkan mesin Linux Anda ke internet. Jika sudah, coba buka lewat
klien beberapa layanan seperti http, smtp, pop3, irc dan sebagainya. Untuk ujicoba pertama kali,
usahakan memakai nomor IP terlebih dahulu. Misal http://202.154.1.3 dan seterusnya. Jika berhasil,
maka Anda bisa mengganti permintaan dengan Domain Name System (DNS). Misalnya memanggil
langsung http://www.yahoo.com.

Ringkasan
Dalam bab ini telah Anda pelajari, beberapa konfigurasi dasar untuk memanfaatkan Linux ke dalam
jaringan. Meskipun pengenalan hardware lain, seperti kartu suara, kartu VGA tidak dibahas disini,
namun Anda bisa menggunakan prinsip yang sama dalam pengenalannya. Kenali hardware yang
dimiliki (seperti nomor seri dan jenisnya), cari modul yang tepat, dan jalankan modul tersebut untuk
mengenali hardware.
Dapat Anda rasakan sendiri bahwa Linux memotivasi penggunanya untuk mengenali hampir setiap
hardware yang dimiliki. Hal ini akan memudahkan untuk mengetahui bagaimana sistem bekerja,
dan bagaimana mengadministrasi Linux secara maksimal.
Beberapa contoh konfigurasi di atas dapat diimplementasikan langsung untuk memanfaatkan
koneksi yang terbatas ke internet secara maksimal. Skenario ini biasanya dipergunakan oleh
penyedia jasa koneksi ke Internet (warnet). Hanya dengan menjalankan IP masquerade, dan
mengaktifkan IP chains, semua user dapat terhubung ke Internet

Distributed by: http://abebudi.blogspot.com/


Konektivitas dengan Windows
Jika dalam satu jaringan ada berbagai macam sistem dengan berbagai macam platform, maka
dibutuhkan sebuah program yang menjembatani sehingga semua mesin dapat saling berhubungan
satu sama lain. Salah satu program yang menjembatani Linux (dan UNIX pada umumnya) dengan
mesin Windows yang cukup terkenal adalah Samba.
Samba merupakan aplikasi Unix yang memanfaatkan protokol SMB (Server Message Block).
Sebagian sistem operasi memanfaatkan SMB dalam komunikasi client-server-nya, termasuk
Windows dan OS/2. Samba memungkinkan mesin Linux berkomunikasi dengan mesin
Windows/Dos atau OS/2. Dengan Samba Anda dapat menggunakannya untuk :
• Menghubungkan setiap mesin Unix (termasuk Linux) dengan mesin Dos/Windows
• Menempatkan mesin Unix (Linux) sebagai Primary Domain Controller sebagaimana yang
dilakukan NT.
Oleh sebab itu lewat Samba, Anda dapat membuat server dengan klien produk Microsoft Windows,
dengan layanan :
1. Berbagi (share) file dan printer.
2. Membantu pengguna browsing di network neighborhood
3. Memberikan otentikasi kepada tiap klien yang login ke dalam domain
4. Memberikan atau membantu dengan WINS name server resolution.
Samba dibuat dan disusun pertama kali olehANDREW TRIDGELL. Pada bulan Desember 1991 Ia
menerima program eXcursion dari Digital. Sayangnya program tersebut hanya bekerja dengan
'pathworks' ke mesin VMS atau ultrix, yang memaksanya untuk mempelajari bagaimana file
dikomunikasikan. Setelah sekian lama mencoba, akhirnya Ia berhasil memasukkan salah satu
direktori dari mesin Digital ke dalam 'pathworks' DOS di rumahnya. Setahun kemudian Andrew
telah memasuki komunitas Linux (atas ajakan DAN SHEARER), dan pada Desember 1993 Ia
mengeluarkan "NetBIOS for Unix". Dengan menggunakan mailing list, program ini dikembangkan
bersama-sama hingga menjadi Samba Team sebagaimana sekarang.
Saat ini Samba dikembangkan sebagai bagian dari Open Source Software (Software yang
memberikan kode sumbernya) dan didistribusikan dibawah lisensi GNU. Proyek pengembangannya
masih tetap berjalan hingga sekarang dikoordinasikan oleh ANDREW TRIDGELL dari rumahnya di
Canberra dengan tim tersebar di seluruh dunia.
Catatan :

Protokol adalah bahasa standar yang dipergunakan komputer untuk dapat


berkomunikasi satu sama lain.

Aplikasi Samba biasanya dijalankan sebagai daemon. Dua aplikasi utamanya adalah :
1. smbd
Daemon yang memberikan layanan berbagi file dan printer dalam sebuah jaringan yang
menggunakan protokol SMB. Smbd juga memberikan otentikasi dan otorisasi bagi kliennya.
2. nmbd
Daemon yang memanfaatkan Windows Internet Name Service (WINS), dan membantu klien
untuk browsing di network neighborhood.

Distributed by: http://abebudi.blogspot.com/


Subsections
• Implementasi Microsoft dalam Jaringan
• Domain Controller
• WINS (Windows Internet Name Service)
• Master Browser
• Otentikasi

• Samba
• Fasilitas Samba
• Distribusi Samba

• Instalasi Samba
• Instalasi Samba dari kode sumber
• Instal SWAT
• Binary Samba pada Distribusi Linux

• Administrasi Samba
• Konfigurasi Samba
• Konfigurasi Samba lewat LinuxConf (RedHat)

• Level Keamanan (Security Level)


• Menggabungkan Samba dengan NT
• Samba sebagai Domain Logon
• Berbagi printer dan file
• Ringkasan

Distributed by: http://abebudi.blogspot.com/


Implementasi Microsoft dalam Jaringan
Sebelum mulai instalasi Samba, atau sebelum melakukan konfigurasi jika Samba Anda sudah
terinstall, berikut akan dipelajari secara ringkas, bagaimana Microsoft menerapkan komunikasi
dalam jaringannya.

Subsections
• Domain Controller
• WINS (Windows Internet Name Service)
• Master Browser
• Otentikasi

Domain Controller
Seperti yang telah disinggung di awal bab ini, Microsoft menerapkan protokol SMB. Mereka
memberinya nama CIFS (Common Internet File System). Dalam membatasi lingkungannya,
dipergunakan konsep Windows domain, yakni kumpulan workstation yang menjalankan protokol
SMB. Dalam satu domain ada sebuah Domain Controller. Tiap Domain Controller menggunakan
Security Account Manager (SAM) untuk menyimpan daftar kombinasi username dan password.
Dalam sebuah domain, domain controller bisa lebih dari satu. Primary Domain Controller (PDC)
adalah domain controller yang memberikan layanan sehari hari. Sebagai cadangannya, dipasang
sebuah Back up Domain Controller (BDC). Secara periodik, PDC dan BDC akan melakukan
sinkronisasi Security Account Manager (SAM). Tiap saat PDC mengalami crash, BDC sudah siap
mengambil alih. Jaringan akan tetap berjalan seperti biasa.

WINS (Windows Internet Name Service)


Saat sebuah komputer dalam domain dinyalakan, maka mesin tersebut mengirimkan pesan secara
broadcast (kepada seluruh komputer yang ada dalam jaringan) dan mendeklarasikan dirinya dengan
nama dari NetBIOS. Proses ini dinamakan name registration. Jika tidak ada bentrok dengan mesin
yang lain, maka nama tersebut dipergunakan. Nama inilah yang muncul pada saat user browsing di
network neighborhood.
Pada saat mendeklarasikan namanya dalam sebuah jaringan, mesin juga melayani name resolution.
Name resolution adalah sebuah proses yang menerjemahkan nama NetBIOS ke dalam nomor IP
tertentu. Baik name resolution maupun name registration bekerja berdasarkan standarisasi yang
dibuat oleh IETF (Internet Engineering Task Force) tahun 1987. Semuanya dituangkan dalam RFC
(Request For Comments) 1001 dan 1002. Standarisasi ini dikenal dengan NetBIOS over TCP/IP,
atau NBT. Pada prinsipnya, NBT memberikan tiga layanan :
• Name Service ; untuk name registration dan name resolution
• Datagram
• Session

Distributed by: http://abebudi.blogspot.com/


Datagram dan session merupakan protokol komunikasi kedua yang dipergunakan untuk transmisi
data antar mesin dalam sebuah jaringan.
Name Resolution, dan Name Registration, selain dijalankan secara broadcast, juga dapat
dideklarasikan secara terpusat. Dalam hal ini dibuat sebuah NetBIOS Name Server (NBNS). Saat
mesin dinyalakan, langsung mendaftarkan dirinya ke NBNS nama dan nomor IP. Ketika komputer
lain mencari nama mesin dari sebuah IP, maka permintaan tidak dilakukan secara broadcast
melainkan langsung ke NBNS. NBNS akan mencocokkan dengan nama mesin yang telah terdaftar,
kemudian memberikan jawaban. Proses ini tentu lebih mengurangi lalu lintas data dalam jaringan,
dibandingkan dengan proses broadcast.
Gambar 5 Pendaftaran nama dengan Broadcast
Gambar 6 Pendaftaran nama dengan NetBIOS Name Server (NBNS)
WINS adalah penerapan NBNS oleh Microsoft. Jika dalam domain ada server WINS, maka
komputer tersebut tidak mengirimkan atau menerima sinyal secara broadcast, melainkan
mendaftarkan nama NetBIOS-nya ke server WINS. Server ini akan menyimpan nama semua mesin
yang telah mendaftarkan mesinnya, dan membantu user saat browsing di network neighborhood.

Master Browser
Jika Anda memakai Windows 95/98, dan membuka network neighborhood, maka di situ terlihat
daftar nama komputer, dan beberapa direktori yang dishare. Daftar ini dibuat dan dipelihara oleh
master browser. Sebagaimana yang telah dipelajari sebelumnya, saat komputer dinyalakan, maka
akan mengirimkan pesan secara broadcast ke dalam jaringan. Saat itulah, akan terjadi pemilihan
komputer mana yang akan menjadi master bowser. Pemilihan ini disebut browsing election.
Kemudian, master browser akan memberikan daftar nama mesin dan resource share-nya kepada
setiap komputer yang meminta.
Master browser dalam satu subnet disebut local master browser. Pendukungnya disebut backup
local master. Mengingat browsing election dapat terjadi setiap saat, maka backup local master
dapat beralih fungsi sebagai local master browser kapan saja. Ini bisa terjadi jika misalnya mesin
local master browser sebelumnya diboot atau mati.
Selain memberikan daftar nama komputer yang bisa diakses (browse list) dalam satu subnet, master
browser juga melayani browse list pada lingkup domain, bahkan antar domain. Ini disebut Domain
Master Browser. Pada saat-saat tertentu, Domain Master Browser dan Local Master Browser
melakukan sinkronisasi daftarnya. Hal ini memungkinkan user memperoleh daftar nama komputer
dan share resources terbaru.

Otentikasi
Model otentikasi di sistem Windows berbeda dengan sistem Unix. Di Windows (sejak Windows 95
SMB Update dan Windows NT 4.0 setelah Service Pack 3), password dikirimkan dalam bentuk
enkripsi, sedangkan Unix mengirimkannya dalam bentuk teks biasa. Selain itu, Windows
menyimpan passwordnya ke dalam sebuah file, sedangkan Unix tidak.
Untuk lebih jelasnya, bagaimana otentikasi di Windows berjalan, digambarkan dalam langkah
berikut :

Distributed by: http://abebudi.blogspot.com/


1. Komputer mencoba menegosiasikan sebuah session lewat satu protokol kepada server
2. Server memberikan respon sebagai tanda bahwa server tersebut mendukung sistem
password terenkripsi.
3. Server mengirimkan 8 byte string yang dibuat secara acak.
4. Komputer menggunakan string tersebut sebagai kunci untuk mengenkripsikan password
yang sudah terenkripsi dengan algoritma yang telah didefinisikan sebelumnya pada saat
negosiasi protokol. Hasilnya dikirim ke server.
5. Server juga menggunakan string tersebut untuk menenkripsi password yang disimpan dalam
database. Jika hasilnya sama dengan yang dikirimkan user, maka user tersebut memperoleh
otentikasi, dan sebaliknya.

Samba

Subsections
• Fasilitas Samba
• Distribusi Samba

Fasilitas Samba
Samba dapat dimanfaatkan untuk menjalankan semua fasilitas dari Microsoft sebagaimana yang
telah disampaikan di atas. Samba dapat berfungsi sebagai Master Browser, baik Local Master
Browser maupun Domain Master Browser. Samba juga dapat berfungsi sebagai Primary Domain
Controller. WINS Server juga sudah didukung oleh Samba. Sedangkan untuk otentikasi, Samba
mendukung teks biasa (plain text) password maupun password terenkripsi (encrypted passwod)

Table: Kemampuan Samba


Tugas Dukungan (ya/tidak)
File Server Ya
Printer Server Ya
Primary Domain
Ya (Versi 2.1 keatas)
Controller
Otentikasi Windows 95/98 Ya
Local Master Browser Ya
Backup Local Master Tidak
Domain Master Browser Ya
Primary WINS Server Ya
Secondary WINS Server Tidak

Distributed by: http://abebudi.blogspot.com/


Distribusi Samba
Samba yang disertakan dalam tiap distribusi Linux, biasanya berbentuk binary, merupakan
kumpulan aplikasi yang bergantung satu sama lain. Suite Samba tersebut adalah :
1. smbd
Daemon yang memberikan layanan berbagi file dan printer dalam sebuah jaringan yang
menggunakan protokol SMB. Smbd bertanggung jawab terhadap seluruh aktifitas antara
Samba Server dan klien dalam jaringan. Hal ini termasuk memberikan otentikasi dan
otorisasi bagi kliennya.
2. nmbd
Daemon yang memanfaatkan Windows Internet Name Service (WINS), dan membantu klien
untuk browsing di network neighborhood. Daemon ini melayani permintaan name server
dan memberikan respon yang sesuai.
3. smbclient
Klien dengan tampilan mirip ftp untuk mengakses SMB resource share (mengakses share
files)
4. smbtar
Program yang memback up data yang dishare. Mirip tar di Linux.
5. nmblookup
Program yang membantu mencari nama (names lookup) dengan memanfaatkan NetBIOS
over TCP/IP. Nmblookup dapat digunakan untuk meresolve dari nama komputer ke nomor
IP dan sebaliknya.
6. smbpasswd
Program yang memungkinkan administrator mengatur password yang terenkripsi yang
dipergunakan oleh Samba Server.
7. smbstatus
Program yang memonitor status terakhir dari share resources yang diberikan oleh Server
Samba.
8. testparm
Program kecil untuk melakukan proses debug (memeriksa parameter) terhadap file
konfigurasi Samba (smb.conf)
9. swat
Samba Web Administration Tool, program bantu yang memberikan interface model web
untuk mengadministrasi Samba. SWAT mempermudah edit smb.conf (file konfigurasi
Samba) mengatur resource share, melihat status Samba terakhir, dengan dukungan file help
yang sangat bermanfaat.

Distributed by: http://abebudi.blogspot.com/


Instalasi Samba

Subsections
• Instalasi Samba dari kode sumber
• Instal SWAT
• Binary Samba pada Distribusi Linux

Instalasi Samba dari kode sumber


Untuk Slackware, Binary Samba Versi 2.6 secara default sudah diinstal pada saat instalasi awal.
Untuk mengecek apakah Slackware Anda sudah ada Samba atau belum, bisa dilakukan dengan cara
:
$ whereis smbd
$ whereis nmbd
Atau cek file rc yang menginisialisasi Samba (rc.samba) pada saat booting :
$ cd /etc/rc.d
etc/rc.d $ ls -l
Jika tidak ditemukan, Anda dapat menginstall lewat CD dengan pkgtool. Beberapa catatan
tentang Binary Samba yang disertakan dalam distribusi Slackware, akan dibahas pada akhir bagian
intstalasi. Untuk instalasi secara umum, dapat dilakukan dengan cara sebagai berikut :
1. Download Distribusi Samba
Daftar server yang menyediakan distribusi Samba dapat dilihat di ftp.samba.org atau
http://www.samba.org. Mirror server tersedia hampir seluruh dunia dan Anda dapat
memilih yang terdekat. File yang harus didownload adalah :
samba-versi-terakhir.tar.gz
Saat buku ini ditulis versi terakhir dari Samba adalah 2.0.7 (samba-2.7.0.tar.gz).
2. Ekstraksi file
File yang Anda download masih berupa tar ball yang dikompress. Untuk mengekstraknya,
Anda dapat jalankan langkah :
$ mkdir /usr/local/src
$ cp samba*.tar.gz /usr/local/src
$ gzip samba*.tar.gz | tar xvf -

Distributed by: http://abebudi.blogspot.com/


Catatan :

Pengguna Linux pada umumnya menggunakan direktori /usr/local untuk


menyimpan semua pogram baru. Direktori ini biasanya mempunyai struktur
direktori root seperti /usr/local/bin, /usr/local/etc,
/usr/local/docs. Dalam lingkungan jaringan, direktori ini biasanya diset
untuk dapat ditulis oleh beberapa user dan dieksekusi oleh semua user.

3. Baca Dokumentasi
Sebelum memulai instalasi, biasakan untuk membaca dokumentasi terlebih dahulu. Setelah
Anda ekstrak Samba, dokumentasi dapat dilihat di direktori utama Samba. Beberapa file
yang perlu dibaca :
README
WHATSNEW.txt
Docs/textdocs/UNIX_INSTALL.txt
4. Konfigurasi Samba
Sebagaimana proses standar dalam instalasi aplikasi berbentuk source di Linux, mulai
dengan configure. Jalankan semua proses instalasi sebagai root, atau Anda akan terima
pesan :
Configure: warning: running as non-root will disable some test
Menjalankan proses instalasi dengan user root akan lebih memastikan aplikasi Samba
terinstal dengan baik.
/usr/local/src$ su -
password :
/usr/local/src # cd samba-2.0.7 (direktori utama hasil
ekstraksi)
/usr/local/src/samba-2.0.7# ./configure
/usr/local/src/samba-2.0.7# make
/usr/local/src/samba-2.0.7# make install
Selesai proses instalasi, Samba akan menyimpan filenya dalam beberapa direktori di dalam
direktori utama /usr/local/samba

Table: Direktori Samba


Direktori Keterangan
/usr/local/samba Direktori utama
/usr/local/samba/bin File Binari yang dapat dieksekusi
/usr/local/samba/lib File konfigurasi Samba
/usr/local/samba/man Dokumentasi

Distributed by: http://abebudi.blogspot.com/


/usr/local/samba/privat Password Samba yang terenkripsi
e
/usr/local/samba/SWA File SWAT
T
File sementara yang selalu berubah saat Samba berjalan.
/usr/local/samba/var
Misal file log, file shared memory dsb.

Instal SWAT
Selesai kompilasi dan instal program, Aktifkan SWAT untuk membantu dalam administrasi Samba.
Fitur SWAT yang dapat dimanfaatkan dalam administrasi mencakup :
• Mengedit konfigurasi Samba
• Dokumentasi lengkap dengan hyperlink
• Melihat status file yang dishare
• Mematikan, start dan restart Samba Daemon, smbd dan nmbd
• Mengatur resource yang akan dishare
juga memungkinkan Anda melakukan administrasi secara remote.
Catatan :

ing untuk diingat jika Anda mengakses SWAT secara remote, password untuk
mengadministrasi Samba dikirim dengan format teks biasa. Jika host yang dilewati
memasang sniffer, maka hal ini akan membahayakan jaringan Anda. Gunakan
administrasi SWAT secara remote seminimal mungkin.

SWAT dijalankan secara daemon lewat /etc/inetd dan/etc/servies. Untuk


mengkonfigurasikan dalam kedua file tersebut :
1. Tambahkan baris ini ke dalam file /etc/services
SWAT 901/tcp
2. Tambahkan baris berikut kedalam file /etc/inetd.conf. Terlebih dahulu cek manual untuk
inetd.conf ini guna melihat format yang benar untuk memastikan baris berikut dapat
berjalan
SWAT stream tcp nowait.400 /usr/local/samba/SWAT SWAT

Binary Samba pada Distribusi Linux


Precompiled binary Samba yang ada pada distribusi Slackware mempunyai direktori yang berbeda
dari sumber yang didownload atau Samba yang masih berbentuk kode sumber. Perbedaan ini
terletak pada direktori di mana Samba disimpan. Berikut perbandingannya :
Tabel l 7

Perbandingan letak Binary Samba hasil kompilasi sendiri dengan paket default yang

Distributed by: http://abebudi.blogspot.com/


disertakan pada masing-masing distribusi.

Dengan demikian, jika Anda menginstal Samba langsung pada saat instalasi awal atau instal di
kemudian hari dengan menggunakan binary dari masing-masing distribusi, Anda harus
menyesuaikan diri dengan direktori tersebut.

Administrasi Samba

Subsections
• Konfigurasi Samba
• Konfigurasi Samba lewat LinuxConf (RedHat)

Konfigurasi Samba
Samba memiliki banyak sekali parameter yang yang harus disetup untuk dapat menjalankannya
secara maksimal. File konfigurasi tersebut adalahsmb.conf. Biasanya terletak di :
/etc atau

/usr/local/samba/lib

Jika Anda belum melakukan sesuatu pada file smb.conf, maka file tersebut biasanya bernama
smb.conf-default. Anda harus tetap menyimpan file ini, sehingga jika nantinya ada
kekeliruan dalam konfigurasi, Anda masih punya backup yang menyimpan semua parameter
standar.
# cd /etc

# pico smb.conf-default

Tekan Ctrl-O dan ketik smb.conf untuk menyimpan file default kedalam file konfigurasi.
Tekan Ctrl-X untuk keluar dari pico. Untuk mensetup Samba, Anda dapat mengedit file smb.conf
lewat dua cara :
1. Dengan akses root, edit langsung dengan teks editor, atau;
2. Lewat SWAT. Anda cukup memanggilnya dengan browser ke http://localhost:901
Catatan :

Administrasi samba secara remote lewat SWAT dilakukan dengan memanggil nomor IP
mesin Samba yang bersangkutan di port 901. Misal http://192.168.11.1:901

Perlu diingat bahwa mengedit file smb.conf lewat SWAT akan menghilangkan komentar komentar
yang ada di dalamnya. Berikut contoh perbandingannya.
File smb.conf secara default :

Distributed by: http://abebudi.blogspot.com/


# This is the main Samba configuration file. You should read the

# smb.conf(5) manual page in order to understand the options listed

# here. Samba has a huge number of configurable options (perhaps too

# many!) most of which are not shown in this example

# Any line which starts with a ; (semi-colon) or a # (hash)

# is a comment and is ignored. In this example we will use a #

# for commentry and a ; for parts of the config file that you

# may wish to enable

# NOTE: Whenever you modify this file you should run the command "testparm"

# to check that you have not many any basic syntactic errors.

#================== Global Settings ========================

[global]

# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2

workgroup = MYGROUP

# server string is the equivalent of the NT Description field

server string = Samba Server

# This option is important for security. It allows you to restrict

# connections to machines which are on your local network. The

# following example restricts access to two C class networks and

# the "loopback" interface. For more examples of the syntax see

# the smb.conf man page

; hosts allow = 192.168.1. 192.168.2. 127.

Distributed by: http://abebudi.blogspot.com/


# If you want to automatically load your printer list rather

# than setting them up individually then you'll need this

load printers = yes

# you may wish to override the location of the printcap file

; printcap name = /etc/printcap

# on SystemV system setting printcap name to lpstat should allow

# you to automatically obtain a printer list from the SystemV spool

# system

; printcap name = lpstat

# It should not be necessary to specify the print system type unless

# it is non-standard. Currently supported print systems include:

# bsd, sysv, plp, lprng, aix, hpux, qnx

; printing = bsd

# Uncomment this if you want a guest account, you must add this to /etc/passwd

# otherwise the user "nobody" is used

; guest account = pcguest

# this tells Samba to use a separate log file for each machine

# that connects

log file = /var/log/samba.%m

# Put a capping on the size of the log files (in Kb).

max log size = 50

# Security mode. Most people will want user level security. See

# security_level.txt for details. NOTE: To get the behaviour of

# Samba-1.9.18, you'll need to use "security = share".

security = user

Distributed by: http://abebudi.blogspot.com/


# Use password server option only with security = server

; password server = <NT-Server-Name>

# You may wish to use password encryption. Please read

# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.

# Do not enable this option unless you have read those documents

; encrypt passwords = yes

# Using the following line enables you to customise your configuration

# on a per machine basis. The %m gets replaced with the netbios name

# of the machine that is connecting

; include = /usr/local/samba/lib/smb.conf.%m

# Most people will find that this option gives better performance.

# See speed.txt and the manual pages for details

socket options = TCP_NODELAY

# Configure Samba to use multiple interfaces

# If you have multiple network interfaces then you must list them

# here. See the man page for details.

; interfaces = 192.168.12.2/24 192.168.13.2/24

# Browser Control Options:

# set local master to no if you don't want Samba to become a master

# browser on your network. Otherwise the normal election rules apply

; local master = no

# OS Level determines the precedence of this server in master browser

# elections. The default value should be reasonable

; os level = 33

# Domain Master specifies Samba to be the Domain Master Browser. This

Distributed by: http://abebudi.blogspot.com/


# allows Samba to collate browse lists between subnets. Don't use this

# if you already have a Windows NT domain controller doing this job

; domain master = yes

# Preferred Master causes Samba to force a local browser election on startup

# and gives it a slightly higher chance of winning the election

; preferred master = yes

# Use only if you have an NT server on your network that has been

# configured at install time to be a primary domain controller.

; domain controller = <NT-Domain-Controller-SMBName>

# Enable this if you want Samba to be a domain logon server for

# Windows95 workstations.

; domain logons = yes

# if you enable domain logons then you may want a per-machine or

# per user logon script

# run a specific logon batch file per workstation (machine)

; logon script = %m.bat

# run a specific logon batch file per username

; logon script = %U.bat

# Where to store roving profiles (only for Win95 and WinNT)

# %L substitutes for this servers netbios name, %U is username

# You must uncomment the [Profiles] share below

; logon path =\\%L\Profiles\%U

# Windows Internet Name Serving Support Section:

# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server

; wins support = yes

Distributed by: http://abebudi.blogspot.com/


# WINS Server - Tells the NMBD components of Samba to be a WINS Client

# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both

; wins server = w.x.y.z

# WINS Proxy - Tells Samba to answer name resolution queries on

# behalf of a non WINS capable client, for this to work there must be

# at least one WINS Server on the network. The default is NO.

; wins proxy = yes

# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names

# via DNS nslookups. The built-in default for versions 1.9.17 is yes,

# this has been changed in version 1.9.18 to no.

dns proxy = no

#====================== Share Definitions ================

[homes]

comment = Home Directories

browseable = no

writable = yes

# Un-comment the following and create the netlogon directory for Domain Logons

; [netlogon]

; comment = Network Logon Service

; path = /usr/local/samba/lib/netlogon

; guest ok = yes

; writable = no

; share modes = no

# Un-comment the following to provide a specific roving profile share

# the default is to use the user's home directory

Distributed by: http://abebudi.blogspot.com/


;[Profiles]

; path = /usr/local/samba/profiles

; browseable = no

; guest ok = yes

# NOTE: If you have a BSD-style print system there is no need to

# specifically define each individual printer

[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

# Set public = yes to allow user 'guest account' to print

guest ok = no

writable = no

printable = yes

# This one is useful for people to share files

;[tmp]

; comment = Temporary file space

; path = /tmp

; read only = no

; public = yes

# A publicly accessible directory, but read only, except for people in

# the "staff" group

;[public]

; comment = Public Stuff

; path = /home/samba

Distributed by: http://abebudi.blogspot.com/


; public = yes

; writable = yes

; printable = no

; write list = @staff

# Other examples.

# A private printer, usable only by fred. Spool data will be placed in fred's

# home directory. Note that fred must have write access to the spool directory,

# wherever it is.

;[fredsprn]

; comment = Fred's Printer

; valid users = fred

; path = /homes/fred

; printer = freds_printer

; public = no

; writable = no

; printable = yes

# A private directory, usable only by fred. Note that fred requires write

# access to the directory.

;[fredsdir]

; comment = Fred's Service

; path = /usr/somewhere/private

; valid users = fred

; public = no

; writable = yes

Distributed by: http://abebudi.blogspot.com/


; printable = no

# a service which has a different directory for each machine that connects

# this allows you to tailor configurations to incoming machines. You could

# also use the %U option to tailor it by user name.

# The %m gets replaced with the machine name that is connecting.

;[pchome]

; comment = PC Directories

; path = /usr/pc/%m

; public = no

; writable = yes

# A publicly accessible directory, read/write to all users. Note that all files

# created in the directory by users will be owned by the default user, so

# any user with access can delete any other user's files. Obviously this

# directory must be writable by the default user. Another user could of course

# be specified, in which case all files would be owned by that user instead.

;[public]

; path = /usr/somewhere/else/public

; public = yes

; only guest = yes

; writable = yes

; printable = no

# The following two entries demonstrate how to share a directory so that two

# users can place files there that will be owned by the specific users. In this

# setup, the directory should be writable by both users and should have the

# sticky bit set on it to prevent abuse. Obviously this could be extended to

Distributed by: http://abebudi.blogspot.com/


# as many users as required.

;[myshare]

; comment = Mary's and Fred's stuff

; path = /usr/somewhere/shared

; valid users = mary fred

; public = no

; writable = yes

; printable = no

; create mask = 0765

Setelah diedit dengan SWAT, akan menjadi seperti ini:


# Samba config file created using SWAT

# from localhost (127.0.0.1)

# Date: 2000/02/28 11:50:17

# Global parameters

workgroup = SURGA

netbios name = SPAWN

server string = Mail Server Gateway

encrypt passwords = Yes

map to guest = Bad User

log file = /var/log/samba.%m

max log size = 50

socket options = TCP_NODELAY

local master = Yes

dns proxy = No

[printers]

Distributed by: http://abebudi.blogspot.com/


comment = All Printers

path = /var/spool/samba

print ok = Yes

browseable = No

[test]

comment = testing doang neh...

path = /win

read only = No

guest ok = Yes

Konfigurasi Samba lewat LinuxConf (RedHat)


LinuxConf pada RedHat memasukkan Samba sebagai bagian server yang dapat diadministrasi
olehnya. Konfigurasi Samba lewat LinuxConf dapat dilakukan dengan cara sebagai berikut :
1. Masuk ke bagian Config - Networking - Server Tasks - Samba File
Server.
2. Pilihan konfigurasi Samba adalah :
Default; Konfigurasi utama (dalam file smb.conf masuk dalam kategori

[global]). Pilihan disini termasuk Base Config, Passwords, Access, Networking,
Auto Accounts dan Features.
• Default Setup for user's home; Direktori home bagi tiap user yang
dibagi secara default.
• Default setup for printers; Seting untuk membagi printer.
• Netlogon setup; Direktori untuk net logon yang dibagi. File batch bagi tiap user
yang login ke Samba dapat ditempatkan di sini.
• Disk share; Mendefinisikan direktori-direktori lain yang akan dibagi ke dalam
jaringan.
3. Selesai mengisi pilihan-pilihan tersebut sesuai dengan kebutuhan Anda, tutup LinuxConf.
Klik Accept untuk menyimpan semua perubahan.
4. Jalankan testparm dari prompt (console) .
# testparm
5. Jika semua sintaks dan parameter diset dengan benar, dan testparm tidak menyampaikan
pesan kesalahan, Anda dapat restart ulang smbd lewat skrip samba.
# /sbin/samba restart

Distributed by: http://abebudi.blogspot.com/


Level Keamanan (Security Level)
Keamanan merupakan isu yang penting dalam Samba. Perlu diingat bahwa UNIX mempunya
atribut file yang berbeda dengan Windows. Selain itu perlakuan untuk tiap user yang ketat dalam
Unix membuat Samba harus menerjemahkannya dalam pilihan-pilihan yang dapat ditentukan oleh
administrator secara fleksibel.
Pembahasan tentang struktur dan atribut file terlalu teknis untuk dicakup dalam buku ini. Namun
ada bagian penting dari file smb.conf yang harus diketahui sebelum melakukan konfigurasi,
yakni tingkat keamanan (security level).
Level keamanan ini membedakan bagaimana Samba memperlakukan pemakai pada saat otentikasi.
Pilihan tingkat keamanan di Samba terdiri dari tiga :
1. Share-level security
Setiap file yang dibagi (share) ke dalam workgroup memiliki password sendiri-sendiri. Hak
akses tergantung masing-masing password, dan hanya pemakai yang tahu passwordnya saja
yang dapat mengakses file bersangkutan.
2. User-level security
Setiap file yang dibagi (share) ke dalam workgroup ditentukan berdasarkan nama pemakai
atau group. Jika ada user yang akan mengakses suatu file yang dibagi, maka Samba akan
melakukan pencocokan terhadap username dan passwordnya.
3. Server-level security
Hampir sama dengan user level security, kecuali bahwa Samba menggunakan SMB server
yang berbeda sebelum memberikan hak akses. Misalnya dalam satu domain ada satu mesin
Windows NT dan satu mesin Samba, dengan server level security, Samba akan meneruskan
verifikasi kepada mesin NT sebelum memberikan otentikasi.
4. Domain-level security
Samba menjadi anggota dalam sebuah domain Windows dan menggunakan PDC (Primary
Domain Controller) untuk memberikan otentikasi. Setelah satu kali otentikasi, Samba akan
memberikan ijin untuk akses terhadap semua direktori/file yang dibagi dengan hak akses
sesuai dengan yang telah ditentukan. Dalam arti bahwa Samba tidak harus verifikasi ulang
tiap kali pemakai membuka file yang berbeda.

Distributed by: http://abebudi.blogspot.com/


Menggabungkan Samba dengan NT
Jika dalam jaringan Anda sudah ada Windows NT, Anda dapat menyisipkan Samba ke dalam
jaringan dengan cara sebagai berikut :
1. Tambahkan nama mesin Samba ke dalam database SAM di Windows NT. Penambahan
dilakukan lewat Server Manager (atau lengkapnya Windows NT Server Manager for
Domains). Saat ditanyakan tipe komputer, pilih 'Windows NT Workstation or Server' dan
berikan NetBIOS Name dari Samba Server. NetBIOS name ini dapat Anda tentukan secara
bebas pada smb.conf. Proses ini membuat Samba terdaftar dalam server NT.
2. Langkah kedua, membuat password dalam format Microsoft. Sebagai contoh nama mesin
PDC Windows NT adalah spawn, dengan domain surga, ketikkan baris berikut :
# smbpasswd -j SURGA -r spawn
3. Sebagai langkah terakhir, masukkan pilihan berikut dalam file smb.conf
[global]
security = domain
domain logins = yes
workgroup = SURGA
password server = spawn
Samba sudah dikonfigurasikan dalam bentuk domain-level security. Penggabungan Samba ke
dalam domain NT dengan cara demikian membawa beberapa konsekuensi terutama dalam
otentikasi user. Jika sebelumnya NT langsung melakukan otentikasi, maka mulai Anda jalankan
Samba, otentikasi dilakukan oleh Samba dengan mencocokkan password yang ada dalam database
NT. Bila digambarkan dalam dialog kurang lebih sebagai berikut :
1. Pemakai memasukkan username dan password. Komputer akan menanyakannya kepada
PDC.
2. Sebelum sampai PDC, Samba mengambil alih pertanyaan komputer. Kemudian Samba akan
menanyakan kepada NT, apakah username dan password yang diberikan cocok.
3. Jika cocok, Samba akan mengembalikan response pada user otentikasi untuk login ke dalam
jaringan.
Catatan :

Pastikan semua user yang telah terdaftar di PDC, tercatat semua sebagai user Linux.
Buat sebagai dumb account jika Anda memang tidak menginginkannya sebagai user
mesin Linux Anda. Jika tidak, maka semua user tidak akan bisa login (meskipun telah
terdaftar di Windows NT lewat 'User Manager for Domain'), kecuali user yang telah
terdaftar di Linux.

Distributed by: http://abebudi.blogspot.com/


Samba sebagai Domain Logon
Skenario ini dapat diterapkan jika jaringan Anda berada dalam kondisi seperti berikut :
• Ada beberapa klien Windows, tapi tidak ada Mesin Windows NT sebagai server.
• Ada beberapa klien Windows, dan ada mesin Windows NT yang sebelumnya sebagai server,
tapi Anda sebagai network administrator ingin menggantinya.
Perlu diingat bahwa fungsi utama keberadaan server sebagai domain logon bagi klien Windows,
hanyalah memberikan batasan atas sumber daya yang dibagi (share resources) dengan menentukan
siapa-siapa saja yang boleh mengakses (user level access control).
Untuk mengkonfigurasikan Samba sebagai domain logon (domain controller) Anda harus pastikan
terlebih dahulu bahwa :
• Samba merupakan satu-satunya primary domain controller pada workgroup yang
bersangkutan
• Ada WINS Server dalam jaringan, baik mesin samba sendiri atau mesin Windows NT
• Samba diset menggunakan user level security (tidak memberikan otentikasi password
kepada komputer lain).
Pilihan yang perlu ditambahkan dalam file smb.conf adalah :
[global]
workgroup = SURGA
domain logons = yes
# Pastikan untuk menggunakan user level security
security = user
# Pastikan sebagai domain controller
os level = 34
local master = yes
preferred master = yes
domain master = yes
Setelah itu buat satu direktori yang akan dibagi dengan nama [ netlogon ]. Direktori ini harus
diset non-writable, non-public, dan non-browseable. Pada bagian share (yang akan dibahas lebih
detail pada bagian berikut), tambahkan :
[netlogon]
comment = Service untuk domain logons
# Buat terlebih dahulu direktori sebagai path dari pilihan
berikut
path = /usr/local/share/logon
public = no
writable = no
browsable = no

Distributed by: http://abebudi.blogspot.com/


Setelah itu klien diseting sebagaimana klien dari Windows NT. Pada Network Neighborhood, klik
kanan, pilih properties dan pada Client for Microsoft Network Properties, aktifkan Log on to
Windows Domain, dan sebagai Nama Domainnya isikan Workgroup name yang ditentukan dalam
file smb.conf.
Untuk Windows NT, diset lewat properties Network configuration pada Control Panel. Pada Tab
pertama yang berisi identifikasi nama komputer, tekan tombol change. Pilih member of domain dan
ketikkan nama domainnya. Misal SURGA.

Berbagi printer dan file


File konfigurasi Samba, yakni smb.conf, secara garis besar dibagi dua bagian.
1. Global
Menyangkut konfigurasi umum, pilihan-pilihan yang dijalankan atau dimatikan terhadap
smbd (Samba Daemon) dan nmbd (Name Server Daemon).
2. Share
Menentukan sumber daya yang akan dibagi. Pembagian folder untuk bisa diakses oleh user
lain dalam Samba kaya akan pilihan.
Untuk seting file yang akan dibagi, dilakukan di bagian share. Secara umum, bentuk pilihan file
yang akan dibagi adalah :
[ nama share ]
path = tujuan dari direktori yang akan dibagi
browseable = bisa dibrowse oleh user atau tidak (boolean)
guest ok = dapat diakses oleh user yang tidak dikenal atau tidak
(boolean)
writable = dapat ditulisi atau hanya bisa dibaca saja (boolean)
Contoh konfigurasi sebuah direktori yang dibagi :
[test]
comment = testing doang neh...
path = /win
read only = No
guest ok = Yes
Selain direktori, Samba juga memberikan sumber dayanya untuk dibagi. Misalnya printer.
[printers]
comment = All Printers
path = /var/spool/samba
print ok = Yes

Distributed by: http://abebudi.blogspot.com/


browseable = No
Selain pilihan default diatas, Samba meberikan banyak sekali pilihan-pilihan dalam membagi file
dan sumber daya. Jika Anda mengkonfigurasikan lewat SWAT, pada bagian share, and bisa pilih
advance share untuk mencoba pilihan-pilihan yang ada.

Ringkasan
Samba merupakan program bermanfaat yang mampu menembus sebuah sistem tertutup,
memanfaatkannya dan dikeluarkan dalam sebuah program stabil yang terbuka untuk semua orang.
Sebagai program yang gratis, Samba merupakan pilihan bagi perusahaan-perusahaan kecil yang
ingin membangun jaringan yang cukup handal dengan biaya murah.
Dengan adanya SWAT, semakin memudahkan administrator dalam mengkonfigurasikannya. Antar
muka web yang bermanfaat (dan sudah pasti indah, sebab kata orang bijak semua yang bermanfaat
itu indah), kemampuan untuk diakses secara remote, membuat Samba sangat fleksibel untuk
diadministrasi.
Untuk mengikuti perkembangan terakhir Samba, dapat anda cek di http://www.samba.org.
Samba juga membuka peluang bagi siapa saja yang ingin bergabung bersama dalam Tim Samba
untuk mengembangkan program ini. Mailing list Samba saat ini beranggotakan lebih dari 3000
orang.

Distributed by: http://abebudi.blogspot.com/


Server DNS
DNS (Domain Name System) pada prinsipnya merupakan sebuah database yang berisi daftar
informasi host. Pada awalnya, di tahun 1970, ARPAnet (proyek eksperimental dari Advanced
Research Projects Agency untuk komunitas jaringan komputer, merupakan cikal bakal dari Internet
yang ada sekarang), mempunyai sebuah file HOSTS.TXT (semacam file /etc/hosts). File
tersebut berisi daftar seluruh nama komputer yang menjadi anggota komunitas. Dengan semakin
berkembangnya jumlah komputer yang tersambung, daftar ini menjadi semakin besar dan sulit
untuk diadministrasikan. Lalu pada tahun 1984, PAUL MOCKAPETRIS mengusulkan sistem
penamaan domain (DNS) yang dituangkan dalam RFC 882 dan RFC 883.
Struktur database DNS mempunyai kemiripan dengan sistem file yang ada di UNIX/Linux. Jika
dalam sistem file UNIX memiliki direktori root (/) kemudian dibawahnya ada direktori usr
(/usr), bin (/bin) dan seterusnya, maka dalam struktur database DNS juga memiliki root (.),
kemudian com (com.), net (net.) dan seterusnya.

Subsections
• Bagaimana DNS bekerja?
• Komponen DNS
• Resolver
• Resolution
• Caching

• Konfigurasi Domain Name Server


• Konfigurasi BIND v8
• SOA record
• NS Record
• Other records,
• /etc/resolv.conf
• /etc/named.conf
• /var/named/root.cache
• /var/named/ut.zone ( file zone domain )
• /var/named/ut.rev
• MX Records
• Administrasi BIND
• Seting DNS lewat LinuxConf (RedHat)
• Seting DNS di SuSE
• Ringkasan

Distributed by: http://abebudi.blogspot.com/


Bagaimana DNS bekerja?
DNS bekerja dalam modus klien server. Dalam arti ada klien yang mencari nama atau alamat IP,
kemudian ada server yang memberikan informasi dimana nama atau alamat IP tersebut diakses.
Server DNS yang paling banyak digunakan di lingkungan UNIX adalah BIND.
Untuk memahami bagaimana DNS bekerja, misalkan dengan browser anda buka
http://spawn.heaven.or.id. Pertama kali yang dilihat adalah file /etc/resolv.conf
untuk mencari alamat name server komputer yang bersangkutan. Setelah terhubung, name server
akan meneruskan ke database root (.) untuk mencari server yang bertanggung jawab terhadap
domain id.. Dari name server yang mengadministrasi domain id, pencarian dilanjutkan dengan
mencari nama server untuk or. Seterusnya dari database name server untuk or, mencari alamat nama
server untuk domain heaven. Dan akhirnya name server heaven akan memberikan informasi mesin
yang menggunakan nama spawn dalam domainnya. Semuanya dilakukan dalam waktu yang relatif
cepat, tergantung jenis koneksinya.
browser
img1.png

name server lokal


img2.png

name server root (.)


img3.png

name server id (id.)


img4.png

name server or (or.id.)


img5.png

name server heaven (heaven.or.id)


img6.png

host spawn (spawn.heaven.or.id)

Komponen DNS
DNS ini mempunyai beberapa komponen, yaitu :
Subsections
• Resolver
• Resolution
• Caching

Distributed by: http://abebudi.blogspot.com/


Resolver
ialah bagian aplikasi klien yang mengakses name server. Semua program yang membutuhkan DNS,
memakai resolver. Proses resolving :
• Mengajukan permintaan terhadap name server
• Menginterpretasikan permintaan (resolve), dan memberikan response
• Mengembalikan informasi kepada program yang memintanya.
Resolver akan menjawab dengan dua cara yaitu melihat isi dari cache yang pernah ditanyakan
sebelumnya, serta menanyakan kepada DNS Server untuk mendapatkan hasilnya. Resolver yang
biasa dipergunakan untuk mencari informasi tentang DNS adalah nslookup.

Resolution
Dalam menjawab permintaan terhadap sebuah domain, name server akan mencari name server yang
bertanggung jawab terhadap domain yang diminta (lihat sub bagian sebelumnya tentang bagaimana
DNS bekerja). Selain mencari, name server juga memberikan informasi tentang server yang
bersangkutan. Proses ini disebut name resolution, atau disingkat resolution.

Caching
Setiap permintaan terhadap sebuah domain, memaksa name server untuk mengakses databasenya,
dan mencari name server yang bertanggung jawab. Untuk itu name server melakukan caching
terhadap domain-domain yang pernah diminta. Karena tidak bisa dicaching untuk selamanya, maka
name server mendefinisikannya dengan Time to Live (TTL).

Konfigurasi Domain Name Server


Software untuk implementasi DNS yang banyak digunakan adalah BIND (Berkeley Internet Name
Domain) yang pertama kali disebut dengan JEEVES dibuat oleh PAUL MOCKAPETRIS. Terakhir
implementasi BIND untuk Operating sistem Unix Berkeley 4.3BSD, oleh KEVIN DUNLAP. Versi
terakhir saat buku ini ditulis adalah BIND versi 8.1.2.
Pada sebagian distribusi besar, BIND telah diinstal bersamaan dengan instalasi awal. Yang
dibutuhkan hanyalah mengkonfigurasikan dan mengaktifkannya. Untuk BIND versi terbaru dapat
diperoleh di: http://www.isc.org atau ftp.isc.org dalam direktori /isc/bind/src.

Distributed by: http://abebudi.blogspot.com/


Subsections
• Konfigurasi BIND v8

• SOA record
• NS Record
• Other records,
• /etc/resolv.conf
• /etc/named.conf
• /var/named/root.cache
• /var/named/ut.zone ( file zone domain )
• /var/named/ut.rev
• MX Records

Konfigurasi BIND v8
Pertama kali yang dilakukan adalah seting data untuk DNS. Dalam contoh berikut kita
menggunakan nama ut. Anda bisa mendefinisikan sendiri untuk penamaan yang mudah diingat.
Berikut contoh nama file yang dibutuhkan :
1. /etc/resolv.conf
2. /etc/named.conf
3. File DNS resource record, yang terdiri
• /var/named/root.cache
• /var/named/named.local
• /var/named/ut.zone
• /var/named/ut.rev
DNS resource record adalah file database yang dibutuhkan oleh name server dalam menjalankan
tugasnya. File ini dapat dibuat sesuai dengan kebutuhan. Hal yang perlu diingat adalah urutan
kebutuhan resource record, yakni :

Subsections
• SOA record
• NS Record
• Other records,
• /etc/resolv.conf
• /etc/named.conf
• /var/named/root.cache
• /var/named/ut.zone ( file zone domain )

Distributed by: http://abebudi.blogspot.com/


• /var/named/ut.rev
• MX Records

SOA record

Mengindikasikan authority untuk zone yang bersangkutan.

NS Record

Daftar name server untuk zone yang bersangkutan

Other records,

catatan lainnya seperti :


• A; Pemetaan dari nama domain ke alamat IP
• PTR; Pemetaan dari alamat IP ke nama domain
• CNAME; Nama alias (Canonical Name)

/etc/resolv.conf

Adalah file yang berisi informasi alamat domain atau alamat IP dari name server. File ini diakses
pertama kali oleh resolver pada saat mengajukan permintaan terhadap sebuah domain.
domain ut.astra.co.id
nameserver 10.2.6.5
Keterangan contoh diatas, domain menunjukan nama domain yaitu ut.astra.co.id dan name server
adalah IP address dengan nomor: 10.2.6.5

/etc/named.conf

File konfigurasi utama yang dibaca oleh BIND pada saat dijalankan. Dalam file ini berisi
keterengan letak dan jenis file-file database yang dibutuhkan oleh BIND. Untuk membuat file ini
dapat menggunakan skrip bantu yang disusun lewat perl. File ini bernama named-bootconf.pl, dan
termasuk dalam paket aplikasi BIND. Atau jika ingin seting manual dapat menggunakan editor teks
biasa. Berikut contoh filenya :
// generated by named-bootconf.pl
options {
directory "/var/named";
};
//
// a caching only nameserver config
//

Distributed by: http://abebudi.blogspot.com/


zone "." {
type hint;
file "root.cache";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
zone "ut.astra.co.id" {
type master;
file "ut.zone";
};
zone "6.2.10.in-addr.arpa" {
type master;
file "ut.rev";
};
Dari sini anda ketahui, untuk contoh yang diberikan, mempunyai resource record yang didefinisikan
semuanya berada dalam direktori /var/named. Hal ini bisa dilihat di baris:
options {

directory "/var/named";

};

Untuk option ini bebas dimana saja selama direktori tersebut disediakan hanya untuk sistem seperti
/etc atau /var. Selain itu jumlah dan nama filenya sangat kondisional tergantung jumlah zone
yang ditangani.

/var/named/root.cache

Berisi informasi data yang berada dalam domain root (non lokal). Catatan ini yang dipergunakan
name server jika ada resolver yang meminta nama domain di luar domain lokal.
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services

Distributed by: http://abebudi.blogspot.com/


; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: Aug 22, 1997
; related version of root zone: 1997082200
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV

Distributed by: http://abebudi.blogspot.com/


;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129

Distributed by: http://abebudi.blogspot.com/


;
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
Untuk mendapatkan file root.cache/named.root ini dapat melakukan perintah dig dengan
user root.
# dig @rs.internic.net > /var/named/root.cache.new
/var/named/named.local
File ini digunakan untuk alamat loopback untuk alamat ke diri sendiri, dan selalu dengan alamat IP
127.0.0.1. Isi filenya adalah sebagai berikut :
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.

/var/named/ut.zone ( file zone domain )

File ini berisi SOA (start of authority) resource record, NS record, MX record dan CNAME record.
Seluruh host dalam jaringan didefinisikan di sini.
$TTL 86400
@ IN SOA netcom.ut.astra.co.id. root.netcom.ut.astra.co.id. (
1997022700 ; Serial
28800 ; Refresh

Distributed by: http://abebudi.blogspot.com/


14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS netcom.ut.astra.co.id.
IN MX 10 netcom.ut.astra.co.id.
netcom IN A 10.2.6.5
www IN CNAME netcom
ftp IN CNAME netcom
mail IN CNAME netcom

/var/named/ut.rev

File ini berisi PTR Records, untuk pemetaan dari alamat ke nama. Karena di file sebelumnya
(ut.zone) sudah didefinisikan lewat A record, bahwa netcom.ut.astra.co.id
mempunyai alamat 10.2.6.5, maka dalam file berikut cukup dituliskan nomor hostnya (field
terakhir) yakni 5.
$TTL 86400

@ IN SOA netcom.ut.astra.co.id. root.netcom.ut.astra.co.id. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS netcom.ut.astra.co.id.

5 IN PTR netcom.ut.astra.co.id.

MX Records

Salah satu keuntungan DNS adalah untuk routing e-mail. Untuk itu, DNS menggunakan resource
record tunggal yakni MX records. MX berarti Mail Exchanger, sebuah host yang akan memproses
(process) atau meneruskan (forward) e-mail. Memproses berarti mengirim langsung ke individu
atau melewati transport agent lainnya seperti UUCP. Meneruskan berarti mengirimkan ke tujuan
akhir atau ke mail exchanger terdekat dengan melewati SMTP (Simple Mail Transfer Protocol).
Untuk menghindarkan pengulangan dalam pengiriman, MX records mempunyai parameter
tambahan yakni nilai keinginan (preference value), antara 0 hingga 65535. Kita ambil contoh

Distributed by: http://abebudi.blogspot.com/


dengan merujuk pada file /var/named/ut.zone.
IN MX 10 netcom.ut.astra.co.id.
Baris di atas menunjukkan bahwa netcom.ut.astra.co.id punya preference value 10 untuk
menjadi relay dari domain ut.astra.co.id. Lebih jelas lagi contoh berikut :
heaven.or.id. IN MX 1 spawn.heaven.or.id.
heaven.or.id IN MX 2 crow.heaven.or.id
Dalam contoh tersebut jika ada e-mail dari heaven.or.id., maka Ia akan coba mengirimkannya
terlebih dahulu lewat spawn.heaven.or.id. Jika gagal, maka dicoba crow.heaven.or.id.
Begitu seterusnya hingga e-mail berhasil diproses atau diteruskan.
Untuk penerapannya, masukkan MX records jadi satu bersama records lainnya di file zone domain.

Administrasi BIND
Untuk mengadministrasikan BIND (named), cukup jalankan program ndc, diikuti perintah yang
diinginkan. Perintah yang tersedia adalah :
• status
Menunjukkan status named sebagaimana ditampilkan dengan perintah ps.
• dumpdb
Membuang database dan cache dari named ke /var/tmp/named_dump.db
• reload
Menyebabkan named mengecek semua nomor serial zone primary dan secondary, dan
menampilkan kembali setiap perubahan.
• stats
Membuang statistik ke dalam file /var/tmp/named.stats
• trace
Meningkatkan satu level tracing atau pelacakan. Semakin tinggi level pelacakannya,
semakin banyak hal-hal yang dicatat. Semua dituliskan dalam file
/var/tmp/named.run
• notrace
Mengembalikan nilai atau level pelacakan menjadi nol. Perintah ini juga menghapus file
/var/tmp/named.run jika masih ada.
• querylog
Berpindah ke model querylog, yang menyebabkan pencatatan ke dalam syslog setiap
permintaan yang masuk. Perlu diperhatikan bahwa perintah ini akan mencetak file log
dengan ukuran besar. Model ini juga dapat dijalankan dengan perintah qrylog.
• start
Menjalankan named

Distributed by: http://abebudi.blogspot.com/


• stop
Menghentikan named jika masih berjalan
• restart
Menghentikan named dan menjalankannya kembali.
Misalnya untuk mulai menjalankan name server :
# ndc restart

Seting DNS lewat LinuxConf (RedHat)


DNS di LinuxConf dapat dikonfigurasikan lewat Config - Networking - Domain Name
Server. Sebelum mulai konfigurasi, buatlah terlebih dahulu direktori /var/named untuk
meletakkan file resource record yang akan dihasilkan oleh Linuxconf. Setelah itu jalankan
LinuxConf.
# mkdir /var/named

# linuxconf

Domain Name Server di LinuxConf terdiri dari beberapa bagian :


• Config
• Configure Domain;Mendefinisikan domain yang ditangani oleh name server yang
bersangkutan.
• Configure IP Reverse Mapping; Mendefinisikan domain alias yang dipergunakan
untuk konversi dari nama domain ke alamat IP
• Configure Secondaries;Menginstruksikan name server sebagai cadangan terhadap
domain-domain tertentu.
• Configure Forwarders;Menginstruksikan name server untuk menggunakan name
server lainnya. Konfigurasi ini dijalankan biasanya jika name server yang bersangkutan
berada di belakang firewall.
• Configure Features; Mengkonfigurasikan beberapa layanan tambahan.
• Configure IP Allocation Spaces;Mendefinisikan rentang IP yang diperlukan.
• Add/Edit
• Add/Edit host information by domain;Menambahkan atau mengedit domain
beserta informasi host yang bertanggung jawab terhadap domain yang bersangkutan.
• Add/Edit; Fungsinya hampir sama dengan menu di atas. Bedanya, anda bisa
memasukkan domain yang memenuhi kualifikasi secara langsung tanpa harus memilih
domainnya terlebih dahulu.
• Security
• Configure Access Control List
• Configure Access Control

Distributed by: http://abebudi.blogspot.com/


Seting DNS di SuSE
Untuk seting name server di SuSE, bisa dilakukan secara manual sebagaimana telah dibahas
sebelumnya. YaST menyediakan menu konfigurasi untuk name server, namun itu hanya sebatas
menuliskan nama dan alamat IP dari name server ke dalam file /etc/resolv.conf. Menu
tersebut bisa diakses lewat System Administration - Network - Configuration
Name Server.

Ringkasan
Pada Bab ini telah kita pelajari secara singkat bagaimana cara kerja dan menjalankan DNS Server.
Bagian-bagian tingkat lanjut tentang DNS, seperti parenting (Bagaimana mengadministrasi domain
yang memiliki sub-sub domain), kemudian DNS Notify (Pemberitahuan terhadap perubahan zona),
pembatasan query, dan sebagainya, tidak dibahas di sini. Tujuan dari bab ini adalah memungkinkan
akses dengan nama untuk komunikasi antar user, serta bantuan seting untuk pengiriman dan
penerimaan e-mail. Paling tidak hal ini menjadi rangsangan bagi anda untuk mengembangkan lebih
lanjut tentang DNS ini, terutama untuk penerapan jaringan skala besar.
Untuk lebih lanjut tentang DNS, anda bisa baca DNS and BIND, terbitan O'Reilly, karangan PAUL
ALBIRTZ & CRICKET LIU. Literatur elektronis yang bisa dijadikan acuan dan tersedia di sebagian
besar distribusi Linux adalah DNS HOWTO v.22 karangan NICOLAI LANGFELDT. Dokumen ini
tersedia di /usr/doc/HOWTO.

Distributed by: http://abebudi.blogspot.com/


Server Web

Subsections
• Pendahuluan
• Instalasi
• Modul Apache
• Dynamic Shared Object
• Konfigurasi
• File Konfigurasi Apache
• Global Environment
• Virtual Hosts
• Atribut Direktori
• AllowOverride
• Options

• Program Bantu Apache


• apxs (Apache Extension Tool)
• ab (Apache HTTP Server Benchmarking Tools)

• Binary Apache
• Binary Apache di Slackware
• Binary Apache di SuSE
• Binary Apache di RedHat

• Ringkasan

Distributed by: http://abebudi.blogspot.com/


Pendahuluan
Apache merupakan web server yang paling banyak dipergunakan di Internet. Program ini pertama
kali didesain untuk sistem operasi lingkungan UNIX. Namun demikian, pada beberapa versi
berikutnya Apache mengeluarkan programnya yang dapat dijalankan di Windows NT.
Berdasarkan sejarahnya, Apache dimulai oleh veteran developer NCSA httpd (National Center for
Supercomputing Application). Saat itu pengembangan NCSA httpd sebagai web server mengalami
stagnasi. ROB MC COOL meninggalkan NCSA dan memulai sebuah proyek baru bersama para
webmaster lainnya, menambal bug, dan menambahkan fitur pada NCSA httpd. Mereka
mengembangkan program ini lewat mailing list. Dengan berpijak pada NCSA httpd versi 1.3, Team
Apache mengeluarkan rilis pertama kali secara resmi Apache versi 0.6.2. Tim inti pengembang
Apache waktu itu :
1. BRIAN BEHLENDORF
2. ROY T. FIELDING
3. ROB HARTILL
4. DAVID ROBINSON
5. CLIFF SKOLNICK
6. RANDY TERBUSH
7. ROBERT S. THAU
8. ANDREW WILSON
Dengan tambahan kontribusi dari :
1. ERIC HAGBERG
2. FRANK PETERS
3. NICOLAS PIOCH
Nama Apache diambil dari kata "A Patchy Server", server perbaikan yang penuh dengan tambalan
(patch). Tambalan yang dimaksud adalah penambahan fitur dan penambalan bug dari NCSA httpd
Versi 1.3.
Saat ini Apache dipergunakan secara luas. Hal ini disebabkan karena programnya yang gratis,
dengan kinerja relatif stabil. Dalam pengembangannya pun mempergunakan sistem Bazaar, yakni
tiap orang dibuka kesempatan seluas-luasnya untuk dapat memberikan kontribusi dalam
mengembangkan program. Kontribusi dikomunikasikan lewat mailing list. Tim Apache mempunyai
mailing list yang terbuka untuk siapa saja yang ingin ambil bagian. Untuk mendaftar cukup kirim
email ke majordomo@apache.org dengan baris pertama dari email bertuliskan "subscribe new-
httpd". Perlu dicatat bahwa proyek pengembangan Apache ini mempunyai sistem meritokrasi.
Semakin banyak yang Anda sumbangkan, semakin banyak yang boleh dikerjakan.
Apache mempunyai program pendukung yang cukup banyak. Hal ini memberikan layanan yang
cukup lengkap bagi penggunanya. Beberapa dukungan Apache :
1. Kontrol Akses.
Kontrol ini dapat dijalankan berdasarkan nama host atau nomor IP
2. CGI (Common Gateway Interface),
yang paling terkenal untuk digunakan adalah perl (Practical Extraction and Report
Language), didukung oleh Apache dengan menempatkannya sebagai modul (mod_perl)
3. PHP (Personal Home Page/PHP Hypertext Processor);
program dengan metode semacam CGI, yang memproses teks dan bekerja di server. Apache

Distributed by: http://abebudi.blogspot.com/


mendukung PHP dengan menempatkannya sebagai salah satu modulnya (mod_php). Hal
ini membuat kinerja PHP menjadi lebih baik
4. SSI (Server Side Includes)

Instalasi
Instalasi yang dibahas berikut adalah modus instalasi standar (default). Metode instalasi Apache
(sejak Versi 1.3) ada dua macam, yakni dengan metode APACI (Apache 1.3 Autoconf-style
Interface) atau dengan cara pada versi sebelumnya. Sebelum mulai instalasi, pastikan mesin Anda
memenuhi beberapa hal :
• Ruang hardisk kosong sebanyak 12 Megabyte. Sebagai tambahan kurang lebih 3 Megabyte
untuk modul-modul yang akan dipasang.
• Pastikan mesin Anda memiliki ANSI-C Compiler. Untuk Linux yang paling ideal adalah gcc
(GNU C Compiler).
• Perl interpreter (tidak harus) untuk menjalankan beberapa skrip konfigurasi. Jika tidak ada
tidak akan mengganggu instalasi secara keseluruhan. Hanya saja beberapa skrip tidak akan
dijalankan.
• Dukungan Dynamic Share Object (DSO) (tidak harus), yang memungkinkan Apache
menjalankan modul sebagai bagian dari run time-nya.
Platform yang didukung oleh Apache saat ini :
1. Linux
2. SunOS
3. UnixWare
4. FreeBSD
5. Solaris
6. AIX
7. OpenBSD
8. IRIX
9. SCO
10.NetBSD
11.HPUX
12.BSDI
13.Digital Unix
Yang belum didukung sama sekali adalah ultrix.
Setelah mengecek beberapa syarat yang harus dipenuhi, lanjutkan dengan instalasi. Berikut
prosedur instalasi, dengan asumsi bahwa Anda sudah memperoleh file sumber Apache:
$ tar -zxvf apache_1.3.X.tar.gz
$ ./configure -prefix=PREFIX
$ make
$ su -
password:
# make install

Distributed by: http://abebudi.blogspot.com/


Modul Apache
Apache dikompilasi dengan memasukkan modul-modulnya sebagai bagian dari file binary. Modul-
modul tersebut yang mendukung fitur-fitur yang ditawarkan oleh Apache. Misalnya mod_auth
yang mendukung otentikasi teks murni. Modul yang disediakan oleh Apache secara default adalah :
1. Pembuatan environment
(+)mod_env Pembuatan variabel environment untuk skrip CGI/SSI
(+)mod_setenvif Pembuatan variabel environment berdasarkan header HTTP
(-)mod_unique_id Pembuatan pengenal khusus untuk permintaan Content Type
Decision
(+)mod_mimePenentuan tipe isi/encoding (configured)
(-)mod_mime_magic Penentuan tipe isi (otomatis)
(+)mod_negotiation Penentuan pemilihan berdasarkan the HTTP Accept* headers
URL mapping
(+)mod_alias Penerjemahan dan penerusan URL sederhana
(-)mod_rewrite Penerjemahan dan penerusan URL tingkat lanjut
(+)mod_userdir Pemilihan direktori sumber berdasarkan nama user
(-)mod_speling Mengoreksi URL salah eja.
2. Pengaturan direktori
(+)mod_dir Pengaturan direktori dan direktori default file
(+)mod_autoindex Kontrol akses terhadap pembuatan direktori file indeks secara
otomatis.
(+)mod_access Kontrol akses (user, host, jaringan)
(+)mod_auth Autentikasi dasar HTTP (user, passwd)
(-)mod_auth_dbm Autentikasi dasar HTTP lewat file Unix NDBM.
(-)mod_auth_db Autentikasi dasar HTTP lewat file Berkeley-DB
(-)mod_auth_anon Autentikasi dasar HTTP untuk user anonymous
(-)mod_digest Autentikasi HTTP Digest Autentikasi HTTP response
(-)mod_headers Respon header HTTP secara acak (configured)
(-)mod_cern_meta Respon header HTTP secara acak (CERN-style files)
(-)mod_expires Respon HTTP yang lewat jangka waktu
(+)mod_asis Skripting respon HTTP mentah
(+)mod_include Dukungan Server Side Includes (SSI)
(+)mod_cgi Dukungan Common Gateway Interface (CGI)
(+)mod_actions Memetakan skrip CGI untuk berjalan sebagai internal 'handlers'

Distributed by: http://abebudi.blogspot.com/


3. Pengaturan content internal
(+)mod_status Pengaturan content untuk status server run-time
(-)mod_info Pengaturan content untuk info singkat konfigurasi server
4. Pencatatan akses
• [(+)mod_log_config]Pencatatan akses yang dapat diatur sesuai keinginan
• [(-)mod_log_agent]Pencatatan HTTP User-Agent khusus (deprecated)
• [(-)mod_log_refer]Pencatatan HTTP Referrer khusus(deprecated)
• [(-)mod_usertrack]Pencatatan atas user click-trails lewat cookie HTTP
5. Lain-lain
• [(+)mod_imap]Dukungan Server-side Image Map
• [(-)mod_proxy]Caching Modul Proxy (HTTP, HTTPS, FTP)
• [(-)mod_so]Dynamic Shared Object (DSO) bootstrapping
6. Experimental
• [(-)mod_mmap_static]Caching halaman yang sering diminta lewat mmap()
7. Pengembangan
• [(-)mod_example]Demonstrasi Apache API demonstration (developers only)
(+) = tersedia secara default [menghilangkannya dengan -disable-module]
(-) = tidak tersedia secara default [mengaktifkannya dengan -enable-module]

Dynamic Shared Object


Untuk mengaktifkan semua modul, cukup tambahkan -enable-shared=all pada saat
kompilasi.
# ./configure -enable-shared=all
Penggunaan parameter -enabled-shared memungkinkan modul dijalankan dengan metode DSO
(Dynamic Shared Object), yakni menjalankan modul lewat program yang inheren di Apache. Di
sistem Unix, modul dijalankan lewat dua cara, yakni lewat program ld.so yang merupakan bagian
dari keseluruhan sistem, atau lewat DSO, loader-nya dari program itu sendiri.
Dua modul apache yang tidak bisa ditempatkan dalam DSO (dikompilasi langsung) adalah
http_core.c danmod_so.c (yang merupakan modul DSO).
Jika nanti Anda akan menambahkan modul (misal modul php), Anda bisa jalankan lewat perintah
configure :
# ./configure -add-module=/path/to/module/mod_php.c

-enable-shared=php

# make install

Distributed by: http://abebudi.blogspot.com/


Konfigurasi
File konfigurasi Apache terletak di direktori /var/apache/conf (atau PREFIX/conf,
tergantung direktori yang Anda set saat configure Apache ditahap instalasi) atau
/var/lib/apache/conf jika Anda instal lewat binary Slackware. Nama filenya adalah
httpd.conf, srm.conf dan access.conf.
httpd.conf merupakan file yang dieksekusi pertama kali saat Apache dijalankan. Didalamnya
berisi konfigurasi secara umum. srm.conf adalah file konfigurasi yang dieksekusi setelah
httpd.conf. Disarankan untuk membiarkan file konfigurasi ini tetap kosong. Dan
access.conf merupakan konfigurasi untuk memfilter host-host yang boleh mengakses layanan
Apache.

Subsections
• File Konfigurasi Apache
• Global Environment
• Virtual Hosts
• Atribut Direktori
• AllowOverride
• Options

File Konfigurasi Apache


Secara default, Apache memisahkan file konfigurasinya menjadi 3 bagian, yakni httpd.conf,
srm.conf dan access.conf. Namun semua binary program pada distribusi yang dicobakan
(Slackware 7.0) menyatukannya dalam satu file yakni httpd.conf. File ini dibagi menjadi 3 bagian
utama :
1. Global environment
Berisi konfigurasi Apache secara umum, seperti berapa banyak user dapat mengakses pada
saat yang bersamaan.
2. Section (Main) Configuration
Konfigurasi utama yang tidak termasuk dalam virtual host. Bagian ini juga termasuk seting
default untuk virtual host.
3. Virtual host
Konfigurasi untuk virtual host, yakni memanggil nomor IP dan DNS yang berbeda
meskipun masih dalam satu administrasi oleh Apache.
Berikut pembahasan beberapa contoh pilihan konfigurasi file httpd.conf. Pilihan yang disampaikan
di sini mengacu pada file httpd.conf yang diberikan secara default oleh Apache selesai instalasi.

Distributed by: http://abebudi.blogspot.com/


Global Environment
ServerType [standalone/inetd]

Pilihan untuk menentukan apakah menjalankan Apache sebagai http daemon sendiri atau lewat
inetd. Pilihan inetd hanya untuk platform Unix.
ServerRoot "/var/lib/apache"

Direktori utama di mana file konfigurasi, dan log diletakkan.


LockFile /var/run/httpd.lock

Direktori untuk lock file. Disarankan menyimpannya dalam direktori lokal.


PidFile /var/run/httpd.pid

File yang dipergunakan server untuk merekam nomor identifikasi proses (pid) saat apache
dijalankan.
ScoreBoardFile /var/run/httpd.scoreboard

File yang dipergunakan untuk merekam informasi internal dari proses server.
ResourceConfig conf/srm.conf

AccessConfig conf/access.conf

Pilihan untuk membaca file srm.conf dan access.conf secara berurutan. Anda dapat membiarkannya
ditandai pagar, karena Apache secara default telah memproses kedua file tersebut secara berurutan.
Anda dapat mengisinya dengan /dev/null jika ingin Apache mengabaikan dua file tersebut.
Timeout 300

Jumlah detik sebelum server mengeluarkan pesan time out.


KeepAlive On

Untuk menentukan apakah server memperbolehkan lebih dari satu permintaan dalam satu koneksi.
Untuk non-aktif, isikan Off.
MaxKeepAliveRequests 100

Jumlah maksimum permintaan yang diperbolehkan dalam satu koneksi yang bersamaan. Nilai 0
bernilai tak terhingga.
KeepAliveTimeout 15

Jumlah detik untuk menunggu permintaan berikutnya dari klien yang sama dan koneksi yang
bersamaan.
MinSpareServers 5

MaxSpareServers 10

Distributed by: http://abebudi.blogspot.com/


Pilihan ini untuk mengatur proses yang dijalankan oleh apache. Apache secara dinamis mengatur
prosesnya untuk mencapai kinerja yang maksimal. Jika nilai server yang menganggur lebih kecil
dari nilai MinspareServer, maka apache akan membuat spare baru. Begitu pula sebaliknya, jika
lebih besar dari nilai MaxSpareServer maka beberapa spare akan dimatikan. Nilai default sudah
cukup memadai untuk kebanyakan server.
StartServers 5

Jumlah server yang berjalan saat diaktifkan.


MaxClients 150

Jumlah maksimal server yang dijalankan. Misalnya nilai ini mencerminkan jumlah maksimal klien
mengakses secara simultan. Jika nilai ini terpenuhi, maka klien akan 'terkunci'. Disarankan untuk
tidak memberikan nilai yang rendah.
MaxRequestsPerChild 30

Jumlah permintaan maksimal untuk mempergunakan child process.


Catatan :

Child process adalah proses yang muncul karena ada proses di atasnya. Jika proses di
atasnya mati, maka child process ikut mati. Di sistem Unix, proses dijalankan dengan
berjenjang, dan puncak segala proses adalah init.

Listen 3000

Listen 12.34.56.78:80

Mengikat Apache untuk melayani port spesifik dan atau alamat IP yang spesifik pula. Konfigurasi
ini bermanfaat jika ingin menggunakan satu mesin dengan beberapa nomor IP dan atau beberapa
nama DNS samaran (Canonical DNS address).
BindAddress *

Dukungan Virtual hosts dengan memerintahkan Apache untuk mengikat beberapa alamat. Pilihan
ini bisa diisi * , alamat IP atau nama domain internet yang memenuhi syarat.
LoadModule env_module libexec/mod_env.so

LoadModule config_log_module libexec/mod_log_config.so

LoadModule mime_module libexec/mod_mime.so

LoadModule negotiation_module libexec/mod_negotiation.so

LoadModule status_module libexec/mod_status.so

LoadModule includes_module libexec/mod_include.so

LoadModule autoindex_module libexec/mod_autoindex.so

Distributed by: http://abebudi.blogspot.com/


LoadModule dir_module libexec/mod_dir.so

LoadModule cgi_module libexec/mod_cgi.so

LoadModule asis_module libexec/mod_asis.so

LoadModule imap_module libexec/mod_imap.so

LoadModule action_module libexec/mod_actions.so

LoadModule userdir_module libexec/mod_userdir.so

LoadModule alias_module libexec/mod_alias.so

LoadModule access_module libexec/mod_access.so

LoadModule auth_module libexec/mod_auth.so

LoadModule setenvif_module libexec/mod_setenvif.so

Agar DSO dapat berjalan dengan maksimal (Baca tentang Dynamic Shared Object di sub bab
sebelumnya), Anda harus tempatkan modul sehingga mereka dijalankan secara urut.
ClearModuleList

Bagian ini merupakan rekonstruksi dari modul yang dijalankan sebelumnya. Jika Anda mengganti
urutan atau entri pada bagian sebelumnya, Anda juga harus mengupdate bagian ini.
AddModule mod_env.c

AddModule mod_log_config.c

AddModule mod_mime.c

AddModule mod_negotiation.c

AddModule mod_status.c

AddModule mod_include.c

AddModule mod_autoindex.c

AddModule mod_dir.c

AddModule mod_cgi.c

AddModule mod_asis.c

AddModule mod_imap.c

AddModule mod_actions.c

Distributed by: http://abebudi.blogspot.com/


AddModule mod_userdir.c

AddModule mod_alias.c

AddModule mod_access.c

AddModule mod_auth.c

AddModule mod_so.c

AddModule mod_setenvif.c

ExtendedStatus On

Pilihan untuk menampilkan informasi status server lebih banyak. Jika diset Off, maka informasi
status menjadi standar.
'Main' server configuration

Bagian ini dipergunakan untuk menentukan nilai-nilai yang dipergunakan oleh server, dan semua
permintaan yang tidak dapat ditangani oleh 'virtual host'. Bagian ini juga berisi nilai default yang
nantinya akan dipergunakan di bagian 'virtual host'.
Beberapa konfigurasi dari bagian berikut tidak akan berpengaruh jika Anda tentukan sebelumnya
Apache berjalan dengan model inetd. Jika memang demikian, lompati beberapa bagian berikut, dan
langsung menuju ke parameter ServerAdmin.
Port 80

Port yang dipergunakan oleh server. Jika menggunakan port 1023, jalankan httpd sebagai root.
User nobody

Group nogroup

Nama user dan group yang menjalankan httpd. Perlu dicatat di mesin HPUX, user nobody tidak ada
akses ke memori, dan disaranakan untuk membuat user dan grup khususu untuk menjalankan httpd.
ServerAdmin root@domain.Anda.com

Alamat yang dipergunakan untuk mengirim/memberitahukan halaman-halaman yang dibuat secara


otomatis oleh server. Misalnya, pesan-pesan kesalahan.
ServerName domain.anda.com

Dipergunakan untuk seting nama yang akan diberikan kepada user. Anda dapat pergunakan nama
lain selain nama host Anda. Untuk pemberian nama, harus nama DNS yang valid, sesuai dengan
seting name server yang mencatat mesin Anda. Lihat bahasan tentang server DNS. Jika tidak yakin,
isikan nomor IP. Misal ServerName 192.168.1.2
DocumentRoot "/var/lib/apache/htdocs"

Distributed by: http://abebudi.blogspot.com/


Direktori utama yang dipergunakan untuk menyimpan file html. Anda bisa membuat link simbolik
jika ingin meletakkannya dalam direktori lain.
Pilihan ini biasanya diikuti beberapa atribut yang memastikan bahwa direktori tersebut diakses
secara benar oleh user, dengan kontrol tertentu tanpa mengganggu keamanan dari direktori yang
dilayankan pada publik. Untuk keterangan singkat dari atribut yang ada pada tiap direktori, Anda
bisa baca sub bagian yang lain, yakni 'Atribut Direktori'. Berikut atribut yang diberikan secara
default oleh Apache terhadap DocumentRoot.
<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

<Directory "/var/lib/apache/htdocs">

Options Indexes FollowSymLinks

Order allow,deny

Allow from all

</Directory>

UserDir public_html

Nama direktori yang ditambahkan ke dalam direktori home dari user, jika ada permintaan user.
Misal, permintaan http://nama.domain.anda/fade akan membuat direktori
public_html di direktori home untuk user fade. Anda dapat memberikan seting secara default
dari direktori tersebut, misalnya :
<Directory /*/public_html>

AllowOverride FileInfo AuthConfig Limit

Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

<Limit GET POST OPTIONS PROPFIND>

Order allow,deny

Allow from all

</Limit>

<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>

Distributed by: http://abebudi.blogspot.com/


Order deny,allow

Deny from all

</Limit>

</Directory>

Kesulitan dalam penerapan direktori ini biasanya adalah Access Forbidden atau User not Found.
Untuk itu pastikan bahwa :
1. User yang bersangkutan terdaftar dalam sistem
2. Pemilik daemon httpd punya hak baca terhadap direktori tersebut.
3. Perhatikan konfigurasi file .htaccess yang ada di tiap direktori.
DirectoryIndex index.html index.htm default.htm

Nama file yang dijalankan secara otomatis pada saat membuka indeks direktori. Anda dapat
memasukkan nama lain dengan spasi, sebagaimana contoh di atas.
AccessFileName .htaccess

Nama file yang dilihat saat mengakses masing-masing direktori. File ini untuk informasi kontrol
akses. Hal ini berkaitan dengan pilihan berikut :
<Files .htaccess>

Order allow,deny

Deny from all

</Files>

Pilihan tersebut menghindarkan file .htaccess untuk dibaca user lewat web. File ini perlu
dilindungi karena berisi informasi host-host yang punya hak akses atau tidak. Pastikan Anda
mengubah file di sini jika Anda mengubah AccessFileName yang telah didefinisikan
sebelumnya.
CacheNegotiatedDocs

Memungkinkan proxy untuk menyimpan cache web dari server. Jika Anda menghilangkan pilihan
ini (dengan memberi tanda pagar di depannya, maka Apache akan mengirim 'Pragma: no-
cache' pada setiap dokumen yang diakses. Hal ini berarti jika user mengakses lewat proxy, maka
Apache meminta proxy tersebut untuk tidak melakukan caching terhadap halamannya.
UseCanonicalName On

Jika diset off maka server akan mengembalikan response hostname:port jika canonical name
diakses. Jika diset on, maka Apache akan menggunakan ServerName dan port untuk membentuk
canonical name.
TypesConfig /var/lib/apache/conf/mime.types

Direktori tempat menyimpan file mime.types.

Distributed by: http://abebudi.blogspot.com/


DefaultType text/plain

Default MIME types yang digunakan jika sebuah dokumen tidak dikenal. Disarankan untuk
menggunakan 'text/plain' jika mayoritas file html atau teks. Jika mayoritas gambar atau
aplikasi, disarankan untuk menggunakan 'application/octet-stream'
<IfModule mod_mime_magic.c>

MIMEMagicFile /var/lib/apache/conf/magic

</IfModule>

modul mod_mime_magic memungkinkan server menggunakan petunjuk dari isi filenya untuk
menentukan tipenya. MIME MagicFile menentukan di direktori mana definisi dari petunjuk tipe
tersebut berada. Pilihan ini menggunakan if, sebab modul mod_mime_magic tidak secara default
menjadi bagian kompilasi. Anda harus menambahkan sendiri (lihat bagian DSO, Dynamic Shared
Object) dan mengkompilasi ulang. Jika modul tersebut tidak ada, maka MIMEMagicFile tidak akan
memproses pilihan ini.
HostnameLookups Off

Log dari nama klien yang mengakses atau alamat IP-nya saja. Jika diset on maka log akan mencatat
misalnya www.apache.org, jika off, log hanya mencatat 204.62.129.132. Secara default diset
off sebab akan meringankan bandwith internet secara global. Bayangkan jika diset on, maka setiap
kali klien mengakses halaman, akan ada minimal sekali permintaan resolve name ke name server.
ErrorLog /var/log/error_log

Letak file log error. Untuk <VirtualHost> jika Anda tidak mendefinisikan file log error, maka
setiap error di <VirtualHost> tersebut akan dilog di sini juga.
LogLevel warn

Jumlah pesan kesalahan yang dicatat di error_log. Nilai yang dimasukkan adalah debug, info,
notice, warn, error, crit, aler, emerg
LogFormat "%h %l %u %t\"%r\" %>s %b" common

Format dari pesan yang dicatat dalam file log.


CustomLog /var/log/access_log common

Letak file log akses. Jika dalam <VirtualHost> Anda tidak mendefinisikan letak file log akses,
maka aktivitas akses dari <VirtualHost> akan dicatat di sini pula.
CustomLog /var/log/referer_log referer

CustomLog /var/log/agent_log agent

CustomLog /var/log/access_log combined

Dipergunakan untuk menentukan file log yang berbeda. Combined berarti kombinasi antara log
referer dan log user agent.

Distributed by: http://abebudi.blogspot.com/


ServerSignature On

Menambahkan satu baris yang berisi versi Apache server yang digunakan dan nama virtual host
pada setiap halaman yang dibuat oleh server. Misalnya dokumen error, daftar direktori FTP, dll).
Pilihan yang berlaku di sini adalah On, Off atau Email untuk mengirim email kepada
ServerAdmin.
Alias /icons/ "/var/lib/apache/icons/"

Memberikan alias sebanyak mungkin yang Anda inginkan. Formatnya adalah :


Alias namasamaran namaasli

Jika diberikan tanda / setelah nama samaran sebagaimana contoh di atas, maka Anda perlu
menuliskannya dalam URL jika ingin mengaksesnya. Alias dengan bentuk seperti itu hanya dipakai
untuk membantu linking pada saat menyusun file html. Untuk contoh alias ayng biasa dipergunakan
:
Alias /fade "/home/fade/publik"

Maka user bisa mengaksesnya dengan alamat http://nama.domain.anda/fade dan


langsung menuju direktori /home/fade/publik. Setiap alias yang didefinisikan harus
diberikan atribut terhadap direktorinya. Misalnya untuk alias di atas diberikan atribut :
<Directory "/home/fade/publik">

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>

Disarankan pula untuk mengeset alias terhadap direktori cgi-bin, direktori yang memiliki atribut
execute dan memungkinkan sebuah skrip cri dieksekusi. Contoh pemberian alias terhadap direktori
cgi-bin :
ScriptAlias /cgi-bin/ "/var/lib/apache/cgi-bin/"

<Directory "/var/lib/apache/cgi-bin">

AllowOverride None

Options None

Order allow,deny

Allow from all

Distributed by: http://abebudi.blogspot.com/


</Directory>

Redirect nama.domain.lama nama.domain.baru

Pilihan di atas untuk mengarahkan klien yang mengakses file atau direktori yang sebelumnya ada di
server, namun dihapus atau dipindahkan.
IndexOptions FancyIndexing

Pilihan ini untuk menentukan tampilan pada saat indeks direktori diakses oleh user. Pilihan yang
ada adalah FancyIndexing dan StandardIndexing.
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*

AddIconByType (IMG,/icons/image2.gif) image/*

Pilihan di atas untuk menentukan file icon terhadap jenis file yang ada dalam daftar direktori. Ini
hanya berlaku terhadap pilihan FancyIndexing. Anda bisa membuat variasi sebanyak mungkin
dari tipe file yang ada dalam direktori Anda.
DefaultIcon /icons/unknown.gif

Dipergunakan untuk icon tipe file yang tidak dikenal, atau tidak didefinisikan sebelumnya.
AddDescription "GZIP compressed document" .gz

Memberikan deskripsi dari masing masing tipe file yang ditampilkan. Pilihan ini hanya berlaku
untuk FancyIndexing.
ReadmeName README

Nama file README yang dimasukkan terhadap semua direktori yang diindeks.
HeaderName HEADER

Nama file yang dimasukkan pula dalam direktori yang diindeks. Server pertama kali akan membaca
HEADER.html, jika tidak ditemukan, maka akan mencari HEADER.txt, dan memasukkannya
dalam format plaintext.
IndexIgnore .??* * *# HEADER* README* RCS CVS *,v *,t

Nama file yang diabaikan pada saat listing direktori. Penggunaan wildcard diperbolehkan. File-file
ini tidak akan terlihat saat direktorinya diindeks/dilisting.
AddEncoding x-gzip gz

Memungkinkan browser tertentu (Mosaic/X 2.1+) melakukan dekompresi langsung lewat browser.
AddLanguage en .en

Menentukan bahasa dari dokumen. Anda dapat memberikan browser file dengan bahasa yang

Distributed by: http://abebudi.blogspot.com/


dimengerti oleh browser. Sebagai catatan, bahwa Anda dapat mendefinisikan sendiri bahasa yang
dipergunakan. Misal : AddLanguage id .in
LanguagePriority en fr de

Prioritas bahasa yang dipergunakan.


AddType application/x-httpd-php3 .php3

Dipergunakan untuk membuka file dengan memasukkan dalam mime.types tanpa harus
mengeditnya. Yang sering digunakan misalnya untuk memproses modul php, sebagaimana contoh
diatas.
AddHandler cgi-script .cgi

Dipergunakan untuk memetakan 'handlers' yang dipergunakan dan perintah yang dijalankan pada
file dengan ekstensi tertentu. Contoh di atas untuk menjalankan skrip dengan ekstensi .cgi.
Contoh lainnya adalah :
AddHandler server-parsed .shtml

AddHandler send-as-is asis

AddHandler imap-file map

AddHandler type-map var

Action handler-name /cgi-script/location

Dipergunakan untuk mendefinisikan 'handler' yang dipergunakan atau perintah yang dijalankan
untuk memproses pada ekstensi file yang didefinisikan sebelumnya. Biasanya digunakan untuk
skrip cgi. Bentuk lain dari pilihan ini :
Action media/type /cgi-script/location

MetaDir .web

Direktori di mana server dapat menemukan file-file informasi meta. Informasi ini akan dilampirkan
sebagai header pada setiap dokumen yang dikirimkan. Pilihan di atas biasanya diikuti
MetaSuffix untuk mendefinisikan file meta yang akan dilampirkan. Contoh :
MetaSuffix .meta

ErrorDocument 404 /missing.html

Dipergunakan untuk membuat file error response sendiri. Respon ini mempunyai tiga bentuk :
• Teks murni; misal

Distributed by: http://abebudi.blogspot.com/


ErrorDocument 404 "File yang Anda akses tidak tersedia.
• Menunjuk file lokal; misal
ErrorDocument 404 /cgi-bin/missing_handler.pl
• Menunjuk file eksternal
ErrorDocument 402 http://server.lain.com/info_daftar.html

BrowserMatch "Mozilla/2" nokeepalive

Pilihan BrowserMatch memberikan environment khusus berdasarkan header browser yang


mengakses. Dalam contoh di atas, jika browser yang digunakan adalah Netscape 2.x akan dimatikan
fasilitas keepalive-nya.
<Location /server-status>

SetHandler server-status

Order deny,allow

Deny from all

Allow from 192.168.1.1

</Location>

Pilihan ini memungkinkan laporan status server dapat dilihat melalui browser. Dalam contoh di atas
mesin dengan alamat IP 192.168.1.2 dapat melihat laporan status server dengan mengetikkan :
http://nama.server/server-status.

Dengan fasilitas sejenis, Anda dapat mengaktifkan laporan konfigurasi server dengan memasukkan
pilihan di bawah ini :
<Location /server-info>

SetHandler server-info

Order deny,allow

Deny from all

Allow from .your_domain.com

</Location>

<Location /cgi-bin/phf*>

Distributed by: http://abebudi.blogspot.com/


Deny from all

ErrorDocument 403 http://nama.domain.Anda/phf_abuse_log.cgi

</Location>

Ada beberapa laporan bahwa sekelompok orang memanfaatkan bug lama dari versi pre-1.1 dengan
memanfaatkan skrip cgi yang menjadi bagian dari Apache. Pilihan di atas ini dapat digunakan untuk
menjebak dengan menggunakan file support/phf_abuse_log.cgi dengan mencatat setiap
klien yang mencoba skrip bug tersebut.
Apache dapat dimanfaatkan sebagai proxy, berdasarkan modul mod_proxy.c yang dikompilasi
saat instalasi. Untuk mengaktifkannya masukkan pilihan berikut:
<IfModule mod_proxy.c>

ProxyRequests On

<Directory proxy:*>

Order deny,allow

Deny from all

Allow from .nama.domain.Anda

</Directory>

Untuk mengaktifkan atau memblok klien yang menggunakan proxy dengan header HTTP/1.1
"Via:"
ProxyVia On

Pilihannya adalah Off | On | Full | Block. Selain itu, Apache juga mendukung caching
terhadap halaman-halaman yang diakses lewat proxynya. Untuk mengaktifkan dan
mengkonfigurasikan, tambahkan pilihan berikut :
CacheRoot "/var/lib/apache/proxy"

CacheSize 5

CacheGcInterval 4

CacheMaxExpire 24

CacheLastModifiedFactor 0.1

CacheDefaultExpire 1

NoCache nama.domain.lain domain.lainnya.lagi 192.168.1.1

</IfModule>

Distributed by: http://abebudi.blogspot.com/


Virtual Hosts
Bagian ini berisi pilihan jika Anda akan menggunakan domain atau hostnames lebih dari satu dalam
satu server.
Untuk dapat memanfaatkan Virtual Hosts, pertama Anda harus mendefinisikan dulu nomor IP dan
port yang dipergunakan, minimal satu. Contoh :
NameVirtualHost 192.168.1.2:80

NameVirtualHost 192.168.1.3

Contoh konfigurasi Virtual Hosts dapat dilihat sebagai berikut :


<VirtualHost 192.168.1.2>

ServerAdmin webmaster@domain.virtual.Anda

DocumentRoot /www/docs/domain.virtual.Anda

ServerName domain.virtual.Anda

ErrorLog logs/domain.virtual.Anda-error_log

CustomLog logs/domain.virtual.Anda-access_log common

</VirtualHost>

Atribut Direktori

Subsections
• AllowOverride
• Options

Distributed by: http://abebudi.blogspot.com/


AllowOverride

Dalam mengakses setiap file dalam direktori, apache membaca file akses yang telah ditentukan
sebelumnya. File akses tersebut berada dalam tiap direktori. Atribut AllowOverride
mengesampingkan hal itu.
1. AllowOverride
diikuti dengan None (berarti mengesampingkan semua file akses) atau All (menggunakan
semua parameter) atau parameter pilihan berikut :
2. AuthConfig
Memungkinkan penggunaan parameter-parameter lain yang berkaitan dengan autentikasi.
Misalnya; AuthName, AuthType dll.
3. FileInfo
Memungkinkan penggunaan parameter-parameter lain yang berkaitan dengan kontrol
terhadap tipe dokumen. Misalnya; AddType, DefaultType dll.
4. Indexing
Memungkinkan penggunaan parameter-parameter lain yang berkaitan dengan indeks
direktori. Misal; DefaultIcon, FancyIndexing dll.
5. Limit
Memungkinkan penggunaan parameter-parameter tentang akses file (allow, deny dan
order)
6. Options
Memungkinkan penggunaan parameter yang mengontrol direktori khusus. Misal;
Options.
Options
Atribut ini mengontrol fitur yang ditawarkan tiap direktori. Atribut option diikuti oleh :
1. All
Semua pilihan, kecuali untuk MultiView.
2. ExecCGI
Diperbolehkan mengeksekusi CGI.
3. FollowSymLinks
Server akan mengikuti link simbolik pada direktori yang bersangkutan. Mengikuti link
simbolik tidak akan merubah nama tujuan (path name) URL-nya.
4. Includes
Diperbolehkan Server-side includes. Misalnya eksekusi skrip perl.
5. IncludesNOEXEC
Server-side includes diperbolehkan, tapi perintah #exec dan #include atas skrip CGI tidak
diperbolehkan.
6. Indexes
Jika sebuah file mengakses sebuah direktori yang tidak mempunyai DirectoryIndex
(misalnya, index.html) maka server akan menampilkan listing file dalam direktori yang
bersangkutan.
7. MultiViews
MultiViews terhadap isi diperbolehkan.
8. SymLinksIfOwnerMatch
Server hanya akan mengikuti Symlinks jika yang mengakses adalah pemilik direktori atau
file yang bersangkutan.

Distributed by: http://abebudi.blogspot.com/


Program Bantu Apache
Selain binary httpd, apache memiliki 2 program bantu :

Subsections
• apxs (Apache Extension Tool)
• ab (Apache HTTP Server Benchmarking Tools)

apxs (Apache Extension Tool)


Adalah program bantu untuk membangun dan menginstal modul-modul tambahan untuk apache
HTTP server. Apxs melakukannya dengan membangun Dynamic Shared Object (DSO) dari satu
sumber atau lebih sehingga dapat dimuatkan pada Apache server lewat paramater LoadModule
dari modul mod_so (lihat bagian modul Apache yang telah dibahas sebelumnya). Misalnya untuk
menambahkan modul foo (mod_foo.c), cukup ketikkan :
$ apxs -i -a -c mod_foo.c
Pilihan -i berarti menginstal, -a adalah otomatis menjalankan modul, -c berarti kompilasi pada
saat instalasi. Untuk pilihan-pilihannya secara lengkap, tersedia dalam manual apxs.
$ man apxs

ab (Apache HTTP Server Benchmarking Tools)


Adalah program bantu untuk melakukan benchmarking terhadap Hyper Text Transfer Protocol
(HTTP) server. Program ini terutama menunjukkan berapa banyak permintaan yang dapat dilayani
oleh apache pada satu waktu. Contoh :
$ ab -k -n 900 -w benchmark.html http://localhost:80
Pilihan -k berarti mengaktifkan fitur KeepAlive (misal satu PID diakses oleh beberapa permintaan),
-n adalah jumlah permintaan yang akan ditest, -w menuliskan output ke dalam sebuah file html,
dan http://localhost:80 menunjukkan alamat site yang akan ditest dan port yang
dipergunakan.

Distributed by: http://abebudi.blogspot.com/


Binary Apache
Subsections
• Binary Apache di Slackware
• Binary Apache di SuSE
• Binary Apache di RedHat

Binary Apache di Slackware


Binary Apache di Slackware terletak di diskset n9. Pada Slackware 7.0 versi yang disertakan dalam
aplikasinya adalah Apache Versi 1.3.9. Jika Anda belum menginstal Apache pada saat instalasi,
instalasi dapat dilakukan lewat skrip pkgtool. Sebagai root, cukup ketikkan pkgtool, dan ikuti
petunjuk yang ada.
# pkgtool
Apache menyimpan semua program apache dalam satu direktori yakni /var/lib/apache.
Direktori tersebut terdiri dari :
1. sbin
Binary apache yang dapat dieksekusi. Terdiri dari apachectl, httpd, apxs dan ab.
2. libexec
Modul yang dibutuhkan oleh Apache
3. include
Library yang dibutuhkan untuk menjalankan Apache.
4. cgi-bin
Contoh skrip cgi yang dapat dieksekusi. Direktor ini juga dilink lewat definisi alias pada file
httpd.conf
5. conf
Berisi file konfigurasi Apache. Termasuk di dalamnya httpd.conf, srm.conf dan
access.conf. Slackware memusatkan file konfigurasi Apache dalam satu file, yakni
httpd.conf, dan membiarkan srm.conf serta access.conf kosong.
Untuk mengadministrasi Apache, cukup gunakan skrip apachectl. Penggunaannya adalah:
# /var/lib/apache/sbin/apachectl (start | stop | restart |
configtest | help | fullstatus | status | graceful)
Keterangan dalam tanda kurung merupakan pilihan, dijalankan tanpa tanda kurung. Misalnya :
# /var/lib/apache/sbin/apachectl start
Keterangan dari masing masing pilihan :
1. start
Mulai menjalankan httpd (daemon Apache)
2. stop
Menghentikan layanan httpd
3. restart
Restart httpd jika berjalan dengan mengirimkan SIGHUP atau menjalankan apache jika saat
itu tidak aktif.

Distributed by: http://abebudi.blogspot.com/


4. fullstatus
Melihat status apache secara lengkap, membutuhkan lynx dan mod_status enabled
5. status
Melihat status apache secara singkat, membutuhkan lynx dan mod_status enabled
6. graceful
Melakukan restart secara 'baik-baik' dengan mengirimkan SIGUSR1 atau menjalankan
apache jika tidak aktif.
7. configtest
Mengetest sintaks dan parameter yang ditentukan di httpd.conf
8. help
Melihat pilihan-pilihan yang ada dan keterangannya.

Binary Apache di SuSE


Binary Apache di SuSE terletak pada paket n1. Jika terlewatkan pada saat instalasi awal, Anda
dapat instalasi langsung melalui YaST. Sebagai root, cukup ketikkan YaST.
# yast
Pilih di bagian Choose/Install Packages. Jangan lupa untuk memasukkan CD SuSE jika sebelumnya
anda instal lewat CDROM.
Untuk file konfigurasinya, SuSE menempatkannya di direktori /etc/httpd. Sedangkan
binarynya, yakni httpd, apxs dan ab, diletakkan di /usr/sbin. Program bantu untuk mengadministrasi
Apache, yang juga bernama httpd, terletak di /usr/sbin/init.d . Untuk pengaturannya dapat
menggunakan perintah :
$ /usr/sbin/init.d/httpd |start|stop|restart|reload|

Binary Apache di RedHat


Di RedHat, Apache merupakan salah satu daemon yang dapat diatur lewat LinuxConf. Untuk
mengkonfigurasikan Apache, masuk ke bagian Config - Networking - Server Tasks
- Apache. Untuk memahami menu-menu yang ditawarkan, akan lebih mudah Anda mengerti jika
telah membaca bahasan file konfigurasi di bagian sebelumnya. Linuxconf menawarkan menu :
1. Defaults
Bagian ini berisi konfigurasi dasar yang akan mengubah sub bagian global Environment
pada file httpd.conf. Pilihan-pilihan yang ada meliputi :
1. Administrator Email
Alamat email yang disertakan pada setiap halaman yang berisi pesan kesalahan
kepada pengakses. Biasanya webmaster@nama.domain.Anda
2. Domain IP Address
Jika Anda ingin beberapa virtual domain berbagi dalam satu alamat IP, masukkan IP
tersebut disini.
3. ServerName
Nama Server. Pastikan memiliki nama DNS yang valid.
4. Server Alias
Biarkan kosong, tentukan dalah virtual domains.
5. Error Log, Transfer Log, Agent Log, Referer Log

Distributed by: http://abebudi.blogspot.com/


Penentuan file log
6. Script Alias
Direktori alias tempat program CGI diletakkan (pada direktori yang bisa dieksekusi)
7. User, Group
Nama user dan group untuk menjalankan Apache Server.
2. Virtual Domains
Mendefinisikan virtual domains.
3. Sub Directory Specs
Mendefinisikan alias untuk direktori yang akan dipublikasikan.
4. Files Specs
5. Modules
Modul-modul yang aktif, dan daftar modul yang telah didukung.
6. Performance
Menentukan alias untuk menampilkan kemampuan server, serta status server.
7. Mod_ssl configuration
Konfigurasi SSL jika mod_ssl diaktifkan.
Selesai mengkonfigurasikan lewat LinuxConf, dan Anda klik Accept untuk update to Curent
State, maka semua perubahan akan disimpan ke dalam file httpd.conf, dan daemon httpd akan
direstart dengan menggunakan konfigurasi baru.

Ringkasan
Pada bagian ini, telah dipelajari bagaimana instalasi dan kompilasi Apache Versi 1.3. Selain itu juga
telah direview file konfigurasi penting yang digunakan oleh Apache, yakni httpd.conf (di mana
yang dibahas di sini mencakup tiga file, yakni httpd.conf, beserta srm.conf dan
access.conf). Untuk dapat memanfaatkan secara maksimal kemampuan Apache ini, Anda
harus pahami benar pilihan-pilihan yang tersedia, dan modul-modul mana yang mendukungnya.
Daftar modul yang diberikan Apache, serta pilihan-pilihan yang didukung olehnya, dapat dibaca di
dokumentasi Apache yang disertakan dalam disribusinya. File ini terletak di PREFIX/htdocs;
dimana PREFIX adalah direktori utama yang Anda tentukan saat instalasi. Slackware
menempatkannya di /var/lib/apache, sehingga dokumentasinya bisa dilihat di direktori
/var/lib/apache/htdocs. Dokumentasi online dapat diakses di
http://www.apache.org/docs.

Distributed by: http://abebudi.blogspot.com/


Server Mail
Sudah menjadi fakta bahwa selama bertahun-tahun Sendmail merupakan Mail Transfer Agent
(MTA, baca mail server) di lingkungan Unix. Sendmail sendiri mempunyai sejarah panjang dalam
masalah keamanan, dan terkenal dengan banyaknya pilihan untuk mengkonfigurasikannya.
Beberapa contoh masalah keamanan di Sendmail misalnya :
• MIME Buffer Overflow Bug. Beberapa badan riset independen menemukan bahwa beberapa
klien e-mail thd Sendmail Versi 8.9.1 berpotensi untuk diserang MIME header-based attack.
Hal ini dapat terjadi jika sebuah mail membawa header MIME yang tidak diformat dengan
benar akan menyebabkan buffer overflow. Isu ini dapat dibaca di
http://www.cert..org/advisories/CA-
98.10.mime_buffer_overflows.html.
• HELO Buffer overflow. Pada versi 8.9, jika seseorang memberikan perintah HELO dan
diikuti string/karakter lebih dari 1 Kb, atau kurang lebih 855 karakter, akan
menyembunyikan identitas pengirim.
Selain sendmail, banyak bermunculan beberapa Mail Transfer Agent sebagai alternatif. qmail,
Exim dan Postfix merupakan mailer yang banyak digunakan. Bab ini akan membahas secara
singkat, bagaimana mengkonfigurasikan dan menjalankan 2 MTA, yakni Sendmail dan qmail.
Subsections
• Sendmail
• Menjalankan sendmail sebagai Daemon.
• Slackware
• SuSE
• RedHat
• POP3 di Sendmail
• Administrasi Sendmail
• Alias sendmail (sendmail aliases)
• Personal Mail Forwarding
• Sendmail.cf
• Bagaimana membuat konfigurasi sendmail (sendmail.cf)?
• sendmail.cf di SuSE
• sendmail.cf di RedHat
• qmail
• Instalasi qmail
• Seting mbox
• Seting Maildir
• Test mengirim e-mail
• Seting Klien Windows 9x atau Windows NT
• Program Tambahan qmail (Add on) >> Ringkasan

Distributed by: http://abebudi.blogspot.com/


Sendmail
Sendmail adalah program yang mengimplementasikan kebutuhan umum fasilitas mail routing antar
jaringan, yang bekerja dibawah sistem UNIX. Sendmail memiliki pilihan yang sangat banyak dan
fleksibel untuk dikonfigurasikan. Sendmail merupakan MTA yang sangat terkenal, dan terdapat
hampir disemua OS unix yang ada saat ini, disusun berdasarkan :
• RFC821 (Simple Mail Transport Protocol),
• RFC822 (Internet Mail Headers Format),
• RFC1123 (Internet Host Requirements),
• RFC2045 (MIME),
• RFC1869 (SMTP Service Extensions),
• RFC1652 (SMTP 8BITMIME Extension),
• RFC1870 (SMTP SIZE Extension),
• RFC1891 (SMTP Delivery Status Notifications),
• RFC1892 (Multipart/Report),
• RFC1893 (Mail System Status Codes),
• RFC1894 (Delivery Status Notifications),
• RFC1985 (SMTP Service Extension for Remote Message Queue Starting),
• RFC2033 (Local Message Transmission Protocol).
Pada saat instalasi Linux, sendmail secara otomatis akan terinstall serta dapat difungsikan untuk
mengirim (SMTP) dan membaca e-mail, menyediakan sistem e-mail alias yang besar dan
menangani mailing list.
Mengingat semua fiturnya sangat fleksibel untuk dikonfigurasikan, sendmail mempunyai file
konfigurasi yang sangat besar (biasanya di /etc/sendmail.cf). Hal ini menyulitkan pengguna
biasa untuk mengkonfigurasikan secara manual. Meskipun demikian banyak program bantu
(biasanya berupa skrip atau macro) yang memudahkan pengadministrasian sendmail.

Subsections
• Menjalankan sendmail sebagai Daemon.
• Slackware
• SuSE
• RedHat
• POP3 di Sendmail
• Administrasi Sendmail
• Alias sendmail (sendmail aliases)
• Personal Mail Forwarding
• Sendmail.cf
• Bagaimana membuat konfigurasi sendmail (sendmail.cf)?
• sendmail.cf di SuSE
• sendmail.cf di RedHat

Distributed by: http://abebudi.blogspot.com/


Menjalankan sendmail sebagai Daemon.
Untuk dapat menerima dan mengirim e-mail, baik dalam lingkup internet dan intranet, sendmail
harus dijalan pada saat pertama kali komputer dihidupkan (sebagai daemon). Secara default, Linux
akan menjalankannya sebagai daemon.

Subsections
• Slackware
• SuSE
• RedHat

Slackware

Untuk menjalankan sendmail sebagai daemon di Slackware, skripnya dapat ditemukan di


/etc/rc.d/rc.M. Secara keseluruhan, skrip tersebut menjalankan semua daemon pada modus
multi user. Untuk skrip sendmail, dapat ditemukan di baris 54
# Start the sendmail daemon:

if [ -x /usr/sbin/sendmail ]; then

echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -q15m)..."

/usr/sbin/sendmail -bd -q15m

Pertama kali script diatas akan mengecek keberadaan program sendmail, jika ada maka akan
dijalankan perintah dibawahnya jika tidak akan dilewatkan. Untuk pilihan -q adalah memberitahu
sendmail berapa lama untuk memproses antrian mail. Contoh diatas adalah memproses setiap satu
jam (-q1h). Contoh lain, misalnya diubah menjadi (-q30m) artinya akan diproses dalam waktu 30
menit. Disarankan untuk memproses antrian ini dalam waktu yang tidak terlalu lama. Hal ini
disebabkan karena antrian yang besar akan berpengaruh terhadap kinerja server, dan tentu akan
berpengaruh terhadap kinerja jaringan secara keseluruhan. Pilihan -bd menunjukkan bahwa
sendmail dijalankan sebagai daemon dan menunggu (listen) di port 25 (SMTP) TCP untuk mail
yang tidak terlalu lama. Hal ini disebabkan karena antrian yang besar akan berpengaruh terhadap
kinerja server, dan tentu akan berpengaruh terhadap kinerja jaringan secara keseluruhan. Pilihan
-bd menunjukkan bahwa sendmail dijalankan sebagai daemon dan menunggu (listen) di port 25
(SMTP) TCP untuk mail yang datang.

SuSE

Skrip untuk menjalankan, mematikan, mengecek status dan merestart daemon sendmail di SuSE
terletak di /etc/rc.d/init.d/sendmail. Berikut kutipannya :
#! /bin/sh
# Copyright (c) 1996 S.u.S.E. Gmbh Fuerth, Germany. All rights

Distributed by: http://abebudi.blogspot.com/


# reserved.
#
# Author: Florian La Roche <florian@suse.de>, 1996, 1997
# Werner Fink <werner@suse.de>, 1996
#

. /etc/rc.config

# Determine the base and follow a runlevel link name.


base=${0##*/}
link=${base#*[SK][0-9][0-9]}

# Force execution if not called by a runlevel directory.


test $link = $base && SMTP=yes
test "$SMTP" = yes || exit 0

if test -z "$SENDMAIL_ARGS" ; then


SENDMAIL_ARGS="-bd -q30m -om"
fi

# The echo return value for success (defined in /etc/rc.config).


return=$rc_done
case "$1" in
start)
echo -n "Initializing SMTP port. (sendmail)"
startproc /usr/sbin/sendmail $SENDMAIL_ARGS ||
return=$rc_failed
echo -e "$return"
;;
stop)
echo -n "Shutting down SMTP port:"
killproc -TERM /usr/sbin/sendmail || return=$rc_failed
echo -e "$return"
;;

Distributed by: http://abebudi.blogspot.com/


restart)
$0 stop && $0 start || return=$rc_failed
;;
reload)
echo -n "Reload service sendmail"
killproc -HUP /usr/sbin/sendmail || return=$rc_failed
echo -e "$return"
;;
status)
echo -n "Checking for service sendmail: "
checkproc /usr/sbin/sendmail && echo OK || echo No process
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
esac

# Inform the caller not only verbosely and set an exit status.
test "$return" = "$rc_done" || exit 1
exit 0
Untuk mengadministrasikannya, tersedia pilihan start, stop, status, restart,
reload. Misalnya untuk melihat status sendmail :
# /etc/rc.d/init.d/sendmail status

RedHat

RedHat memiliki skrip yang agak mirip dengan SuSE untuk menadministrasikan daemon sendmail.
Skrip tersebut dapat ditemukan pula di /etc/rc.d/init.d/sendmail.
#!/bin/sh
#
# sendmail This shell script takes care of starting and
stopping
# sendmail.
#
# chkconfig: 2345 80 30

Distributed by: http://abebudi.blogspot.com/


# description: Sendmail is a Mail Transport Agent, which is the
# program\
# that moves mail from one machine to another.
# processname: sendmail
# config: /etc/sendmail.cf
# pidfile: /var/run/sendmail.pid

# Source function library.


. /etc/rc.d/init.d/functions

# Source networking configuration.


. /etc/sysconfig/network

# Source sendmail configureation.


if [ -f /etc/sysconfig/sendmail ] ; then
. /etc/sysconfig/sendmail
else
DAEMON=yes
QUEUE=1h
fi

# Check that networking is up.


[ ${NETWORKING} = "no" ] && exit 0

[ -f /usr/sbin/sendmail ] || exit 0

RETVAL=0

# See how we were called.


case "$1" in
start)
# Start daemons.

Distributed by: http://abebudi.blogspot.com/


echo -n "Starting sendmail: "
/usr/bin/newaliases > /dev/null 2>&1
for i in virtusertable access domaintable mailertable ; do
if [ -f /etc/mail/$i ] ; then
makemap hash /etc/mail/$i < /etc/mail/$i
fi
done
daemon /usr/sbin/sendmail $([ "$DAEMON" = yes ] && echo
-bd)\
$([ -n "$QUEUE" ] && echo -q
$QUEUE)
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/sendmail
;;
stop)
# Stop daemons.
echo -n "Shutting down sendmail: "
killproc sendmail
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
status)
status sendmail
RETVAL=$?
;;
*)
echo "Usage: sendmail {start|stop|restart|status}"

Distributed by: http://abebudi.blogspot.com/


exit 1
esac

exit $RETVAL

RedHat menggunakan /etc/rc.d/init.d/.function untuk menyimpan fungsi dan variabel skripnya.


Sendmail bisa diadministrasikan dengan menjalankan perintah (sebagaimana di SuSE) start, stop,
restart, status. Misalnya untuk menghentikan daemon sendmail :
# /etc/rc.d/init.d/sendmail stop

POP3 di Sendmail
Agar user dapat mengambil e-mail secara remote, maka perlu dipasang POP3 Server. Dalam hal ini,
sendmail tidak mendukungnya, dan untuk dapat menjalankan POP3 harus menggunakan program
tambahan lain. Secara default, jika anda instal pine (klien e-mail) saat instalasi, maka program
tersebut secara otomatis menyertakan ipop3d yang melayani pengguna di port 110. Tidak ada
konfigurasi secara khusus.
Dari sisi user, cukup menunjuk mesin Linux sebagai SMTP server (yang dilayani oleh sendmail)
dan POP3 server (yang dilayani oleh ipop3d). Misalnya untuk klien Outlook Express, seting untuk
servernya bisa lewat Tools - Accounts - Mail - Add - Mail. Pada bagian E-mail
Server Names, cukup isikan nama server Linux, atau alamat IP-nya. Jika diisi nama server, perlu
diperhatikan seting MX Record pada DNS servernya. Untuk ujicoba memastikan bahwa sistem
berjalan baik, isikan terlebih dahulu nomor IP-nya.
Gambar 8
E-mail Server Names di Outlook Express

Distributed by: http://abebudi.blogspot.com/


Administrasi Sendmail

Subsections
• Alias sendmail (sendmail aliases)
• Personal Mail Forwarding

Alias sendmail (sendmail aliases)

Fungsi alias disini adalah untuk :


• Memberikan nama alternatif kepada setiap user
• Mailing list
Biasanya untuk aliases ini disimpan di /etc/aliases yang merupakan file teks. Format
penulisannya yaitu :
Alias: penerima, [penerima, ...]
Alias ini biasanya digunakan untuk menerima khusus seperti postmaster atau root. Pada saat
membuat aliasnya dapat digunakan hanya nama atau alamat lengkap, contoh : anggap bahwa
domain yang digunakan adalah nuts.com

# special names
postmaster: root
root: wars

# accept first-intial_last-name@ nuts.com


kacang: anda@peanut
tanah: andajuga@walnut

# a mailing list
admin: wars, root, anda@peanut , andajuga@walnut , fade2blac@pecan
, sipoer

owner-admin: root

jika ada e-mail yang dikirim kan ke alamat diatas maka akan disampaikan kepada user yang ada
disebelah kanan alias, contoh bila ada e-mail yang ditujukan ke postmaster@nuts.com akan
dikirimkan ke user root dan begitupun dengan alias admin maka akan dikirim ke user wars,
root, anda@peanut dan seterusnya.

Distributed by: http://abebudi.blogspot.com/


Untuk alias ini sendmail tidak langsung mengenal pada saat ada penambahan ataupun pengurangan
data, untuk supaya dapat dikenal maka harus dilakukan perintah newaliases atau sendmail
-bi oleh user root.

Personal Mail Forwarding

Untuk forwarding ini selain dapat dilakukan oleh aliases juga dapat dilakukan dengan
menambahkan file .forward pada direktori user masing-masing dan ini bisa dilakukan oleh user
yang bersangkutan sementara untuk aliases hanya dapat dilakukan oleh superuser atau root, jadi
apabila user ingin memindahkan alamat e-mailnya cukup dengan membuat personal mail
forwarding ini. Contoh user wars akan dipindahkan ke user wars yang ada di domain domain.com
Berarti isi dari file .forward ini adalah :
Wars@domain.com
Apabila ada e-mail untuk user wars@nuts.com akan secara otomatis dikirim lagi ke user
wars@domain.com
Biasanya .forward ini digunakan untuk forwarding sementara. Dan semua konfigurasi untuk
sendmail ini ditentukan oleh file /etc/sendmail.cf.

Sendmail.cf
Seperti telah disebutkan sebelumnya bahwa semua konfigurasi sendmail ini terdapat file
/etc/sendmail.cf yang berisi bermacam-macam konfigurasi yang secara umum dibagi 3
fungsi utama yaitu :
• Mendefinisikan lingkungan sendmail ( sendmail environment )
• Menuliskan kembali alamat-alamat pada sintak yang benar (tepat) untuk mail penerima.
• Memetakan alamat-alamat kepada intruksi yang dibutuhkan untuk mengirimkan e-mail.
Didalam sendmail.cf ini juga dapat dibentuk beberapa macro, rule untuk mendefiniskan
lingkungan yang akan digunakan sendmail.

Subsections
• Bagaimana membuat konfigurasi sendmail (sendmail.cf)?
• sendmail.cf di SuSE
• sendmail.cf di RedHat

Distributed by: http://abebudi.blogspot.com/


Bagaimana membuat konfigurasi sendmail (sendmail.cf)?

Untuk memudahkan dalam memanfaatkan semua fasilitas dan kelebihan sendmail sebaiknya kode
sumber (source code) dari sendmail disertakan pada linux yang diinstall, atau untuk mendapatkan
versi terbaru sendmail dapat diambil di situs : http://www.sendmail.org .
Gunakan m4 script untuk memudahkan feature yang ada, contoh file m4 dengan nama file
locallinux.mc :
# File Name : locallinux.mc
divert(0)dnl
VERSIONID(`@(#)sendmail.mc 8.9.1 ')
OSTYPE(linux)dnl
DOMAIN(generic)dnl
FEATURE(always_add_domain)dnl
FEATURE(access_db, dbm -o /var/adm/sendmail/accessdb)dnl
FEATURE(blacklist_recipients)dnl
FEATURE(genericstable, hash -o /var/adm/sendmail/genericstable)dnl
FEATURE(virtusertable, hash -o /var/adm/sendmail/virtusertable)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Setelah itu jalankan program m4 yang biasanya terletak pada direktori /usr/sbin
# m4 ../m4/cf.m4 locallinux.mc > sendmail.cf
Perintah diatas akan membentuk file konfigurasi sendmail, yaitu sendmail.cf setelah itu pindahkan
sendmail.cf ini ke direktori /etc dan lakukan restart sendmail, dengan menjalankan script yang ada
pada direktori /etc/rc.d/rc.init/sendmail restart.
Berikut ini adalah contoh sendmail.cf yang telah ditambahkan beberapa fitur seperti contoh di atas.
Dimana ada fungsi untuk filter e-mail tertentu berdasarkan Header E-mail Reply-To atau
berdasarkan Subject e-mail.
#
##################################################################
##
# Copyright (c) 1998 Sendmail, Inc. All rights reserved.
# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
# Copyright (c) 1988, 1993
# The Regents of the University of California. All rights
reserved.
#
# By using this file, you agree to the terms and conditions set

Distributed by: http://abebudi.blogspot.com/


# forth in the LICENSE file which can be found at the top level of
# the sendmail distribution.
#

##################################################################
####
##################################################################
####
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### built by root@ns1.ut.astra.co.id on Wed Feb 23 11:41:37
GMT+0700 2000
##### in /data/source/sendmail-8.9.1/cf/cf
##### using ../ as configuration include directory
#####
##################################################################
####
##################################################################
####

##### @(#)cfhead.m4 8.22 (Berkeley) 5/19/98 #####


##### @(#)cf.m4 8.29 (Berkeley) 5/19/98 #####
##### @(#)sendmail.mc 8.9.1 #####

##### @(#)linux.m4 8.10 (Berkeley) 5/19/98 #####

##### @(#)generic.m4 8.9 (Berkeley) 5/19/98 #####

##### @(#)redirect.m4 8.10 (Berkeley) 5/19/98 #####

##### @(#)use_cw_file.m4 8.6 (Berkeley) 5/19/98 #####

Distributed by: http://abebudi.blogspot.com/


##### @(#)always_add_domain.m4 8.6 (Berkeley) 5/19/98 #####

##### @(#)access_db.m4 8.8 (Berkeley) 5/19/98 #####

##### @(#)blacklist_recipients.m4 8.9 (Berkeley) 5/19/98


#####

##### @(#)genericstable.m4 8.7 (Berkeley) 5/19/98 #####

##### @(#)virtusertable.m4 8.7 (Berkeley) 5/19/98 #####

##### @(#)proto.m4 8.223 (Berkeley) 6/30/98 #####

# level 8 config file format


V8/Berkeley

# override file safeties - setting this option compromises system


security
# need to set this now for the sake of class files
#O DontBlameSendmail=safe
O DontBlameSendmail=GroupWritableDirPathSafe,
forwardfileinunsafedirpath,
GroupWritableAliasFile

##################
# local info #
##################

Cwlocalhost
# file containing names of hosts for which we receive e-mail
Fw/etc/sendmail.cw

CGut.astra.co.id

Distributed by: http://abebudi.blogspot.com/


C{DomainMilisBlocking} onelist.com
# my official domain name
# ... define this only if sendmail cannot automatically determine
your domain
#Dj$w.Foo.COM

CP.

# "Smart" relay host (may be null)


DS

# operators that cannot be in local usernames (i.e., network


indicators)
CO @ % !

# a class with just dot (for identifying canonical names)


C..

# a class with just a left bracket (for identifying domain


literals)
C[[

# Generics table (mapping outgoing addresses)


Kgenerics hash -o /etc/mail/genericstable

# Virtual user table (maps incoming users)


Kvirtuser hash -o /etc/mail/virtusertable

# Access list database (for spam stomping)


Kaccess dbm -o /etc/mail/accessdb

# Blocking Mailing List Database

Distributed by: http://abebudi.blogspot.com/


Kmilis hash -o /etc/mail/milis

# User list Database


Kuserut hash -o /etc/mail/userut

# Resolve map (to check if a host exists in check_mail)


Kresolve host -a<OK> -T<TEMP>

# Hosts that will permit relaying ($=R)


FR-o /etc/mail/relay-domains

# who I send unqualified names to (null means deliver locally)


DR

# who gets all local e-mail traffic ($R has precedence for
unqualified names)
DH

# dequoting map
Kdequote dequote

# class E: names that should be exposed as from this host, even if


we masquerade
# class L: names that should be delivered locally, even if we have
a relay
# class M: domains that should be converted to $M
#CL root
#CE root
CEroot postmaster news uucp mailer-daemon rdist nobody daemon pop
imap

# who I masquerade as (null for no masquerading) (see also $=M)


DM

# my name for error messages

Distributed by: http://abebudi.blogspot.com/


DnMAILER-DAEMON

CPREDIRECT

# Configuration version number


DZ8.9.1

###############
# Options #
###############

# strip message body to 7 bits on input?


O SevenBitInput=False

# 8-bit data handling


O EightBitMode=pass8

# wait for alias file rebuild (default units: minutes)


#O AliasWait=5m

# location of alias file


O AliasFile=/etc/aliases

# minimum number of free blocks on filesystem


#O MinFreeBlocks=100

# maximum message size


O MaxMessageSize=2097152

# substitution for space (blank) characters


O BlankSub=.

Distributed by: http://abebudi.blogspot.com/


# avoid connecting to "expensive" mailers on initial submission?
O HoldExpensive=False

# checkpoint queue runs after every N successful deliveries


#O CheckpointInterval=10

# default delivery mode


O DeliveryMode=background

# automatically rebuild the alias database?


#O AutoRebuildAliases

# error message header/file


#O ErrorHeader=/etc/sendmail.oE

# error mode
#O ErrorMode=print

# save Unix-style "From_" lines at top of header?


#O SaveFromLine

# temporary file mode


#O TempFileMode=0600

# match recipients against GECOS field?


#O MatchGECOS

# maximum hop count


#O MaxHopCount=17

# location of help file


O HelpFile=/usr/local/lib/sendmail.hf

Distributed by: http://abebudi.blogspot.com/


# ignore dots as terminators in incoming messages?
#O IgnoreDots

# name resolver options


#O ResolverOptions=+AAONLY

# deliver MIME-encapsulated error messages?


O SendMimeErrors=True

# Forward file search path


O
ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.fo
rward

# open connection cache size


O ConnectionCacheSize=2

# open connection cache timeout


O ConnectionCacheTimeout=5m

# persistent host status directory


#O HostStatusDirectory=.hoststat

# single thread deliveries (requires HostStatusDirectory)?


#O SingleThreadDelivery

# use Errors-To: header?


O UseErrorsTo=False

# log level
O LogLevel=9

# send to me too, even in an alias expansion?

Distributed by: http://abebudi.blogspot.com/


#O MeToo

# verify RHS in newaliases?


O CheckAliases=False

# default messages to old style headers if no special punctuation?


O OldStyleHeaders=True

# SMTP daemon options


#O DaemonPortOptions=Port=esmtp

# privacy flags
O PrivacyOptions=authwarnings

# who (if anyone) should get extra copies of error messages


#O PostMasterCopy=Postmaster

# slope of queue-only function


#O QueueFactor=600000

# queue directory
O QueueDirectory=/var/spool/mqueue

# timeouts (many of these)


#O Timeout.initial=5m
#O Timeout.connect=5m
#O Timeout.iconnect=5m
#O Timeout.helo=5m
#O Timeout.mail=10m
#O Timeout.rcpt=1h
#O Timeout.datainit=5m
#O Timeout.datablock=1h
#O Timeout.datafinal=1h

Distributed by: http://abebudi.blogspot.com/


#O Timeout.rset=5m
#O Timeout.quit=2m
#O Timeout.misc=2m
#O Timeout.command=1h
#O Timeout.ident=30s
#O Timeout.fileopen=60s
O Timeout.queuereturn=5d
#O Timeout.queuereturn.normal=5d
#O Timeout.queuereturn.urgent=2d
#O Timeout.queuereturn.non-urgent=7d
O Timeout.queuewarn=4h
#O Timeout.queuewarn.normal=4h
#O Timeout.queuewarn.urgent=1h
#O Timeout.queuewarn.non-urgent=12h
#O Timeout.hoststatus=30m

# should we not prune routes in route-addr syntax addresses?


#O DontPruneRoutes

# queue up everything before forking?


O SuperSafe=True

# status file
O StatusFile=/etc/mail/sendmail.st

# time zone handling:


# if undefined, use system default
# if defined but null, use TZ envariable passed in
# if defined and non-null, use that info
#O TimeZoneSpec=

# default UID (can be username or userid:groupid)


O DefaultUser=daemon

Distributed by: http://abebudi.blogspot.com/


# list of locations of user database file (null means no lookup)
#O UserDatabaseSpec=/etc/userdb

# fallback MX host
#O FallbackMXhost=fall.back.host.net

# if we are the best MX host for a site, try it directly instead


of config err
#O TryNullMXList

# load average at which we just queue messages


#O QueueLA=8

# load average at which we refuse connections


#O RefuseLA=12

# maximum number of children we allow at one time


#O MaxDaemonChildren=12

# maximum number of new connections per second


#O ConnectionRateThrottle=3

# work recipient factor


#O RecipientFactor=30000

# deliver each queued job in a separate process?


#O ForkEachJob

# work class factor


#O ClassFactor=1800

# work time factor


#O RetryFactor=90000

Distributed by: http://abebudi.blogspot.com/


# shall we sort the queue by hostname first?
#O QueueSortOrder=priority

# minimum time in queue before retry


#O MinQueueAge=30m

# default character set


#O DefaultCharSet=iso-8859-1

# service switch file (ignored on Solaris, Ultrix, OSF/1, others)


#O ServiceSwitchFile=/etc/service.switch

# hosts file (normally /etc/hosts)


#O HostsFile=/etc/hosts

# dialup line delay on connection failure


#O DialDelay=10s

# action to take if there are no recipients in the message


#O NoRecipientAction=add-to-undisclosed

# chrooted environment for writing to files


#O SafeFileEnvironment=/arch

# are colons OK in addresses?


#O ColonOkInAddr

# how many jobs can you process in the queue?


#O MaxQueueRunSize=10000

# shall I avoid expanding CNAMEs (violates protocols)?


#O DontExpandCnames

Distributed by: http://abebudi.blogspot.com/


# SMTP initial login message (old $e macro)
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b

# UNIX initial From header format (old $l macro)


O UnixFromLine=From $g $d

# From: lines that have embedded newlines are unwrapped onto one
line
#O SingleLineFromHeader=False

# Allow HELO SMTP command that does not include a host name
#O AllowBogusHELO=False

# Characters to be quoted in a full name phrase (@,;:\()[] are


automatic)
#O MustQuoteChars=.

# delimiter (operator) characters (old $o macro)


O OperatorChars=.:%@!/[]+

# shall I avoid calling initgroups(3) because of high NIS costs?


#O DontInitGroups

# are group-writable :include: and .forward files (un)trustworthy?


#O UnsafeGroupWrites

# where do errors that occur when sending errors get sent?


#O DoubleBounceAddress=postmaster

# what user id do we assume for the majority of the processing?


#O RunAsUser=sendmail

# maximum number of recipients per SMTP envelope

Distributed by: http://abebudi.blogspot.com/


#O MaxRecipientsPerMessage=100

# shall we get local names from our installed interfaces?


#O DontProbeInterfaces

# No Vrfy and expn


Opnovrfy
Opnoexpn

###########################
# Message precedences #
###########################

Pfirst-class=0
Pspecial-delivery=100
Plist=-30
Pbulk=-60
Pjunk=-100

#####################
# Trusted users #
#####################

# this is equivalent to setting class "t"


#Ft/etc/sendmail.ct
Troot
Tdaemon
Tuucp

#########################
# Format of headers #
#########################

Distributed by: http://abebudi.blogspot.com/


H?P?Return-Path: <$g>
HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
$.by $j ($v/$Z)$?r with $r$. id $i$?u
for $u; $|;
$.$b
H?D?Resent-Date: $a
H?D?Date: $a
H?F?Resent-From: $?x$x <$g>$|$g$.
H?F?From: $?x$x <$g>$|$g$.
H?x?Full-Name: $x
# HPosted-Date: $a
# H?l?Received-Date: $b
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: <$t.$i@$j>
#
################################################################
# Mailing List Rules ( Base on Reply-To Header ) #
# Contoh Rule untuk memblock mailing list dengan #
# berdasarkan Header Reply-To dan disimpan di file milis #
################################################################

HReply-To: $>Check_RplyTo

D{MPat}REJECT
D{MMsg}User unknown

SCheck_RplyTo
R$* $: < $1 >
R$+ < $* > < $2 >
R< $* > $+ < $1 >
R<> $@ < @ >
R< $+ > $: $1
R$*@$={DomainMilisBlocking} $#error $: 553
${MMsg} Block Mailing-List dari Onelist

Distributed by: http://abebudi.blogspot.com/


R$* $: $( milis $1 $)
R${MPat} $#error $: 553 ${MMsg}

###############################################################
# Mailing List Rules ( Base on Subject Header ) #
# Contoh untuk memblok mailinglist/E-mail #
# berdasarkan subject #
###############################################################

HSubject: $>Check_Subject

D{MPat1}[http://come.to/konyol]
D{MMsg1}User unknown

SCheck_Subject
R${MPat1} $* $#error $: 553 ${MMsg1}

##################################################################
####
##################################################################
####
#####
##### REWRITING RULES
#####
##################################################################
####
##################################################################
####

############################################
### Ruleset 3 - Name Canonicalization ###
############################################

Distributed by: http://abebudi.blogspot.com/


S3

# handle null input (translate to <@> special case)


R$@ $@ <@>

# strip group: syntax (not inside angle brackets!) and trailing


semicolon
R$* $: $1 <@> mark
addresses
R$* < $* > $* <@> $: $1 < $2 > $3 unmark
<addr>
R@ $* <@> $: @ $1 unmark
@host:...
R$* :: $* <@> $: $1 :: $2 unmark
node::addr
R:include: $* <@> $: :include: $1 unmark
:include:...
R$* [ $* : $* ] <@> $: $1 [ $2 : $3 ] unmark
IPv6 addrs
R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if
leading colon
R$* : $* <@> $: $2 strip
colon if marked
R$* <@> $: $1 unmark
R$* ; $1 strip
trailing semi
R$* < $* ; > $1 < $2 > bogus
bracketed semi

# null input now results from list:; syntax


R$@ $@ :; <@>

# strip angle brackets - note RFC733 heuristic to get innermost


item
R$* $: < $1
> housekeeping <>
R$+ < $* > < $2 > strip
excess on left

Distributed by: http://abebudi.blogspot.com/


R< $* > $+ < $1 > strip
excess on right
R<> $@ < @ > MAIL
FROM:<> case
R< $+ > $: $1 remove
housekeeping <>

# make sure <@a,@b,@c:user@d> syntax is easy to parse - undone


later
R@ $+ , $+ @ $1 : $2 change all
"," to ":"

# localize and dispose of route-based addresses


R@ $+ : $+ $@ $>96 < @$1 > : $2 handle
<route-addr>

# find focus for list syntax


R $+ : $* ; @ $+ $@ $>96 $1 : $2 ; < @ $3 > list
syntax
R $+ : $* ; $@ $1 : $2; list
syntax

# find focus for @ syntax addresses


R$+ @ $+ $: $1 < @ $2 > focus on
domain
R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze
right
R$+ < @ $+ > $@ $>96 $1 < @ $2 > already
canonical

# do some sanity checking


R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons
in addrs

# convert old-style addresses to a domain-based address


R$- ! $+ $@ $>96 $2 < @ $1 .UUCP > resolve
uucp names
R$+ . $- ! $+ $@ $>96 $3 < @ $1 . $2

Distributed by: http://abebudi.blogspot.com/


> domain uucps
R$+ ! $+ $@ $>96 $2 < @ $1 .UUCP > uucp
subdomains

# if we have % signs, take the rightmost one


R$* % $* $1 @ $2 First make
them all @s.
R$* @ $* @ $* $1 % $2 @ $3 Undo all
but the last.
R$* @ $* $@ $>96 $1 < @ $2 > Insert < >
and finish

# else we must be a local name


R$* $@ $>96 $1

################################################
### Ruleset 96 - bottom half of ruleset 3 ###
################################################

S96

# handle special cases for local names


R$* < @ localhost > $* $: $1 < @ $j . > $2 no
domain at all
R$* < @ localhost . $m > $* $: $1 < @ $j . >
$2 local domain
R$* < @ localhost . UUCP > $* $: $1 < @ $j . >
$2 .UUCP domain
R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] >
$3 mark [a.b.c.d]
R$* < @@ $=w > $* $: $1 < @ $j . >
$3 self-literal
R$* < @@ $+ > $* $@ $1 < @ $2 >
$3 canon IP addr

Distributed by: http://abebudi.blogspot.com/


# if really UUCP, handle it immediately

# try UUCP traffic as a local address


R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3

# pass to name server to make hostname canonical


R$* < @ $* $P > $* $: $1 < @ $[ $2 $3 $] > $4

# local host aliases and pseudo-domains are always canonical


R$* < @ $=w > $* $: $1 < @ $2 . > $3
R$* < @ $j > $* $: $1 < @ $j . > $2
R$* < @ $=M > $* $: $1 < @ $2 . > $3
R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
R$* < @ $* . . > $* $1 < @ $2 . > $3

##################################################
### Ruleset 4 - Final Output Post-rewriting ###
##################################################
S4

R$* <@> $@ handle <>


and list:;

# strip trailing dot off possibly canonical name


R$* < @ $+ . > $* $1 < @ $2 > $3

# eliminate internal code - should never get this far!


R$* < @ *LOCAL* > $* $1 < @ $j > $2

# externalize local domain info


R$* < $+ > $* $1 $2 $3 defocus
R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-

Distributed by: http://abebudi.blogspot.com/


addr> canonical
R@ $* $@ @ $1 ... and
exit

# UUCP must always be presented in old form


R$+ @ $- . UUCP $2!$1 u@h.UUCP
=> h!u

# delete duplicate local names


R$+ % $=w @ $=w $1 @
$2 u%host@host => u@host

##############################################################
### Ruleset 97 - recanonicalize and call ruleset zero ###
### (used for recursive calls) ###
##############################################################

S97
R$* $: $>3 $1
R$* $@ $>0 $1

######################################
### Ruleset 0 - Parse Address ###
######################################

S0

R$* $: $>Parse0 $1 initial parsing


R<@> $#local $: <@> special case error
msgs
R$* $: $>98 $1 handle local hacks
R$* $: $>Parse1 $1 final parsing

Distributed by: http://abebudi.blogspot.com/


#
# Parse0 - do initial syntax checking and eliminate local
addresses.
# This should either return with the (possibly modified)
input
# or return with a #error mailer. It should not return with
a
# #mailer other than the #error mailer.
#

SParse0
R<@> $@ <@> special case error
msgs
R$* : $* ; <@> $#error $@ 5.1.3 $: "List:; syntax illegal
for recipient addresses"
#R@ <@ $* > < @ $1 > catch "@@host"
bogosity
R<@ $+> $#error $@ 5.1.3 $: "User address
required"
R$* $: <> $1
R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "Colon illegal in host
name part"
R<> $* $1
R$* < @ . $* > $* $#error $@ 5.1.2 $: "Invalid host name"
R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "Invalid host name"

# now delete the local info - note $=O to find characters that
cause forwarding
R$* < @ > $* $@ $>Parse0 $>3 $1 user@ =>
user
R< @ $=w . > : $* $@ $>Parse0 $>3 $2 @here:...
-> ...
R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote
"foo"@here
R< @ $+ > $#error $@ 5.1.3 $: "User address
required"

Distributed by: http://abebudi.blogspot.com/


R$* $=O $* < @ $=w . > $@ $>Parse0 $>3 $1 $2 $3 ...@here
-> ...
R$- $: $(dequote $1 $) < @ *LOCAL*
> dequote "foo"
R< @ *LOCAL* > $#error $@ 5.1.3 $: "User address
required"
R$* $=O $* < @ *LOCAL* >
$@ $>Parse0 $>3 $1 $2
$3 ...@*LOCAL* -> ...
R$* < @ *LOCAL* > $: $1

#
# Parse1 - the bottom half of ruleset 0.
#

SParse1
# handle numeric address spec
R$* < @ [ $+ ] > $* $: $>98 $1 < @ [ $2 ] > $3 numeric
internet spec
R$* < @ [ $+ ] > $* $#esmtp $@ [$2] $: $1 < @ [$2] >
$3 still numeric: send

# handle virtual users


R$+ < @ $=w . > $: < $(virtuser $1 @ $2 $@ $1 $: @ $) > $1
< @ $2 . >
R<@> $+ + $* < @ $* . >
$: < $(virtuser $1 + * @ $3 $@ $1 $: @ $)
> $1 + $2 < @ $3 . >
R<@> $+ + $* < @ $* . >
$: < $(virtuser $1 @ $3 $@ $1 $: @ $) > $1
+ $2 < @ $3 . >
R<@> $+ < @ $+ . > $: < $(virtuser @ $2 $@ $1 $: @ $) > $1 <
@ $2 . >
R<@> $+ $: $1
R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
R< $+ > $+ < @ $+ > $: $>97 $1

Distributed by: http://abebudi.blogspot.com/


# short circuit local delivery so forwarded e-mail works
R$=L < @ $=w . > $#local $: @ $1 special local
names
R$+ < @ $=w . > $#local $: $1 regular
local name

# resolve remotely connected UUCP links (if any)

# resolve fake top level domains by forwarding to other hosts

# pass names that still have a host to a smarthost (if defined)


R$* < @ $* > $* $: $>95 < $S > $1 < @ $2 > $3 glue on
smarthost name

# deal with other remote names


R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 >
$3 user@host.domain

# handle locally delivered names


R$=L $#local $: @ $1 special
local names
R$+ $#local $: $1 regular
local names

##################################################################
#########
### Ruleset 5 - special rewriting after aliases have been
expanded ###
##################################################################
#########

S5

# deal with plussed users so aliases work nicely

Distributed by: http://abebudi.blogspot.com/


R$+ + * $#local $@ $&h $: $1
R$+ + $* $#local $@ + $2 $: $1 + *

# prepend an empty "forward host" on the front


R$+ $: <> $1

# see if we have a relay or a hub


R< > $+ $: < $H > $1 try hub
R< > $+ $: < $R > $1 try relay
R< > $+ $: < > < $1 $&h > nope,
restore +detail
R< > < $+ + $* > $* < > < $1 > + $2 $3 find the
user part
R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the
extra +
R< > < $+ > $@ $1 no +detail
R$+ $: $1 $&h add
+detail back in
R< local : $* > $* $: $>95 < local : $1 > $2 no host
extension
R< error : $* > $* $: $>95 < error : $1 > $2 no host
extension
R< $- : $+ > $+ $: $>95 < $1 : $2 > $3 < @ $2 >
R< $+ > $+ $@ $>95 < $1 > $2 < @ $1 >

##################################################################
#
### Ruleset 95 - canonify mailer:[user@]host syntax to triple ###
##################################################################
#

S95
R< > $* $@ $1 strip off
null relay
R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2

Distributed by: http://abebudi.blogspot.com/


R< local : $* > $* $>CanonLocal < $1 > $2
R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use
literal user
R< $- : $+ > $* $# $1 $@ $2 $: $3 try
qualified mailer
R< $=w > $* $@ $2 delete
local host
R< $+ > $* $#relay $@ $1 $: $2 use
unqualified mailer

##################################################################
#
### Ruleset CanonLocal - canonify local: syntax ###
##################################################################
#

SCanonLocal
# strip trailing dot from any host name that may appear
R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >

# handle local: syntax - use old user, either with or without host
R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
R< > $+ $#local $@ $1 $: $1

# handle local:user@host syntax - ignore host part


R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >

# handle local:user syntax


R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
R< $+ > $* $#local $@ $2 $: $1

##################################################################
#
### Ruleset 93 - convert header names to masqueraded form ###
##################################################################
#

Distributed by: http://abebudi.blogspot.com/


S93

# handle generics database


R$+ < @ $=G . > $: < $1@$2 > $1 < @ $2 . > @ mark
R$+ < @ *LOCAL* > $: < $1@$j > $1 < @ *LOCAL* > @ mark
R< $+ > $+ < $* > @ $: < $(generics $1 $: $) > $2 < $3 >
R< > $+ < @ $+ > $: < $(generics $1 $: $) > $1 < @ $2 >
R< $* @ $* > $* < $* > $@ $>3 $1 @ $2 found
qualified
R< $+ > $* < $* > $: $>3 $1 @ *LOCAL* found
unqualified
R< > $* $: $1 not found

# special case the users that should be exposed


R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave
exposed
R$=E < @ $=M . > $@ $1 < @ $2 . >
R$=E < @ $=w . > $@ $1 < @ $2 . >

# handle domain-specific masquerading


R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert
masqueraded doms
R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not
null

##################################################################
#
### Ruleset 94 - convert envelope names to masqueraded form ###
##################################################################
#

S94

Distributed by: http://abebudi.blogspot.com/


R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2

##################################################################
#
### Ruleset 98 - local part of ruleset zero (can be null) ###
##################################################################
#

S98

# addresses sent to foo@host.REDIRECT will give a 551 error code


R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > <
${opMode} >
R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
R$* < @ $+ .REDIRECT. > < $- > $# error $@ 5.1.1 $: "551 User has
moved; please try " <$1@$2>

##################################################################
####
### LookUpDomain - search for domain in access database
###
### Parameters:
### <$1> - key (domain name)
### <$2> - default (what to return if not found in db)
### <$3> - passthru (additional data passed unchanged
through)
##################################################################
####

SLookUpDomain
R<$+> <$+> <$*> $: < $(access $1 $: ? $) > <$1> <$2> <$3>
R<?> <$+.$+> <$+> <$*> $@ $>LookUpDomain <$2> <$3> <$4>
R<?> <$+> <$+> <$*> $@ <$2> <$3>
R<$*> <$+> <$+> <$*> $@ <$1> <$4>

Distributed by: http://abebudi.blogspot.com/


##################################################################
####
### LookUpAddress - search for host address in access database
###
### Parameters:
### <$1> - key (dot quadded host address)
### <$2> - default (what to return if not found in db)
### <$3> - passthru (additional data passed through)
##################################################################
####

SLookUpAddress
R<$+> <$+> <$*> $: < $(access $1 $: ? $) > <$1> <$2> <$3>
R<?> <$+.$-> <$+> <$*> $@ $>LookUpAddress <$1> <$3> <$4>
R<?> <$+> <$+> <$*> $@ <$2> <$3>
R<$*> <$+> <$+> <$*> $@ <$1> <$4>

##################################################################
####
### ParseRecipient - Strip off hosts in $=R as well as possibly
### $* $=m or the access database.
### Check user portion for host separators.
###
### Parameters:
### $1 - full recipient address
###
### Returns:
### parsed, non-local-relaying address
##################################################################
####

SParseRecipient
R$* $: <?> $>Parse0 $>3 $1
R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing
dots

Distributed by: http://abebudi.blogspot.com/


R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2
> dequote local part

# if no $=O character, no host in the user portion, we are done


R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
R<?> $* $@ $1

R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >


R<NO> $* < @ $* > $: $>LookUpDomain <$2> <NO> <$1 < @ $2 >>
R<$+> <$+> $: <$1> $2
R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
R<$-> $* $@ $2

##################################################################
####
### check_relay - check hostname/address on SMTP startup
##################################################################
####

SLocal_check_relay
Scheck_relay
R$* $: $1 $| $>"Local_check_relay" $1
R$* $| $* $| $#$* $#$3
R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2

SBasic_check_relay
# check for deferred delivery mode
R$* $: < ${deliveryMode} > $1
R< d > $* $@ deferred
R< $* > $* $: $2

R$+ $| $+ $: $>LookUpDomain < $1 > <?> < $2 >


R<?> < $+ > $: $>LookUpAddress < $1 > <OK> < $1 >
R<OK> < $* > $: $1
R<RELAY> < $* > $: $1

Distributed by: http://abebudi.blogspot.com/


R<REJECT> $* $#error $@ 5.7.1 $: "550 Access denied"
R<DISCARD> $* $#discard $: discard
R<$+> $* $#error $@ 5.7.1 $: $1

##################################################################
####
### check_mail - check SMTP `MAIL FROM:' command argument
##################################################################
####

SLocal_check_mail
Scheck_mail
R$* $: $1 $| $>"Local_check_mail" $1
R$* $| $#$* $#$2
R$* $| $* $@ $>"Basic_check_mail" $1

SBasic_check_mail
# check for deferred delivery mode
R$* $: < ${deliveryMode} > $1
R< d > $* $@ deferred
R< $* > $* $: $2

R<> $@ <OK>
R$* $: <?> $>Parse0 $>3 $1 make
domain canonical
R<?> $* < @ $+ . > $* <?> $1 < @ $2 > $3 strip
trailing dots

# Handle user from ut.astra.co.id


R<?> $* < @ $=w > $* $: <USER $( userut $1 $: ? $)> $1 < @ $2 >
$3
R<USER ?> $* < @ $* > $* $#error $@ 5.7.1 $: "550 Access
Denied"
R< $* > $* < @ $* > $* $: <?> $2 < @ $3 > $4

Distributed by: http://abebudi.blogspot.com/


# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
R<?> $* < $* $=P > $* $: <OK> $1 < @ $2 $3 > $4
R<?> $* < @ $+ > $* $: <? $(resolve $2 $: $2 <PERM> $) > $1 <
@ $2 > $3
R<? $* <$->> $* < @ $+ > $*
$: <$2> $3 < @ $4 > $5

# handle case of @localhost on address


R<$+> $* < @localhost > $: < ? $&{client_name} > <$1> $2 <
@localhost >
R<$+> $* < @localhost.$m >
$: < ? $&{client_name} > <$1> $2 <
@localhost.$m >
R<$+> $* < @localhost.UUCP >
$: < ? $&{client_name} > <$1> $2 <
@localhost.UUCP >
R<? $=w> <$+> $* <?> <$2> $3
R<? $+> <$+> $* $#error $@ 5.5.4 $: "553 Real domain name
required"
R<?> <$+> $* $: <$1> $2

# lookup localpart (user@)


R<$+> $* < @ $+ > $* $: <USER $(access $2@ $: ? $) > <$1> $2 <
@ $3 > $4
# no match, try full address (user@domain rest)
R<USER ?> <$+> $* < @ $* > $*
$: <USER $(access $2@$3$4 $: ? $) > <$1>
$2 < @ $3 > $4
# no match, try address (user@domain)
R<USER ?> <$+> $+ < @ $+ > $*
$: <USER $(access $2@$3 $: ? $) > <$1> $2
< @ $3 > $4
# no match, try (sub)domain (domain)
R<USER ?> <$+> $* < @ $+ > $*
$: $>LookUpDomain <$3> <$1> <>
# check unqualified user in access database

Distributed by: http://abebudi.blogspot.com/


R<?> $* $: <USER $(access $1@ $: ? $) > <?> $1
# retransform for further use
R<USER $+> <$+> $* $: <$1> $3

# handle case of no @domain on address


R<?> $* $: < ? $&{client_name} > $1
R<?> $* $@ <OK> ...local
unqualed ok
R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name
required"
...remote
is not
# check results
R<?> $* $@ <OK>
R<OK> $* $@ <OK>
R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain
must resolve"
R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain
must exist"
R<RELAY> $* $@ <RELAY>
R<DISCARD> $* $#discard $: discard
R<REJECT> $* $#error $@ 5.7.1 $: "550 Access denied"
R<$+> $* $#error $@ 5.7.1 $: $1 error from
access db

##################################################################
####
### check_rcpt - check SMTP `RCPT TO:' command argument
##################################################################
####

SLocal_check_rcpt
Scheck_rcpt
R$* $: $1 $| $>"Local_check_rcpt" $1
R$* $| $#$* $#$2
R$* $| $* $@ $>"Basic_check_rcpt" $1

Distributed by: http://abebudi.blogspot.com/


SBasic_check_rcpt
# check for deferred delivery mode
R$* $: < ${deliveryMode} > $1
R< d > $* $@ deferred
R< $* > $* $: $2

R$* $: $>ParseRecipient $1 strip


relayable hosts

# blacklist local users or any host from receiving mail


R$* $: <?> $1
R<?> $+ < @ $=w > $: <> <USER $1> <FULL $1@$2> <HOST $2> <$1
< @ $2 >>
R<?> $+ < @ $* > $: <> <FULL $1@$2> <HOST $2> <$1 < @ $2 >>
R<?> $+ $: <> <USER $1> <$1>
R<> <USER $+> $* $: <$(access $1 $: $)> $2
R<> <FULL $+> $* $: <$(access $1 $: $)> $2
R<OK> <FULL $+> $* $: <$(access $1 $: $)> $2
R<> <HOST $+> $* $: <$(access $1 $: $)> $2
R<OK> <HOST $+> $* $: <$(access $1 $: $)> $2
R<> <$*> $: $1
R<OK> <$*> $: $1
R<RELAY> <$*> $: $1
R<REJECT> $* $#error $@ 5.2.1 $: "550 Mailbox disabled
for this recipient"
R<$+> $* $#error $@ 5.2.1 $:
$1 error from access db

# anything terminating locally is ok


R$+ < @ $=w > $@ OK
R$+ < @ $* $=R > $@ OK
R$+ < @ $* > $: $>LookUpDomain <$2> <?> <$1 < @ $2 >>
R<RELAY> $* $@ RELAY
R<$*> <$*> $: $2

Distributed by: http://abebudi.blogspot.com/


# check for local user (i.e. unqualified address)
R$* $: <?> $1
R<?> $+ < @ $+ > $: <REMOTE> $1 < @ $2 >
# local user is ok
R<?> $+ $@ OK
R<$+> $* $: $2

# anything originating locally is ok


R$* $: <?> $&{client_name}
# check if bracketed IP address (forward lookup != reverse lookup)
R<?> [$+] $: <BAD> [$1]
# pass to name server to make hostname canonical
R<?> $* $P $: <?> $[ $1 $2 $]
R<$-> $* $: $2
R$* . $1 strip
trailing dots
R$@ $@ OK
R$=w $@ OK
R$* $=R $@ OK
R$* $: $>LookUpDomain <$1> <?> <$1>
R<RELAY> $* $@ RELAY
R<$*> <$*> $: $2

# check IP address
R$* $: $&{client_addr}
R$@ $@ OK originated locally
R0 $@ OK originated locally
R$=R $* $@ OK relayable IP
address
R$* $: $>LookUpAddress <$1> <?> <$1>
R<RELAY> $* $@ RELAY relayable IP
address
R<$*> <$*> $: $2

Distributed by: http://abebudi.blogspot.com/


R$* $: [ $1 ] put brackets
around it...
R$=w $@ OK ... and see if it
is local

# anything else is bogus


R$* $#error $@ 5.7.1 $: "550 Relaying denied"

#
##################################################################
####
##################################################################
####
#####
##### MAILER DEFINITIONS
#####
##################################################################
####
##################################################################
####

##################################################
### Local and Program Mailer specification ###
##################################################

##### @(#)local.m4 8.30 (Berkeley) 6/30/98 #####

Mlocal, P=/bin/mail, F=lsDFMAw5:/|@qrmn9, S=10/30,


R=20/40,
T=DNS/RFC822/X-Unix,
A=mail -r $g -d $u
Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/,
T=X-Unix,
A=sh -c $u

Distributed by: http://abebudi.blogspot.com/


#
# Envelope sender rewriting
#
S10
R<@> $n errors to mailer-
daemon
R@ <@ $*> $n temporarily bypass
Sun bogosity
R$+ $: $>50 $1 add local domain
if needed
R$* $: $>94 $1 do masquerading

#
# Envelope recipient rewriting
#
S20
R$+ < @ $* > $: $1 strip host part

#
# Header sender rewriting
#
S30
R<@> $n errors to mailer-
daemon
R@ <@ $*> $n temporarily bypass
Sun bogosity
R$+ $: $>50 $1 add local domain
if needed
R$* $: $>93 $1 do masquerading

#
# Header recipient rewriting
#
S40
R$+ $: $>50 $1 add local domain

Distributed by: http://abebudi.blogspot.com/


if needed

#
# Common code to add local domain name (only if always-add-
domain)
#
S50
R$* < @ $* > $* $@ $1 < @ $2 > $3 already
fully qualified
R$+ $@ $1 < @ *LOCAL* > add local
qualification

#####################################
### SMTP Mailer specification ###
#####################################

##### @(#)smtp.m4 8.38 (Berkeley) 5/19/98 #####

Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990,


T=DNS/RFC822/SMTP,
A=IPC $h
Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n, L=990,
T=DNS/RFC822/SMTP,
A=IPC $h
Msmtp8, P=[IPC], F=mDFMuX8, S=11/31, R=21, E=\r\n, L=990,
T=DNS/RFC822/SMTP,
A=IPC $h
Mrelay, P=[IPC], F=mDFMuXa8, S=11/31, R=61, E=\r\n,
L=2040,
T=DNS/RFC822/SMTP,
A=IPC $h

#
# envelope sender rewriting
#

Distributed by: http://abebudi.blogspot.com/


S11
R$+ $: $>51
$1 sender/recipient common
R$* :; <@> $@ list:;
special case
R$* $: $>61 $1 qualify
unqual'ed names
R$+ $: $>94 $1 do
masquerading

#
# envelope recipient rewriting -
# also header recipient if not masquerading recipients
#
S21
R$+ $: $>51
$1 sender/recipient common
R$+ $: $>61 $1 qualify
unqual'ed names

#
# header sender and masquerading header recipient rewriting
#
S31
R$+ $: $>51
$1 sender/recipient common
R:; <@> $@ list:;
special case

# do special header rewriting


R$* <@> $* $@ $1 <@> $2 pass null
host through
R< @ $* > $* $@ < @ $1 > $2 pass
route-addr through
R$* $: $>61 $1 qualify

Distributed by: http://abebudi.blogspot.com/


unqual'ed names
R$+ $: $>93 $1 do
masquerading

#
# convert pseudo-domain addresses to real domain addresses
#
S51

# pass <route-addr>s through


R< @ $+ > $* $@ < @ $1 > $2 resolve
<route-addr>

# output fake domains as user%fake@relay

# do UUCP heuristics; note that these are shared with UUCP mailers
R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to
UUCP form
R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP
form

# leave these in .UUCP form to avoid further tampering


R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
R< $+ ! > $+ $: $1 ! $2 < @ $Y > use
UUCP_RELAY
R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip
mailer: part
R$+ < @ > $: $1 < @ *LOCAL* > if no
UUCP_RELAY

#
# common sender and masquerading recipient rewriting

Distributed by: http://abebudi.blogspot.com/


#
S61

R$* < @ $* > $* $@ $1 < @ $2 > $3 already


fully qualified
R$+ $@ $1 < @ *LOCAL* > add local
qualification

#
# relay mailer header masquerading recipient rewriting
#
S71

R$+ $: $>61 $1
R$+ $: $>93 $1

Distributed by: http://abebudi.blogspot.com/


sendmail.cf di SuSE

Untuk menghasilkan file sendmail.cf di SuSE, bisa dilakukan secara otomatis oleh yast. Lewat
account root, jalankan yast.
# yast
Masuk kebagian System Administration - Network Configuration -
Configure Sendmail. Disitu sudah ada pilihan :
1. Host with permanent network connection
2. Single user machine without network connection
3. Host with temporarily network connection (modem/ISDN)
4. Do not instal /etc/sendmail.cf
Pilih sesuai dengan kebutuhan anda, dan yast secara otomatis akan membuat file sendmail.cf
yang sederhana, namun dapat langsung difungsikan.

sendmail.cf di RedHat

Untuk RedHat, file konfigurasi sendmail.cf bisa dibuat melalui LinuxConf, pada bagian Config
- Server Task - Sendmail Basic Information. Pilihan yang ada akan memudahkan
anda untuk mengkonfigurasikannya :
• Present your system as
Nama domain utama yang dipergunakan.
• Accept e-mail for your domain
Biasanya sendmail hanya menerima domain name yang benar/FQDN (Fully Qualified
Domain Name). Dengan mengaktifkan pilihan ini, sendmail juga akan menerima e-mail
dengan domain yang didahului nama server.
• Mail Server
Nama server mail utama. Hal ini bisa terjadi jika dalam satu intranet terdapat banyak server
mail.
• Mail Gateway
Nama server mail yang meneruskan e-mail anda (fasilitas forward). Hal ini berlaku misalnya
pada jaringan dengan satu mail server yang meneruskan semua e-mail yang keluar (ke
Internet)
• Mail Gateway Protocol
Protocol yang dipergunakan untuk menghubungi mail gateway. Untuk ESMTP, jangan lupa
untuk mengisikan nama domain yang lengkap. Sedangkan UUCP (Unix to Unix Copy
Protocol) cukup diisikan nama server.
• Features
Beberapa pilihan untuk layanan sendmail. Pilihan tersebut adalah :
• Relay Control
Mengontrol siapa saja yang boleh menggunakan sendmail anda untuk relay.

Distributed by: http://abebudi.blogspot.com/


• No batching for uucp mail
E-mail yang menggunakan UUCP akan langsung dikirimkan (tidak diantrikan terlebih
dahulu). Hal ini mengurangi lalu lintas dalam jaringan.
• Max size for UUCP users
Ukuran maksimal untuk pengguna UUCP.
• Deliver locally to users
Dipergunakan biasanya untuk pseudo user.

• No masquerade for users


Nama user yang tidak dimasquerade (lihat pilihan present your system as).
• Special routing database enabled
Pilih jika ingin menggunakan routing khusus.
• Special routing database format
Database yang digunakan oleh sendmail. Biasanya menggunakan format dbm.
• Local Delivery Agent
Pilih jika ingin menggunakan program lain untuk mendistribusikan e-mails ecara lokal.
Biarkan kosong dan linuxconf akan melakukan probing, dan memilihkan program yang
cocok untuk mesin linux anda.
• Don't try to deliver immediately
E-mail tidak langsung dikirim, melainkan diantrikan terlebih dahulu (dengan perintah
sendmail -q)
• Process queue every (minutes)
Interval waktu untuk mengirimkan e-mail yang antri (qeued).
• Support bogus mail client (HELO)
Beberapa klien e-mail menghasilkan urutan HELO secara tidak beraturan. Biasanya
sendmail akan menolak e-mailnya. Dengan pilihan ini sendmail akan lebih toleran dan
menerimanya sebagai e-mail yang valid.
Agar dapat di Relay jangan lupa dapftarkan domain mail server yang bersangkutan ke file
/etc/sendmail.cw.

qmail
qmail merupakan pengganti yang lebih modern dari sendmail, disusun oleh Dan Bernstein.
Beberapa situs besar yang menggunakan qmail diantaranya Hotmail (untuk outgoing mail),
USA.net (untuk outgoing e-mail), Yahoo! mail, Network Solutions,
listserv.acsu.buffalo.edu (menggunakan qmail sejak 1996), XOOM.com,
onelist.com (yang tellah merger dengan E-group, perusahaan besar penyedia mailing list
gratis), Red Hat's mailing lists, Hypermart.net, dan FSmail.net.

Distributed by: http://abebudi.blogspot.com/


Subsections
• Instalasi qmail
• Seting mbox
• Seting Maildir
• Test mengirim e-mail
• Seting Klien Windows 9x atau Windows NT
• Program Tambahan qmail (Add on)
Instalasi qmail
Pertama, download terlebih dahulu program qmail dalam bentuk kode sumber (source code). Daftar
server yang menyediakan qmail dapat Anda lihat di http://www.qmail.org dan dapat Anda
pilih mirror yang terdekat. Saat ini mirror di Indonesia yang masih aktif adalah
http://qmail.indosite.co.id.
Catatan :

Binary qmail dalam format RPM (Redhat Package Manager) dapat diperoleh di
ftp://moni.msci.memphis.edu/pub/qmail. Yang akan Anda bahas di sini
adalah instalasi program yang mempunyai format kode sumber (source code)

Setelah download programnya secara lengkap, Anda mulai dengan mengekstrak dari bentuk zip dan
tar ball. Dianjurkan untuk melakukan proses instalasi sebagai root.
# gunzip qmail-1.0.03.tar.gz | tar xvf-
Kemudian sebelum instalasi, tentukan terlebih dahulu direktori utama yang menyimpan program
qmail. Secara default adalah /var/qmail. Selain itu, jika server tempat Anda instalasi sudah
menjalankan sendmail sebagai MTA, dianjurkan untuk menyimpan terlebih dahulu surat-surat yang
masih antre untuk dikirim. Atau lebih aman lagi matikan daemon sendmail.
Setelah itu, buat direktori tempat di mana qmail disimpan.
# mkdir /var/qmail
Langkah selanjutnya, buat qmail user dan grup sebelum instalasi dimulai.
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaild
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails

Distributed by: http://abebudi.blogspot.com/


Setelah itu kompilasi dapat dijalankan.
qmail-1.0.03#./make setup check
qmail-1.0.03#./config
Selain perintah config, untuk mengkonfigurasikan qmail dalam mesin Anda, Anda dapat
menjalankan perintah config-fast nama.domain.Anda sebagai alternatif instalasi lebih singkat.
qmail-1.0.03#./config-fast nama.domain.anda
Nama domain ini akan dipergunakan secara default dalam pengalamatan domain e-mailnya. Anda
bisa bikin sembarang untuk implementasi intranet. Dengan perintah config-fast nama domain ini,
skrip config akan menuliskan nama.domain.anda ke dalam file control/me,
control/local dan control/rcpthosts sehingga qmail secara default akan menerima e-
mail dari nama.domain.anda. Untuk pemberian nama domain yang resmi (bisa diakses dari luar)
harus menggunakan nama domain yang memenuhi standar (Fully Qualified Domain Name).
Konsultasikan dengan ISP atau penyedia jasa hosting untuk bisa memperoleh nama domain resmi.
Catatan :

Untuk lebih mengenal direktori direktori yang dibuat oleh qmail, Anda dapat membaca
FAQ yang terletak di /var/qmail/doc setelah instalasi selesai.

Selesai menjalankan skrip config bisa dikatakan proses instalasi telah selesai. Namun sebelum Anda
menjalankan qmail ada beberapa hal yang perlu disetup.
Pertama Anda perlu membuat alias. Alias akan menangani e-mail dengan user tidak dikenal. qmail
secara default tidak membundel paketnya untuk mendukung /etc/alias. Jika Anda ingin
menggunakan file tersebut, maka perlu ditambahkan aplikasi pendukung bernama fast forward.
Aplikasi ini bersama aplikasi pendukung lainnya dapat Anda peroleh di homepage qmail. Untuk
mengaktifkan alias, jalankan perintah berikut :
#touch alias/qmail-postmaster
#chmod 644 alias/qmail-postmaster
#touch alias/qmail-mailer-daemon
#chmod 644 alias/qmail-mailer-daemon
#touch alias/qmail-root
#chmod 644 alias/qmail-root
Alias postmaster akan menangani e-mail yang ditujukan kepada postmaster. Alias mailer daemon
akan menangani setiap e-mail yang bounce (tidak bisa diteruskan). Sedangkan alias root
dipergunakan untuk menangani e-mail yang ditujukan kepada root. Anda dapat menambahkan alias
lainnya, seperti qmail-default yang akan menerima setiap e-mail dengan username yang tidak
dikenal.
Langkah berikutnya adalah seting Mailbox. Pada umumnya, Mail Transfer Agent menggunakan dua
format dalam menangani e-mail.
1. Format mbox
E-mail disimpan dalam sebuah file. Setiap kali ada surat masuk atau keluar, ditambahkan
(embed) secara otomatis kedalam file yang bersangkutan. Dengan demikian ukuran file
mbox ini bertambah setiap kali ada penambahan e-mail.

Distributed by: http://abebudi.blogspot.com/


Kelemahan dari format ini, jika di tengah-tengah download e-mail ada gangguan, maka pada
sesi berikutnya Mail User Agent (MUA/Klien e-mail; program untuk mengirim,
mendownload dan membaca e-mail) akan mencoba mengulang lagi download e-mailnya.
Sesi terdahulu yang terputus di tengah jalan dianggap gagal. Selain itu kemungkinan besar
format mbox akan rusak.
2. Format Maildir
Maildir merupakan format yang anti crash, dan lebih reliabel dibandingkan format mbox.
Namun belum banyak MUA (Mail User Agent - klien e-mail) yang mendukung format
maildir ini.
qmail mendukung kedua format tersebut. Anda diberi kebebasan untuk memilihnya, namun
dianjurkan untuk menggunakan format maildir.

Seting mbox
Sendmail dalam mendistribusikan e-mail secara lokal menggunakan binmail. Secara default,
binmail akan mengirimkan mail ke dalam folder/var/spool/mail/nama_user. qmail
menggunakan qmail-local untuk distribusi lokal, dan langsung menyimpannya
kenama_user/Mailbox. Prosedur untuk menggantikan dari
/var/spool/mail/nama_user adalah :

1. Pindahkan semua /var/spool/mail/nama_user ke dalam nama_user/Mailbox.


Demi keamanan, jalankan dalam proses single mode. Jika server masih dalam keadaan
berjalan, berikan pesan broadcast kepada semua user untuk keluar dari jaringan.
# init 1 (menuju modus singel user)
# cd /var/spool/mail
# cp nama_user /home/nama_user/Mailbox
# rm nama_user
2. Kemudian sebagai root buat link simbolik dari nama_user/Mailbox ke dalam
/var/spool/mail/nama_user. Lakukan ini untuk semua user. Berikan mode 1777
untuk folder /var/spool/mail untuk menghindarkan penghapusan link secara tidak
sengaja.
# cd /home/nama_user
# ln Mailbox /var/spool/mail/nama_user
Lakukan ini untuk semua user. Seting pada klien Windows 9x atau Windows NT akan
dibahas dalam bagian lain.
Di beberapa program mail, tidak dapat menangani link simbolik. Untuk itu harus langsung
ditujukan ke nama_user/Mailbox daripada /var/spool/mail/nama_user pada saat chek e-mail.
Untuk program procmail misalnya, ganti SYSTEM_MBOX dalam config.h dan lakukan
kompilasi ulang. Pada beberapa versi terbaru, Anda dapat mendefinisikan
MAILSPOOLHOME dalam src/authenticate.c.
Untuk mengoptimalkan kemampuan klien e-mail membaca e-mail dalam jumlah banyak

Distributed by: http://abebudi.blogspot.com/


(yang kadang-kadang menjadi lebih lambat karena membaca link simbolik dari Mailbox),
Anda dapat tujukan langsung klien e-mailnya untuk membaca nama_user/Mailbox.
3. Sebagian besar klien e-mail, masukkan "setenv MAIL $HOME/Mailbox" jika
menggunakan shell csh ke dalam .cshrc dan "MAIL=$HOME/Mailbox; export MAIL"
jika menggunakan shell bash ke dalam .profile secara umum.
4. elm: ganti "mailbox" ke "Mailbox" pada baris 388 dari file newmbox.c dan lakukan
kompilasi ulang. elm dalam membaca e-mail selalu melihat $MAIL, tapi jika Anda tidak
mengganti ini, maka elm akan mengalami masalah saat dua user membaca mail secara
simultan.
5. pine: Masukkan "inbox-path=Mailbox" dalam file pine.conf. Atau jika masing-masing
user mempunyai konfigurasi sendiri, minta kepada user untuk mengganti konfigurasi
inbox-path-nya.

Seting Maildir
Untuk menggunakan format Maildir dalam menangani setiap mail yang masuk ke alamat Anda,
jalankan perintah :
$ maildirmake $HOME/Maildir
$ echo ./Maildir/ > /.qmail
Jangan lupa setelah Maildir tambahkan slash sebagaimana dituliskan di atas. Jalankan proses
tersebut terhadap setiap user. Untuk MUA (mail client) yang hanya mendukung format mbox, qmail
menyertakan program maildir2mbox yang dijalankan bersama wrapper elq dan pineq. Dengan
demikian, setiap kali Anda menjalankan pine atau elm, wrapper tersebut akan memanggil program
maildir2mbox, sehingga MUA favorit Anda tidak akan bermasalah menggunakan format
maildir.
Catatan:

Variasi dapat dibuat dengan menerapkan format Maildir pada user tertentu, dan format
mbox pada user lainnya. Penerapan ini cukup ideal, jika anda mempunyai user yang
mengambil e-mail lewat POP3 secara remote dan lokal. Untuk user yang mengambil e-
mail secara remote, diterapkan format maildir, dan yang lokal diterapkan format mbox.

Langkah selanjutnya adalah mengkopi file-file yang berada dalam /var/qmail/boot/home ke


dalam /var/qmail/rc.
# cd /var/qmail/boot/home
# cp * /var/qmail/rc.

Test mengirim e-mail


Selesai mengkopi, Anda persiapkan untuk test kirim e-mail antar user. Langkah pertama adalah
menjalankan program qmail.
#csh -cf '/var/qmail/rc &'
Jika qmail sudah berjalan, maka dalam gile log Anda (biasanya /var/log/messages) akan

Distributed by: http://abebudi.blogspot.com/


memberikan pesan :
qmail: status: local 0/10 remote 0/20
Jalankan perintah ps untuk mengetahui program-rogram qmail yang sedang berjalan. Suite qmail
yang siap melayani pengiriman mail Anda adalah :
qmail-send, dijalankan oleh qmails;
qmail-lspawn, dijalankan oleh root;
qmail-rspawn, dijalankan oleh qmailr;
and qmail-clean, dijalankan oleh qmailq;
splogger, dijalankan oleh qmaill, untuk mencatat aktivitas qmail
ke file log.
$ ps ax | more
(grep hasil ps ax)
Jika semua program qmail sudah berjalan dengan baik, coba kirim e-mail secara lokal. Gantikan
aku berikut kepada salah satu username yang terdaftar di mesin Anda (atau username Anda).
$ echo to: aku | /var/qmail/bin/qmail-inject
Segera setelah Anda jalankan perintah di atas, file log Anda akan mencatat kurang lebih sebagai
berikut :
qmail: new msg 53
qmail: info msg 53: bytes 246 from <aku@domain.com> qp 20345 uid
666
qmail: starting delivery 1: msg 53 to local aku@domain.com
qmail: status: local 1/10 remote 0/20
qmail: delivery 1: success: did_1+0+0/
qmail: status: local 0/10 remote 0/20
qmail: end msg 53
Catatan :

53 adalah nomor inode dan 20345 adalah nomor proses. Di komputer Anda mungkin
akan tampak lain. Sedangkan domain.com adalah domain yang Anda konfigurasikan
pada saat instalasi.

Test berikutnya adalah mengirim e-mail kepada user sembarang (tidak terdaftar sebagai user).
$ echo to: sembarangan | /var/qmail/bin/qmail-inject
Pada file log Anda akan tampak sebagai berikut :
qmail: new msg 53
qmail: info msg 53: bytes 246 from <aku@domain.com> qp 20351 uid
666
qmail: starting delivery 2: msg 53 to local sembarangan@domain.com

Distributed by: http://abebudi.blogspot.com/


qmail: status: local 1/10 remote 0/20
qmail: delivery 2: failure: No_such_address.__#5.1.1_/
qmail: status: local 0/10 remote 0/20
qmail: bounce msg 53 qp 20357
qmail: end msg 53
qmail: new msg 54
qmail: info msg 54: bytes 743 from <> qp 20357 uid 666
qmail: starting delivery 3: msg 54 to local aku@domain.com
qmail: status: local 1/10 remote 0/20
qmail: delivery 3: success: did_1+0+0/
qmail: status: local 0/10 remote 0/20
qmail: end msg 54
Segera setelah itu, buka mailbox Anda, maka akan terlihat di situ e-mail yang bounce (balik lagi).
Jika mesin Linux Anda mempunyai nomor IP resmi dan terdaftar dalam salah satu name server,
maka Anda dapat melakukan seting MX Record. Namun jika server Linux Anda mengunakan dial-
up untuk koneksi ke internet, maka solusinya adalah menggunakan program tambahan (add on)
untuk qmail yang bernama serialmail dan tcp-ucspi. Silakan lihat di bagian program
tambahan qmail.
Selain menjalankan test lewat qmail-inject, Anda dapat mengirim e-mail langsung lewat smtp
qmail.
% telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ']'.
220 domain ESMTP
helo katro
250 nama.domain.Anda
mail <aku@nama.domain.Anda>
250 ok
rcpt <aku@nama.domain.Anda>
250 ok
data
354 go ahead
Subject: testing
Ngetes doang nehhh.

Distributed by: http://abebudi.blogspot.com/


.
250 ok 812345679 qp 12345
quit
221 nama.domain.Anda
Connection closed by foreign host.
$
Untuk meyakinkan qmail Anda berjalan dengan baik, lakukan beberapa test terhadap user langsung
menggunakan klien e-mail. Untuk workstation Windows 9x atau NT, klien e-mailnya harus disetup
terlebih dahulu untuk bisa memanfaatkan qmail yang baru saja berjalan.

Seting Klien Windows 9x atau Windows NT


Klien Windows 9x ataupun Windows NT dapat menggunakan qmail sebagai mail servernya. Seting
umum yang harus dilakukan adalah memasukkan nomor IP (atau nama mesin qmail yang terdaftar
dalam MX record jika server Anda menjalankan name server) ke dalam konfigurasi smtp dan pop3
server.
Pada klien Outlook Express, buka tools-account-mail. Buat account baru, dengan aturan :
• Username : isi dengan username yang dipakai untuk login ke mesin linux
• Alamat e-mail : namauser@nama.domain. Anda (ingat saat instalasi qmail
./config-fast nama.domain.Anda)
• Smtp server, isi dengan nomor IP mesin linux Anda
• Pop3 server, sama dengan di atas, isi dengan nomor IP mesin linux.
Selanjutnya, Anda bisa menjalankan beberapa tes untuk saling berkirim satu sama lain dalam satu
jaringan. Untuk MUA yang lain, seperti Eudora, Pegasus, Netscape Messenger, pada prinsipnya
sama. Username, alamat e-mail, smtp server dan pop3 server.

Program Tambahan qmail (Add on)


1. serialmail
Program yang mengirimkan E-mail dari Maildir ke SMTP luar. Program ini cocok jika anda
menggunakan koneksi dial up ke Internet.
2. ucspi-tcp
Program tcpserver yang dipergunakan untuk menjalankan qmail (selain lewat inetd).
3. daemontools
Program yang mengadministrasi qmail sebagai daemon. Misalnya menghentikan dan
memulai kembali daemon qmail, penambahan fasilitas logging yang lebih komprehensif.
4. qmailanalog
Program yang membantu menganalisa aktivitas qmail. Misalnya berapa banyak e-mail yang
didistribusikan? Siapa yang menerima e-mail? Kapan? Apakah e-mail berhasil dikirim?
Atau gagal? Apa sebab kegagalannya? Dan sebagainya.

Distributed by: http://abebudi.blogspot.com/


5. dot-forward
Program yang membaca file .forward yang ada di Sendmail di bawah qmail.
6. fastforward
Program yang menangani forwarding di qmail dengan menggunakan database cdb.
7. checkpassword
Program yang memberikan metode pengecekan password sederhana terhadap semua aplikasi
yang dijalankan di bawah root.
Selain itu banyak program-program bantu lainnya yang dikembangkan oleh sukarelawan di seluruh
dunia. Daftar terakhirnya dapat anda lihat di situs qmail, http://www.qmail.org atau
http://qmail.indosite.co.id untuk mirror di Indonesia.

Ringkasan
Pada bab ini telah dibahas bersama bagaimana mengkonfigurasikan qmail sebagai MTA server
untuk distribusi lokal. Jika Anda berencana menggunakannya sebagai mail server internet, pastikan
untuk mengeset Mail Record pada name server yang punya otorisasi untuk merawat domain yang
Anda miliki.
Selain sendmail dan qmail masih ada exim, dan postfix yang juga banyak dipakai. Jika anda
menangani dan memelihara mail server, usahakan untuk selalu terinformasikan berita-berita terbaru,
terutama tentang bug. Biasanya para pengembang program ini menginformasikannya lewat mailing
list.

Distributed by: http://abebudi.blogspot.com/


Keamanan LINUX
Keamanan merupakan isu utama dalam jaringan. Apalagi jika seluruh host tersambung ke Internet.
Melindungi jaringan, berarti melindungi setiap host yang ada dalam jaringan, baik workstation
maupun server. Fokus bahasan bab ini adalah melindungi linux server Anda, baik ancaman dari luar
jaringan (misalnya dari Internet), maupun internal jaringan (ancaman dari salah satu user Anda).
Pembahasan hanya menyentuh secara global, dengan beberapa contoh program yang dapat
dipergunakan. Tujuannya adalah untuk memberikan kerangka berfikir dalam menyusun konsep
keamanan dalam jaringan, dan mempraktekannya lewat beberapa program yang dicontohkan.
Arsitektur kemanan di Linux, mempunyai enam komponen :
• Account Pemakai (User Account)
• Kontrol Akses secara Diskresi (Discretionary Access Control)
• Kontrol Akses Jaringan (Network Access Control)
• Enkripsi (Encryption)
• Logging
• Deteksi penyusupan (Intrusion Detection)

Subsections
• Account Pemakai (User Account)
• Kontrol Akses secara Diskresi (Discretionary Access Control)
• su (Substitute User).
• shadow.
• Pro aktif Password
• passwd+
• anlpasswd
• npasswd

• Network Access Control


• Tentang Firewall
• Tipe firewall :
• Filter Paket di Linux
• TCP Wrapper sebagai Kontrol Akses

• Enkripsi
• Enkripsi Password
• Enkripsi komunikasi data
• Secure Shell (SSH)

Distributed by: http://abebudi.blogspot.com/


• Instalasi SSH
• Konfigurasi Server
• SSL (Secure Socket Layer)
• SSL dengan Apache

• Logging
• lastlog
• last
• xferlog
• access_log
• error_log
• messages

• Deteksi Penyusupan (Intrusion Detection)


• Ringkasan

Distributed by: http://abebudi.blogspot.com/


Account Pemakai (User Account)
Kekuasaan dalam mengadministrasi sistem secara keseluruhan berada dalam satu account, yakni
root. Dengan root, Anda bisa mengontrol sistem file, user, sumber daya (devices), bahkan akses
jaringan. Model diktatorial ini memudahkan administrator dalam menangani sistem. Jika ada satu
user yang melanggar aturan, root bisa membuat account-nya beku, tanpa mengganggu yang lain.
Atau mengatur siapa-siapa saja yang boleh mengakses suatu file, memberikan hak khusus pada
user-user tertentu.. Setiap user diatur pula lingkungan di mana dia boleh main-main sepuasnya, atau
cuma melihat-lihat. Hal ini memberikan keuntungan bagi pemakai maupun sistem :
• Kecerobohan salah satu pemakai tidak akan berpengaruh terhadap sistem secara keseluruhan
• Masing-masing pemakai memiliki privacy yang ketat
Untuk itu account root biasanya hanya digunakan saat-saat tertentu saja. Misalnya perbaikan sistem.
Dan biasanya account root dipergunakan pada modus single user. Dapat Anda bayangkan apa yang
terjadi dengan jaringan Anda jika penyusup dari luar memperoleh akses root.

Kontrol Akses secara Diskresi (Discretionary


Access Control)
Setiap pemakai Linux, memiliki account tersendiri, yang masing-masing dibedakan dengan user
name dan password. Setiap file memiliki atribut kepemilikan, group, dan user umum. Satu file, bisa
diberikan atribut tertentu, sehingga hanya dapat dibaca atau dieksekusi oleh pemiliknya saja.
Pembatasan ketat ini dinamakan Discretionary Access Control (DAC). Hal ini pula yang
menyebabkan virus jarang ditemui atau jarang tersebar di Linux. Sebab virus biasanya menulis file
ke dalam sistem. Dengan DAC, virus hanya berpengaruh pada file-file yang dimiliki oleh salah
seorang user yang mengeksekusi virus tersebut. Sedangkan sistemnya sendiri tidak tersentuh.
Root merupakan satu-satunya account yang punya akses penuh ke seluruh sistem. Root juga dipakai
untuk mengadministrasi seluruh sistem, mengganti atribut file, hingga mengadministrasikan divais.
Karena itu, demi keamanan, root biasanya hanya dipakai untuk perawatan atau perbaikan sistem
saja. Untuk mengetahui atribut file :
$ ls -l

total 27
drwx--- 5 fade users 1024 Feb 8 11:27 Desktop
drwx--- 2 fade users 1024 Feb 28 10:15 Mail
-rw---- 2 fade users 509 Feb 29 10:14 Mailbox
-rw---- 1 fade hacker 318 Feb 29 10:11 dead.letter
drwxr-xr-x 3 fade hacker 1024 Feb 14 09:12
ftp.linuxrouter.org
drwx--- 2 fade users 1024 Feb 29 10:14 mail
drwx--- 2 fade users 1024 Feb 14 12:07 nsmail

Distributed by: http://abebudi.blogspot.com/


-rw-r-r- 1 fade hacker 17358 Feb 23 09:11 sinkcp.gif
-rw-r-r- 1 fade hacker 393 Feb 24 10:13 spam
drwxr-xr-x 2 fade hacker 1024 Feb 22 08:36 temp
Beberapa program penting berkaitan dengan Discretionary Access Control :

Subsections
• su (Substitute User).
• shadow.
• Pro aktif Password
• passwd+
• anlpasswd
• npasswd

su (Substitute User).
Jangan menggunakan user root untuk penggunaan sehari-hari. Jika memang mendesak, jalankan
program su. Program ini memungkinkan Anda menggunakan account root untuk sementara.
Caranya :
$ su
lalu Anda akan diminta password.
password :
Setelah Anda isi dengan benar, prompt akan berubah menjadi pagar. Jika telah selesai, ketik exit
# exit
$
kembali ke prompt user. Selain su, dapat dipakai pula program sudo, yakni memberikan beberapa
user untuk dapat mengeksekusi program tertentu sebagai root. Konfigurasi filenya berada di
/etc/sudoers

shadow.
Secara default, instalasi binary slackware, telah mengaktifkan shadow password. shadow adalah
program yang membuat file /etc/passwd menjadi dapat dibaca (readable) tetapi tidak lagi berisi
password, dan sebagai gantinya disimpan di file /etc/shadow.Berikut contoh tipikal file
passwd :
halt:x:7:0:halt:/sbin:/sbin/halt
root:x:0:0::/root:/bin/bash

Distributed by: http://abebudi.blogspot.com/


operator:x:11:0:operator:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
bin:x:1:1:bin:/bin:
ftp:x:404:1::/home/ftp:/bin/bash
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/usr/lib/news:
uucp:x:10:14:uucp:/var/spool/uucppublic:
man:x:13:15:man:/usr/man:
games:x:12:100:games:/usr/games:
guest:x:405:100:guest:/dev/null:/dev/null
nobody:x:65534:100:nobody:/dev/null:
fade:x:1000:103:,,,:/home/fade:/bin/bash
alias:x:7790:2108::/var/qmail/alias:/bin/true
qmaild:x:7791:2108::/var/qmail:/bin/true
qmaill:x:7792:2108::/var/qmail:/bin/true
qmailp:x:7793:2108::/var/qmail:/bin/true
qmailq:x:7794:2107::/var/qmail:/bin/true
qmailr:x:7795:2107::/var/qmail:/bin/true
qmails:x:7796:2107::/var/qmail:/bin/true
Satu baris mencerminkan satu user, lengkap dengan atributnya. Berikut keterangan tiap field :
Username:password:UserID:GroupID:keterangantambahan:homedirektori:
shell
Ambil contoh dari user fade :
fade:x:1000:103:,,,:/home/fade:/bin/bash
Keterangan dari line tersebut :
• Username : fade
• Password : x
• User ID (UID) : 1000
• Group ID (GID) : 103
• Keterangan tambahan : -

Distributed by: http://abebudi.blogspot.com/


• Home Direktori : /home/fade
• Shell Default : /bin/bash
Password dalam file ini dapat dibaca oleh setiap user, tapi yang tampak hanya x saja. Password
yang sebenarnya disimpan di file shadow (terenkripsi). Berikut file shadow dari password diatas :
root:pCfouljTBTX7o:10995:0:::::
halt:*:9797:0:::::
operator:*:9797:0:::::
shutdown:*:9797:0:::::
sync:*:9797:0:::::
bin:*:9797:0:::::
ftp:*:9797:0:::::
daemon:*:9797:0:::::
adm:*:9797:0:::::
lp:*:9797:0:::::
mail:*:9797:0:::::
news:*:9797:0:::::
uucp:*:9797:0:::::
man:*:9797:0:::::
games:*:9797:0:::::
guest:*:9797:0:::::
nobody:*:9797:0:::::
fade:OihQw6GBf4tiE:10995:0:99999:7:::
alias:!:10995:0:99999:7:::
qmaild:!:10995:0:99999:7:::
qmaill:!:10995:0:99999:7:::
qmailp:!:10995:0:99999:7:::
qmailq:!:10995:0:99999:7:::
qmailr:!:10995:0:99999:7:::
qmails:!:10995:0:99999:7:::
Sebagai salinan dari /etc/passwd, shadow menyimpan satu record dalam satu baris yang dibagi
menjadi 9 bagian (dipisahkan oleh titik dua) :
• Nama user
• Password user
• Jumlah hari digantinya password sejak 1 Januari 1970
• Jumlah hari sebelum user diijinkan untuk mengubah password
• Jumlah hari sebelum user dipaksa untuk mengganti password

Distributed by: http://abebudi.blogspot.com/


• Jumlah hari sebelum user diingatkan untuk mengganti password
• Jumlah hari yang tersisa di mana user harus mengganti password sebelum user tersebut
dihapus.
• Jumlah hari dihapusnya password sejak 1 Januari 1970
• Field terakhir dipakai sendiri oleh shadow

Table: Program Bantu shadow dan fungsinya


Nama program Fungsi
chage Mengganti informasi waktu berlakunya sebuah password
Menggantikan chfn bawaan Linux untuk bisa mengganti
chfn
informasi yang tampil di finger.
Menggantikan chsh bawaan Linux untuk mengganti
chsh
shell yang sudah di set secara default
gpasswd Menambah user baru ke dalam grup
groupadd Menambah grup
groupdell Menghapus grup
groupmod Modifikasi grup
Verifikasi dengan membandingkan antara /etc/group
grpck
dan /etc/passwd

id Menggantikan id standar, berfungsi untuk menampilkan


UID (User ID) pada saat login.

login Menggantikan login standar, sehingga bisa berinteraksi


dengan shadow untuk autentikasi
Menggantikan perintah standar newgrp. User dapat
newgrp
berganti group dalam satu session, setelah login kembali

passwd Menggantikan perintah passwd standar, mengingat


shadow punya struktur yang berbeda.
Sinkronisasi antara /etc/passwd dan /etc/shadow.
pwck
Biasa dilakukan setelah menambah password atau user
Menyatukan file /etc/passwd lama ke dalam file
pwconv
shadow yang baru.
Memisahkan informasi dalam /etc/shadow kembali
pwunconv
ke /etc/passwd
su Menjalankan shell dengan atribut root
userdel Menghapus nama user
usermod Mengganti informasi tentang user

Distributed by: http://abebudi.blogspot.com/


Pro aktif Password
Linux menggunakan metode enkripsi DES (Data Encription Standard) untuk passwordnya. Namun
seketat apapun enkripsi yang dilakukan akan menjadi percuma jika user memilih password yang
mudah ditebak. User biasanya memilih hal-hal umum sebagai password, misalnya :
• Tanggal lahir (dirinya sendiri atau salah satu anggota keluarga)
• Nomor Mobil
• Nama salah satu anggota keluarga (baik ditulis langsung, atau dengan variasi huruf
besar/dibalik dan sebagainya)
• Kata-kata yang ada di kamus, ditulis terbalik
• Nama favorit (pacar, artis, penyanyi, dan sebagainya)
Pilihan ini sangat riskan, sebab program semacam crack, dapat menebaknya dengan
mencocokkan kamus yang ada dengan mudah. Bahkan program ini dapat diberikan pilihan
kombinasi. Untuk itu perlu dibuat kebijakan yang baik untuk password.
Catatan :

Crack dapat Anda peroleh di


http://www.users.dircon.co.uk/crypto/index.html. Anda dapat
menggunakannya sebagai ujicoba untuk test seberapa jauh keamanan password dalam
jaringan Anda. Dokumentasinya dapat pula Anda peroleh di
http://alloy.net/writings/funny/crack_readme.txt.

Program pembantu dalam cek password di antaranya :

Subsections
• passwd+
• anlpasswd
• npasswd

passwd+

Program yang ditulis oleh Matt Bishop ini mampu meningkatkan logging, dan mengingatkan user
jika mengisi password yang mudah ditebak. passwd+ dapat Anda peroleh di
ftp://ftp.dartmouth.edu/pub/security

anlpasswd

Program ditulis dalam perl oleh Argonne National Laboratory. anlpasswd mempunyai aturan
standar dalam pengisian password. Meski demikian dapat ditambahkan beberapa aturan yang dibuat
sendiri, seperi jumlah minimal, gabungan huruf besar huruf kecil, gabungan angka dan huruf.
anlpasswd dapat Anda peroleh di:
ftp://coast.rs.purdue.edu/pub/tools/unix/anlpasswd/analpasswd-
2.3.tar.Z

Distributed by: http://abebudi.blogspot.com/


npasswd

Program sederhana, ditulis oleh CLYDE HOOVER merupakan program pengganti passwd yang
biasa. npasswd dapat Anda peroleh di :
http://www.uetxas.edu/cc/unix/software/npasswd/doc untuk dokumentasi
http://www.utexas.edu/cc/unix/software/npasswd untuk programnya

Distributed by: http://abebudi.blogspot.com/


Distributed by: http://abebudi.blogspot.com/
Network Access Control
Linux dapat memilih komputer mana saja yang dapat mengaksesnya. Pembatasan antar jaringan ini
dinamakan Network Access Control. Alat pengontrolan akses jaringan ini dinamakan firewall.

Subsections
• Tentang Firewall
• Tipe firewall :
• Filter Paket di Linux
• TCP Wrapper sebagai Kontrol Akses

Tentang Firewall
Secara umum, firewall biasanya menjalankan fungsi:
• Analisa dan filter paket
Data yang dikomunikasikan lewat protokol di internet, dibagi atas paket-paket. Firewall
dapat menganalisa paket ini, kemudian memperlakukannya sesuai kondisi tertentu. Misal,
jika ada paket a maka akan dilakukan b. Untuk filter paket, dapat dilakukan di Linux tanpa
program tambahan.
• Bloking isi dan protokol
Firewall dapat melakukan bloking terhadap isi paket, misalnya berisi applet Jave, ActiveX,
VBScript, Cookie.
• Autentikasi koneksi dan enkripsi
Firewall umumnya memiliki kemampuan untuk menjalankan enkripsi dalam autentikasi
identitas user, integritas dari satu session, dan melapisi transfer data dari intipan pihak lain.
Enkripsi yang dimaksud termasuk DES, Triple DES, SSL, IPSEC, SHA, MD5, BlowFish,
IDEA dan sebagainya.
Catatan:

Untuk mempelajari firewall, minimal Anda harus mengetahui bagaimana TCP/IP


bekerja. Sebagai literatur, Anda dapat membaca Buku TCP/IP karangan ONNO W.
PURBO. Dokumen online berbahasa Indonesia tentang pengenalan TCP/IP juga tersedia
di http://www.k-elektronik.org.

Distributed by: http://abebudi.blogspot.com/


Tipe firewall :
1. Network-Level Firewall
Filter paket dilakukan biasanya dijalankan di router. Filter ini dapat dijalankan dengan
memberlakukan rule set tertentu. Contoh tipikal dari Network-Lever Firewall adalah TCP
Wrappers. Filter paket di Linux akan dibahas pada bagian selanjutnya.
2. Application-Proxy Firewall/Application Gateways
Berbeda dengan firewall sebelumnya yang memfilter dan bloking paket, Application-Proxy
firewall meneruskan paket yang ada ke host internal yang dituju. Firewall ini bisa dikatakan
sebagai jembatan. Application-Proxy Firewall biasanya berupa program khusus. Lebih jauh
tentang Application Gateways dapat Anda baca artikel karangan JOHN WACK di
http://www.telstra.com.au/pub/docs/security/800-
10/node52.html.
Catatan :

Contoh tipikal dari Application-Proxy Firewall adalah TIS FWTK (Trusted Information
System Firewall Toolkit), beberapa sumbernya :

http://www.micrognosis.com/nreadwin/fwtk/history.txt ; tentang
sejarah TIS FWTK. http://www.ssc.com/lj/issue25/1024.html ;
dokumen "Creating Firewall using the TIS Toolkit" karangan BENJAMIN EWY.

ftp://ftp.tis.com/pub/firewalls/toolkit/dist ; Program TIS


FWTK. Untuk menginstallnya di Linux, Anda harus mendownload patchnya di
ftp://ftp.tisl.ukans.edu/pub/security/firewalls/fwtkpatches
.tgz.

Filter Paket di Linux


Program paling populer untuk filter paket (dan dimasukkan hampir kesemua distribusi Linux)
adalah TCP Wrappers, dibuat oleh WIETSE VENEMA. Aplikasinya berada di
/usr/sbin/tcpd
Catatan :

Dokumentasi yang dilampirkan pada saat TCP Wrappers ini dipublikasikan dapat Anda
baca di http://www.raptor.com/lib/tcp_wrapper.ps.

Untuk melihat bagaimana TCP Wrappers ini bekerja, lihat sampel /etc/inetd.conf secara
umum :
ftp stream tcp nowait root /usr/sbin/ftpd
telnet stream tcp nowait root /usr/sbin/telnetd
shell stream tcp nowait root /usr/sbin/rshd
login stream tcp nowait root /usr/sbin/rlogind

Distributed by: http://abebudi.blogspot.com/


pop3 stream tcp nowait root /usr/sbin/pop3d

Ambil contoh salah satu, yakni telnetd :


telnet stream tcp nowait root /usr/sbin/telnetd
Penjelasan dari entri telnet tersebut adalah :
• Service yang dijalankan adalah telnet
• Tipe soket STREAM
• Protokol yang digunakan TCP
• Nowait berarti bahwa inetd harus memanggil program telnetd pada saat dibutuhkan.
• Root berarti bahwa telnetd harus dijalankan dengan user root
• /usr/sbin/telnetd menunjukkan letak program telnetd.
Jika ada permintaan telnet dari klien, maka inetd akan memanggil program telnetd untuk
melayaninya. Dengan demikian, server akan dijalankan oleh satu buah daemon, yakni inetd, jika
ada permintaan. Masalahnya adalah, program daemon tidak bisa menyeleksi tiap koneksi yang
masuk. Untuk itu dijalankan TCP Wrappers.
Catatan :

Binary Slackware, SuSE dan RedHat secara otomatis sudah menjalankan TCP Wrapper
begitu selesai instalasi.

Dengan TCP Wrapper, tcpd akan memotong permintaan inetd kepada semua service. Dalam
contoh di atas, saat ada user menjalankan telnet di port 25, inetd akan memanggil telnetd.
Tapi sebelum ke telnetd, dipotong dulu oleh tcpd, dicocokkan dengan beberapa rule set yang
telah diatur. Jika memenuhi syarat, akan diteruskan ke telnetd. Jika tidak, permintaan diputus.
Berikut isi dari inetd.conf yang telah dipasang tcpd (TCP Wrappers)
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -l
-i -a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
telnet stream tcp nowait root /usr/sbin/tcpd
/usr/sbin/in.telnetsnoopd
shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L
login stream tcp nowait root /usr/sbin/tcpd in.rlogind
pop3 stream tcp nowait root /usr/sbin/tcpd in.pop3d

Subsections
• TCP Wrapper sebagai Kontrol Akses

Distributed by: http://abebudi.blogspot.com/


TCP Wrapper sebagai Kontrol Akses

Tcpd dalam memberlakukan aturannya, membaca dua konfigurasi file, yaitu


• /etc/hosts.allow - host yang diperbolehkan untuk mengakses
• /etc/hosts.deny - host yang tidak diperbolehkan untuk mengakses
Pada saat selesai instalasi, isi file hosts.allow Anda akan tampak sebagai berikut :
#
# hosts.allow This file describes the names of the hosts which
are
# allowed to use the local INET services, as decided
by
# the '/usr/sbin/tcpd' server.
#
# Version: @(#)/etc/hosts.allow 1.00 05/28/93
#
# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org
#
#

# End of hosts.allow.
Dan file hosts.deny akan tampak :
#
# hosts.deny This file describes the names of the hosts which
are
# *not* allowed to use the local INET services, as
decided
# by the '/usr/sbin/tcpd' server.
#
# Version: @(#)/etc/hosts.deny 1.00 05/28/93
#
# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org
#
#

# End of hosts.deny.
Untuk memasukkan rule set dalam file tersebut, WIETZE VENEMA membuat bahasa tersendiri yang

Distributed by: http://abebudi.blogspot.com/


dituangkan dalam hosts_options. Untuk mengetahui detailnya, Anda bisa ketikkan :
$ man hosts_options
Inti dari rule set pada kedua file di atas menggunakan format :
Daemon list : client list : option
Misalnya, Anda ingin memberikan akses hanya untuk mesin dengan nomor ip 1.2.3.4, dapat
menuliskan :
ALL:ALL:DENY
ALL:1.2.3.4:ALLOW
Rule set tersebut, dapat Anda masukkan dalam file /etc/hosts.deny, sehingga file tersebut
menjadi seperti berikut :

#
# hosts.deny This file describes the names of the hosts which
are
# *not* allowed to use the local INET services, as
decided
# by the '/usr/sbin/tcpd' server.
#
# Version: @(#)/etc/hosts.deny 1.00 05/28/93
#
# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org
#
#
ALL:ALL:DENY
ALL:1.2.3.4:ALLOW
# End of hosts.deny.
Anda bisa melakukan ujicoba dengan mengakses service pada inetd lewat nomor IP 1.2.3.4 dan
nomor IP lain. Lihat perbedaannya, sekaligus mengetes apakah ruleset yang Anda buat telah
berjalan dengan baik.

Distributed by: http://abebudi.blogspot.com/


Enkripsi
Enkripsi adalah proses mengacak data sehingga tidak dapat dibaca oleh pihak lain. Pada
kebanyakan proses enkripsi, Anda harus menyertakan kunci sehingga data yang dienkripsi dapat
didekripsikan kembali. Ilmu yang mempelajari teknik enkripsi disebut kriptografi. Gambaran
sederhana tentang enkripsi, misalnya mengganti huruf a dengan n, b dengan m dan seterusnya.
Model penggantian huruf sebagai bentuk enkripsi sederhana ini sekarang tidak dipergunakan secara
serius dalam penyembunyian data. ROT-13 adalah program yang masih suka dipergunakan. Intinya
adalah mengubah huruf menjadi 23 huruf didepannya. Misalnya b menjadi o dan seterusnya.
Pembahasan enkripsi akan terfokus pada enkripsi password dan enkripsi komunikasi data.

Subsections
• Enkripsi Password
• Enkripsi komunikasi data
• Secure Shell (SSH)
• Instalasi SSH
• Konfigurasi Server

• SSL (Secure Socket Layer)


• SSL dengan Apache

Enkripsi Password
Password di Linux dibuat dengan menggunakan metode tingkat lanjut dalam enkripsi, yakni DES
(Data Encryption Standard). Menurut Federal Processing Standards Publication 46-2, DES
didefinisikan sebagai ;
Sebuah algoritma matematika untuk menjalankan enkripsi (enchypering) dan
dekripsi (dechypering) informasi koding binary. Enkripsi mengkonversikan data
menjadi bentuk yang sulit ditebak, disebut chyper. Proses dekripsi cypher
mengkonversikan data kedalam bentuk aslinya, disebut plain-text. (terjemahan bebas)

Enkripsi dan dekripsi dilakukan tergantung pada kunci (key). Kunci ini dibuat berdasarkan masukan
dari user pada saat mengetikkan password terdiri dari binary 64 digit. Jika password yang
diketikkan kurang dari binary 64 digit, maka DES akan menambahkannya secara otomatis. Dari
binary 64 digit, 56 dipergunakan untuk enkripsi, dan 8 dipergunakan untuk cek kesalahan (error
checking).
Saat seorang penyusup (atau siapa saja) akan melakukan crack terhadap password di Linux, mereka
biasanya mempergunakan kamus (dictionary attack). Saat melakukan crack, penyusup akan
mengambil kata-kata dari kamus, kemudian mengenkripsinya dengan DES. Dalam proses ini, kata
demi kata diberikan secara terus menerus, kemudian diproses sebagaimana Linux memproses
passwordnya. Hasilnya akan dicocokkan dengan daftar yang ada di /etc/passwd. Jika cocok,

Distributed by: http://abebudi.blogspot.com/


program cracker akan memberitahukan kepada penyusup, bahwa password sudah berhasil
ditemukan.
Untuk meningkatkan keamanan password dalam jaringan Anda, baca kembali sub bab tentang
Discretionary Access Control.

Enkripsi komunikasi data


Di dalam Internet (atau intranet) data yang dikirimkan dari satu komputer ke komputer lainnya,
pasti melewati komputer-komputer lain. Ambil contoh, pada saat Anda memasukkan password
untuk mengecek account email di hotmail, data akan dikirim dalam bentuk teks biasa melewati
beberapa host sebelum akhirnya diterima oleh hotmail. Pernahkah Anda berfikir bahwa salah satu
dari komputer yang dilewati oleh data Anda dipasangi program sniffer?
Sniffer adalah program yang membaca dan menganalisa setiap protokol yang melewati mesin di
mana program tersebut diinstal. Secara default, sebuah komputer dalam jaringan (workstation)
hanya mendengarkan dan merespon paket-paket yang dikirimkan kepada mereka. Namun demikian,
kartu jaringan (network card) dapat diset oleh beberapa program tertentu, sehingga dapat
memonitor dan menangkap semua lalu lintas jaringan yang lewat tanpa peduli kepada siapa paket
tersebut dikirimkan.
Kembali ke contoh tadi, jalankan traceroute untuk mengetahui berapa banyak host/komputer
yang dilewati data Anda. Lakukan test berikut pada saat komputer sedang online.
# traceroute www.hotmail.com
1 * * nas1-3.cbn.net.id (202.158.2.228) 1610.03 ms
2 nas1-rtif.cbn.net.id (202.158.2.225) 129.58 ms 119.94 ms
119.881 ms
3 * 203.127.108.137 (203.127.108.137) 620.031 ms 679.721 ms
4 202.160.250.29 (202.160.250.29) 639.809 ms 629.684 ms
710.019 ms
5 202.160.250.6 (202.160.250.6) 619.77 ms 939.703 ms 819.83
ms
6 S-0-0-0-explorer.ix.singtel.com (202.160.255.214) 849.86 ms
829.723 ms 829.886 ms
7 s4-1-0.paloalto-cr13.bbnplanet.net (4.0.17.249) 810.22 ms
901.074 ms 818.614 ms
8 p2-2.paloalto-nbr2.bbnplanet.net (4.0.2.221) 819.889 ms
799.684 ms 809.797 ms
9 p2-0.paloalto-cr1.bbnplanet.net (4.0.6.78) 809.877 ms
819.611 ms 839.936 ms
10 p0-0.mshotmail.bbnplanet.net (4.0.24.14) 809.757 ms 889.695
ms 849.887 ms
11 * * *
12 law5-rsp-c.hotmail.com (216.32.183.14) 870.029 ms 879.73 ms
869.859 ms

Distributed by: http://abebudi.blogspot.com/


13 lc2.law5.hotmail.com (209.185.243.135) 929.954 ms * 870.017
ms
Catatan :

Pada mesin Windows Anda juga dapat melakukan tes serupa dengan menjalankan
perintah tracert pada prompt. Misal c:\>tracert www.hotmail.com

Untuk menjaga data yang dikomunikasikan, Anda dapat menerapkan beberapa program enkrisi
komunikasi data. Di antaranya yang terkenal adalah secure shell (ssh), dan secure socket layer
(SSL).

Secure Shell (SSH)


Menurut RFC (Request For Comment) dari Secure Shell (SSH):
Secure Shell adalah program yang melakukan loging terhadap komputer lain dalam
jaringan, mengeksekusi perintah lewat mesin secara remote, dan memindahkan file dari
satu mesin ke mesin lainnya.

Algoritma enkripsi yang didukung oleh SSH di antaranya BlowFish (BRUCE SCHNEIER), Triple
DES (Pengembangan dari DES oleh IBM), IDEA (The International Data Encryption Algorithm),
dan RSA (The Rivest-Shamir-Adelman). Dengan berbagai metode enkripsi yang didukung oleh SSH,
Anda dapat menggantinya secara cepat jika salah satu algoritma yang Anda terapkan mengalami
gangguan.

Subsections
• Instalasi SSH
• Konfigurasi Server

Instalasi SSH

Saat ini SSH dalam bentuk kode sumber dapat diperoleh dihttp://www.ssh.fi, sedangkan
binarynya untuk klien dan server dapat Anda peroleh dihttp://www.replay.com. Beberapa
paket program utama yang dijadikan satu paket dalam SSH suite adalah :
1. make-ssh-known-host
Skrip Perl yang membuat database dari host-host yang otomatis dibuat berdasarkan domain.
2. scp
The Secure Shell Copy Program, mengamankan penggAndaan data dari satu komputer ke
komputer lainnya. Data ditransfer dalam bentuk enkripsi oleh SSH.
3. ssh
The Secure shell client, program yang bekerja seperti telnet. Perintah dapat Anda jalankan
secara remote sebagaimana telnet bekerja.

Distributed by: http://abebudi.blogspot.com/


4. ssh-add
Menambahkan kunci (key) baru terhadap autentikasi ssh-agent
5. ssh-agent
Digunakan untuk autentikasi lewat jaringan dengan model RSA.
6. sshd
Secure shell server, secara default bekerja pada port 22.
7. ssh-keygen
Program pembuat kunci (key generator) untuk ssh.
Untuk instalasinya mempergunakan langkah-langkah standar dalam kompilasi dan instalasi
program yang berbentuk kode sumber.
$ gunzip ssh-1.2.27 | tar xvf -
$ cd ssh-1.2.27
$ ./configure
$ make
$ su
password :
# make install

Selesai proses instalasi, Anda dapat mulai mengedit file konfigurasi untuk SSH :
• /etc/sshd_config (File konfigurasi server)
• /etc/ssh_config (File konfigurasi klien)

Distributed by: http://abebudi.blogspot.com/


Konfigurasi Server

Secara default, /etc/sshd_config Anda akan tampak sebagai berikut :


Port 22
ListenAddress 0.0.0.0
HostKey /etc/ssh_host_key
RandomSeed /etc/ssh_random_seed
ServerKeyBits 768
LoginGraceTime 600
KeyRegenerationInterval 3600
PermitRootLogin yes
IgnoreRhost no
StrictModes yes
QuietMode no
X11Forwarding yes
X11DisplayOffset 10
FascistLogging no
PrintMod yes
KeepAlive yes
SyslogFacility DAEMON
RhostsAuthentication no
RhostsRSAAuthentication yes
PasswordAuthentication yes
PermitEmptyPasswords yes
UserLogin no
# Checkmail no
#PidFile /u/zappa/.ssh/pid
# AllowHosts *.our.com friend.other.com
# DenyHosts lowsecurity.theirs.com *.evil.org evil.org
# Umask 022
#SilentDeny yes
Sebagai referensi dalam mengedit konfigurasi tersebut, berikut penjelasan tentang fungsi-fungsi
dari beberapa parameter yang perlu :

Distributed by: http://abebudi.blogspot.com/


Table: Parameter /etc/sshd_config
Parameter/etc/sshd_config Parameter Penjelasan
AllowGroups [groups] Digunakan untuk mengontrol grup yang dapat
memanfaatkan fasilitas SSH. Antar grup dipisahkan
dengan spasi. Misal AllowGroups root user
AllowHosts [hosts] Dipergunakan untuk mengontrol host-host yang dapat
mengakses layanan SSH. Host dapat diberikan dalam
bentuk nama atau nomor IP. Misalnya AllowHosts
*.pasarrumput.com 192.168.11.1
AllowTCPForwarding Dipergunakan untuk menentukan apakah TCP forwarding
diperbolehkan. Secara default di set yes.
CheckMail Digunakan untuk menentukan apakah user yang sedang
login dengan ssh diberitahu jika ada email masuk atau
tidak. Secara default diset yes.
DenyGroups Digunakan untuk mengontrol grup yang tidak
diperbolehkan untuk memanfaatkan fasilitas SSH.
Sebagaimana AllowGroup, parameter ini menggunakan
spasi untuk memisahkan grup satu dengan lainnya.
DenyHosts Untuk mengontrol host-host yang tidak diperbolehkan
untuk mengakses layanan SSH.
FascistLogging Untuk menentukan apakah sshd menjalankan aktivitas
logging
HostKey Untuk menentukan letak file kunci dari host. Secara
default file kunci ada di /etc/ssh_host_key
IdleTimeout Untuk menentukan waktu pemutusan layanan jika ada
session yang tidak melakukan aktivitas.
IgnoreRhosts Untuk menentukan apakah sshd membaca file .rhosts
atau tidak.
KeepAlive Untuk menentukan apakah sshd mengirimkan pesan
bahwa layanan masih berjalan atau tidak
LoginGraceTime Untuk menentukan waktu jeda saat user bisa login
kembali akibat kegagalan login pada sesi sebelumnya
PermitEmptyPassword Untuk menentukan apakah diperbolehkan atau tidak user
mengirimkan password kosong
PermitRootLogin Untuk menentukan apakah root dapat log in dengan ssh,
dan jika diperbolehkan apakah masih perlu autentikasi
password
PrintMod Untuk menentukan apakah sshd perlu menyampaikan
motd (message of the day) saat user login
RSAAuthentication Untuk menentukan apakah sshd menggunakan
autentikasi model RSA

Distributed by: http://abebudi.blogspot.com/


ServerkeyBits Untuk menentukan berapa bit yang dipakai sebagai kunci
untuk server
Untuk menentukan sshd menolak terhadap suatu session
SilentDeny
tanpa pemberitahuan sama sekali
Untuk menentukan sshd mengecek hak akses file
StrictModes terhadap home direktori sebagai pertimbangan untuk
menerima atau menolak suatu login
X11Forwarding Untuk

Untuk menjalankan sshd, cukup ketikkan sshd sebagai root.


# sshd
Ada beberapa pilihan dalam menjalankan sshd. Pilihan ini diketikkan sebagai prefiks saat
menjalankan sshd. Misal :
# sshd -g 60 (menjalankan sshd dengan timeout untuk klien 60 detik)

Table: Pilihan saat menjalankan sshd


Pilihan (prefiks) Fungsi
-b [bits] Dipergunakan untuk menentukan berapa bit yang
dipergunakan sebagai kunci. Secara default dipakai 768
bits.
-d Dipergunakan untuk menjalankan dalam modus DEBUG.
Ini berguna untuk mengamati proses server yang sedang
berjalan.
-f [config-file] Dipergunakan untuk menentukan file config yang lain
selain yang ditunjuk secara default (/etc/sshd_config)
-g [timeout] Dipergunakan untuk menentukan timeout jika ada
pengguna yang meminta sebuah sesi tetapi tidak
melakukan autentikasi. Defaultya 600 detik. Disarankan
untuk mengeset ke 60 detik.
-h [host-key] Dipergunakan untuk menentukan alternatif lain dari file
host key. Defaulntya adalah /etc/ssh_host_key.
-i Dipergunakan untuk menjalankan sshd dari inetd. Namun
oleh pembuatnya disarankan untuk tidak dijalankan lewat
inetd. Hal ini disebabkan karena sshd harus membuat key
untuk tiap sesi, sehingga mempengaruhi kinerja daemon
lain yang dijalankan lewat inetd.
-k Dipergunakan untuk mengeset waktu, berapa lama sshd
harus membuat (generating) kunci (session key) yang
baru. Defaultnya adalah sekali dalam sejam. Jika diset 0

Distributed by: http://abebudi.blogspot.com/


maka sshd tidak akan pernah membuat session key yang
baru.
Dipergunakan untuk menentukan port alternatif bagi sshd.
-p [port]
Defaultnya adalah port 22.
Dipergunakan untuk mematikan logging (tidak
-q
melakukan pencatatan terhadap aktifitas sshd.

Untuk klien, ssh mempergunakan file /etc/ssh_config. Secara default file tersebut berisi :
# This is ssh client systemwide configuration file. This file
provides
# default for users, and the values can be changed in per-user
#configuration
# files or on yhe command line.

# configuration data is parsed as follows:


# 1. Command line options
# 2. User- specificc file
# 3. Systemwide file
# Any configuration value is only change the first time it is set.
# Thus, host-specific definitistion should be at the beginning of
the
# configuration file, and defaults at the the end.

# Sitewide defaults for various options

# Host *
# ForwardAgent yes
# ForwardX11 yes
# RhostsAuthentication yes
# RhostRSAAuthentication yes
# RSAAuthentication yes
# TISAuthentication no
# PasswordAuthentication yes
# FallBackToRsh yes
# UserRSH no
# BatchMode no
# StrictHostKeyChecking no
# IdentifyFile -/.ssh/identity
# Port 22
# Chiper idea
# EscapeChar -

Distributed by: http://abebudi.blogspot.com/


Tabel berikut menjelaskan parameter yang dipergunakan dalam file ssh_config

Table: Parameter ssh_config (untuk klien ssh)


Pilihan Fungsi
BatchMode [yes/no] Dipergunakan untuk meminta username dan kata
kunci pada saat koneksi dimulai.
Cipher [cipher] Dipergunakan untuk menentukan metode enkripsi.
Pilihannya adalah idea, des, 3des (triple
DES), blow-fish, arcfour, dan none.
ClearA11Forwadings Dipergunakan untuk meminta agar ssh meneruskan
untuk membaca beberapa file konfigurasi dalam satu
sesi.
Compression [yes/no] Dipergunakan untuk meminta ssh menggunakan
kompresi selama sesi berjalan.
Compressionlevel [0-9] Dipergunakan untuk menentukan level kompresi.
Semakin kecil nomornya, kompresi semakin cepat,
tapi kualitas lebih jelek. Paling besar adalah 9,
memberikan kompresi dengan kualitas bagus, tapi
memperlambat kinerja.
ConnectAttempts [#] Dipergunakan untuk menentukan berapa kali ssh
akan mencoba berkoneksi kembali saat sebuah sesi
tidak berhasil di inisialisasikan.
EscapeChar [charracter] Dpergunakan untuk menentukan karakater Escape.
FallBackToRsh [yes/no] Dipergunakan untuk menentukan apakah ssh harus
berpindah ke rsh jika koneksi ke ssh server tidak
berhasil.
ForwardAgent [yes/no] Dipergunakan untuk menentukan apakah koneksi
dengan program autentikasi lain akan diteruskan atau
tidak.
ForwardX11 [yes/no] Dipergunakan untuk meneruskan sesi X11 secara
otomatis.
GetewayPorts [yes/no] Dipergunakan untuk menentukan apakah host remote
dapat tersambung secara lokal lewat port yang
meneruskannya.
Hostname [hostname] Dipergunakan untuk menentukan nama host yang
login secara default.
Identityfile [file] Dipergunakan untuk menetukan file alternatif
identitas RSA. Defaultnya adalah
.ssh/identity.
KeepAlive [yes/no] Dipergunakan untuk menentukan apakah klien ssh
mengirimkan pesan secara terus menerus kepada

Distributed by: http://abebudi.blogspot.com/


server remote.
KerberosAuthentication Dipergunakan untuk menentukan ssh memakai
autentikasi Kerberos 5.
KerberosTgtPassing Dipergunakan untuk menentukan ssh memakai
Kerberos ticket passing.
LocalForwading Port Dipergunakan untuk menentukan ssh meneruskan
host:port port lokal kepada host remote.
PasswordAuthentication Dipergunakan untuk menentukan ssh memakai
[yes/no] autentikasi basis password.
PasswordPromptHost Dipergunakan untuk menentukan apakah host remote
[yes/no] diperlihatkan dalam prompt login.
PasswordLogin [yes/no] Dipergunakan untuk menentukan ssh
memperlihatkan host remote pada saat autentikasi.
Port [port] Dipergukan untuk menentukan port alternatif.
RhostsAuthentication Dipergunakan untuk menentukan apakah autentikasi
rhost dapat dipergunakan. Jangan dipergunakan tanpa
alasan yang kuat, sebab rhost kurang aman.
RhostsRSAAuthentication Dipergunakan untuk menentukan ssh memakai
autentikasi rhost dan RSA pada saat koneksi dimulai.
SrictHostKeyChecking Dipergunakan untuk menentukan apakah ssh
menambahkan secara otomatis host key baru ke host
file. Pilihannya adalah yes, no, dan ask.

Klien windows dapat memmanfaatkan SSH dengan mempergunakan program telnet Tera Term Pro
+ TTSSH for Windows. Secara default Tera Term Pro tidak mendukung ssh, untuk itu perlu
ditambahkan program TTSSH for Windows. Terra Term Pro dapat diperoleh di
http://hp.vector.co.jp/authors/VA002416/teraterm.html. Sedangkan TTSSH
dapat diperoleh di
http://www.zip.com.au/roca/ttssh.html.

Distributed by: http://abebudi.blogspot.com/


SSL (Secure Socket Layer)
SSL merupakan salah satu metode enkripsi dalam komunikasi data yang dibuat oleh Netscape
Communication Corporation. Sebagaimana yang dijelaskan dalam SSL Protocol Internet Draft (The
SSL Protocol, Version 3.0 oleh ALAN O. FREIER dan PAUL C. KOCHER, dapat Anda buka di
http://home.netscape.com/eng/ssl3/ssl-toc.html.
SSL adalah Protokol berlapis. Dalam tiap lapisannya, sebuah data terdiri dari panjang,
deskripsi dan isi. SSL mengambil data untuk dikirimkan, dipecahkan kedalam blok-blok
yang teratur, kemudian dikompres jika perlu, menerapkan MAC, dienkripsi, dan
hasilnya dikirimkan. Di tempat tujuan, data didekripsi, verifikasi, dekompres, dan
disusun kembali. Hasilnya dikirimkan ke klien di atasnya. (terjemahan bebas).

SSL hanya mengenkripsikan data yang dikirim lewat http. Bagaimana SSL berjalan dapat
digambarkan sebagai berikut :
• Pada saat koneksi mulai berjalan, klien dan server membuat dan mempertukarkan kunci
rahasia, yang dipergunakan untuk mengenkripsi data yang akan dikomunikasikan. Meskipun
sesi antara klien dan server diintip pihak lain, namun data yang terlihat sulit untuk dibaca
karena sudah dienkripsi.
• SSL mendukung kriptografi public key, sehingga server dapat melakukan autentikasi dengan
metode yang sudah dikenal umum seperti RSA dan Digital Signature Standard (DSS).
• SSL dapat melakukan verifikasi integritas sesi yang sedang berjalan dengan menggunakan
algoritma digest seperti MD5 dan SHA. Hal ini menghindarkan pembajakan suatu sesi.
Lebih lanjut artikel yang saya sarankan untuk dibaca untuk mengetahui lebih dalam tentang SSL
(semuanya berbahasa Inggris) :
1. Analysis of the SSL 3.0Protocol,DAVID WAGNER dan BRUCE SCHENEIDER;
http://www.counterpane.com/ssl.html
2. Introducing SSL and Certificates, menjelaskan keuntungan sertifikasi SSL;
http://www.ultranet.com/fhirsch/Papers/cook/ssl_intro.html
3. Securing Communications on the Intranet and Over the Internet, TAHEL ELGAMAL, JEFF
TREUHAFT, danFRANK CHEN, Netscape Communications Corporation;
http://www.go-digital.net/whitepapers/securecomm.html
4. The Secure Socket Layer Protocol and Applications, ALLAN SCHIFFMAN, Terisa
Systems,Inc;
http://www.terisa.com:80/presentations/ams/ssl/index.htm

Subsections
• SSL dengan Apache

Distributed by: http://abebudi.blogspot.com/


SSL dengan Apache

Menambahkan SSL kedalam apache membutuhkan prosedur yang cukup rumit. Sebelum Anda
memulainya, pastikan bahwa Anda benar-benar membutuhkan. SSL biasa dipakai untuk aplikasi e-
commerce untuk verifikasi keabsahan kartu kredit atau untuk formulir yang berisi data penting. Jika
memang Anda belum berencana untuk menggunakannya, lewati saja bagian ini, dan coba nanti jika
Anda menginginkanya.
Program yang dibutuhkan :
• Apache 1.2.6 atau lebih
• SSLeay ; ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-
0.8.1b.tar.gz
• Patch SSL untuk Apache; ftp://ftp.ox/ac/uk/pub/crypto/SSL/Apache-
SSL/, sebagai contoh
apache_1_2_6+ssl_1_17.tar.gz
Catatan:

Jika Apache sudah terinstall dalam komputer Anda, maka perlu dijalankan instalasi
ulang, agar patch SSL bisa dimasukkan.

Proses pertama, ekstrak dan instal program SSLeay


$ cp SSLeay-0.8.1b.tar.gz /usr/src
$ cd /usr/src
$ tar -zxvf SSLeay-0.8.1b.tar.gz
$ cd /SSLeay-0.8.1b
$ perl ./Configure linux-elf
Catatan:

Configure Linux-elf hanya berjalan hanya untuk mesin Linux. Untuk mengetahui
pilihan-pilihan configure-nya jalankan perintah # perl ./Configure

$ make
$ make rehash
$ make install
Proses selanjutnya adalah ekstrak dan instal Patch SSL untuk Apache ke dalam direktori sumber
Apache.
# cp apache_1_2_6+SSL_1_17.tar.gz /usr/src/apache-1.2.6
# cd /usr/src/apache-1.2.6
# tar -zxvf apache_1_2_6+SSL.tar.gz
Yang akan diekstrak adalah :
• ben.pgp.key.asc- Kunci PGP dari penyusun program
• EXTRAS.SSL - dokumentasi tambahan fitur

Distributed by: http://abebudi.blogspot.com/


• LICENSE.SSL - Lisensi Apache SSL
• Md5sums - MD5 checksums untuk file-file yang diekstrak
• Md5sums.asc - tandatangan md5sums dari penyusun program
• README.SSL - dokumentasi pengenalan singkat
• SECURITY- Artikel tentang keamanan dari sistem SSL
• Src/apache_ssl.c - Modul tambahan untuk Apache
• SSLconf/conf/access.conf - file konfigurasi akses untuk apache yang masih
kosong
• SSLconf/conf/httpd.conf - Contoh file httpd.conf (file konfigurasi untuk Apache)
• SSLconf/conf/mime.types - contoh file konfigurasi mime.types
• SSLpatch- File patch yang akan dipergunakan.
Setelah file diekstrak, jalankan patch SSL
# patch -p1 < SSLpatch
Lalu pindah ke/usr/src/apache-1.2.6/src, kopikan fileConfiguration.tmpl
menjadiconfiguration. Edit file configuration, dan ganti variabel SSL_BASE untuk
menunjuk ke direktori SSLeay yang sebelumnya telah diinstall.
# cp Configuration.tmpl /usr/src/apache-1.2.6/src
# cd /usr/src/apache-1.2.6/src
# pico Configuration.tmpl
Ganti baris # SSL_BASE= /u/ben/cork/scuzzy-ssleay6 menjadi
SSL_BASE=/usr/src/SSLeay-0.8.1b
TekanCtrl-Xuntuk menyimpan, dan jalankan program make untuk apache.
# make
Pastikan bahwa prosedur yang dijalankan telah berjalan dengan benar. Cek apakah make telah
membuat file httpsd. Jika ada, maka semuanya berjalan dengan baik.
Setelah itu, edit file sertifikasi SSL yang terletak di /usr/local/ssl/lib. Nama filenya
ssleay.cnf. Sesuaikan isiannya dengan kebutuhan Anda, dan jalankan make certificate.
# make certificate
Proses ini akan menghasilkan file httpsd.pem yang terletak di
/usr/src/apache_1.2.6/SSLconf/conf.
Selanjutnya, sebelum Apache dijalankan, Anda perlu cek terlebih dahulu file konfigurasi httpsd
(sebagaimana file konfigurasi Apache yang telah dibahas sebelumnya, yakni httpd.conf,
access.conf dan srm.conf). Cek parameter-paremeter yang berkaitan dengan SSL, seperti
contoh berikut :
SSLCACertificatePath /var/httpd/conf
SSLCACertificateFile /var/httpd/conf/httpsd.pem
SSLCertificateFile /var/httpd/conf/httpsd.pem
SSLLogFile /var/httpd/logs/ssl.log
SSLCacheServerPort 8080

Distributed by: http://abebudi.blogspot.com/


SSLCacheServerPath /usr/src/SSLeay-0.8.1b
SSLSessionCacheTimeout 10000
Untuk menjalankan Servernya dengan menunjuk file konfigurasi yang telah dibuat, cukup jalankan
perintah :
# httpsd -f /var/httpd/conf/httpd.conf

Logging
Linux memiliki fasilitas logging yang sangat komprehensif. Untuk yang baru saja bermigrasi ke
Linux, mungkin belum terbiasa memanfaatkan logging. Pada sistem operasi non UNIX,
kebanyakan meminimalkan logging, bahkan tidak ada sama sekali.
Logging adalah prosedur di mana sebuah sistem operasi atau aplikasi merekam setiap kejadian dan
menyimpan rekaman tersebut untuk dapat dianalisa di kemudian hari. Kejadian yang direkam ini
bisa saja menyangkut sistem operasi, atau khusus program-program tertentu saja.
Semua file log di Linux disimpan dalam direktori /var/log. Beberapa program/file log yang
penting adalah :

Subsections
• lastlog
• last
• xferlog
• access_log
• error_log
• messages

lastlog
Berisi rekaman kapan user login terakhir kali. Yang ditampilkan adalah nama login, port dan waktu
login terakhir kali. Untuk memanggilnya cukup ketikkan lastlog, dan berikut contoh outputnya.
# lastlog
Username Port From Latest
root tty1 Tue Jul 3 18:55:24
+0700 2000
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**

Distributed by: http://abebudi.blogspot.com/


sync **Never logged in**
shutdown **Never logged in**
halt **Never logged in**
mail **Never logged in**
alias **Never logged in**
qmaild **Never logged in**
qmaill **Never logged in**
qmailp **Never logged in**
qmailq **Never logged in**
qmailr **Never logged in**
qmails **Never logged in**
xfs **Never logged in**
postfix **Never logged in**
sofyan **Never logged in**
mysql **Never logged in**
spawn tty1 Tue Jul 3 18:56:10
+0700 2000

last
Berisi rekaman user yang pernah login dengan mencarinya pada file /var/log/wtmp, sejak file
tersebut dibuat.
# last
spawn pts/0 Tue Jul 3 18:57 still
logged in
spawn tty1 Tue Jul 3 18:56 still
logged in
root tty1 Tue Jul 3 18:55 - 18:56
(00:00)
spawn pts/0 Tue Jul 3 18:08 - 18:57
(00:48)
spawn :0 Tue Jul 3 18:07 - 18:55
(00:47)
reboot system boot 2.2.12 Tue Jul 3 18:07
(01:55)
spawn pts/0 Tue Jul 3 09:31 - down
(04:18)

Distributed by: http://abebudi.blogspot.com/


spawn :0 Tue Jul 3 09:30 - 13:49
(04:18)
spawn pts/0 Tue Jul 3 08:37 - 09:31
(00:54)
spawn :0 Tue Jul 3 08:36 - 09:30
(00:54)
spawn pts/0 Mon Jul 2 21:42 - 08:37
(10:54)
spawn :0 Mon Jul 2 21:42 - 03:19
(05:37)
reboot system boot 2.2.12 Mon Jul 2 21:41
(16:08)
spawn pts/0 Mon Jul 2 21:38 - down
(00:01)
spawn :0 Mon Jul 2 21:38 - down
(00:01)
root tty1 Mon Jul 2 21:30 - down
(00:09)
reboot system boot 2.2.12 Mon Jul 2 21:30
(00:09)
root tty1 Mon Jul 2 21:26 - down
(00:02)
reboot system boot 2.2.12 Mon Jul 2 21:24
(00:04)
root tty1 Mon Jul 2 21:03 - down
(00:06)
reboot system boot 2.2.12 Sun Jul 1 22:14
(10:38)
spawn pts/0 Sun Jul 1 14:31 - down
(02:52)
spawn :0 Sun Jul 1 14:31 - 17:24
(02:52)
reboot system boot 2.2.12 Sun Jul 1 14:30
(02:54)
spawn pts/0 Sun Jul 1 12:04 - down
(00:02)
spawn :0 Sun Jul 1 12:03 - 12:06
(00:02)
reboot system boot 2.2.12 Sun Jul 1 12:02
(00:03)

Distributed by: http://abebudi.blogspot.com/


wtmp begins Sun Jul 1 11:59:03 2000

xferlog
Mencatat semua informasi yang pernah login di ftp daemon. Data yang ditampilkan berupa waktu
saat ini, durasi transfer file, host yang mengakses (baik nomor IP maupun nama host), jumlah file
yang ditransfer, nama file, tipe transfer (Binary atau ASCII), perintah khusus yang diberikan (jika
file dikompres atau tar), arah transfer (incoming, outgoing), modus akses (anonymous, guest, atau
user resmi), nama user, layanan, metode otentikasi, dan user ID.
# less /var/log/xferlog

access_log
Berisi rekaman untuk layanan http (HyperText Transfer Protocol) atau layanan web server.
Access_log biasanya terdiri dari Nomor IP dari pengakses, jam dan tanggal akses, printah atau
permintaan, dan kode status.
# less /var/log/ access_log

error_log
Berisi rekaman pesan kesalahan atas service http atau web server. Error_log terdiri dari jam dan
waktu, tipe kesalahan, alasan kesalahan, layanan, dan perintah yang dijalankan berikutnya (kadang-
kadang).
# less /var/log/error_log

messages
Rekaman kejadian sistem dan kernel, ditangani oleh dua daemon;
• syslogd merekam semua program yang dijalankan. Untuk mengkonfigurasikannya dapat
mempergunakan syslog.conf.
• klogd, menerima dan merekam pesan kernel
File messages dapat dilihat di /var/log/messages. Berikut contohnya :
# less /var/log/messages

Distributed by: http://abebudi.blogspot.com/


Deteksi Penyusupan (Intrusion Detection)
Deteksi penyusupan adalah aktivitas untuk mendeteksi penyusupan secara cepat dengan
menggunakan program khusus yang otomatis. Program yang dipergunakan biasanya disebut sebagai
Intrusion Detection System (IDS).
Tipe dasar dari IDS adalah:
• Rule-based systems - berdasarkan atas database dari tanda penyusupan atau serangan yang
telah dikenal. Jika IDS mencatat lalulintas yang sesuai dengan database yang ada, maka
langsung dikategorikan sebagai penyusupan.
• Adaptive systems - mempergunakan metode yang lebih canggih. Tidak hanya berdasarkan
database yang ada, tapi juga membuka kemungkinan untuk mendeteksi terhadap bentuk
bentuk penyusupan yang baru.
Bentuk yang sering dipergunakan untuk komputer secara umum adalah rule-based systems.
Pendekatan yang dipergunakan dalam rule-based systems ada dua, yakni pendekatan pencegahan
(preemptory) dan pendekatan reaksi (reactionary). Perbedaannya hanya masalah waktu saja.
Pendekatan pencegahan, program pendeteksi penyusupan akan memperhatikan semua lalu lintas
jaringan. Jika ditemukan paket yang mencurigakan, maka program akan melakukan tindakan yang
perlu. Pendekatan reaksi, program pendeteksi penyusupan hanya mengamati file log. Jika
ditemukan paket yang mencurigakan, program juga akan melakukan tindakan yang perlu.
Beberapa contoh program IDS di antaranya:
1. chkwtmp
Program yang melakukan pengecekan terhadap entri kosong. Dalam arti, wtmp mencatat
sesuatu tapi isinya kosong. Program ini dapat diperoleh di
http://sunsite.ics.forth/gr/pub/systools/chkwtmp/chkwtmp-
1.0.tar.gz.
2. tcplogd
Program yang mendeteksi stealth scan. Stealth scan adalah scaning yang dilakukan tanpa
harus membuat sebuah sesi tcp. Sebuah koneksi tcp dapat terbentuk jika klien mengirimkan
paket, dan server mengirimkan kembali paketnya dengan urutan tertentu, secara terus
menerus sehingga sesi tcp dapat berjalan. Stealth scan memutuskan koneksi tcp sebelum
klien menerima kembali jawaban dari server. Scaning model ini biasanya tidak terdeteksi
oleh log umum di Linux. Tcplogd dapat diperoleh di
http://www.kalug.net/tcplogd.
3. hostsentry
Program yang mendeteksi login anomali. Anomali disini termasuk perilaku aneh (bizzare
behaviour), anomali waktu (time anomalies), dan anomali lokal (locale anomalies). Versi
beta dari program ini dapat diperoleh di
http://www.psionic.com/abacus/hostsentry.

Distributed by: http://abebudi.blogspot.com/


Ringkasan
Dari sini, Anda sudah mulai mempunyai kepedulian yang cukup terhadap keamanan jaringan Anda.
Secara singkat, sudah pelajari bersama bagaimana arsitektur keamanan di Linux. Jika keamanan
sudah diset secara maksimal menurut perspektif kita, maka yang diperlukan hanyalah kerajinan
untuk membaca file-file log yang dibuat oleh Linux. Meskipun bisa dibilang bahwa jaringan tidak
mempunyai data-data keamanan yang penting, tapi kepedulian terhadap masalah keamanan ini akan
memudahkan pekerjaan di kemudian hari.
Dengan pesatnya perkembangan sistem informasi, maka perlu bagi para pemelihara jaringan untuk
tetap terlibat dalam isu-isu terakhir dalam bidang teknologi. Ketinggalan terhadap isu bug, virus,
dan isu keamanan lainnya, akan membuat jaringan yang dirawat menjadi rawan akan penyusupan.
Beberapa contoh sumber informasi untuk keamanan secara umum :
• http://www.cert.org ; memberikan saran berdasarkan riset dan study tentang
kemampuan, tanggapan dan isu keamanan secara umum
• http://geek-girl.com/bugtraq ; berisi koleksi milis yang membahas tentang bug
secara umum.
• http://security.linuxtoday.com; berisi berita-berita terakhir tentang penemuan
kelemahan keamanan dalam sistem Linux.
• http://www.seifried.org/lasg; berisi artikel tentang aspek penting dalam
keamanan Linux, dibuat oleh KURT SIFRIED. Dokumennya dapat diperoleh dalam bentuk
pdf.

Distributed by: http://abebudi.blogspot.com/


Lampiran1
GNU General Public License
LISENSI PUBLIK UMUM GNU
Diterjemahkan ke bahasa Indonesia oleh Kelompok Kerja F/KOMAS 2001. Disunting oleh
Rahmat M. Samik-Ibrahim <rms46-gnu-tr@vlsm.org>

Version 2, Juni 1991. Hak cipta (C) 1989, 1991 Free Software
Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-
1307, USA
Semua orang diperbolehkan untuk menyalin dan mendistribusikan salinan sama persis dari
dokumen lisensi ini, tetapi mengubahnya tidak diperbolehkan.

Mukadimah
Hampir semua lisensi dari perangkat lunak dirancang untuk merebut kebebasan anda dan
mengubahnya. Sebaliknya, Lisensi Publik Umum GNU (GNU General Public License) bertujuan
untuk menjamin kebebasan anda untuk berbagi dan mengubah perangkat lunak bebas - untuk
menjamin bahwa perangkat lunak tersebut tetap bebas bagi penggunanya. General Public License
ini dapat diberlakukan terhadap hampir semua perangkat lunak Free Software Foundation dan
program lain apa pun yang penciptanya mau menggunakan Lisensi ini. (Beberapa perangkat lunak
Free Software Foundation lainnya menggunakan GNU Library Public License.) Anda dapat
memberlakukannya terhadap program Anda juga.
Ketika kita berbicara tentang perangkat lunak bebas, kita mengacu kepada kebebasan, bukan harga.
Lisensi Publik Umum kami dirancang untuk menjamin bahwa Anda memiliki kebebasan untuk
mendistribusikan salinan dari perangkat lunak bebas (dan memberi harga untuk jasa tersebut jika
Anda mau), mendapatkan source code atau bisa mendapatkannya jika Anda mau, mengubah suatu
perangkat lunak atau menggunakan bagian dari perangkat lunak tersebut dalam suatu program baru
yang juga bebas; dan mengetahui bahwa Anda dapat melakukan semua hal ini.
Untuk melindungi hak-hak Anda, kami perlu membuat batasan-batasan yang melarang orang lain
untuk dapat menolak hak-hak Anda atau membuat Anda menyerahkan hak-hak Anda tersebut.
Batasan-batasan ini diterjemahkan menjadi beberapa tanggung jawab bagi Anda jika Anda
mendistribusikan salinan dari suatu perangkat lunak, atau memodifikasinya.
Sebagai contoh, jika Anda mendistribusikan salinan dari suatu program, baik secara gratis atau
dengan biaya, Anda harus memberi semua hak-hak Anda kepada si penerima. Anda juga harus
menjamin bahwa si penerima tersebut mendapatkan atau bisa mendapatkan source code-nya.
Kami melindungi hak-hak Anda dengan dua langkah: (1) hak cipta terhadap perangkat lunak
tersebut, dan (2) menawarkan Lisensi ini kepada Anda yang memberi Anda izin legal untuk
menyalin, mendistribusikan dan/atau memodifikasi perangkat lunak tersebut.
Demi perlindungan bagi si pencipta dan kami juga, kami ingin memastikan bahwa semua orang
mengerti bahwa tidak ada garansi bagi perangkat lunak bebas. Jika perangkat lunak tersebut

Distributed by: http://abebudi.blogspot.com/


dimodifikasi oleh orang lain dan didistribusikan, kami ingin sang penerimanya mengetahui bahwa
apa yang mereka punyai bukanlah perangkat lunak yang aslinya, sehingga masalah apa pun yang
ditimbulkan oleh orang lain tidak mencerminkan reputasi pencipta perangkat lunak yang asli.
Terakhir, program bebas apa pun terancam terus menerus oleh hak paten perangkat lunak. Kami
ingin menghindari bahaya yang memungkinkan redistributor program yang bebas bisa mendapatkan
hak paten untuk dirinya sendiri, yang mengakibatkan program tersebut menjadi tak bebas. Untuk
mencegah hal ini, kami telah menyatakan dengan jelas bahwa hak paten apa pun harus dilisensikan
bagi semua orang, atau tidak sama sekali.
Berikut adalah ketentuan dan persyaratan yang tepat untuk menyalin, mendistribusikan dan
memodifikasi.

KETENTUAN DAN PERSYARATAN UNTUK MENYALIN,


MENDISTRIBUSIKAN DAN MEMODIFIKASI
0. Lisensi ini berlaku untuk program apa pun atau karya lain yang memuat pemberitahuan yang
ditempatkan oleh pemegang hak cipta memberitahukan bahwa program atau karya tersebut boleh
didistribusikan di bawah persyaratan dari General Public License ini. Sang "Program", di bawah,
mengacu pada program atau karya apa pun seperti yang telah disebutkan, dan "karya berdasarkan si
Program" berarti si Program itu sendiri atau karya turunan apa pun di bawah hukum hak cipta: yang
artinya, suatu karya yang memuat si Program atau bagian darinya, baik itu sama persis atau dengan
modifikasi dan/atau diterjemahkan ke dalam bahasa lain. (Mulai dari sekarang, penerjemahan
dimasukkan tanpa batas dalam ketentuan "modifikasi".) Setiap pemegang lisensi disebut sebagai
"Anda".
Kegiatan selain menyalin, mendistribusikan dan memodifikasi tidak dilingkupi oleh Lisensi ini;
kegiatan tersebut berada di luar ruang lingkup Lisensi ini. Kegiatan menjalankan si Program tidak
dibatasi, dan keluaran dari si Program dilingkupi hanya jika isinya mempunyai dasar karya yang
berbasis si Program tersebut (terlepas dari keluarannya dibuat dengan cara menjalankan si Program
atau tidak). Benar atau tidaknya tergantung pada apa yang dilakukan si Program.
1. Anda boleh menyalin dan mendistribusikan sama persis dari source code si Program
sebagaimana Anda menerimanya, dalam media apa pun, dengan syarat Anda menaruh
pemberitahuan yang pantas tentang hak cipta dan penyangkalan terhadap garansi dengan jelas dan
sepatutnya pada setiap salinan; menyimpan secara utuh semua pemberitahuan yang mengacu
kepada Lisensi ini dan kepada ketiadaan garansi apa pun; dan memberi kepada penerima lainnya
sebuah salinan dari Lisensi ini bersama si Program.
Anda boleh memberi harga untuk kegiatan memindahkan salinan secara fisik, dan Anda boleh,
sesuai pilihan Anda, menawarkan perlindungan garansi untuk harga tertentu.
2. Anda boleh memodifikasi satu atau lebih salinan si Program atau bagian dari si Program yang
Anda miliki, sehingga membentuk suatu karya yang berdasarkan si Program, dan menyalin serta
mendistribusikan modifikasi atau karya seperti yang telah disebutkan dalam ketentuan pada Bagian
1 di atas, dengan syarat Anda juga memenuhi semua persyaratan ini:
a) Anda harus membuat agar berkas-berkas yang termodifikasi membawa pemberitahuan menyolok
yang memberitahukan bahwa Anda telah mengubah berkas-berkas tersebut dan tanggal perubahan
tersebut.
b) Anda harus menghasilkan karya yang Anda sebarkan atau edarkan, baik seluruhnya atau
sebagian atau di hasilkan dari suatu program atau dari berbagai bagian, untuk dilisensikan secara

Distributed by: http://abebudi.blogspot.com/


keseluruhan tanpa biaya kepada seluruh partai ketiga di bawah lisensi tersebut.
c) Jika program yang dimodifikasi saat dijalankan dapat membaca perintah-perintah secara
interaktif, Anda harus dapat mewujudkannya, saat memulai menjalankan sesuatu interaktif dengan
cara yang paling wajar, mencetak atau menampilkan suatu pengumuman termasuk pemberitahuan
hak cipta dan tidak adanya garansi (atau lainnya, yang mengatakan kalau Anda menyediakan
garansi, dan pemakai boleh mengedarkan program tersebut berdasarkan suatu kondisi/persyaratan,
dan beritahukan kepada mereka bagaimana caranya melihat salinan dari lisensi tersebut.
(Pengecualian : Jika program itu sendiri adalah interaktif tapi tidak mencetak pemberitahuan seperti
di atas, karya Anda yang berdasarkan program tersebut juga tidak diharuskan mencetak
pemberitahuan tersebut.)
Persyaratan-persyaratan ini diperuntukkan untuk karya yang dimodifikasi secara keseluruhan. Jika
bagian yang dapat diidentifikasi dari karya tersebut tidak berasal dari suatu program, dan dapat
dinyatakan berdiri sendiri dan suatu karya yang terpisah, maka Lisensi ini, dan bagian-bagiannya,
tidak berlaku untuk bagian tersebut saat Anda mengedarkannya sebagai suatu karya yang terpisah.
Namun, saat Anda mengedarkan bagian yang sama sebagai bagian dimana karya tersebut
merupakan bagian dari program, pengedaran dari yang keseluruhan harus berdasarakan lisensi
tersebut, yang perizinannya untuk lisensi yang lain diperluas ke seluruhnya, dan pada setiap bagian
tidak peduli siapa yang menulisnya.
Maka, bukanlah tujuan dari bagian ini untuk mengklaim hak-hak atau memamerkan hak-hak Anda
untuk bekerja menulis seluruhnya oleh Anda; daripada, tujuannya adalah untuk melatih hak untuk
mengendalikan pendistribusian dari karya turunan atau kolektif berdasarkan si Program tersebut.
Sebagai tambahan, agregasi belaka dari karya yang lain tidak berdasarkan dari si Program dengan si
Program (atau dengan suatu karya berdasarkan si Program) pada kapasitas penyimpanan atau media
pendistribusian tidak membawa karya lainnya di bawah lingkup dari Lisensi tersebut.
3. Anda boleh menyalin dan menyalurkan si Program (atau karya yang berdasarkan si Program
tersebut, tercantum pada Bagian 1 dan 2) dalam object code atau bentuk yang dapat dijalankan
seperti pada ketentuan yang tercantum pada Bagian 1 dan 2 di atas, dengan syarat Anda juga
melakukan salah satu dari hal berikut:
a) Menyertakannya dengan source code bersangkutan yang lengkap dan dapat dibaca, yang harus
didistribusikan di bawah ketentuan yang tercantum pada Bagian 1 dan 2 di atas pada suatu media
yang dipergunakan secara khusus untuk pertukaran perangkat lunak; atau,
b) Menyertakannya dengan penawaran tertulis, yang berlaku untuk setidaknya tiga tahun, untuk
memberi pihak ketiga mana pun, dengan suatu harga yang tidak melebihi biaya untuk melakukan
pendistribusian sumber, source code bersangkutan yang lengkap dan dapat dibaca, untuk
didistribusikan di bawah ketentuan dari Bagian 1 dan Bagian 2 di atas pada suatu media yang
dipergunakan secara khusus untuk pertukaran perangkat lunak; atau,
c) Menyertakannya dengan informasi yang Anda terima berhubungan dengan penawaran untuk
mendistribusikan source code yang bersangkutan. (Alternatif ini diperbolehkan hanya untuk
distribusi non-komersil dan hanya jika Anda memperoleh program dalam bentuk object code atau
bentuk yang dapat dijalankan dengan penawaran seperti yang telah disebutkan, menurut Subbagian
b di atas.)
Source code dari sebuah karya berarti bentuk yang diinginkan dari pekerjaan untuk
memodifikasinya. Untuk sebuah karya yang dapat dijalankan, source code lengkap artinya semua
source code untuk semua modul yang dikandungnya, ditambah berkas-berkas definisi yang
berhubungan, ditambah script yang digunakan untuk mengendalikan kompilasi dan instalasi dan
bentuk yang dapat dijalankannya. Bagaimanapun, sebagai pengecualian, pendistribusian source

Distributed by: http://abebudi.blogspot.com/


code tidak diperlukan untuk memasukkan semua komponen yang biasanya didistribusikan (dalam
bentuk source atau biner) bersama dengan komponen utama (kompilator, kernel, dan sebagainya)
dari sistem operasi dimana program tersebut berjalan, kecuali komponen tersebut mendampingi
bentuk yang dapat dijalankannya. Jika pendistribusian dari bentuk yang dapat dijalankannya dan
object code dibuat dengan penawaran akses untuk menyalin dari tempat yang telah ditentukan,
maka penawaran akses untuk menyalin source code dari tempat yang sama dihitung sebagai
pendistribusian dari source code, walaupun pihak ketiga tidak diharuskan untuk menyalin source
code bersama-sama dengan object code.
4. Anda tidak boleh menyalin, mengubah, mensublisensikan, atau mendistribusikan si Program
tersebut kecuali sebagaimana telah diterangkan pada Lisensi ini. Segala usaha untuk menyalin,
mengubah, mensublisensikan, atau mendistribusikan si Program tersebut adalah tidak sah, dan
secara otomatis akan membatalkan hak-hak Anda di bawah Lisensi ini. Akan tetapi, mereka yang
sudah mendapatkan salinan, atau hak-hak dari Anda di bawah Lisensi ini tidak akan dibatalkan
lisensinya selama mereka tetap mematuhi Lisensi ini.
5. Anda tidak diharuskan menerima Lisensi ini, karena anda belum menyetujuinya. Tetapi, tidak
ada lisensi lain yang memberi anda izin untuk memodifikasi atau mendistribusikan Program
tersebut atau turunannya. Kegiatan tersebut dilarang oleh hukum jika anda tidak menerima Lisensi
ini. Oleh karena itu, dengan memodifikasi atau mendistribusikan program tersebut (atau hasil kerja
berdasarkan program tersebut), berarti Anda menerima Lisensi ini, dan semua ketentuan serta
kondisi untuk menyalin, mendistribusikan atau memodifikasi program tersebut atau hasil kerja
berdasarkan program tersebut.
6. Setiap kali anda mendistribusikan si Program tersebut (atau hasil kerja lain berdasarkan Program
tersebut), penerima secara otomatis menerima lisensi dari pemberi lisensi untuk menyalin,
mendistribusikan atau memodifikasi si Program tersebut berdasarkan persyaratan dan kondisi yang
ada. Anda tidak boleh memberikan pembatasan lain terhadap perilaku penerima terhadap hak-hak
yang telah diberikan . Anda tidak bertanggung jawab untuk memaksakan penyesuaian pihak ketiga
terhadap Lisensi ini.
7. Jika sebagai konsekuensi dari keputusan pengadilan atau pelanggaran paten atau hal yang lainnya
(tidak terbatas kepada permasalahan paten), kondisinya tergantung pada anda (jika ada suruhan dari
pengadilan, kesepakatan atau yang lainnya) yang berbeda dari Lisensi ini, mereka tidak menerima
kesepakatan Lisensi ini. Jika kita tidak bisa menyebarkan agar dapat secara simultan terpuaskan
kesepakatan di bawah Lisensi ini dan kesepakatan yang lainnya, kemudian sebagai konsekuensi nya
kita tidak dapat mengedarkan seluruh program sama sekali. Sebagai contoh, jika lisensi paten tidak
membolehkan pembayaran royalti (hak pakai) dari program dimana pengguna menerima salinannya
secara langsung atau tidak langsung dari Anda, maka satu-satunya jalan untuk Anda memuaskan
antara yang menerima salinan dan Lisensi ini adalah untuk menjelaskan keseluruhan distribusi
program.
Jika ada bagian dari sini termasuk tidak sah atau tidak dapat diterapkan di bawah keadaan tertentu
apa pun juga, keseimbangan dari bagian ini bertujuan untuk menerapkan dan bagian ini sebagai
keseluruhan adalah diperuntukkan untuk menerapkan hal yang lainnya.
Ini bukan bermaksud untuk mempengaruhi Anda untuk melanggar paten tertentu atau klaim hak
kepemilikan yang lain atau untuk mengadu keabsahan klaim hak kepemilikan apa pun; bagian ini
mempunyai maksud dan tujuan untuk melindungi integritas dari sistem pendistribusian perangkat
lunak bebas, dimana perangkat lunak itu diimplementasikan oleh praktek lisensi umum. Banyak
orang sekarang telah dapat membuat kontribusi umum untuk mendistribusikan penggunaan
perangkat lunak dalam sebuah sistem yang terbuka; hal ini tergantung dari si pencipta/penderma
jika ia punya keinginan untuk menyebarkan/tidak menyebarkan aplikasi yang ia buat ke masyarakat
luas tanpa mengikuti sistem yang berlaku dan pemegang lisensi tidak dapat menentukan pilihan

Distributed by: http://abebudi.blogspot.com/


tersebut.
Bagian ini bertujuan untuk membuat sebuah pemahaman yang jelas tentang apa yang dipercayai
sebagai akibat dari sisa Lisensi ini.
8. Jika distribusi dan/atau penggunaan si Program dibatasi di negara-negara tertentu saja melalui
paten atau hak cipta antar muka, pemegang hak cipta orisinil yang menempatkan si Program di
bawah Lisensi ini boleh menambahkan batasan pendistribusian geografis secara ekplisit terkecuali
negara-negara yang disebut di atas, sehingga distribusi hanya terdapat di dalam atau di antara
negara-negara yang diperbolehkan. Dalam kasus semacam itu, Lisensi ini menyertakan limitasi di
atas sebagaimana tertulis di dalam tubuh Lisensi ini.
9. Free Software Foundation diperbolehkan menerbitkan versi revisi atau versi baru dari General
Public License dari waktu ke waktu. Versi baru semacam itu akan tetap memiliki semangat yang
sama dengan versi sebelumnya, tapi dapat berbeda detil untuk menangani problem baru atau
perhatian baru.
Setiap versi diberikan nomor versi yang berbeda-beda. Jika si Program menyatakan nomor versi
dari Lisensi ini yang diberlakukan dalam Program tersebut dan versi-versi berikutnya dari Program
tersebut, Anda memiliki pilihan untuk mengikuti syarat dan kondisi dari versi ini atau salah satu
versi berikutnya yang diterbitkan oleh Free Software Foundation. Jika Program tidak menyatakan
nomor versi dari Lisensi ini, Anda boleh memilih sembarang versi yang diterbitkan oleh Free
Software Foundation.
10. Jika Anda menginginkan untuk menyertakan bagian dari Program ke dalam program bebas yang
lain yang kondisi distribusinya berbeda, Anda harus menanyakan kepada penulis program. Untuk
software yang dihakciptakan oleh Free Software Foundation, anda harus menanyakan ke Free
Software Foundation; kami kadang kala membuat pengecualian dalam hal ini. Keputusan kami
akan ditentukan oleh dua hal yaitu untuk menjaga status bebas dari semua turunan perangkat lunak
bebas kami dan untuk mempromosikan pengunaan bersama dan penggunaan kembali dari perangkat
lunak secara umum.
TIDAK ADA GARANSI
11. KARENA IZIN PROGRAM BEBAS BIAYA, TAK ADA JAMINAN TAMBAHAN UNTUK
PROGRAM SAMPAI BATASAN YANG DITENTUKAN OLEH HUKUM YANG ADA.
KECUALI JIKA ADA TULISAN YANG DISEBUTKAN OLEH PEMEGANG HAK CIPTA
DAN ATAU KELOMPOK LAIN YANG MENYEDIAKAN PROGRAM SEBAGAI TANPA
JAMINAN JENIS APAPUN, BAIK SECARA LANGSUNG MAUPUN TIDAK LANGSUNG,
TERMASUK, TAPI TAK TERBATAS, JAMINAN DAYA JUAL DAN TUJUAN-TUJUAN
TERTENTU. SEMUA RESIKO DARI KUALITAS DAN KEHANDALAN PROGRAM
DITANGGUNG ANDA SENDIRI, JIKA TERJADI PROGRAM TERNYATA CACAT ATAU
KURANG SEMPURNA, ANDA MEMBUAT ASUMSI DARI BIAYA PERBAIKAN,
PEMBETULAN DAN KOREKSI SEPERLUNYA.
12. TIDAK DALAM KEADAAN APA PUN KECUALI DIBUTUHKAN OLEH HUKUM YANG
ADA ATAU DISETUJUI DALAM TULISAN PEMEGANG HAK CIPTA, ATAU PIHAK LAIN
YANG MEMODIFIKASI DAN MENDISTRIBUSIKAN PROGRAM SEPERTI YANG
DIIZINKAN DI ATAS, ANDA BERTANGGUNG JAWAB ATAS KERUSAKAN , TERMASUK
SECARA UMUM, KERUSAKAN KHUSUS, SENGAJA MAUPUN TIDAK DISENGAJA,
YANG MENYEBABKAN PROGRAM TAK BISA DIGUNAKAN (TERMASUK, TAPI TAK
TERBATAS HANYA PADA HAL TERSEBUT KEHILANGAN DATA ATAU DATA
MENJADI TIDAK AKURAT, DISEBABKAN OLEH ANDA ATAU PIHAK KETIGA, ATAU
KEGAGALAN PROGRAM UNTUK BEKERJASAMA DENGAN PROGRAM LAIN ), WALAU
BAHKAN JIKA PEMEGANG HAK CIPTA ATAU PIHAK LAIN TELAH DIPERINGATKAN

Distributed by: http://abebudi.blogspot.com/


TENTANG KEMUNGKINAN KERUSAKAN TERSEBUT.
AKHIR KETENTUAN SERTA PERSYARATANNYA

Cara Menerapkan Ketentuan Ini dalam Program Baru Anda


Jika Anda mengembangkan suatu program baru, dan Anda menginginkan program tersebut menjadi
hal yang paling mungkin berguna untuk digunakan oleh masyarakat, jalan paling baik untuk
mencapai hal ini adalah dengan membuat program Anda menjadi perangkat lunak bebas dimana
semua orang dapat mendistribusikannya kembali dan mengubahnya di bawah ketentuan-ketentuan
ini.
Untuk melakukan hal itu, tambahkan pemberitahuan berikut ke program tersebut. Tindakan yang
paling aman adalah untuk menambahkan pemberitahuan tersebut ke awal setiap berkas sumber agar
dapat dengan efektif menyampaikan tidak termasuknya garansi; dan setiap berkas harus mempunyai
setidaknya baris "hak cipta" dan petunjuk dimana pemberitahuan seluruhnya dapat ditemukan.
satu baris untuk nama program serta ide singkat tentang
fungsinya. Hak cipta (C) tahun nama pencipta

Program ini adalah perangkat lunak bebas; Anda dapat


menyebarluaskannya dan/atau memodifikasinya di bawah
ketentuan-ketentuan dari GNU General Public License seperti
yang diterbitkan oleh Free Software Foundation; baik versi
2 dari Lisensi tersebut, atau (dengan pilihan Anda) versi
lain yang lebih tinggi.

Program ini didistribusikan dengan harapan bahwa program


ini akan berguna, tetapi TANPA GARANSI; tanpa garansi yang
termasuk dari DAGANGAN atau KECOCOKAN UNTUK TUJUAN TERTENTU
sekalipun. Lihat GNU General Public License untuk rincian
lebih lanjut.

Anda seharusnya menerima sebuah salinan GNU General Public


License beserta program ini; jika tidak, tulis ke Free
Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA

Tambahkan juga informasi untuk menghubungi Anda melalui surat elektronik atau surat biasa.
Jika programnya interaktif, buatlah agar program tersebut mengeluarkan pemberitahuan singkat
seperti berikut ketika mode interaktif dimulai:
Gnomovision versi 69, Hak cipta (C) tahun nama pencipta
Gnomovision TIDAK MEMILIKI GARANSI APA PUN; untuk rincian
ketik 'lihat g'. Program ini adalah perangkat lunak bebas,
dan Anda diperbolehkan untuk menyebarluaskannya dengan
syarat-syarat tertentu; ketik 'lihat s' untuk rincian.

Perintah-perintah hipotetis `lihat g' dan `lihat s' seharusnya menunjukkan bagian-bagian yang tepat
dari General Public License. Tentu saja, perintah-perintah yang Anda gunakan dapat dipanggil
melalui hal yang lain selain `lihat g' dan `lihat s'; perintah-perintah tersebut dapat berupa klik pada
tombol mouse atau menu - apa pun yang menurut Anda sesuai.

Distributed by: http://abebudi.blogspot.com/


Anda juga seharusnya mendapatkan tanda tangan atasan Anda (jika Anda bekerja sebagai
pemrogram) atau izin sekolah Anda, jika ada, tentang "penyangkalan hak cipta" untuk program
tersebut, jika perlu. Berikut adalah contoh; ubah namanya:
Yoyodyne, Inc., dengan ini menyanggah kepentingan semua hak
cipta di dalam program 'Gnomovision' (yang melakukan pass-
pass pada kompilator) yang diprogram oleh James Hacker.

tanda tangan Ty Coon, 1 April 1989


Ty Coon, Wakil Presiden Direktur

General Public License ini tidak mengizinkan memasukkan program Anda ke dalam program tak
bebas. Jika program Anda adalah library subrutin, Anda boleh saja berpikir bahwa akan lebih
berguna jika program tak bebas diperbolehkan untuk di-link ke library tersebut. Jika ini adalah apa
yang Anda kehendaki, maka gunakanlah GNU Library General Public License daripada Lisensi ini.

About this document ...


Server Linux
Membangun Linux sebagai Internet/Intranet Server
This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.50)
Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of
Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University,
Sydney.
The command line arguments were:
latex2html servlin4b-5.tex
The translation was initiated by on 2001-08-21

Ahmad Sofyan [ spawn at fade2bl dot ac ]


2001-08-21

Distributed by: http://abebudi.blogspot.com/

Vous aimerez peut-être aussi