tag:blogger.com,1999:blog-49099845770602919442023-11-15T06:28:41.339-08:00KHUSNUL'S13KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.comBlogger40125tag:blogger.com,1999:blog-4909984577060291944.post-65535547069447302022011-06-09T23:23:00.000-07:002011-06-09T23:23:37.223-07:00Menggabungkan Samba dengan NT<h1><a href="" name="SECTION02460000000000000000"> </a> </h1>Jika dalam jaringan Anda sudah ada Windows NT, Anda dapat menyisipkan Samba ke dalam jaringan dengan cara sebagai berikut : <br />
<br />
<ol><li>Tambahkan nama mesin Samba ke dalam database SAM di Windows NT. Penambahan dilakukan lewat <i>Server Manager</i> (atau lengkapnya <i>Windows NT Server Manager for Domains</i>). Saat ditanyakan tipe komputer, pilih <i>'Windows NT Workstation or Server'</i> dan berikan NetBIOS Name dari Samba Server. NetBIOS name ini dapat Anda tentukan secara bebas pada <tt>smb.conf</tt>. Proses ini membuat Samba terdaftar dalam server NT. </li>
<li>Langkah kedua, membuat password dalam format Microsoft. Sebagai contoh nama mesin PDC Windows NT adalah spawn, dengan domain surga, ketikkan baris berikut : <tt># smbpasswd -j SURGA -r spawn</tt> <br />
<br />
</li>
<li>Sebagai langkah terakhir, masukkan pilihan berikut dalam file smb.conf <tt>[global]</tt> <br />
<br />
<tt>security = domain</tt> <br />
<br />
<tt>domain logins = yes</tt> <br />
<br />
<tt>workgroup = SURGA</tt> <br />
<br />
<tt>password server = spawn</tt> <br />
<br />
</li>
</ol>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 : <br />
<ol><li>Pemakai memasukkan username dan password. Komputer akan menanyakannya kepada PDC. </li>
<li>Sebelum sampai PDC, Samba mengambil alih pertanyaan komputer. Kemudian Samba akan menanyakan kepada NT, apakah username dan password yang diberikan cocok. </li>
<li>Jika cocok, Samba akan mengembalikan response pada user otentikasi untuk login ke dalam jaringan. </li>
</ol><blockquote> Catatan : </blockquote><br />
<blockquote>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 '<i>User Manager for Domain</i>'), kecuali user yang telah terdaftar di Linux. </blockquote><br />
<h1><a href="" name="SECTION02470000000000000000"> Samba sebagai Domain Logon</a> </h1>Skenario ini dapat diterapkan jika jaringan Anda berada dalam kondisi seperti berikut : <br />
<br />
<ul><li>Ada beberapa klien Windows, tapi tidak ada Mesin Windows NT sebagai server. </li>
<li>Ada beberapa klien Windows, dan ada mesin Windows NT yang sebelumnya sebagai server, tapi Anda sebagai network administrator ingin menggantinya. </li>
</ul>Perlu diingat bahwa fungsi utama keberadaan server sebagai domain logon bagi klien Windows, hanyalah memberikan batasan atas sumber daya yang dibagi <i>(share resources)</i> dengan menentukan siapa-siapa saja yang boleh mengakses <i>(user level access control)</i>. Untuk mengkonfigurasikan Samba sebagai <i>domain logon</i> <i>(domain controller)</i> Anda harus pastikan terlebih dahulu bahwa : <br />
<br />
<ul><li>Samba merupakan satu-satunya <i>primary domain controller</i> pada workgroup yang bersangkutan </li>
<li>Ada WINS Server dalam jaringan, baik mesin samba sendiri atau mesin Windows NT </li>
<li>Samba diset menggunakan <i>user level security</i> (tidak memberikan otentikasi password kepada komputer lain). </li>
</ul>Pilihan yang perlu ditambahkan dalam file smb.conf adalah : <tt>[global]</tt> <br />
<br />
<tt>workgroup = SURGA</tt> <br />
<br />
<tt>domain logons = yes</tt> <br />
<br />
<tt># Pastikan untuk menggunakan user level security</tt> <br />
<br />
<tt>security = user</tt> <br />
<br />
<tt># Pastikan sebagai domain controller</tt> <br />
<br />
<tt>os level = 34</tt> <br />
<br />
<tt>local master = yes</tt> <br />
<br />
<tt>preferred master = yes</tt> <br />
<br />
<tt>domain master = yes</tt> <br />
<br />
Setelah itu buat satu direktori yang akan dibagi dengan nama <tt>[ netlogon ]</tt>. Direktori ini harus diset <i>non-writable</i>, <i>non-public</i>, dan <i>non-browseable</i>. Pada bagian <i>share</i> (yang akan dibahas lebih detail pada bagian berikut), tambahkan : <br />
<tt>[netlogon]</tt> <br />
<br />
<tt> comment = Service untuk domain logons</tt> <br />
<br />
<tt> # Buat terlebih dahulu direktori sebagai path dari pilihan berikut</tt> <br />
<br />
<tt> path = /usr/local/share/logon</tt> <br />
<br />
<tt> public = no</tt> <br />
<br />
<tt> writable = no</tt> <br />
<br />
<tt> browsable = no</tt> <br />
<br />
Setelah itu klien diseting sebagaimana klien dari Windows NT. Pada <i>Network Neighborhood</i>, klik kanan, pilih properties dan pada <i>Client for Microsoft Network Properties</i>, aktifkan <i>Log on to Windows Domain</i>, dan sebagai Nama Domainnya isikan Workgroup name yang ditentukan dalam file <tt>smb.conf</tt>. <br />
<br />
Untuk Windows NT, diset lewat properties <i>Network configuration</i> pada <i>Control Panel</i>. Pada Tab pertama yang berisi identifikasi nama komputer, tekan tombol <i>change</i>. Pilih member of domain dan ketikkan nama domainnya. Misal <tt>SURGA</tt>.<br />
<h1><a href="" name="SECTION02480000000000000000"> Berbagi printer dan file</a> </h1>File konfigurasi Samba, yakni smb.conf, secara garis besar dibagi dua bagian. <br />
<br />
<ol><li><b>Global </b> Menyangkut konfigurasi umum, pilihan-pilihan yang dijalankan atau dimatikan terhadap <tt>smbd</tt> <i>(Samba Daemon)</i> dan <tt>nmbd</tt> <i>(Name Server Daemon).</i> <br />
</li>
<li><b>Share</b> Menentukan sumber daya yang akan dibagi. Pembagian <i>folder</i> untuk bisa diakses oleh user lain dalam Samba kaya akan pilihan. <br />
</li>
</ol>Untuk seting file yang akan dibagi, dilakukan di bagian <tt>share</tt>. Secara umum, bentuk pilihan file yang akan dibagi adalah : <tt>[ nama share ]</tt> <br />
<br />
<tt>path = tujuan dari direktori yang akan dibagi</tt> <br />
<br />
<tt>browseable = bisa dibrowse oleh user atau tidak (boolean)</tt> <br />
<br />
<tt>guest ok = dapat diakses oleh user yang tidak dikenal atau tidak (boolean)</tt> <br />
<br />
<tt>writable = dapat ditulisi atau hanya bisa dibaca saja (boolean)</tt> <br />
<br />
Contoh konfigurasi sebuah direktori yang dibagi : <br />
<tt>[test]</tt> <br />
<br />
<tt>comment = testing doang neh...</tt> <br />
<br />
<tt>path = /win</tt> <br />
<br />
<tt>read only = No</tt> <br />
<br />
<tt>guest ok = Yes</tt> <br />
<br />
Selain direktori, Samba juga memberikan sumber dayanya untuk dibagi. Misalnya printer. <br />
<tt>[printers]</tt> <br />
<br />
<tt>comment = All Printers</tt> <br />
<br />
<tt>path = /var/spool/samba</tt> <br />
<br />
<tt>print ok = Yes</tt> <br />
<br />
<tt>browseable = No</tt> <br />
<br />
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 <i>advance share</i> untuk mencoba pilihan-pilihan yang ada.KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-34800189006921622952011-06-09T23:22:00.000-07:002011-06-09T23:22:19.082-07:00Administrasi Samba<h2><a href="" name="SECTION02441000000000000000"> Konfigurasi Samba</a> </h2>Samba memiliki banyak sekali parameter yang yang harus disetup untuk dapat menjalankannya secara maksimal. File konfigurasi tersebut adalah<tt>smb.conf</tt>. Biasanya terletak di : <br />
<br />
<dl compact="compact"><dt> </dt>
<dd>/etc atau
/usr/local/samba/lib
</dd></dl>Jika Anda belum melakukan sesuatu pada file smb.conf, maka file tersebut biasanya bernama <tt>smb.conf-default</tt>. Anda harus tetap menyimpan file ini, sehingga jika nantinya ada kekeliruan dalam konfigurasi, Anda masih punya backup yang menyimpan semua parameter standar. <br />
<dl compact="compact"><dt> </dt>
<dd># cd /etc
# pico smb.conf-default
</dd></dl>Tekan <tt>Ctrl-O</tt> dan ketik <tt>smb.conf</tt> untuk menyimpan file default kedalam file konfigurasi. Tekan <tt>Ctrl-X</tt> untuk keluar dari pico. Untuk mensetup Samba, Anda dapat mengedit file smb.conf lewat dua cara : <br />
<ol><li>Dengan akses root, edit langsung dengan teks editor, atau; </li>
<li>Lewat SWAT. Anda cukup memanggilnya dengan browser ke <tt>http://localhost:901</tt> </li>
</ol><blockquote> Catatan : </blockquote><br />
<blockquote>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 </blockquote>Perlu diingat bahwa mengedit file smb.conf lewat SWAT akan menghilangkan komentar komentar yang ada di dalamnya. Berikut contoh perbandingannya. File <tt>smb.conf</tt> secara default : <br />
<br />
<dl compact="compact"><dt> </dt>
<dd># 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.
# 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
# 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
# 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
# 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
;[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
; 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
; 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
# 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
</dd></dl>Setelah diedit dengan SWAT, akan menjadi seperti ini: <br />
<dl compact="compact"><dt> </dt>
<dd># 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]
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
<h2><a href="" name="SECTION02442000000000000000"> Konfigurasi Samba lewat LinuxConf (RedHat)</a> </h2>LinuxConf pada RedHat memasukkan Samba sebagai bagian server yang dapat diadministrasi olehnya. Konfigurasi Samba lewat LinuxConf dapat dilakukan dengan cara sebagai berikut :
<ol><li>Masuk ke bagian <tt>Config - Networking - Server Tasks - Samba File Server</tt>. </li>
<li>Pilihan konfigurasi Samba adalah : <br />
<ul><li><tt>Default</tt>; Konfigurasi utama (dalam file smb.conf masuk dalam kategori <tt>[global]</tt>). Pilihan disini termasuk <i>Base Config, Passwords, Access, Networking, Auto Accounts</i> dan <i>Features</i>. </li>
<li><tt>Default Setup for user's home</tt>; Direktori home bagi tiap user yang dibagi secara default. </li>
<li><tt>Default setup for printers</tt>; Seting untuk membagi printer. </li>
<li><tt>Netlogon setup</tt>; Direktori untuk net logon yang dibagi. File batch bagi tiap user yang login ke Samba dapat ditempatkan di sini. </li>
<li><tt>Disk share</tt>; Mendefinisikan direktori-direktori lain yang akan dibagi ke dalam jaringan. </li>
</ul></li>
<li>Selesai mengisi pilihan-pilihan tersebut sesuai dengan kebutuhan Anda, tutup LinuxConf. Klik Accept untuk menyimpan semua perubahan. </li>
<li>Jalankan testparm dari prompt (console) . <tt># testparm</tt> <br />
<br />
</li>
<li>Jika semua sintaks dan parameter diset dengan benar, dan testparm tidak menyampaikan pesan kesalahan, Anda dapat restart ulang smbd lewat skrip samba. <tt># /sbin/samba restart</tt><br />
<tt> </tt> </li>
</ol> </dd></dl>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-1478984784107832682011-06-09T23:21:00.000-07:002011-06-09T23:21:20.495-07:00Instalasi Samba<h2><a href="" name="SECTION02431000000000000000"> Instalasi Samba dari kode sumber</a> </h2>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 : <br />
<tt>$ whereis smbd</tt> <br />
<br />
<tt>$ whereis nmbd</tt> <br />
<br />
Atau cek file rc yang menginisialisasi Samba (<tt>rc.samba</tt>) pada saat booting : <br />
<tt>$ cd /etc/rc.d</tt> <br />
<br />
<tt>etc/rc.d $ ls -l</tt> <br />
<br />
Jika tidak ditemukan, Anda dapat menginstall lewat CD dengan <tt>pkgtool.</tt> 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 : <br />
<br />
<ol><li><b>Download Distribusi Samba</b> Daftar server yang menyediakan distribusi Samba dapat dilihat di <tt>ftp.samba.org</tt> atau <br />
<tt>http://www.samba.org</tt>. Mirror server tersedia hampir seluruh dunia dan Anda dapat memilih yang terdekat. File yang harus didownload adalah : <br />
<tt>samba-versi-terakhir.tar.gz</tt> <br />
<br />
Saat buku ini ditulis versi terakhir dari Samba adalah 2.0.7 (s<tt>amba-2.7.0.tar.gz</tt>). <br />
</li>
<li><b>Ekstraksi file</b> File yang Anda download masih berupa <i>tar ball</i> yang dikompress. Untuk mengekstraknya, Anda dapat jalankan langkah : <br />
<tt>$ mkdir /usr/local/src</tt> <br />
<br />
<tt>$ cp samba*.tar.gz /usr/local/src</tt> <br />
<br />
<tt>$ gzip samba*.tar.gz | tar xvf -</tt> <br />
<br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Pengguna Linux pada umumnya menggunakan direktori <tt>/usr/local</tt> untuk menyimpan semua pogram baru. Direktori ini biasanya mempunyai struktur direktori root seperti <tt>/usr/local/bin,</tt> <tt>/usr/local/etc, /usr/local/docs</tt>. Dalam lingkungan jaringan, direktori ini biasanya diset untuk dapat ditulis oleh beberapa user dan dieksekusi oleh semua user. </blockquote></li>
<li><b>Baca Dokumentasi</b> 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 : <br />
<tt>README</tt> <br />
<br />
<tt>WHATSNEW.txt</tt> <br />
<br />
<tt>Docs/textdocs/UNIX_INSTALL.txt</tt> <br />
<br />
</li>
<li><b>Konfigurasi Samba</b> Sebagaimana proses standar dalam instalasi aplikasi berbentuk source di Linux, mulai dengan configure. Jalankan semua proses instalasi sebagai root, atau Anda akan terima pesan : <br />
<tt>Configure: warning: running as non-root will disable some test</tt> <br />
<br />
Menjalankan proses instalasi dengan user root akan lebih memastikan aplikasi Samba terinstal dengan baik. <br />
<tt>/usr/local/src$ su -</tt> <br />
<br />
<tt>password :</tt> <br />
<br />
<tt>/usr/local/src # cd samba-2.0.7 (direktori utama hasil ekstraksi)</tt> <br />
<br />
<tt>/usr/local/src/samba-2.0.7# ./configure</tt> <br />
<br />
<tt>/usr/local/src/samba-2.0.7# make</tt> <br />
<br />
<tt>/usr/local/src/samba-2.0.7# make install</tt> <br />
<br />
Selesai proses instalasi, Samba akan menyimpan filenya dalam beberapa direktori di dalam direktori utama <tt>/usr/local/samba</tt> <br />
<br />
</li>
</ol><br />
<div align="CENTER"><a href="" name="10044"></a> <table><caption><strong>Table:</strong> <b>Direktori Samba</b></caption> <tbody>
<tr><td><table border="1" cellpadding="3"><tbody>
<tr><th align="LEFT"><b>Direktori</b></th> <th align="LEFT" valign="TOP" width="369"><b>Keterangan</b></th> </tr>
<tr><td align="LEFT">/usr/local/samba</td> <td align="LEFT" valign="TOP" width="369">Direktori utama</td> </tr>
<tr><td align="LEFT">/usr/local/samba/bin</td> <td align="LEFT" valign="TOP" width="369">File Binari yang dapat dieksekusi</td> </tr>
<tr><td align="LEFT">/usr/local/samba/lib</td> <td align="LEFT" valign="TOP" width="369">File konfigurasi Samba</td> </tr>
<tr><td align="LEFT">/usr/local/samba/man</td> <td align="LEFT" valign="TOP" width="369">Dokumentasi</td> </tr>
<tr><td align="LEFT">/usr/local/samba/private</td> <td align="LEFT" valign="TOP" width="369">Password Samba yang terenkripsi</td> </tr>
<tr><td align="LEFT">/usr/local/samba/SWAT</td> <td align="LEFT" valign="TOP" width="369">File SWAT</td> </tr>
<tr><td align="LEFT">/usr/local/samba/var</td> <td align="LEFT" valign="TOP" width="369">File sementara yang selalu berubah saat Samba berjalan. Misal file log, file shared memory dsb.</td> </tr>
<tr><td align="LEFT"> </td> <td align="LEFT" valign="TOP" width="369"> </td> </tr>
</tbody></table></td></tr>
</tbody></table></div><h2><a href="" name="SECTION02432000000000000000"> Instal SWAT</a> </h2>Selesai kompilasi dan instal program, Aktifkan SWAT untuk membantu dalam administrasi Samba. Fitur SWAT yang dapat dimanfaatkan dalam administrasi mencakup : <br />
<br />
<ul><li>Mengedit konfigurasi Samba </li>
<li>Dokumentasi lengkap dengan hyperlink </li>
<li>Melihat status file yang dishare </li>
<li>Mematikan, start dan restart Samba Daemon, smbd dan nmbd </li>
<li>Mengatur resource yang akan dishare </li>
</ul>juga memungkinkan Anda melakukan administrasi secara remote. <br />
<blockquote> Catatan : </blockquote><br />
<blockquote>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. </blockquote>SWAT dijalankan secara daemon lewat <tt>/etc/inetd</tt> dan<tt>/etc/servies</tt>. Untuk mengkonfigurasikan dalam kedua file tersebut : <br />
<ol><li>Tambahkan baris ini ke dalam file /etc/services <tt>SWAT 901/tcp</tt> <br />
<br />
</li>
<li>Tambahkan baris berikut kedalam file /etc/inetd.conf. Terlebih dahulu cek manual untuk <tt>inetd.conf</tt> ini guna melihat format yang benar untuk memastikan baris berikut dapat berjalan <tt>SWAT stream tcp nowait.400 /usr/local/samba/SWAT SWAT</tt><br />
<h2><a href="" name="SECTION02433000000000000000"> Binary Samba pada Distribusi Linux</a> </h2>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 : <br />
<br />
<blockquote> Tabel l 7 </blockquote><br />
<blockquote>Perbandingan letak Binary Samba hasil kompilasi sendiri dengan paket default yang disertakan pada masing-masing distribusi. </blockquote>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. <tt> </tt> </li>
</ol>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-77660689515165542712011-06-09T23:20:00.000-07:002011-06-09T23:20:19.031-07:00Samba<h2><a href="" name="SECTION02421000000000000000"> Fasilitas Samba</a> </h2>Samba dapat dimanfaatkan untuk menjalankan semua fasilitas dari Microsoft sebagaimana yang telah disampaikan di atas. Samba dapat berfungsi sebagai <i>Master Browser</i>, baik <i>Local Master Browser</i> maupun <i>Domain Master Browser</i>. Samba juga dapat berfungsi sebagai <i>Primary Domain Controller</i>. WINS Server juga sudah didukung oleh Samba. Sedangkan untuk otentikasi, Samba mendukung teks biasa <i>(plain text)</i> password maupun password terenkripsi <i>(encrypted passwod)</i> <br />
<br />
<br />
<div align="CENTER"><a href="" name="2938"></a> <table><caption><strong>Table:</strong> Kemampuan Samba</caption> <tbody>
<tr><td><table border="1" cellpadding="3"><tbody>
<tr><td align="LEFT">Tugas</td> <td align="CENTER">Dukungan (ya/tidak)</td> </tr>
<tr><td align="LEFT">File Server</td> <td align="CENTER">Ya</td> </tr>
<tr><td align="LEFT">Printer Server</td> <td align="CENTER">Ya</td> </tr>
<tr><td align="LEFT">Primary Domain Controller</td> <td align="CENTER">Ya (Versi 2.1 keatas)</td> </tr>
<tr><td align="LEFT">Otentikasi Windows 95/98</td> <td align="CENTER">Ya</td> </tr>
<tr><td align="LEFT">Local Master Browser</td> <td align="CENTER">Ya</td> </tr>
<tr><td align="LEFT">Backup Local Master</td> <td align="CENTER">Tidak</td> </tr>
<tr><td align="LEFT">Domain Master Browser</td> <td align="CENTER">Ya</td> </tr>
<tr><td align="LEFT">Primary WINS Server</td> <td align="CENTER">Ya</td> </tr>
<tr><td align="LEFT">Secondary WINS Server</td> <td align="CENTER">Tidak</td> </tr>
<tr><td align="LEFT"> </td> <td align="CENTER"> </td> </tr>
</tbody></table></td></tr>
</tbody></table></div><br />
<h2><a href="" name="SECTION02422000000000000000"> Distribusi Samba</a> </h2>Samba yang disertakan dalam tiap distribusi Linux, biasanya berbentuk binary, merupakan kumpulan aplikasi yang bergantung satu sama lain. Suite Samba tersebut adalah : <br />
<br />
<ol><li><tt><b>smbd</b></tt> 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. <br />
</li>
<li><tt><b>nmbd</b></tt> Daemon yang memanfaatkan <i>Windows Internet Name Service (WINS)</i>, dan membantu klien untuk <i>browsing</i> di <i>network neighborhood</i>. Daemon ini melayani permintaan name server dan memberikan respon yang sesuai. <br />
</li>
<li><tt><b>smbclient</b></tt> Klien dengan tampilan mirip ftp untuk mengakses SMB resource share (mengakses share files) <br />
</li>
<li><tt><b>smbtar</b></tt> Program yang memback up data yang dishare. Mirip tar di Linux. <br />
</li>
<li><tt><b>nmblookup</b></tt> 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. <br />
</li>
<li><tt><b>smbpasswd</b></tt> Program yang memungkinkan administrator mengatur password yang terenkripsi yang dipergunakan oleh Samba Server. <br />
</li>
<li><tt><b>smbstatus</b></tt> Program yang memonitor status terakhir dari share resources yang diberikan oleh Server Samba. <br />
</li>
<li><tt><b>testparm</b></tt> Program kecil untuk melakukan proses debug (memeriksa parameter) terhadap file konfigurasi Samba (<tt>smb.conf</tt>) <br />
</li>
<li><tt><b>swat</b></tt> <i>Samba Web Administration Tool</i>, program bantu yang memberikan interface model web untuk mengadministrasi Samba. SWAT mempermudah edit <tt>smb.conf</tt> (file konfigurasi Samba) mengatur <i>resource share</i>, melihat status Samba terakhir, dengan dukungan file help yang sangat bermanfaat. </li>
</ol>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-43948657700851982832011-06-09T23:19:00.000-07:002011-06-09T23:19:38.282-07:00Konektivitas dengan WindowsJika 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. <br />
Samba merupakan aplikasi Unix yang memanfaatkan protokol SMB (<i>Server Message Block</i>). 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 : <br />
<br />
<ul><li>Menghubungkan setiap mesin Unix (termasuk Linux) dengan mesin Dos/Windows </li>
<li>Menempatkan mesin Unix (Linux) sebagai <i>Primary Domain Controller</i> sebagaimana yang dilakukan NT. </li>
</ul>Oleh sebab itu lewat Samba, Anda dapat membuat server dengan klien produk Microsoft Windows, dengan layanan : <br />
<ol><li>Berbagi <i>(share)</i> file dan printer. </li>
<li>Membantu pengguna browsing di <i>network neighborhood</i> </li>
<li>Memberikan otentikasi kepada tiap klien yang login ke dalam domain </li>
<li>Memberikan atau membantu dengan <i>WINS name server resolution.</i> </li>
</ol>Samba dibuat dan disusun pertama kali olehA<small>NDREW </small>T<small>RIDGELL</small>. Pada bulan Desember 1991 Ia menerima program eXcursion dari Digital. Sayangnya program tersebut hanya bekerja dengan <i>'pathworks'</i> 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 <i>'pathworks'</i> DOS di rumahnya. Setahun kemudian Andrew telah memasuki komunitas Linux (atas ajakan D<small>AN </small>S<small>HEARER</small>), dan pada Desember 1993 Ia mengeluarkan <i>"NetBIOS for Unix</i>". 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 A<small>NDREW </small>T<small>RIDGELL</small> dari rumahnya di Canberra dengan tim tersebar di seluruh dunia. <br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Protokol adalah bahasa standar yang dipergunakan komputer untuk dapat berkomunikasi satu sama lain. </blockquote>Aplikasi Samba biasanya dijalankan sebagai daemon. Dua aplikasi utamanya adalah : <br />
<ol><li><tt><b>smbd</b></tt> Daemon yang memberikan layanan berbagi file dan printer dalam sebuah jaringan yang menggunakan protokol SMB. Smbd juga memberikan otentikasi dan otorisasi bagi kliennya. <br />
</li>
<li><tt><b>nmbd</b></tt> Daemon yang memanfaatkan <i>Windows Internet Name Service</i> (WINS), dan membantu klien untuk <i>browsing</i> di <i>network neighborhood.</i><br />
<h1><a href="" name="SECTION02410000000000000000"> Implementasi Microsoft dalam Jaringan</a> </h1>Sebelum mulai instalasi Samba, atau sebelum melakukan konfigurasi jika Samba Anda sudah terinstall, berikut akan dipelajari secara ringkas, bagaimana Microsoft menerapkan komunikasi dalam jaringannya. <br />
<br />
<h2><a href="" name="SECTION02411000000000000000"> Domain Controller</a> </h2>Seperti yang telah disinggung di awal bab ini, Microsoft menerapkan protokol SMB. Mereka memberinya nama <i>CIFS</i> <i>(Common Internet File System)</i>. Dalam membatasi lingkungannya, dipergunakan konsep Windows domain, yakni kumpulan workstation yang menjalankan protokol SMB. Dalam satu domain ada sebuah <i>Domain Controller</i>. Tiap <i>Domain Controller</i> menggunakan <i>Security Account Manager</i> <i>(SAM)</i> untuk menyimpan daftar kombinasi username dan password. <br />
Dalam sebuah domain, <i>domain controller</i> bisa lebih dari satu. <i>Primary Domain Controller</i> <i>(PDC)</i> adalah <i>domain controller</i> yang memberikan layanan sehari hari. Sebagai cadangannya, dipasang sebuah <i>Back up Domain Controller (BDC)</i>. Secara periodik, PDC dan BDC akan melakukan sinkronisasi <i>Security Account Manager (SAM)</i>. Tiap saat PDC mengalami crash, BDC sudah siap mengambil alih. Jaringan akan tetap berjalan seperti biasa. <br />
<h2><a href="" name="SECTION02412000000000000000"> WINS (Windows Internet Name Service)</a> </h2>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 <i>name registration</i>. Jika tidak ada bentrok dengan mesin yang lain, maka nama tersebut dipergunakan. Nama inilah yang muncul pada saat user <i>browsing</i> di <i>network neighborhood</i>. <br />
Pada saat mendeklarasikan namanya dalam sebuah jaringan, mesin juga melayani <i>name resolution</i>. <i>Name resolution</i> adalah sebuah proses yang menerjemahkan nama NetBIOS ke dalam nomor IP tertentu. Baik name resolution maupun name registration bekerja berdasarkan standarisasi yang dibuat oleh <i>IETF (Internet Engineering Task Force)</i> tahun 1987. Semuanya dituangkan dalam <i>RFC (Request For Comments)</i> 1001 dan 1002. Standarisasi ini dikenal dengan NetBIOS over TCP/IP, atau NBT. Pada prinsipnya, NBT memberikan tiga layanan : <br />
</li>
<li><b>Name Service</b> ; untuk <i>name registration</i> dan <i>name resolution</i> </li>
<li><b>Datagram</b> </li>
<li><b>Session</b> </li>
</ol><i>Datagram</i> dan <i>session</i> merupakan protokol komunikasi kedua yang dipergunakan untuk transmisi data antar mesin dalam sebuah jaringan. <i>Name Resolution</i>, dan <i>Name Registration</i>, selain dijalankan secara <i>broadcast</i>, juga dapat dideklarasikan secara terpusat. Dalam hal ini dibuat sebuah <i>NetBIOS Name Server (NBNS)</i>. 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 <i>broadcast</i> 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 <i>broadcast.</i> <br />
<b>Gambar 5 Pendaftaran nama dengan Broadcast</b> <br />
<b>Gambar 6 Pendaftaran nama dengan NetBIOS Name Server (NBNS)</b> <br />
WINS adalah penerapan NBNS oleh Microsoft. Jika dalam domain ada server WINS, maka komputer tersebut tidak mengirimkan atau menerima sinyal secara <i>broadcast</i>, melainkan mendaftarkan nama NetBIOS-nya ke server WINS. Server ini akan menyimpan nama semua mesin yang telah mendaftarkan mesinnya, dan membantu user saat <i>browsing</i> di <i>network neighborhood.</i><br />
<h2><a href="" name="SECTION02413000000000000000"> Master Browser</a> </h2>Jika Anda memakai Windows 95/98, dan membuka <i>network neighborhood</i>, maka di situ terlihat daftar nama komputer, dan beberapa direktori yang dishare. Daftar ini dibuat dan dipelihara oleh <i>master browser.</i> Sebagaimana yang telah dipelajari sebelumnya, saat komputer dinyalakan, maka akan mengirimkan pesan secara <i>broadcast</i> ke dalam jaringan. Saat itulah, akan terjadi pemilihan komputer mana yang akan menjadi master bowser. Pemilihan ini disebut <i>browsing election</i>. Kemudian, <i>master browser</i> akan memberikan daftar nama mesin dan <i>resource share</i>-nya kepada setiap komputer yang meminta. <br />
<i>Master browser</i> dalam satu subnet disebut <i>local master browser.</i> Pendukungnya disebut <i>backup local master</i>. Mengingat <i>browsing election</i> dapat terjadi setiap saat, maka <i>backup local master</i> dapat beralih fungsi sebagai <i>local master browser</i> kapan saja. Ini bisa terjadi jika misalnya mesin <i>local master browser</i> sebelumnya diboot atau mati. <br />
Selain memberikan daftar nama komputer yang bisa diakses <i>(browse list)</i> dalam satu subnet, <i>master browser</i> juga melayani browse list pada lingkup domain, bahkan antar domain. Ini disebut <i>Domain Master Browser</i>. Pada saat-saat tertentu, <i>Domain Master Browser</i> dan <i>Local Master Browser</i> melakukan sinkronisasi daftarnya. Hal ini memungkinkan user memperoleh daftar nama komputer dan <i>share resources</i> terbaru.<br />
<h2><a href="" name="SECTION02414000000000000000"> Otentikasi</a> </h2>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. <br />
Untuk lebih jelasnya, bagaimana otentikasi di Windows berjalan, digambarkan dalam langkah berikut : <br />
<br />
<ol><li>Komputer mencoba menegosiasikan sebuah <i>session</i> lewat satu protokol kepada server </li>
<li>Server memberikan respon sebagai tanda bahwa server tersebut mendukung sistem password terenkripsi. </li>
<li>Server mengirimkan 8 <i>byte</i> string yang dibuat secara acak. </li>
<li>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. </li>
<li>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. </li>
</ol><br />
<i> </i> <br />
<ol><li> <br />
</li>
</ol>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com1tag:blogger.com,1999:blog-4909984577060291944.post-19370428802957814162011-06-09T23:17:00.000-07:002011-06-09T23:17:40.852-07:00GNU General Public License LISENSI PUBLIK UMUM GNU<tt>Version 2, Juni 1991. Hak cipta (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA</tt> <br />
<br />
Semua orang diperbolehkan untuk menyalin dan mendistribusikan salinan sama persis dari dokumen lisensi ini, tetapi mengubahnya tidak diperbolehkan. <br />
<br />
Hampir semua lisensi dari perangkat lunak dirancang untuk merebut kebebasan anda dan mengubahnya. Sebaliknya, Lisensi Publik Umum GNU (<i>GNU General Public License</i>) bertujuan untuk menjamin kebebasan anda untuk berbagi dan mengubah perangkat lunak bebas - untuk menjamin bahwa perangkat lunak tersebut tetap bebas bagi penggunanya. <i>General Public License</i> ini dapat diberlakukan terhadap hampir semua perangkat lunak <i>Free Software Foundation</i> dan program lain apa pun yang penciptanya mau menggunakan Lisensi ini. (Beberapa perangkat lunak <i>Free Software Foundation</i> lainnya menggunakan <i>GNU Library Public License</i>.) Anda dapat memberlakukannya terhadap program Anda juga. <br />
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 <i>source code</i> 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. <br />
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. <br />
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 <i>source code</i>-nya. <br />
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. <br />
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 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. <br />
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. <br />
Berikut adalah ketentuan dan persyaratan yang tepat untuk menyalin, mendistribusikan dan memodifikasi. <br />
<b><span>KETENTUAN DAN PERSYARATAN UNTUK MENYALIN, </span></b> <br />
<b><span>MENDISTRIBUSIKAN DAN MEMODIFIKASI</span></b> <br />
<br />
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 <i>General Public License</i> 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". <br />
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. <br />
1. Anda boleh menyalin dan mendistribusikan sama persis dari <i>source code</i> 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. <br />
Anda boleh memberi harga untuk kegiatan memindahkan salinan secara fisik, dan Anda boleh, sesuai pilihan Anda, menawarkan perlindungan garansi untuk harga tertentu. <br />
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: <br />
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. <br />
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 keseluruhan tanpa biaya kepada seluruh partai ketiga di bawah lisensi tersebut. <br />
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.) <br />
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. <br />
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. <br />
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. <br />
3. Anda boleh menyalin dan menyalurkan si Program (atau karya yang berdasarkan si Program tersebut, tercantum pada Bagian 1 dan 2) dalam <i>object code</i> 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: <br />
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, <br />
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, <i>source code</i> 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, <br />
c) Menyertakannya dengan informasi yang Anda terima berhubungan dengan penawaran untuk mendistribusikan <i>source code</i> yang bersangkutan. (Alternatif ini diperbolehkan hanya untuk distribusi non-komersil dan hanya jika Anda memperoleh program dalam bentuk <i>object code</i> atau bentuk yang dapat dijalankan dengan penawaran seperti yang telah disebutkan, menurut Subbagian b di atas.) <br />
Source code dari sebuah karya berarti bentuk yang diinginkan dari pekerjaan untuk memodifikasinya. Untuk sebuah karya yang dapat dijalankan, <i>source code</i> lengkap artinya semua <i>source code</i> 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 <i>source code</i> tidak diperlukan untuk memasukkan semua komponen yang biasanya didistribusikan (dalam bentuk <i>source</i> 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 <i>object code</i> dibuat dengan penawaran akses untuk menyalin dari tempat yang telah ditentukan, maka penawaran akses untuk menyalin <i>source code</i> dari tempat yang sama dihitung sebagai pendistribusian dari <i>source code</i>, walaupun pihak ketiga tidak diharuskan untuk menyalin <i>source code</i> bersama-sama dengan <i>object code</i>. <br />
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. <br />
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. <br />
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. <br />
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. <br />
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. <br />
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 tersebut. <br />
Bagian ini bertujuan untuk membuat sebuah pemahaman yang jelas tentang apa yang dipercayai sebagai akibat dari sisa Lisensi ini. <br />
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. <br />
9. <i>Free Software Foundation</i> diperbolehkan menerbitkan versi revisi atau versi baru dari <i>General Public License</i> 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. <br />
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 <i>Free Software Foundation</i>. Jika Program tidak menyatakan nomor versi dari Lisensi ini, Anda boleh memilih sembarang versi yang diterbitkan oleh <i>Free Software Foundation.</i> <br />
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 <i>Free Software Foundation</i>, anda harus menanyakan ke <i>Free Software Foundation</i>; 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. <br />
<b>TIDAK ADA GARANSI </b> <br />
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. <br />
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 TENTANG KEMUNGKINAN KERUSAKAN TERSEBUT. <br />
<b>AKHIR KETENTUAN SERTA PERSYARATANNYA</b> <br />
<b> </b> <br />
<b>Cara Menerapkan Ketentuan Ini dalam Program Baru Anda</b> <br />
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. <br />
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. <br />
<br />
<blockquote> <tt>satu baris untuk nama program serta ide singkat tentang fungsinya. Hak cipta (C) tahun nama pencipta</tt></blockquote><br />
<blockquote> </blockquote><br />
<blockquote><tt>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.</tt></blockquote><br />
<blockquote> </blockquote><br />
<blockquote><tt>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.</tt></blockquote><br />
<blockquote> </blockquote><br />
<blockquote><tt>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</tt></blockquote><br />
<blockquote> </blockquote>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: <br />
<br />
<blockquote> <tt>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.</tt></blockquote><br />
<blockquote> </blockquote>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. 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: <br />
<br />
<blockquote> <tt>Yoyodyne, Inc., dengan ini menyanggah kepentingan semua hak cipta di dalam program 'Gnomovision' (yang melakukan pass-pass pada kompilator) yang diprogram oleh James Hacker.</tt></blockquote><br />
<blockquote> </blockquote><br />
<blockquote><tt>tanda tangan Ty Coon, 1 April 1989 </tt> <br />
<tt>Ty Coon, Wakil Presiden Direktur </tt></blockquote><br />
<blockquote> </blockquote><i>General Public License</i> 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 <i>GNU</i> <i>Library General Public License</i> daripada Lisensi ini.KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-72865813002670875802011-06-09T23:15:00.000-07:002011-06-09T23:15:45.717-07:00Enkripsi<h1> </h1>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<br />
<h2><a href="" name="SECTION02841000000000000000"> Enkripsi Password</a> </h2>Password di Linux dibuat dengan menggunakan metode tingkat lanjut dalam enkripsi, yakni <i>DES (Data Encryption Standard)</i>. Menurut <i>Federal Processing Standards Publication 46-2</i>, DES didefinisikan sebagai ; <br />
<br />
<blockquote> Sebuah algoritma matematika untuk menjalankan enkripsi <tt>(enchypering)</tt> dan dekripsi <tt>(dechypering)</tt> informasi koding binary. Enkripsi mengkonversikan data menjadi bentuk yang sulit ditebak, disebut <i>chyper</i>. Proses dekripsi <i>cypher</i> mengkonversikan data kedalam bentuk aslinya, disebut <i>plain-text</i>. (terjemahan bebas) </blockquote>Enkripsi dan dekripsi dilakukan tergantung pada kunci (<i>key</i>). 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 <i>(error checking).</i> Saat seorang penyusup (atau siapa saja) akan melakukan crack terhadap password di Linux, mereka biasanya mempergunakan kamus <i>(dictionary attack)</i>. 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 <tt>/etc/passwd.</tt> Jika cocok, program cracker akan memberitahukan kepada penyusup, bahwa password sudah berhasil ditemukan. <br />
Untuk meningkatkan keamanan password dalam jaringan Anda, baca kembali sub bab tentang <i>Discretionary Access Control</i>. <br />
<br />
<h2><a href="" name="SECTION02842000000000000000"> Enkripsi komunikasi data</a> </h2>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 <i>sniffer</i>? <br />
<b><i>Sniffer</i></b> adalah program yang membaca dan menganalisa setiap protokol yang melewati mesin di mana program tersebut diinstal. Secara default, sebuah komputer dalam jaringan <i>(workstation)</i> hanya mendengarkan dan merespon paket-paket yang dikirimkan kepada mereka. Namun demikian, kartu jaringan <i>(network card)</i> dapat diset oleh beberapa program tertentu, sehingga dapat memonitor dan menangkap semua lalu lintas jaringan yang lewat tanpa peduli kepada siapa paket tersebut dikirimkan. <br />
Kembali ke contoh tadi, jalankan <tt>traceroute</tt> untuk mengetahui berapa banyak host/komputer yang dilewati data Anda. Lakukan test berikut pada saat komputer sedang online. <br />
<tt># traceroute www.hotmail.com</tt> <br />
<br />
<tt>1 * * nas1-3.cbn.net.id (202.158.2.228) 1610.03 ms</tt> <br />
<br />
<tt> 2 nas1-rtif.cbn.net.id (202.158.2.225) 129.58 ms 119.94 ms 119.881 ms</tt> <br />
<br />
<tt> 3 * 203.127.108.137 (203.127.108.137) 620.031 ms 679.721 ms</tt> <br />
<br />
<tt> 4 202.160.250.29 (202.160.250.29) 639.809 ms 629.684 ms 710.019 ms</tt> <br />
<br />
<tt> 5 202.160.250.6 (202.160.250.6) 619.77 ms 939.703 ms 819.83 ms</tt> <br />
<br />
<tt> 6 S-0-0-0-explorer.ix.singtel.com (202.160.255.214) 849.86 ms 829.723 ms 829.886 ms</tt> <br />
<br />
<tt> 7 s4-1-0.paloalto-cr13.bbnplanet.net (4.0.17.249) 810.22 ms 901.074 ms 818.614 ms</tt> <br />
<br />
<tt> 8 p2-2.paloalto-nbr2.bbnplanet.net (4.0.2.221) 819.889 ms 799.684 ms 809.797 ms</tt> <br />
<br />
<tt> 9 p2-0.paloalto-cr1.bbnplanet.net (4.0.6.78) 809.877 ms 819.611 ms 839.936 ms</tt> <br />
<br />
<tt>10 p0-0.mshotmail.bbnplanet.net (4.0.24.14) 809.757 ms 889.695 ms 849.887 ms</tt> <br />
<br />
<tt>11 * * *</tt> <br />
<br />
<tt>12 law5-rsp-c.hotmail.com (216.32.183.14) 870.029 ms 879.73 ms 869.859 ms</tt> <br />
<br />
<tt>13 lc2.law5.hotmail.com (209.185.243.135) 929.954 ms * 870.017 ms</tt> <br />
<br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Pada mesin Windows Anda juga dapat melakukan tes serupa dengan menjalankan perintah tracert pada prompt. Misal <tt>c:\>tracert www.hotmail.com</tt></blockquote><br />
<blockquote> </blockquote>Untuk menjaga data yang dikomunikasikan, Anda dapat menerapkan beberapa program enkrisi komunikasi data. Di antaranya yang terkenal adalah <i>secure shell (ssh)</i>, dan <i>secure socket layer (SSL)</i>.<br />
<h2><a href="" name="SECTION02843000000000000000"> Secure Shell (SSH)</a> </h2>Menurut RFC (Request For Comment) dari Secure Shell (SSH): <br />
<br />
<blockquote> 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. </blockquote>Algoritma enkripsi yang didukung oleh SSH di antaranya <i>BlowFish</i> (B<small>RUCE </small>S<small>CHNEIER</small>), <i>Triple DES</i> (Pengembangan dari DES oleh IBM), <i>IDEA (The International Data Encryption Algorithm)</i>, dan <i>RSA (The Rivest-Shamir-Adelman)</i>. Dengan berbagai metode enkripsi yang didukung oleh SSH, Anda dapat menggantinya secara cepat jika salah satu algoritma yang Anda terapkan mengalami gangguan.<br />
<h3><a href="" name="SECTION02843100000000000000"> Instalasi SSH</a> </h3>Saat ini SSH dalam bentuk kode sumber dapat diperoleh di<tt>http://www.ssh.fi</tt>, sedangkan binarynya untuk klien dan server dapat Anda peroleh di<tt>http://www.replay.com</tt>. Beberapa paket program utama yang dijadikan satu paket dalam SSH suite adalah : <br />
<br />
<ol><li><tt>make-ssh-known-host</tt> Skrip Perl yang membuat database dari host-host yang otomatis dibuat berdasarkan domain. <br />
</li>
<li><tt>scp</tt> <i>The Secure Shell Copy Program</i>, mengamankan penggAndaan data dari satu komputer ke komputer lainnya. Data ditransfer dalam bentuk enkripsi oleh SSH. <br />
</li>
<li><tt>ssh</tt> The Secure shell client, program yang bekerja seperti telnet. Perintah dapat Anda jalankan secara remote sebagaimana telnet bekerja. <br />
</li>
<li><tt>ssh-add</tt> Menambahkan kunci (key) baru terhadap autentikasi <i>ssh-agent</i> <br />
</li>
<li><tt>ssh-agent</tt> Digunakan untuk autentikasi lewat jaringan dengan model RSA. <br />
</li>
<li><tt>sshd</tt> <i>Secure shell server</i>, secara default bekerja pada port 22. <br />
</li>
<li><tt>ssh-keygen</tt> Program pembuat kunci <i>(key generator)</i> untuk ssh. <br />
</li>
</ol>Untuk instalasinya mempergunakan langkah-langkah standar dalam kompilasi dan instalasi program yang berbentuk kode sumber. <tt>$ gunzip ssh-1.2.27 | tar xvf -</tt> <br />
<tt>$ cd ssh-1.2.27</tt> <br />
<tt>$ ./configure</tt> <br />
<tt>$ make</tt> <br />
<tt>$ su</tt> <br />
<tt>password :</tt> <br />
<tt># make install</tt> <br />
<br />
Selesai proses instalasi, Anda dapat mulai mengedit file konfigurasi untuk SSH : <br />
<br />
<ul><li><tt>/etc/sshd_config</tt> (File konfigurasi server) </li>
<li><tt>/etc/ssh_config</tt> (File konfigurasi klien) <br />
<h3><a href="" name="SECTION02843200000000000000"> Konfigurasi Server</a> </h3>Secara default, <tt>/etc/sshd_config</tt> Anda akan tampak sebagai berikut : <br />
<tt>Port 22</tt> <br />
<br />
<tt>ListenAddress 0.0.0.0</tt> <br />
<br />
<tt>HostKey /etc/ssh_host_key</tt> <br />
<br />
<tt>RandomSeed /etc/ssh_random_seed</tt> <br />
<br />
<tt>ServerKeyBits 768</tt> <br />
<br />
<tt>LoginGraceTime 600</tt> <br />
<br />
<tt>KeyRegenerationInterval 3600</tt> <br />
<br />
<tt>PermitRootLogin yes</tt> <br />
<br />
<tt>IgnoreRhost no</tt> <br />
<br />
<tt>StrictModes yes</tt> <br />
<br />
<tt>QuietMode no</tt> <br />
<br />
<tt>X11Forwarding yes</tt> <br />
<br />
<tt>X11DisplayOffset 10</tt> <br />
<br />
<tt>FascistLogging no</tt> <br />
<br />
<tt>PrintMod yes</tt> <br />
<br />
<tt>KeepAlive yes</tt> <br />
<br />
<tt>SyslogFacility DAEMON</tt> <br />
<br />
<tt>RhostsAuthentication no</tt> <br />
<br />
<tt>RhostsRSAAuthentication yes</tt> <br />
<br />
<tt>PasswordAuthentication yes</tt> <br />
<br />
<tt>PermitEmptyPasswords yes</tt> <br />
<br />
<tt>UserLogin no</tt> <br />
<br />
<tt># Checkmail no</tt> <br />
<br />
<tt>#PidFile /u/zappa/.ssh/pid</tt> <br />
<br />
<tt># AllowHosts *.our.com friend.other.com</tt> <br />
<br />
<tt># DenyHosts lowsecurity.theirs.com *.evil.org evil.org</tt> <br />
<br />
<tt># Umask 022</tt> <br />
<br />
<tt>#SilentDeny yes</tt> <br />
<br />
Sebagai referensi dalam mengedit konfigurasi tersebut, berikut penjelasan tentang fungsi-fungsi dari beberapa parameter yang perlu : <br />
<br />
<div align="CENTER"><a href="" name="10566"></a> <table><caption><strong>Table:</strong> <b>Parameter</b> <tt><b>/etc/sshd_config</b></tt></caption> <tbody>
<tr><td><table border="1" cellpadding="3"><tbody>
<tr><th align="CENTER"><b>Parameter</b><tt><b>/etc/sshd_config</b></tt></th> <th align="LEFT" valign="TOP" width="369"><b>Parameter Penjelasan</b></th> </tr>
<tr><td align="CENTER"><tt>AllowGroups [groups]</tt></td> <td align="LEFT" valign="TOP" width="369">Digunakan untuk mengontrol grup yang dapat memanfaatkan fasilitas SSH. Antar grup dipisahkan dengan spasi. Misal <tt>AllowGroups root user</tt></td> </tr>
<tr><td align="CENTER"><tt>AllowHosts [hosts]</tt></td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk mengontrol host-host yang dapat mengakses layanan SSH. Host dapat diberikan dalam bentuk nama atau nomor IP. Misalnya <tt>AllowHosts *.pasarrumput.com 192.168.11.1</tt></td> </tr>
<tr><td align="CENTER"><tt>AllowTCPForwarding</tt></td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk menentukan apakah <i>TCP forwarding</i> diperbolehkan. Secara default di set <tt>yes.</tt></td> </tr>
<tr><td align="CENTER"><tt>CheckMail</tt></td> <td align="LEFT" valign="TOP" width="369">Digunakan untuk menentukan apakah user yang sedang login dengan ssh diberitahu jika ada email masuk atau tidak. Secara default diset <tt>yes</tt>.</td> </tr>
<tr><td align="CENTER"><tt>DenyGroups</tt></td> <td align="LEFT" valign="TOP" width="369">Digunakan untuk mengontrol grup yang tidak diperbolehkan untuk memanfaatkan fasilitas SSH. Sebagaimana <tt>AllowGroup</tt>, parameter ini menggunakan spasi untuk memisahkan grup satu dengan lainnya.</td> </tr>
<tr><td align="CENTER"><tt>DenyHosts</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk mengontrol host-host yang tidak diperbolehkan untuk mengakses layanan SSH.</td> </tr>
<tr><td align="CENTER"><tt>FascistLogging</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan apakah sshd menjalankan aktivitas logging</td> </tr>
<tr><td align="CENTER"><tt>HostKey</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan letak file kunci dari host. Secara default file kunci ada di <tt>/etc/ssh_host_key</tt></td> </tr>
<tr><td align="CENTER"><tt>IdleTimeout</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan waktu pemutusan layanan jika ada session yang tidak melakukan aktivitas.</td> </tr>
<tr><td align="CENTER"><tt>IgnoreRhosts</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan apakah sshd membaca file <tt>.rhosts</tt> atau tidak.</td> </tr>
<tr><td align="CENTER"><tt>KeepAlive</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan apakah sshd mengirimkan pesan bahwa layanan masih berjalan atau tidak</td> </tr>
<tr><td align="CENTER"><tt>LoginGraceTime</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan waktu jeda saat user bisa login kembali akibat kegagalan login pada sesi sebelumnya</td> </tr>
<tr><td align="CENTER"><tt>PermitEmptyPassword</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan apakah diperbolehkan atau tidak user mengirimkan password kosong</td> </tr>
<tr><td align="CENTER"><tt>PermitRootLogin</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan apakah root dapat log in dengan ssh, dan jika diperbolehkan apakah masih perlu autentikasi password</td> </tr>
<tr><td align="CENTER"><tt>PrintMod</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan apakah sshd perlu menyampaikan <tt>motd</tt> <i>(message of the day)</i> saat user login</td> </tr>
<tr><td align="CENTER"><tt>RSAAuthentication</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan apakah <tt>sshd</tt> menggunakan autentikasi model RSA</td> </tr>
<tr><td align="CENTER"><tt>ServerkeyBits</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan berapa bit yang dipakai sebagai kunci untuk server</td> </tr>
<tr><td align="CENTER"><tt>SilentDeny</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan <tt>sshd</tt> menolak terhadap suatu session tanpa pemberitahuan sama sekali</td> </tr>
<tr><td align="CENTER"><tt>StrictModes</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk menentukan <tt>sshd</tt> mengecek hak akses file terhadap home direktori sebagai pertimbangan untuk menerima atau menolak suatu login</td> </tr>
<tr><td align="CENTER"><tt>X11Forwarding</tt></td> <td align="LEFT" valign="TOP" width="369">Untuk</td> </tr>
<tr><td align="CENTER"> </td> <td align="LEFT" valign="TOP" width="369"> </td> </tr>
</tbody></table></td></tr>
</tbody></table></div><br />
Untuk menjalankan <tt>sshd</tt>, cukup ketikkan <tt>sshd</tt> sebagai <i>root</i>. <br />
<tt># sshd</tt> <br />
Ada beberapa pilihan dalam menjalankan sshd. Pilihan ini diketikkan sebagai prefiks saat menjalankan sshd. Misal : <br />
<tt># sshd -g 60</tt> (menjalankan sshd dengan timeout untuk klien 60 detik) <br />
<br />
<div align="CENTER"><a href="" name="10514"></a> <table><caption><strong>Table:</strong> <b>Pilihan saat menjalankan sshd</b></caption> <tbody>
<tr><td><table border="1" cellpadding="3"><tbody>
<tr><th align="CENTER"><b>Pilihan (prefiks)</b></th> <th align="LEFT" valign="TOP" width="369"><b>Fungsi</b></th> </tr>
<tr><td align="CENTER">-b [bits]</td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk menentukan berapa bit yang dipergunakan sebagai kunci. Secara default dipakai 768 bits.</td> </tr>
<tr><td align="CENTER">-d</td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk menjalankan dalam modus DEBUG. Ini berguna untuk mengamati proses server yang sedang berjalan.</td> </tr>
<tr><td align="CENTER">-f [config-file]</td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk menentukan file config yang lain selain yang ditunjuk secara default (/etc/sshd_config)</td> </tr>
<tr><td align="CENTER">-g [timeout]</td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk menentukan timeout jika ada pengguna yang meminta sebuah sesi tetapi tidak melakukan autentikasi. Defaultya 600 detik. Disarankan untuk mengeset ke 60 detik.</td> </tr>
<tr><td align="CENTER">-h [host-key]</td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk menentukan alternatif lain dari file host key. Defaulntya adalah /etc/ssh_host_key.</td> </tr>
<tr><td align="CENTER">-i</td> <td align="LEFT" valign="TOP" width="369">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.</td> </tr>
<tr><td align="CENTER">-k</td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk mengeset waktu, berapa lama sshd harus membuat (generating) kunci (session key) yang baru. Defaultnya adalah sekali dalam sejam. Jika diset 0 maka sshd tidak akan pernah membuat session key yang baru.</td> </tr>
<tr><td align="CENTER">-p [port]</td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk menentukan port alternatif bagi sshd. Defaultnya adalah port 22.</td> </tr>
<tr><td align="CENTER">-q</td> <td align="LEFT" valign="TOP" width="369">Dipergunakan untuk mematikan logging (tidak melakukan pencatatan terhadap aktifitas sshd.</td> </tr>
<tr><td align="CENTER"> </td> <td align="LEFT" valign="TOP" width="369"> </td> </tr>
</tbody></table></td></tr>
</tbody></table></div><br />
Untuk klien, ssh mempergunakan file /etc/ssh_config. Secara default file tersebut berisi : <br />
<tt># This is ssh client systemwide configuration file. This file provides</tt> <br />
<tt># default for users, and the values can be changed in per-user #configuration</tt> <br />
<tt># files or on yhe command line.</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># configuration data is parsed as follows:</tt> <br />
<tt># 1. Command line options</tt> <br />
<tt># 2. User- specificc file</tt> <br />
<tt># 3. Systemwide file</tt> <br />
<tt># Any configuration value is only change the first time it is set.</tt> <br />
<tt># Thus, host-specific definitistion should be at the beginning of the</tt> <br />
<tt># configuration file, and defaults at the the end.</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Sitewide defaults for various options</tt> <br />
<br />
<br />
<br />
<tt># Host *</tt> <br />
<tt># ForwardAgent yes</tt> <br />
<tt># ForwardX11 yes</tt> <br />
<tt># RhostsAuthentication yes</tt> <br />
<tt># RhostRSAAuthentication yes</tt> <br />
<tt># RSAAuthentication yes</tt> <br />
<tt># TISAuthentication no</tt> <br />
<tt># PasswordAuthentication yes</tt> <br />
<tt># FallBackToRsh yes</tt> <br />
<tt># UserRSH no</tt> <br />
<tt># BatchMode no</tt> <br />
<tt># StrictHostKeyChecking no</tt> <br />
<tt># IdentifyFile -/.ssh/identity</tt> <br />
<tt># Port 22</tt> <br />
<tt># Chiper idea</tt> <br />
<tt># EscapeChar -</tt> <br />
<br />
Tabel berikut menjelaskan parameter yang dipergunakan dalam file ssh_config <br />
<br />
<div align="CENTER"><a href="" name="10534"></a> <table><caption><strong>Table:</strong> <b>Parameter ssh_config (untuk klien ssh)</b></caption> <tbody>
<tr><td><table border="1" cellpadding="3"><tbody>
<tr><th align="LEFT" valign="TOP" width="142"><b>Pilihan</b></th> <th align="LEFT" valign="TOP" width="340"><b>Fungsi</b></th> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>BatchMode [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk meminta username dan kata kunci pada saat koneksi dimulai.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>Cipher [cipher]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan metode enkripsi. Pilihannya adalah <tt>idea, des, 3des (triple DES), blow-fish, arcfour</tt>, dan <tt>none.</tt></td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>ClearA11Forwadings</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk meminta agar ssh meneruskan untuk membaca beberapa file konfigurasi dalam satu sesi.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>Compression [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk meminta ssh menggunakan kompresi selama sesi berjalan.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>Compressionlevel [0-9]</tt></td> <td align="LEFT" valign="TOP" width="340">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.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>ConnectAttempts [#]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan berapa kali ssh akan mencoba berkoneksi kembali saat sebuah sesi tidak berhasil di inisialisasikan.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>EscapeChar [charracter]</tt></td> <td align="LEFT" valign="TOP" width="340">Dpergunakan untuk menentukan karakater Escape.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>FallBackToRsh [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan apakah ssh harus berpindah ke rsh jika koneksi ke ssh server tidak berhasil.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>ForwardAgent [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan apakah koneksi dengan program autentikasi lain akan diteruskan atau tidak.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>ForwardX11 [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk meneruskan sesi X11 secara otomatis.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>GetewayPorts [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan apakah host remote dapat tersambung secara lokal lewat port yang meneruskannya.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>Hostname [hostname]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan nama host yang login secara default.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>Identityfile [file]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menetukan file alternatif identitas RSA. Defaultnya adalah <tt>.ssh/identity.</tt></td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>KeepAlive [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan apakah klien ssh mengirimkan pesan secara terus menerus kepada server remote.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>KerberosAuthentication</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan ssh memakai autentikasi Kerberos 5.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>KerberosTgtPassing</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan ssh memakai Kerberos ticket passing.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>LocalForwading Port host:port</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan ssh meneruskan port lokal kepada host remote.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>PasswordAuthentication [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan ssh memakai autentikasi basis password.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>PasswordPromptHost [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan apakah host remote diperlihatkan dalam prompt login.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>PasswordLogin [yes/no]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan ssh memperlihatkan host remote pada saat autentikasi.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>Port [port]</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergukan untuk menentukan port alternatif.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>RhostsAuthentication</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan apakah autentikasi rhost dapat dipergunakan. Jangan dipergunakan tanpa alasan yang kuat, sebab rhost kurang aman.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>RhostsRSAAuthentication</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan ssh memakai autentikasi rhost dan RSA pada saat koneksi dimulai.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"><tt>SrictHostKeyChecking</tt></td> <td align="LEFT" valign="TOP" width="340">Dipergunakan untuk menentukan apakah ssh menambahkan secara otomatis host key baru ke host file. Pilihannya adalah yes, no, dan ask.</td> </tr>
<tr><td align="LEFT" valign="TOP" width="142"> </td> <td align="LEFT" valign="TOP" width="340"> </td> </tr>
</tbody></table></td></tr>
</tbody></table></div><br />
Klien windows dapat memmanfaatkan SSH dengan mempergunakan program telnet <i>Tera Term Pro</i> + <i>TTSSH for Windows</i>. Secara default <i>Tera Term Pro</i> tidak mendukung ssh, untuk itu perlu ditambahkan program TTSSH for Windows. <i>Terra Term Pro</i> dapat diperoleh di <br />
<tt>http://hp.vector.co.jp/authors/VA002416/teraterm.html</tt>. Sedangkan TTSSH dapat diperoleh di <br />
<tt>http://www.zip.com.au/roca/ttssh.html.</tt><br />
<h2><a href="" name="SECTION02844000000000000000"> SSL (Secure Socket Layer)</a> </h2>SSL merupakan salah satu metode enkripsi dalam komunikasi data yang dibuat oleh Netscape Communication Corporation. Sebagaimana yang dijelaskan dalam <i>SSL Protocol Internet Draft (The SSL Protocol, Version 3.0</i> oleh A<small>LAN </small>O. F<small>REIER</small> dan P<small>AUL </small>C. K<small>OCHER</small>, dapat Anda buka di <tt>http://home.netscape.com/eng/ssl3/ssl-toc.html.</tt> <br />
<br />
<blockquote> <b>SSL</b> 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. <i>(terjemahan bebas)</i>. </blockquote>SSL hanya mengenkripsikan data yang dikirim lewat http. Bagaimana SSL berjalan dapat digambarkan sebagai berikut : </li>
<li>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. </li>
<li>SSL mendukung kriptografi <i>public key</i>, sehingga server dapat melakukan autentikasi dengan metode yang sudah dikenal umum seperti <i>RSA</i> dan <i>Digital Signature Standard (DSS)</i>. </li>
<li>SSL dapat melakukan verifikasi integritas sesi yang sedang berjalan dengan menggunakan algoritma <i>digest</i> seperti MD5 dan SHA. Hal ini menghindarkan pembajakan suatu sesi. </li>
</ul>Lebih lanjut artikel yang saya sarankan untuk dibaca untuk mengetahui lebih dalam tentang SSL (semuanya berbahasa Inggris) : <br />
<ol><li><i>Analysis of the SSL 3.0Protocol</i>,D<small>AVID </small>W<small>AGNER</small> dan B<small>RUCE </small>S<small>CHENEIDER</small>; <br />
<tt>http://www.counterpane.com/ssl.html</tt> </li>
<li><i>Introducing SSL and Certificates</i>, menjelaskan keuntungan sertifikasi SSL; <br />
<tt>http://www.ultranet.com/fhirsch/Papers/cook/ssl_intro.html</tt> </li>
<li><i>Securing Communications on the Intranet and Over the Internet,</i> T<small>AHEL </small>E<small>LGAMAL, </small>J<small>EFF </small>T<small>REUHAFT,</small> danF<small>RANK </small>C<small>HEN,</small> Netscape Communications Corporation; <br />
<tt>http://www.go-digital.net/whitepapers/securecomm.html</tt> </li>
<li><i>The Secure Socket Layer Protocol and Applications</i>, A<small>LLAN </small>S<small>CHIFFMAN</small>, Terisa Systems,Inc; <br />
<tt>http://www.terisa.com:80/presentations/ams/ssl/index.htm</tt> <br />
<tt> </tt><h3><a href="" name="SECTION02844100000000000000"> SSL dengan Apache</a> </h3>Menambahkan SSL kedalam apache membutuhkan prosedur yang cukup rumit. Sebelum Anda memulainya, pastikan bahwa Anda benar-benar membutuhkan. SSL biasa dipakai untuk aplikasi <i>e-commerce</i> 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. <br />
Program yang dibutuhkan : <br />
</li>
<li>Apache 1.2.6 atau lebih </li>
<li>SSLeay ; <tt>ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-0.8.1b.tar.gz</tt> </li>
<li>Patch SSL untuk Apache; <tt>ftp://ftp.ox/ac/uk/pub/crypto/SSL/Apache-SSL/</tt>, sebagai contoh <br />
<tt>apache_1_2_6+ssl_1_17.tar.gz</tt> </li>
</ol><blockquote> Catatan: </blockquote><br />
<blockquote>Jika Apache sudah terinstall dalam komputer Anda, maka perlu dijalankan instalasi ulang, agar patch SSL bisa dimasukkan. </blockquote>Proses pertama, ekstrak dan instal program <tt>SSLeay</tt> <tt>$ cp SSLeay-0.8.1b.tar.gz /usr/src</tt> <br />
<br />
<tt>$ cd /usr/src</tt> <br />
<br />
<tt>$ tar -zxvf SSLeay-0.8.1b.tar.gz </tt> <br />
<br />
<tt>$ cd /SSLeay-0.8.1b</tt> <br />
<br />
<tt>$ perl ./Configure linux-elf</tt> <br />
<br />
<br />
<blockquote> Catatan: </blockquote><br />
<blockquote><i>Configure Linux-elf</i> hanya berjalan hanya untuk mesin Linux. Untuk mengetahui pilihan-pilihan configure-nya jalankan perintah <tt># perl ./Configure</tt> </blockquote><tt>$ make</tt> <br />
<tt>$ make rehash</tt> <br />
<br />
<tt>$ make install</tt> <br />
<br />
Proses selanjutnya adalah ekstrak dan instal Patch SSL untuk Apache ke dalam direktori sumber Apache. <br />
<tt># cp apache_1_2_6+SSL_1_17.tar.gz /usr/src/apache-1.2.6</tt> <br />
<br />
<tt># cd /usr/src/apache-1.2.6</tt> <br />
<br />
<tt># tar -zxvf apache_1_2_6+SSL.tar.gz</tt> <br />
<br />
Yang akan diekstrak adalah : <br />
<br />
<ul><li><tt>ben.pgp.key.asc</tt>- Kunci PGP dari penyusun program </li>
<li><tt>EXTRAS.SSL</tt> - dokumentasi tambahan fitur </li>
<li><tt>LICENSE.SSL</tt> - Lisensi Apache SSL </li>
<li><tt>Md5sums</tt> - <i>MD5 checksums</i> untuk file-file yang diekstrak </li>
<li><tt>Md5sums.asc</tt> - tandatangan <tt>md5sums</tt> dari penyusun program </li>
<li><tt>README.SSL</tt> - dokumentasi pengenalan singkat </li>
<li><tt>SECURITY</tt>- Artikel tentang keamanan dari sistem SSL </li>
<li><tt>Src/apache_ssl.c</tt> - Modul tambahan untuk Apache </li>
<li><tt>SSLconf/conf/access.conf</tt> - file konfigurasi akses untuk apache yang masih kosong </li>
<li><tt>SSLconf/conf/httpd.conf</tt> - Contoh file httpd.conf (file konfigurasi untuk Apache) </li>
<li><tt>SSLconf/conf/mime.types</tt> - contoh file konfigurasi <tt>mime.types</tt> </li>
<li><tt>SSLpatch</tt>- File patch yang akan dipergunakan. </li>
</ul>Setelah file diekstrak, jalankan patch SSL <tt># patch -p1 < SSLpatch</tt> <br />
Lalu pindah ke<tt>/usr/src/apache-1.2.6/src</tt>, kopikan file<tt>Configuration.tmpl</tt> menjadi<tt>configuration</tt>. Edit file <tt>configuration</tt>, dan ganti variabel <tt>SSL_BASE</tt> untuk menunjuk ke direktori SSLeay yang sebelumnya telah diinstall. <br />
<tt># cp Configuration.tmpl /usr/src/apache-1.2.6/src</tt> <br />
<br />
<tt># cd /usr/src/apache-1.2.6/src</tt> <br />
<br />
<tt># pico Configuration.tmpl</tt> <br />
<br />
Ganti baris <tt># SSL_BASE= /u/ben/cork/scuzzy-ssleay6</tt> menjadi <br />
<tt>SSL_BASE=/usr/src/SSLeay-0.8.1b</tt> <br />
<br />
Tekan<tt>Ctrl-X</tt>untuk menyimpan, dan jalankan program make untuk apache. <br />
<tt># make</tt> <br />
Pastikan bahwa prosedur yang dijalankan telah berjalan dengan benar. Cek apakah make telah membuat file <tt>httpsd</tt>. Jika ada, maka semuanya berjalan dengan baik. <br />
Setelah itu, edit file sertifikasi SSL yang terletak di <tt>/usr/local/ssl/lib</tt>. Nama filenya <tt>ssleay.cnf</tt>. Sesuaikan isiannya dengan kebutuhan Anda, dan jalankan <tt>make certificate</tt>. <br />
<tt># make certificate</tt> <br />
Proses ini akan menghasilkan file <tt>httpsd.pem</tt> yang terletak di <tt>/usr/src/apache_1.2.6/SSLconf/conf.</tt> <br />
Selanjutnya, sebelum Apache dijalankan, Anda perlu cek terlebih dahulu file konfigurasi <tt>httpsd</tt> (sebagaimana file konfigurasi Apache yang telah dibahas sebelumnya, yakni <tt>httpd.conf</tt>, <tt>access.conf</tt> dan <tt>srm.conf</tt>). Cek parameter-paremeter yang berkaitan dengan SSL, seperti contoh berikut : <br />
<tt>SSLCACertificatePath /var/httpd/conf</tt> <br />
<br />
<tt>SSLCACertificateFile /var/httpd/conf/httpsd.pem</tt> <br />
<br />
<tt>SSLCertificateFile /var/httpd/conf/httpsd.pem</tt> <br />
<br />
<tt>SSLLogFile /var/httpd/logs/ssl.log</tt> <br />
<br />
<tt>SSLCacheServerPort 8080</tt> <br />
<br />
<tt>SSLCacheServerPath /usr/src/SSLeay-0.8.1b</tt> <br />
<br />
<tt>SSLSessionCacheTimeout 10000</tt> <br />
<br />
Untuk menjalankan Servernya dengan menunjuk file konfigurasi yang telah dibuat, cukup jalankan perintah : <br />
<tt># httpsd -f /var/httpd/conf/httpd.conf</tt><br />
<h1><a href="" name="SECTION02850000000000000000"> <i>Logging</i></a> </h1>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. <br />
<i>Logging</i> 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. <br />
Semua file log di Linux disimpan dalam direktori <tt>/var/log</tt>. Beberapa program/file log yang penting adalah : <br />
<h2><a href="" name="SECTION02851000000000000000"> <tt>lastlog</tt></a> </h2>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. <br />
<tt># lastlog</tt> <br />
<br />
<tt>Username Port From Latest</tt> <br />
<br />
<tt>root tty1 Tue Jul 3 18:55:24 +0700 2000</tt> <br />
<br />
<tt>bin **Never logged in**</tt> <br />
<br />
<tt>daemon **Never logged in**</tt> <br />
<br />
<tt>adm **Never logged in**</tt> <br />
<br />
<tt>lp **Never logged in**</tt> <br />
<br />
<tt>sync **Never logged in**</tt> <br />
<br />
<tt>shutdown **Never logged in**</tt> <br />
<br />
<tt>halt **Never logged in**</tt> <br />
<br />
<tt>mail **Never logged in**</tt> <br />
<br />
<tt>alias **Never logged in**</tt> <br />
<br />
<tt>qmaild **Never logged in**</tt> <br />
<br />
<tt>qmaill **Never logged in**</tt> <br />
<br />
<tt>qmailp **Never logged in**</tt> <br />
<br />
<tt>qmailq **Never logged in**</tt> <br />
<br />
<tt>qmailr **Never logged in**</tt> <br />
<br />
<tt>qmails **Never logged in**</tt> <br />
<br />
<tt>xfs **Never logged in**</tt> <br />
<br />
<tt>postfix **Never logged in**</tt> <br />
<br />
<tt>sofyan **Never logged in**</tt> <br />
<br />
<tt>mysql **Never logged in**</tt> <br />
<br />
<tt>spawn tty1 Tue Jul 3 18:56:10 +0700 2000</tt><br />
<h2><a href="" name="SECTION02852000000000000000"> last</a> </h2>Berisi rekaman user yang pernah login dengan mencarinya pada file <tt>/var/log/wtmp</tt>, sejak file tersebut dibuat. <br />
# last <br />
<br />
<tt>spawn pts/0 Tue Jul 3 18:57 still logged in </tt> <br />
<br />
<tt>spawn tty1 Tue Jul 3 18:56 still logged in </tt> <br />
<br />
<tt>root tty1 Tue Jul 3 18:55 - 18:56 (00:00) </tt> <br />
<br />
<tt>spawn pts/0 Tue Jul 3 18:08 - 18:57 (00:48) </tt> <br />
<br />
<tt>spawn :0 Tue Jul 3 18:07 - 18:55 (00:47) </tt> <br />
<br />
<tt>reboot system boot 2.2.12 Tue Jul 3 18:07 (01:55) </tt> <br />
<br />
<tt>spawn pts/0 Tue Jul 3 09:31 - down (04:18) </tt> <br />
<br />
<tt>spawn :0 Tue Jul 3 09:30 - 13:49 (04:18) </tt> <br />
<br />
<tt>spawn pts/0 Tue Jul 3 08:37 - 09:31 (00:54) </tt> <br />
<br />
<tt>spawn :0 Tue Jul 3 08:36 - 09:30 (00:54) </tt> <br />
<br />
<tt>spawn pts/0 Mon Jul 2 21:42 - 08:37 (10:54) </tt> <br />
<br />
<tt>spawn :0 Mon Jul 2 21:42 - 03:19 (05:37) </tt> <br />
<br />
<tt>reboot system boot 2.2.12 Mon Jul 2 21:41 (16:08) </tt> <br />
<br />
<tt>spawn pts/0 Mon Jul 2 21:38 - down (00:01) </tt> <br />
<br />
<tt>spawn :0 Mon Jul 2 21:38 - down (00:01) </tt> <br />
<br />
<tt>root tty1 Mon Jul 2 21:30 - down (00:09) </tt> <br />
<br />
<tt>reboot system boot 2.2.12 Mon Jul 2 21:30 (00:09) </tt> <br />
<br />
<tt>root tty1 Mon Jul 2 21:26 - down (00:02) </tt> <br />
<br />
<tt>reboot system boot 2.2.12 Mon Jul 2 21:24 (00:04) </tt> <br />
<br />
<tt>root tty1 Mon Jul 2 21:03 - down (00:06) </tt> <br />
<br />
<tt>reboot system boot 2.2.12 Sun Jul 1 22:14 (10:38) </tt> <br />
<br />
<tt>spawn pts/0 Sun Jul 1 14:31 - down (02:52) </tt> <br />
<br />
<tt>spawn :0 Sun Jul 1 14:31 - 17:24 (02:52) </tt> <br />
<br />
<tt>reboot system boot 2.2.12 Sun Jul 1 14:30 (02:54) </tt> <br />
<br />
<tt>spawn pts/0 Sun Jul 1 12:04 - down (00:02) </tt> <br />
<br />
<tt>spawn :0 Sun Jul 1 12:03 - 12:06 (00:02) </tt> <br />
<br />
<tt>reboot system boot 2.2.12 Sun Jul 1 12:02 (00:03) </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>wtmp begins Sun Jul 1 11:59:03 2000</tt><br />
<h2><a href="" name="SECTION02853000000000000000"> <tt>xferlog</tt></a> </h2>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 (<i>incoming, outgoing</i>), modus akses (anonymous, guest, atau user resmi), nama user, layanan, metode otentikasi, dan user ID. <br />
<tt># less /var/log/xferlog</tt><br />
<h2><a href="" name="SECTION02854000000000000000"> access_log</a> </h2>Berisi rekaman untuk layanan http <i>(HyperText Transfer Protocol)</i> atau layanan web server. <tt>Access_log</tt> biasanya terdiri dari Nomor IP dari pengakses, jam dan tanggal akses, printah atau permintaan, dan kode status. <br />
<tt># less /var/log/ access_log</tt><br />
<h2><a href="" name="SECTION02855000000000000000"> error_log</a> </h2>Berisi rekaman pesan kesalahan atas service http atau web server. <tt>Error_log</tt> terdiri dari jam dan waktu, tipe kesalahan, alasan kesalahan, layanan, dan perintah yang dijalankan berikutnya (kadang-kadang). <br />
<tt># less /var/log/error_log</tt><br />
<h2><a href="" name="SECTION02856000000000000000"> messages</a> </h2>Rekaman kejadian sistem dan kernel, ditangani oleh dua daemon; <br />
<br />
<ul><li><tt>syslogd</tt> merekam semua program yang dijalankan. Untuk mengkonfigurasikannya dapat mempergunakan <tt>syslog.conf.</tt> </li>
<li><tt>klogd</tt>, menerima dan merekam pesan kernel </li>
</ul>File messages dapat dilihat di /var/log/messages. Berikut contohnya : <tt># less /var/log/messages</tt><br />
<h1><a href="" name="SECTION02860000000000000000"> Deteksi Penyusupan <i>(Intrusion Detection)</i></a> </h1>Deteksi penyusupan adalah aktivitas untuk mendeteksi penyusupan secara cepat dengan menggunakan program khusus yang otomatis. Program yang dipergunakan biasanya disebut sebagai <i>Intrusion Detection System (IDS)</i>. <br />
Tipe dasar dari IDS adalah: <br />
<br />
<ul><li><i>Rule-based systems</i> - 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. </li>
<li><i>Adaptive systems</i> - mempergunakan metode yang lebih canggih. Tidak hanya berdasarkan database yang ada, tapi juga membuka kemungkinan untuk mendeteksi terhadap bentuk bentuk penyusupan yang baru. </li>
</ul>Bentuk yang sering dipergunakan untuk komputer secara umum adalah rule-based systems. Pendekatan yang dipergunakan dalam <i>rule-based systems</i> ada dua, yakni pendekatan pencegahan <i>(preemptory)</i> dan pendekatan reaksi <i>(reactionary)</i>. 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. <br />
Beberapa contoh program IDS di antaranya: <br />
<br />
<ol><li><tt><b>chkwtmp</b></tt> Program yang melakukan pengecekan terhadap entri kosong. Dalam arti, wtmp mencatat sesuatu tapi isinya kosong. Program ini dapat diperoleh di <br />
<tt>http://sunsite.ics.forth/gr/pub/systools/chkwtmp/chkwtmp-1.0.tar.gz.</tt> <br />
</li>
<li><tt><b>tcplogd</b></tt> 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. <i>Stealth scan</i> 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 <tt>http://www.kalug.net/tcplogd.</tt> <br />
</li>
<li><tt><b>hostsentry</b></tt> Program yang mendeteksi login anomali. Anomali disini termasuk perilaku aneh (<i>bizzare behaviour</i>), anomali waktu (<i>time anomalies</i>), dan anomali lokal (<i>locale anomalies</i>). Versi beta dari program ini dapat diperoleh di <tt>http://www.psionic.com/abacus/hostsentry.</tt> </li>
</ol><tt> </tt> <br />
<tt> </tt> <br />
<tt> </tt> <br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<tt> </tt> <br />
<tt> </tt>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-90057727253071329992011-06-09T23:10:00.000-07:002011-06-09T23:10:03.111-07:00Network Access Control<h1> </h1>Linux dapat memilih komputer mana saja yang dapat mengaksesnya. Pembatasan antar jaringan ini dinamakan <i>Network Access Control</i>. Alat pengontrolan akses jaringan ini dinamakan firewall.<br />
<h2><a href="" name="SECTION02831000000000000000"> Tentang Firewall</a> </h2>Secara umum, firewall biasanya menjalankan fungsi: <br />
<br />
<ul><li><b>Analisa dan filter paket</b> 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. <br />
</li>
<li><b>Bloking isi dan protokol</b> Firewall dapat melakukan bloking terhadap isi paket, misalnya berisi applet Jave, ActiveX, VBScript, Cookie. <br />
</li>
<li><b>Autentikasi koneksi dan enkripsi</b> 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. <br />
</li>
</ul><blockquote> Catatan: </blockquote><br />
<blockquote>Untuk mempelajari firewall, minimal Anda harus mengetahui bagaimana TCP/IP bekerja. Sebagai literatur, Anda dapat membaca Buku TCP/IP karangan O<small>NNO </small>W. P<small>URBO</small>. Dokumen online berbahasa Indonesia tentang pengenalan TCP/IP juga tersedia di <tt>http://www.k-elektronik.org</tt>. </blockquote><h2><a href="" name="SECTION02832000000000000000"> Tipe <i>firewall</i> :</a> </h2><br />
<ol><li><b><i>Network-Level Firewall</i></b> Filter paket dilakukan biasanya dijalankan di router. Filter ini dapat dijalankan dengan memberlakukan rule set tertentu. Contoh tipikal dari <i>Network-Lever Firewall</i> adalah TCP Wrappers. Filter paket di Linux akan dibahas pada bagian selanjutnya. <br />
</li>
<li><b><i>Application-Proxy Firewall/Application Gateways</i></b> Berbeda dengan <i>firewall</i> sebelumnya yang memfilter dan bloking paket, <i>Application-Proxy firewall</i> meneruskan paket yang ada ke host internal yang dituju. Firewall ini bisa dikatakan sebagai jembatan. <i>Application-Proxy Firewall</i> biasanya berupa program khusus. Lebih jauh tentang <i>Application Gateways</i> dapat Anda baca artikel karangan J<small>OHN </small>W<small>ACK</small> di <br />
<tt>http://www.telstra.com.au/pub/docs/security/800-10/node52.html.</tt> <br />
</li>
</ol><blockquote> Catatan : </blockquote><br />
<blockquote>Contoh tipikal dari Application-Proxy Firewall adalah TIS FWTK <i>(Trusted Information System Firewall Toolkit)</i>, beberapa sumbernya : </blockquote><br />
<blockquote><tt>http://www.micrognosis.com/nreadwin/fwtk/history.txt</tt> ; tentang sejarah TIS FWTK. <tt>http://www.ssc.com/lj/issue25/1024.html</tt> ; dokumen "<i>Creating Firewall using the TIS Toolkit</i>" karangan B<small>ENJAMIN </small>E<small>WY</small>. </blockquote><br />
<blockquote><tt>ftp://ftp.tis.com/pub/firewalls/toolkit/dist</tt> ; Program TIS FWTK. Untuk menginstallnya di Linux, Anda harus mendownload patchnya di <br />
<tt>ftp://ftp.tisl.ukans.edu/pub/security/firewalls/fwtkpatches.tgz</tt>. </blockquote><h2><a href="" name="SECTION02833000000000000000"> Filter Paket di Linux</a> </h2>Program paling populer untuk filter paket (dan dimasukkan hampir kesemua distribusi Linux) adalah TCP Wrappers, dibuat oleh W<small>IETSE </small>V<small>ENEMA</small>. Aplikasinya berada di <br />
<tt>/usr/sbin/tcpd</tt> <br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Dokumentasi yang dilampirkan pada saat TCP Wrappers ini dipublikasikan dapat Anda baca di <tt>http://www.raptor.com/lib/tcp_wrapper.ps.</tt> </blockquote>Untuk melihat bagaimana TCP Wrappers ini bekerja, lihat sampel <tt>/etc/inetd.conf</tt> secara umum : <tt>ftp stream tcp nowait root /usr/sbin/ftpd</tt> <br />
<br />
<tt>telnet stream tcp nowait root /usr/sbin/telnetd</tt> <br />
<br />
<tt>shell stream tcp nowait root /usr/sbin/rshd</tt> <br />
<br />
<tt>login stream tcp nowait root /usr/sbin/rlogind</tt> <br />
<br />
<tt>pop3 stream tcp nowait root /usr/sbin/pop3d</tt> <br />
<br />
<br />
Ambil contoh salah satu, yakni <tt>telnetd</tt> : <br />
<tt>telnet stream tcp nowait root /usr/sbin/telnetd</tt> <br />
<br />
Penjelasan dari entri telnet tersebut adalah : <br />
<br />
<ul><li>Service yang dijalankan adalah <tt>telnet</tt> </li>
<li>Tipe soket <tt>STREAM</tt> </li>
<li>Protokol yang digunakan <tt>TCP</tt> </li>
<li><tt>Nowait</tt> berarti bahwa <tt>inetd</tt> harus memanggil program <tt>telnetd</tt> pada saat dibutuhkan. </li>
<li>Root berarti bahwa <tt>telnetd</tt> harus dijalankan dengan user root </li>
<li><tt>/usr/sbin/telnetd</tt> menunjukkan letak program <tt>telnetd</tt>. </li>
</ul>Jika ada permintaan telnet dari klien, maka inetd akan memanggil program <tt>telnetd</tt> untuk melayaninya. Dengan demikian, server akan dijalankan oleh satu buah daemon, yakni <tt>inetd</tt>, jika ada permintaan. Masalahnya adalah, program daemon tidak bisa menyeleksi tiap koneksi yang masuk. Untuk itu dijalankan TCP Wrappers. <br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Binary Slackware, SuSE dan RedHat secara otomatis sudah menjalankan <i>TCP Wrapper</i> begitu selesai instalasi. </blockquote>Dengan TCP Wrapper, <tt>tcpd</tt> akan memotong permintaan <tt>inetd</tt> kepada semua service. Dalam contoh di atas, saat ada user menjalankan <tt>telnet</tt> di port 25, <tt>inetd</tt> akan memanggil <tt>telnetd</tt>. Tapi sebelum ke <tt>telnetd</tt>, dipotong dulu oleh <tt>tcpd</tt>, dicocokkan dengan beberapa rule set yang telah diatur. Jika memenuhi syarat, akan diteruskan ke <tt>telnetd</tt>. Jika tidak, permintaan diputus. Berikut isi dari <tt>inetd.conf</tt> yang telah dipasang <tt>tcpd</tt> <i>(TCP Wrappers)</i> <br />
<tt>ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -l -i -a</tt> <br />
<br />
<tt>telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd</tt> <br />
<br />
<tt>telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetsnoopd</tt> <br />
<br />
<tt>shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L</tt> <br />
<br />
<tt>login stream tcp nowait root /usr/sbin/tcpd in.rlogind</tt> <br />
<br />
<tt>pop3 stream tcp nowait root /usr/sbin/tcpd in.pop3d</tt> <br />
<br />
<h3><a href="" name="SECTION02833100000000000000"> TCP Wrapper sebagai Kontrol Akses</a> </h3>Tcpd dalam memberlakukan aturannya, membaca dua konfigurasi file, yaitu <br />
<br />
<ul><li><tt>/etc/hosts.allow</tt> - host yang diperbolehkan untuk mengakses </li>
<li><tt>/etc/hosts.deny</tt> - host yang tidak diperbolehkan untuk mengakses </li>
</ul>Pada saat selesai instalasi, isi file <tt>hosts.allow</tt> Anda akan tampak sebagai berikut : <tt>#</tt> <br />
<br />
<tt># hosts.allow This file describes the names of the hosts which are</tt> <br />
<br />
<tt># allowed to use the local INET services, as decided by</tt> <br />
<br />
<tt># the '/usr/sbin/tcpd' server.</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Version: @(#)/etc/hosts.allow 1.00 05/28/93</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># End of hosts.allow.</tt> <br />
<br />
Dan file hosts.deny akan tampak : <br />
<tt>#</tt> <br />
<br />
<tt># hosts.deny This file describes the names of the hosts which are</tt> <br />
<br />
<tt># *not* allowed to use the local INET services, as decided</tt> <br />
<br />
<tt># by the '/usr/sbin/tcpd' server.</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Version: @(#)/etc/hosts.deny 1.00 05/28/93</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># End of hosts.deny.</tt> <br />
<br />
Untuk memasukkan rule set dalam file tersebut, W<small>IETZE </small>V<small>ENEMA</small> membuat bahasa tersendiri yang dituangkan dalam <tt>hosts_options</tt>. Untuk mengetahui detailnya, Anda bisa ketikkan : <br />
<tt>$ man hosts_options</tt> <br />
Inti dari rule set pada kedua file di atas menggunakan format : <br />
<tt>Daemon list : client list : option</tt> <br />
Misalnya, Anda ingin memberikan akses hanya untuk mesin dengan nomor ip 1.2.3.4, dapat menuliskan : <br />
<tt>ALL:ALL:DENY</tt> <br />
<tt>ALL:1.2.3.4:ALLOW</tt> <br />
Rule set tersebut, dapat Anda masukkan dalam file <tt>/etc/hosts.deny</tt>, sehingga file tersebut menjadi seperti berikut : <br />
<br />
<tt>#</tt> <br />
<br />
<tt># hosts.deny This file describes the names of the hosts which are</tt> <br />
<br />
<tt># *not* allowed to use the local INET services, as decided</tt> <br />
<br />
<tt># by the '/usr/sbin/tcpd' server.</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Version: @(#)/etc/hosts.deny 1.00 05/28/93</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>ALL:ALL:DENY</tt> <br />
<br />
<tt>ALL:1.2.3.4:ALLOW</tt> <br />
<br />
<tt># End of hosts.deny.</tt> <br />
<br />
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.KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-46073282027789993912011-06-09T23:08:00.000-07:002011-06-09T23:08:05.295-07:00Keamanan LINUX<h1> </h1>Keamanan merupakan isu utama dalam jaringan. Apalagi jika seluruh host tersambung ke Internet. Melindungi jaringan, berarti melindungi setiap host yang ada dalam jaringan, baik <i>workstation</i> 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. <br />
Arsitektur kemanan di Linux, mempunyai enam komponen : <br />
<br />
<ul><li>Account Pemakai <i>(User Account)</i> </li>
<li>Kontrol Akses secara Diskresi <i>(Discretionary Access Control)</i> </li>
<li>Kontrol Akses Jaringan <i>(Network Access Control)</i> </li>
<li>Enkripsi <i>(Encryption)</i> </li>
<li><i>Logging</i> </li>
<li>Deteksi penyusupan <i>(Intrusion Detection)</i><h1><a href="" name="SECTION02810000000000000000"> Account Pemakai <i>(User Account)</i></a> </h1>Kekuasaan dalam mengadministrasi sistem secara keseluruhan berada dalam satu <i>account</i>, yakni root. Dengan root, Anda bisa mengontrol sistem file, user, sumber daya <i>(devices)</i>, bahkan akses jaringan. Model diktatorial ini memudahkan administrator dalam menangani sistem. Jika ada satu user yang melanggar aturan, root bisa membuat <i>account</i>-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 : <br />
</li>
<li>Kecerobohan salah satu pemakai tidak akan berpengaruh terhadap sistem secara keseluruhan </li>
<li>Masing-masing pemakai memiliki <i>privacy</i> yang ketat </li>
</ul>Untuk itu account root biasanya hanya digunakan saat-saat tertentu saja. Misalnya perbaikan sistem. Dan biasanya <i>account</i> root dipergunakan pada modus <i>single user</i>. Dapat Anda bayangkan apa yang terjadi dengan jaringan Anda jika penyusup dari luar memperoleh akses root.<br />
<h1><a href="" name="SECTION02820000000000000000"> Kontrol Akses secara Diskresi (Discretionary Access Control)</a> </h1>Setiap pemakai Linux, memiliki account tersendiri, yang masing-masing dibedakan dengan <i>user name</i> dan <i>password</i>. 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 <i>Discretionary Access Control (DAC)</i>. 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. <br />
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 : <br />
<tt>$ ls -l</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>total 27</tt> <br />
<br />
<tt>drwx--- 5 fade users 1024 Feb 8 11:27 Desktop</tt> <br />
<br />
<tt>drwx--- 2 fade users 1024 Feb 28 10:15 Mail</tt> <br />
<br />
<tt>-rw---- 2 fade users 509 Feb 29 10:14 Mailbox</tt> <br />
<br />
<tt>-rw---- 1 fade hacker 318 Feb 29 10:11 dead.letter</tt> <br />
<br />
<tt>drwxr-xr-x 3 fade hacker 1024 Feb 14 09:12 ftp.linuxrouter.org</tt> <br />
<br />
<tt>drwx--- 2 fade users 1024 Feb 29 10:14 mail</tt> <br />
<br />
<tt>drwx--- 2 fade users 1024 Feb 14 12:07 nsmail</tt> <br />
<br />
<tt>-rw-r-r- 1 fade hacker 17358 Feb 23 09:11 sinkcp.gif</tt> <br />
<br />
<tt>-rw-r-r- 1 fade hacker 393 Feb 24 10:13 spam</tt> <br />
<br />
<tt>drwxr-xr-x 2 fade hacker 1024 Feb 22 08:36 temp</tt> <br />
<br />
Beberapa program penting berkaitan dengan <i>Discretionary Access Control</i> : <br />
<h2><a href="" name="SECTION02821000000000000000"> su (Substitute User).</a> </h2>Jangan menggunakan user root untuk penggunaan sehari-hari. Jika memang mendesak, jalankan program su. Program ini memungkinkan Anda menggunakan account root untuk sementara. Caranya : <br />
<tt>$ su</tt> <br />
lalu Anda akan diminta password. <br />
<tt>password :</tt> <br />
Setelah Anda isi dengan benar, prompt akan berubah menjadi pagar. Jika telah selesai, ketik exit <br />
<tt># exit</tt> <br />
<tt>$</tt> <br />
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 <br />
<tt>/etc/sudoers</tt> <br />
<h2><a href="" name="SECTION02822000000000000000"> shadow.</a> </h2>Secara default, instalasi binary slackware, telah mengaktifkan shadow password. shadow adalah program yang membuat file <tt>/etc/passwd</tt> menjadi dapat dibaca (readable) tetapi tidak lagi berisi password, dan sebagai gantinya disimpan di file <tt>/etc/shadow.</tt>Berikut contoh tipikal file passwd : <br />
<tt>halt:x:7:0:halt:/sbin:/sbin/halt</tt> <br />
<br />
<tt>root:x:0:0::/root:/bin/bash</tt> <br />
<br />
<tt>operator:x:11:0:operator:/root:/bin/bash</tt> <br />
<br />
<tt>shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown</tt> <br />
<br />
<tt>sync:x:5:0:sync:/sbin:/bin/sync</tt> <br />
<br />
<tt>bin:x:1:1:bin:/bin:</tt> <br />
<br />
<tt>ftp:x:404:1::/home/ftp:/bin/bash</tt> <br />
<br />
<tt>daemon:x:2:2:daemon:/sbin:</tt> <br />
<br />
<tt>adm:x:3:4:adm:/var/adm:</tt> <br />
<br />
<tt>lp:x:4:7:lp:/var/spool/lpd:</tt> <br />
<br />
<tt>mail:x:8:12:mail:/var/spool/mail:</tt> <br />
<br />
<tt>news:x:9:13:news:/usr/lib/news:</tt> <br />
<br />
<tt>uucp:x:10:14:uucp:/var/spool/uucppublic:</tt> <br />
<br />
<tt>man:x:13:15:man:/usr/man:</tt> <br />
<br />
<tt>games:x:12:100:games:/usr/games:</tt> <br />
<br />
<tt>guest:x:405:100:guest:/dev/null:/dev/null</tt> <br />
<br />
<tt>nobody:x:65534:100:nobody:/dev/null:</tt> <br />
<br />
<tt>fade:x:1000:103:,,,:/home/fade:/bin/bash</tt> <br />
<br />
<tt>alias:x:7790:2108::/var/qmail/alias:/bin/true</tt> <br />
<br />
<tt>qmaild:x:7791:2108::/var/qmail:/bin/true</tt> <br />
<br />
<tt>qmaill:x:7792:2108::/var/qmail:/bin/true</tt> <br />
<br />
<tt>qmailp:x:7793:2108::/var/qmail:/bin/true</tt> <br />
<br />
<tt>qmailq:x:7794:2107::/var/qmail:/bin/true</tt> <br />
<br />
<tt>qmailr:x:7795:2107::/var/qmail:/bin/true</tt> <br />
<br />
<tt>qmails:x:7796:2107::/var/qmail:/bin/true</tt> <br />
<br />
Satu baris mencerminkan satu user, lengkap dengan atributnya. Berikut keterangan tiap field : <br />
<tt>Username:password:UserID:GroupID:keterangantambahan:homedirektori:shell</tt> <br />
Ambil contoh dari user fade : <br />
<tt>fade:x:1000:103:,,,:/home/fade:/bin/bash</tt> <br />
Keterangan dari line tersebut : <br />
<br />
<ul><li><tt>Username : fade</tt> </li>
<li><tt>Password : x</tt> </li>
<li><tt>User ID (UID) : 1000</tt> </li>
<li><tt>Group ID (GID) : 103</tt> </li>
<li><tt>Keterangan tambahan : -</tt> </li>
<li><tt>Home Direktori : /home/fade</tt> </li>
<li><tt>Shell Default : /bin/bash</tt> </li>
</ul>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 : <tt>root:pCfouljTBTX7o:10995:0:::::</tt> <br />
<br />
<tt>halt:*:9797:0:::::</tt> <br />
<br />
<tt>operator:*:9797:0:::::</tt> <br />
<br />
<tt>shutdown:*:9797:0:::::</tt> <br />
<br />
<tt>sync:*:9797:0:::::</tt> <br />
<br />
<tt>bin:*:9797:0:::::</tt> <br />
<br />
<tt>ftp:*:9797:0:::::</tt> <br />
<br />
<tt>daemon:*:9797:0:::::</tt> <br />
<br />
<tt>adm:*:9797:0:::::</tt> <br />
<br />
<tt>lp:*:9797:0:::::</tt> <br />
<br />
<tt>mail:*:9797:0:::::</tt> <br />
<br />
<tt>news:*:9797:0:::::</tt> <br />
<br />
<tt>uucp:*:9797:0:::::</tt> <br />
<br />
<tt>man:*:9797:0:::::</tt> <br />
<br />
<tt>games:*:9797:0:::::</tt> <br />
<br />
<tt>guest:*:9797:0:::::</tt> <br />
<br />
<tt>nobody:*:9797:0:::::</tt> <br />
<br />
<tt>fade:OihQw6GBf4tiE:10995:0:99999:7:::</tt> <br />
<br />
<tt>alias:!:10995:0:99999:7:::</tt> <br />
<br />
<tt>qmaild:!:10995:0:99999:7:::</tt> <br />
<br />
<tt>qmaill:!:10995:0:99999:7:::</tt> <br />
<br />
<tt>qmailp:!:10995:0:99999:7:::</tt> <br />
<br />
<tt>qmailq:!:10995:0:99999:7:::</tt> <br />
<br />
<tt>qmailr:!:10995:0:99999:7:::</tt> <br />
<br />
<tt>qmails:!:10995:0:99999:7:::</tt> <br />
<br />
Sebagai salinan dari /etc/passwd, shadow menyimpan satu record dalam satu baris yang dibagi menjadi 9 bagian (dipisahkan oleh titik dua) : <br />
<br />
<ul><li>Nama user </li>
<li>Password user </li>
<li>Jumlah hari digantinya password sejak 1 Januari 1970 </li>
<li>Jumlah hari sebelum user diijinkan untuk mengubah password </li>
<li>Jumlah hari sebelum user dipaksa untuk mengganti password </li>
<li>Jumlah hari sebelum user diingatkan untuk mengganti password </li>
<li>Jumlah hari yang tersisa di mana user harus mengganti password sebelum user tersebut dihapus. </li>
<li>Jumlah hari dihapusnya password sejak 1 Januari 1970 </li>
<li>Field terakhir dipakai sendiri oleh shadow </li>
</ul><br />
<div align="CENTER"><a href="" name="8663"></a> <table><caption><strong>Table:</strong> Program Bantu shadow dan fungsinya</caption> <tbody>
<tr><td><table border="1" cellpadding="3"><tbody>
<tr><th align="CENTER"><b>Nama program</b></th> <th align="LEFT" valign="TOP" width="369"><b>Fungsi</b></th> </tr>
<tr><td align="CENTER"><tt>chage</tt></td> <td align="LEFT" valign="TOP" width="369">Mengganti informasi waktu berlakunya sebuah password</td> </tr>
<tr><td align="CENTER"><tt>chfn</tt></td> <td align="LEFT" valign="TOP" width="369">Menggantikan <tt>chfn</tt> bawaan Linux untuk bisa mengganti informasi yang tampil di finger.</td> </tr>
<tr><td align="CENTER"><tt>chsh</tt></td> <td align="LEFT" valign="TOP" width="369">Menggantikan <tt>chsh</tt> bawaan Linux untuk mengganti shell yang sudah di set secara default</td> </tr>
<tr><td align="CENTER"><tt>gpasswd</tt></td> <td align="LEFT" valign="TOP" width="369">Menambah user baru ke dalam grup</td> </tr>
<tr><td align="CENTER"><tt>groupadd</tt></td> <td align="LEFT" valign="TOP" width="369">Menambah grup</td> </tr>
<tr><td align="CENTER"><tt>groupdell</tt></td> <td align="LEFT" valign="TOP" width="369">Menghapus grup</td> </tr>
<tr><td align="CENTER"><tt>groupmod</tt></td> <td align="LEFT" valign="TOP" width="369">Modifikasi grup</td> </tr>
<tr><td align="CENTER"><tt>grpck</tt></td> <td align="LEFT" valign="TOP" width="369">Verifikasi dengan membandingkan antara <tt>/etc/group</tt> dan <tt>/etc/passwd</tt></td> </tr>
<tr><td align="CENTER"><tt>id</tt></td> <td align="LEFT" valign="TOP" width="369">Menggantikan id standar, berfungsi untuk menampilkan UID (User ID) pada saat login.</td> </tr>
<tr><td align="CENTER"><tt>login</tt></td> <td align="LEFT" valign="TOP" width="369">Menggantikan login standar, sehingga bisa berinteraksi dengan shadow untuk autentikasi</td> </tr>
<tr><td align="CENTER"><tt>newgrp</tt></td> <td align="LEFT" valign="TOP" width="369">Menggantikan perintah standar <tt>newgrp</tt>. User dapat berganti group dalam satu session, setelah login kembali</td> </tr>
<tr><td align="CENTER"><tt>passwd</tt></td> <td align="LEFT" valign="TOP" width="369">Menggantikan perintah passwd standar, mengingat shadow punya struktur yang berbeda.</td> </tr>
<tr><td align="CENTER"><tt>pwck</tt></td> <td align="LEFT" valign="TOP" width="369">Sinkronisasi antara <tt>/etc/passwd</tt> dan <tt>/etc/shadow</tt>. Biasa dilakukan setelah menambah password atau user</td> </tr>
<tr><td align="CENTER"><tt>pwconv</tt></td> <td align="LEFT" valign="TOP" width="369">Menyatukan file <tt>/etc/passwd</tt> lama ke dalam file shadow yang baru.</td> </tr>
<tr><td align="CENTER"><tt>pwunconv</tt></td> <td align="LEFT" valign="TOP" width="369">Memisahkan informasi dalam <tt>/etc/shadow</tt> kembali ke <tt>/etc/passwd</tt></td> </tr>
<tr><td align="CENTER"><tt>su</tt></td> <td align="LEFT" valign="TOP" width="369">Menjalankan shell dengan atribut root</td> </tr>
<tr><td align="CENTER"><tt>userdel</tt></td> <td align="LEFT" valign="TOP" width="369">Menghapus nama user</td> </tr>
<tr><td align="CENTER"><tt>usermod</tt></td> <td align="LEFT" valign="TOP" width="369">Mengganti informasi tentang user</td> </tr>
<tr><td align="CENTER"> </td> <td align="LEFT" valign="TOP" width="369"> </td> </tr>
</tbody></table></td></tr>
</tbody></table></div><br />
<h2><a href="" name="SECTION02823000000000000000"> Pro aktif Password</a> </h2>Linux menggunakan metode enkripsi <i>DES (Data Encription Standard)</i> 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 : <br />
<br />
<ul><li>Tanggal lahir (dirinya sendiri atau salah satu anggota keluarga) </li>
<li>Nomor Mobil </li>
<li>Nama salah satu anggota keluarga (baik ditulis langsung, atau dengan variasi huruf besar/dibalik dan sebagainya) </li>
<li>Kata-kata yang ada di kamus, ditulis terbalik </li>
<li>Nama favorit (pacar, artis, penyanyi, dan sebagainya) </li>
</ul>Pilihan ini sangat riskan, sebab program semacam <tt>crack,</tt> 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. <br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Crack dapat Anda peroleh di <tt>http://www.users.dircon.co.uk/crypto/index.html</tt>. Anda dapat menggunakannya sebagai ujicoba untuk test seberapa jauh keamanan password dalam jaringan Anda. Dokumentasinya dapat pula Anda peroleh di <br />
<tt>http://alloy.net/writings/funny/crack_readme.txt.</tt> </blockquote>Program pembantu dalam cek password di antaranya :<br />
<h3><a href="" name="SECTION02823100000000000000"> <tt>passwd+</tt></a> </h3>Program yang ditulis oleh Matt Bishop ini mampu meningkatkan logging, dan mengingatkan user jika mengisi password yang mudah ditebak. passwd+ dapat Anda peroleh di <tt>ftp://ftp.dartmouth.edu/pub/security</tt> <br />
<br />
<h3><a href="" name="SECTION02823200000000000000"> <tt>anlpasswd</tt></a> </h3>Program ditulis dalam perl oleh <i>Argonne National Laboratory</i>. <tt>anlpasswd</tt> 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 : <br />
<tt>ftp://coast.rs.purdue.edu/pub/tools/unix/anlpasswd/analpasswd-2.3.tar.Z</tt> <br />
<br />
<h3><a href="" name="SECTION02823300000000000000"> <tt>npasswd</tt></a> </h3>Program sederhana, ditulis oleh C<small>LYDE </small>H<small>OOVER</small> merupakan program pengganti <tt>passwd</tt> yang biasa. <tt>npasswd</tt> dapat Anda peroleh di : <br />
<tt>http://www.uetxas.edu/cc/unix/software/npasswd/doc</tt> untuk dokumentasi <br />
<tt>http://www.utexas.edu/cc/unix/software/npasswd</tt> untuk programnyaKHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-74232355025501374162011-06-09T23:04:00.000-07:002011-06-09T23:04:27.375-07:00Administrasi BIND<h1><a href="" name="SECTION02540000000000000000"> </a> </h1>Untuk mengadministrasikan BIND (<tt>named</tt>), cukup jalankan program <tt>ndc</tt>, diikuti perintah yang diinginkan. Perintah yang tersedia adalah : <br />
<br />
<ul><li><tt>status</tt> Menunjukkan status named sebagaimana ditampilkan dengan perintah ps. <br />
</li>
<li><tt>dumpdb</tt> Membuang database dan cache dari named ke <tt>/var/tmp/named_dump.db</tt> <br />
<br />
</li>
<li><tt>reload</tt> Menyebabkan named mengecek semua nomor serial zone primary dan secondary, dan menampilkan kembali setiap perubahan. <br />
</li>
<li><tt>stats</tt> Membuang statistik ke dalam file <tt>/var/tmp/named.stats</tt> <br />
<br />
</li>
<li><tt>trace</tt> Meningkatkan satu level <i>tracing</i> atau pelacakan. Semakin tinggi level pelacakannya, semakin banyak hal-hal yang dicatat. Semua dituliskan dalam file <tt>/var/tmp/named.run</tt> <br />
<br />
</li>
<li><tt>notrace</tt> Mengembalikan nilai atau level pelacakan menjadi nol. Perintah ini juga menghapus file <br />
<tt>/var/tmp/named.run</tt> jika masih ada. <br />
</li>
<li><tt>querylog</tt> Berpindah ke model <i>querylog</i>, yang menyebabkan pencatatan ke dalam <tt>syslog</tt> setiap permintaan yang masuk. Perlu diperhatikan bahwa perintah ini akan mencetak file log dengan ukuran besar. Model ini juga dapat dijalankan dengan perintah <tt>qrylog.</tt> <br />
</li>
<li><tt>start</tt> Menjalankan named <br />
</li>
<li><tt>stop</tt> Menghentikan named jika masih berjalan <br />
</li>
<li><tt>restart</tt> Menghentikan named dan menjalankannya kembali. <br />
</li>
</ul>Misalnya untuk mulai menjalankan name server : <br />
<dl compact="compact"><dt> </dt>
<dd># ndc restart</dd><dd> </dd><dd> </dd></dl>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-12000768806724720122011-06-09T23:03:00.000-07:002011-06-09T23:03:11.593-07:00Konfigurasi Domain Name Server<h1><a href="" name="SECTION02530000000000000000"> </a> </h1>Software untuk implementasi DNS yang banyak digunakan adalah <i>BIND (Berkeley Internet Name Domain)</i> yang pertama kali disebut dengan JEEVES dibuat oleh P<small>AUL </small>M<small>OCKAPETRIS</small>. Terakhir implementasi BIND untuk Operating sistem Unix Berkeley 4.3BSD, oleh K<small>EVIN </small>D<small>UNLAP</small>. Versi terakhir saat buku ini ditulis adalah BIND versi 8.1.2. <br />
Pada sebagian distribusi besar, BIND telah diinstal bersamaan dengan instalasi awal. Yang dibutuhkan hanyalah mengkonfigurasikan dan mengaktifkannya. Untuk BIND versi terbaru dapat diperoleh di <br />
<tt>http://www.isc.org</tt> atau ftp.isc.org dalam direktori <tt>/isc/bind/src.</tt><br />
<h2><a href="" name="SECTION02531000000000000000"> Konfigurasi BIND v8</a> </h2>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 : <br />
<br />
<ol><li><tt>/etc/resolv.conf</tt> </li>
<li><tt>/etc/named.conf</tt> </li>
<li>File DNS resource record, yang terdiri <br />
<ul><li><tt>/var/named/root.cache</tt> </li>
<li><tt>/var/named/named.local</tt> </li>
<li><tt>/var/named/ut.zone</tt> </li>
<li><tt>/var/named/ut.rev</tt> </li>
</ul></li>
</ol>DNS <i>resource record</i> 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 <i>resource record</i>, yakni :<br />
<h3><a href="" name="SECTION02531100000000000000"> SOA record</a> </h3>Mengindikasikan <i>authority</i> untuk <i>zone</i> yang bersangkutan. <br />
<br />
<h3><a href="" name="SECTION02531200000000000000"> NS Record</a> </h3>Daftar name server untuk <i>zone</i> yang bersangkutan<br />
<h3><a href="" name="SECTION02531300000000000000"> Other records,</a> </h3>catatan lainnya seperti : <br />
<br />
<ul><li><tt>A</tt>; Pemetaan dari nama domain ke alamat IP </li>
<li><tt>PTR</tt>; Pemetaan dari alamat IP ke nama domain </li>
<li><tt>CNAME</tt>; Nama alias <i>(Canonical Name)</i><h3><a href="" name="SECTION02531400000000000000"> <tt>/etc/resolv.conf</tt></a> </h3>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. <br />
<tt>domain ut.astra.co.id</tt> <br />
<br />
<tt>nameserver 10.2.6.5</tt> <br />
<br />
Keterangan contoh diatas, domain menunjukan nama domain yaitu ut.astra.co.id dan name server adalah IP address dengan nomor: 10.2.6.5 <br />
<h3><a href="" name="SECTION02531500000000000000"> <tt>/etc/named.conf</tt></a> </h3>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 : <br />
<tt>// generated by named-bootconf.pl</tt> <br />
<br />
<tt>options {</tt> <br />
<br />
<tt>directory "/var/named";</tt> <br />
<br />
<tt>};</tt> <br />
<br />
<tt>//</tt> <br />
<br />
<tt>// a caching only nameserver config</tt> <br />
<br />
<tt>//</tt> <br />
<br />
<tt>zone "." {</tt> <br />
<br />
<tt>type hint;</tt> <br />
<br />
<tt>file "root.cache";</tt> <br />
<br />
<tt>};</tt> <br />
<br />
<tt>zone "0.0.127.in-addr.arpa" {</tt> <br />
<br />
<tt>type master;</tt> <br />
<br />
<tt>file "named.local";</tt> <br />
<br />
<tt>};</tt> <br />
<br />
<tt>zone "ut.astra.co.id" {</tt> <br />
<br />
<tt>type master;</tt> <br />
<br />
<tt>file "ut.zone";</tt> <br />
<br />
<tt>};</tt> <br />
<br />
<tt>zone "6.2.10.in-addr.arpa" {</tt> <br />
<br />
<tt>type master;</tt> <br />
<br />
<tt>file "ut.rev";</tt> <br />
<br />
<tt>};</tt> <br />
<br />
Dari sini anda ketahui, untuk contoh yang diberikan, mempunyai resource record yang didefinisikan semuanya berada dalam direktori <tt>/var/named</tt>. Hal ini bisa dilihat di baris: <br />
<br />
<dl compact="compact"><dt> </dt>
<dd>options {
directory "/var/named";
};
</dd></dl>Untuk option ini bebas dimana saja selama direktori tersebut disediakan hanya untuk sistem seperti <tt>/etc</tt> atau <tt>/var</tt>. Selain itu jumlah dan nama filenya sangat kondisional tergantung jumlah zone yang ditangani. <h3><a href="" name="SECTION02531600000000000000"> <tt>/var/named/root.cache</tt></a> </h3>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. <br />
<tt>; This file holds the information on root name servers needed to</tt> <br />
<br />
<tt>; initialize cache of Internet domain name servers</tt> <br />
<br />
<tt>; (e.g. reference this file in the "cache . <file>"</tt> <br />
<br />
<tt>; configuration file of BIND domain name servers).</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; This file is made available by InterNIC registration services</tt> <br />
<br />
<tt>; under anonymous FTP as</tt> <br />
<br />
<tt>; file /domain/named.root</tt> <br />
<br />
<tt>; on server FTP.RS.INTERNIC.NET</tt> <br />
<br />
<tt>; -OR- under Gopher at RS.INTERNIC.NET</tt> <br />
<br />
<tt>; under menu InterNIC Registration Services (NSI)</tt> <br />
<br />
<tt>; submenu InterNIC Registration Archives</tt> <br />
<br />
<tt>; file named.root</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; last update: Aug 22, 1997</tt> <br />
<br />
<tt>; related version of root zone: 1997082200</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS.INTERNIC.NET</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 IN NS A.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS1.ISI.EDU</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS B.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly C.PSI.NET</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS C.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly TERP.UMD.EDU</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS D.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS.NASA.GOV</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS E.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS.ISC.ORG</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS F.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS.NIC.DDN.MIL</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS G.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly AOS.ARL.ARMY.MIL</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS H.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NIC.NORDU.NET</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS I.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; temporarily housed at NSI (InterNIC)</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS J.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; housed in LINX, operated by RIPE NCC</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS K.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; temporarily housed at ISI (IANA)</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS L.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; housed in Japan, operated by WIDE</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS M.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33</tt> <br />
<br />
<tt>; End of File</tt> <br />
<br />
Untuk mendapatkan file <tt>root.cache/named.root</tt> ini dapat melakukan perintah dig dengan user root. <br />
<tt># dig @rs.internic.net > /var/named/root.cache.new</tt> <br />
<br />
<tt>/var/named/named.local</tt> <br />
<br />
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 : <br />
<tt>$TTL 86400</tt> <br />
<br />
<tt>@ IN SOA localhost. root.localhost. (</tt> <br />
<br />
<tt>1997022700 ; Serial</tt> <br />
<br />
<tt>28800 ; Refresh</tt> <br />
<br />
<tt>14400 ; Retry</tt> <br />
<br />
<tt>3600000 ; Expire</tt> <br />
<br />
<tt>86400 ) ; Minimum</tt> <br />
<br />
<tt>IN NS localhost.</tt> <br />
<br />
<tt>1 IN PTR localhost.</tt><br />
<h3><a href="" name="SECTION02531600000000000000"> <tt>/var/named/root.cache</tt></a> </h3>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. <br />
<tt>; This file holds the information on root name servers needed to</tt> <br />
<br />
<tt>; initialize cache of Internet domain name servers</tt> <br />
<br />
<tt>; (e.g. reference this file in the "cache . <file>"</tt> <br />
<br />
<tt>; configuration file of BIND domain name servers).</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; This file is made available by InterNIC registration services</tt> <br />
<br />
<tt>; under anonymous FTP as</tt> <br />
<br />
<tt>; file /domain/named.root</tt> <br />
<br />
<tt>; on server FTP.RS.INTERNIC.NET</tt> <br />
<br />
<tt>; -OR- under Gopher at RS.INTERNIC.NET</tt> <br />
<br />
<tt>; under menu InterNIC Registration Services (NSI)</tt> <br />
<br />
<tt>; submenu InterNIC Registration Archives</tt> <br />
<br />
<tt>; file named.root</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; last update: Aug 22, 1997</tt> <br />
<br />
<tt>; related version of root zone: 1997082200</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS.INTERNIC.NET</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 IN NS A.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS1.ISI.EDU</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS B.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly C.PSI.NET</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS C.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly TERP.UMD.EDU</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS D.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS.NASA.GOV</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS E.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS.ISC.ORG</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS F.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NS.NIC.DDN.MIL</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS G.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly AOS.ARL.ARMY.MIL</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS H.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; formerly NIC.NORDU.NET</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS I.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; temporarily housed at NSI (InterNIC)</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS J.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; housed in LINX, operated by RIPE NCC</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS K.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; temporarily housed at ISI (IANA)</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS L.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>; housed in Japan, operated by WIDE</tt> <br />
<br />
<tt>;</tt> <br />
<br />
<tt>. 3600000 NS M.ROOT-SERVERS.NET.</tt> <br />
<br />
<tt>M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33</tt> <br />
<br />
<tt>; End of File</tt> <br />
<br />
Untuk mendapatkan file <tt>root.cache/named.root</tt> ini dapat melakukan perintah dig dengan user root. <br />
<tt># dig @rs.internic.net > /var/named/root.cache.new</tt> <br />
<br />
<tt>/var/named/named.local</tt> <br />
<br />
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 : <br />
<tt>$TTL 86400</tt> <br />
<br />
<tt>@ IN SOA localhost. root.localhost. (</tt> <br />
<br />
<tt>1997022700 ; Serial</tt> <br />
<br />
<tt>28800 ; Refresh</tt> <br />
<br />
<tt>14400 ; Retry</tt> <br />
<br />
<tt>3600000 ; Expire</tt> <br />
<br />
<tt>86400 ) ; Minimum</tt> <br />
<br />
<tt>IN NS localhost.</tt> <br />
<br />
<tt>1 IN PTR localhost.</tt><br />
<h3><a href="" name="SECTION02531800000000000000"> <tt>/var/named/ut.rev</tt></a> </h3>File ini berisi <i>PTR Records</i>, untuk pemetaan dari alamat ke nama. Karena di file sebelumnya <tt>(ut.zone)</tt> sudah didefinisikan lewat A record, bahwa <tt>netcom.ut.astra.co.id</tt> mempunyai alamat 10.2.6.5, maka dalam file berikut cukup dituliskan nomor hostnya (field terakhir) yakni 5. <br />
<br />
<dl compact="compact"><dt> </dt>
<dd>$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.
<h3><a href="" name="SECTION02531900000000000000"> MX Records</a> </h3>Salah satu keuntungan DNS adalah untuk routing e-mail. Untuk itu, DNS menggunakan <i>resource record</i> tunggal yakni MX records. MX berarti <i>Mail Exchanger</i>, 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 <i>SMTP (Simple Mail Transfer Protocol).</i>
Untuk menghindarkan pengulangan dalam pengiriman<i>, MX records</i> mempunyai parameter tambahan yakni nilai keinginan <i>(preference value)</i>, antara 0 hingga 65535. Kita ambil contoh dengan merujuk pada file <tt>/var/named/ut.zone.</tt>
<tt>IN MX 10 netcom.ut.astra.co.id.</tt>
Baris di atas menunjukkan bahwa <tt>netcom.ut.astra.co.id</tt> punya preference value 10 untuk menjadi <i>relay</i> dari domain <tt>ut.astra.co.id</tt>. Lebih jelas lagi contoh berikut :
<tt>heaven.or.id. IN MX 1 spawn.heaven.or.id.</tt>
<tt>heaven.or.id IN MX 2 crow.heaven.or.id</tt>
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 <tt>crow.heaven.or.id.</tt> Begitu seterusnya hingga e-mail berhasil diproses atau diteruskan.
Untuk penerapannya, masukkan <i>MX records</i> jadi satu bersama <i>records</i> lainnya di file <i>zone domain.</i>
</dd></dl><tt> </tt> <br />
<i> </i> </li><br />
</ul><br />
<br />
<br />
<tt> </tt>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-66645136999937568052011-06-09T22:59:00.000-07:002011-06-09T22:59:34.232-07:00Bagaimana DNS bekerja?<h1> </h1>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. <br />
Untuk memahami bagaimana DNS bekerja, misalkan dengan browser anda buka <tt>http://spawn.heaven.or.id</tt>. Pertama kali yang dilihat adalah file <tt>/etc/resolv.conf</tt> untuk mencari alamat name server komputer yang bersangkutan. Setelah terhubung, name server akan meneruskan ke database root <tt>(.)</tt> 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. <br />
<tt>browser</tt> <br />
<br />
<tt> <!-- MATH
$\downarrow$
--> <img align="MIDDLE" alt="$ \downarrow $" border="0" height="29" src="http://kambing.ui.ac.id/bebas/v01/DLL/ServerLinux/img1.png" width="12" /></tt> <br />
<br />
<tt> name server lokal</tt> <br />
<br />
<tt> <!-- MATH
$\downarrow$
--> <img align="MIDDLE" alt="$ \downarrow $" border="0" height="29" src="http://kambing.ui.ac.id/bebas/v01/DLL/ServerLinux/img1.png" width="12" /></tt> <br />
<br />
<tt> name server root (.)</tt> <br />
<br />
<tt> <!-- MATH
$\downarrow$
--> <img align="MIDDLE" alt="$ \downarrow $" border="0" height="29" src="http://kambing.ui.ac.id/bebas/v01/DLL/ServerLinux/img1.png" width="12" /></tt> <br />
<br />
<tt> name server id (id.)</tt> <br />
<br />
<tt> <!-- MATH
$\downarrow$
--> <img align="MIDDLE" alt="$ \downarrow $" border="0" height="29" src="http://kambing.ui.ac.id/bebas/v01/DLL/ServerLinux/img1.png" width="12" /></tt> <br />
<br />
<tt> name server or (or.id.)</tt> <br />
<br />
<tt> <!-- MATH
$\downarrow$
--> <img align="MIDDLE" alt="$ \downarrow $" border="0" height="29" src="http://kambing.ui.ac.id/bebas/v01/DLL/ServerLinux/img1.png" width="12" /></tt> <br />
<br />
<tt> name server heaven (heaven.or.id)</tt> <br />
<br />
<tt> <!-- MATH
$\downarrow$
--> <img align="MIDDLE" alt="$ \downarrow $" border="0" height="29" src="http://kambing.ui.ac.id/bebas/v01/DLL/ServerLinux/img1.png" width="12" /></tt> <br />
<br />
<tt> host spawn (spawn.heaven.or.id)</tt><br />
<h1><a href="" name="SECTION02520000000000000000"> Komponen DNS</a> </h1>DNS ini mempunyai beberapa komponen, yaitu :<br />
<h2><a href="" name="SECTION02521000000000000000"> Resolver</a> </h2>ialah bagian aplikasi klien yang mengakses name server. Semua program yang membutuhkan DNS, memakai <i>resolver.</i> Proses <i>resolving</i> : <br />
<br />
<ul><li>Mengajukan permintaan terhadap name server </li>
<li>Menginterpretasikan permintaan <i>(resolve)</i>, dan memberikan response </li>
<li>Mengembalikan informasi kepada program yang memintanya. </li>
</ul>Resolver akan menjawab dengan dua cara yaitu melihat isi dari <i>cache</i> yang pernah ditanyakan sebelumnya, serta menanyakan kepada DNS Server untuk mendapatkan hasilnya. Resolver yang biasa dipergunakan untuk mencari informasi tentang DNS adalah <tt>nslookup</tt>.<br />
<h2><a href="" name="SECTION02522000000000000000"> Resolution</a> </h2>Dalam menjawab permintaan terhadap sebuah domain, <i>name server</i> akan mencari <i>name server</i> yang bertanggung jawab terhadap domain yang diminta (lihat sub bagian sebelumnya tentang bagaimana DNS bekerja). Selain mencari, <i>name server</i> juga memberikan informasi tentang server yang bersangkutan. Proses ini disebut name resolution, atau disingkat <i>resolution</i>.<br />
<h2><a href="" name="SECTION02523000000000000000"> Caching</a> </h2>Setiap permintaan terhadap sebuah domain, memaksa name server untuk mengakses databasenya, dan mencari name server yang bertanggung jawab. Untuk itu name server melakukan <i>caching</i> terhadap domain-domain yang pernah diminta. Karena tidak bisa dicaching untuk selamanya, maka name server mendefinisikannya dengan <i>Time to Live (TTL).</i> <br />
<br />
<br />
<br />
<tt> </tt>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-22981710701645822352011-06-09T22:57:00.000-07:002011-06-09T22:57:38.739-07:00IP Masquerade<h1> </h1>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. <br />
Cara kerja IP Masquerade dapat digambarkan sebagai berikut : <br />
<br />
<ol><li>Mesin klien diseting dengan menempatkan mesin Linux sebagai gatewaynya. </li>
<li>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. </li>
<li>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. </li>
<li>Baik klien maupun host di Internet yang mengirimkan paket tidak pernah merasakan perbedaannya. </li>
</ol>Untuk menjalankan IP Masquerade pada mesin Linux dengan Kernel 2.2.x, Anda membutuhkan : <br />
<ol><li>Kernel 2.2.x atau berikutnya </li>
<li>Modul kernel yang dapat dijalankan, minimal versi 2.1.121 atau berikutnya </li>
<li>Jaringan dengan menggunakan TCP/IP yang telah berjalan dengan baik. </li>
<li>Koneksi ke internet untuk mesin Linux </li>
<li>IP Chains versi 1.3.8 atau berikutnya </li>
</ol>Sedangkan pada Kernel versi 2.0.x Anda membutuhkan : <br />
<ol><li>Kernel 2.0.x atau berikutnya </li>
<li>Modul kernel yang dapat dijalankan, minimal versi 2.0.0 atau berikutnya </li>
<li>Jaringan dengan menggunakan TCP/IP yang telah berjalan dengan baik. </li>
<li>Koneksi ke internet untuk mesin Linux </li>
<li>Ipfwadm versi 2.3 atau berikutnya </li>
</ol>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.<br />
<br />
<h2><a href="" name="SECTION02371000000000000000"> Kompilasi Kernel</a> </h2>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. <br />
Pilihan yang perlu dikompilasi, dengan menjawab YES pada pilihan berikut : <br />
<tt>CONFIG_EXPERIMENTAL</tt> <br />
<br />
<tt>CONFIG_MODULES</tt> <br />
<br />
<tt>CONFIG_NET</tt> <br />
<br />
<tt>CONFIG_FIREWALL</tt> <br />
<br />
<tt>CONFIG_INET</tt> <br />
<br />
<tt>CONFIG_IP_FORWARD</tt> <br />
<br />
<tt>CONFIG_IP_FIREWALL</tt> <br />
<br />
<tt>CONFIG_IP_MASQUERADE</tt> <br />
<br />
<tt>CONFIG_IP_MASQUERADE_IPPORTFW</tt> <br />
<br />
<tt>CONFIG_IP_MASQUERADE_IPAUTOFW</tt> <br />
<br />
<tt>CONFIG_IP_MASQUERADE_ICMP</tt> <br />
<br />
<tt>CONFIG_IP_ALWAYS_DEFRAG</tt> <br />
<br />
<tt>CONFIG_DUMMY</tt> <br />
<br />
<tt>CONFIG_IP_MASQUERADE_MFW</tt> <br />
<br />
Setelah itu ikuti dengan kompilasi modul. <br />
<tt># make modules</tt> <br />
<br />
<tt># make modules_install</tt> <br />
<br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>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 <tt>http://www.kernel.org</tt>.</blockquote><br />
<h2><a href="" name="SECTION02372000000000000000"> Menjalankan modul</a> </h2>Selesai kompilasi ulang kernel Anda, maka jalankan modul pada saat booting. Caranya, masukkan perintah-perintah berikut ke dalam file <tt>rc.local</tt> atau skrip lainnya yang dieksekusi saat booting. Perintah ini bergungsi untuk menjalankan modul yang tersimpan di <tt>/var/lib/2.2.x/ipv4</tt> atau <tt>/var/lib/2.0.x/ipv4</tt>. <br />
<br />
<tt>/sbin/depmod -a</tt> <br />
<br />
<tt>/sbin/modprobe ip_masq_ftp</tt> <br />
<br />
<tt>/sbin/modprobe ip_masq_raudio</tt> <br />
<br />
<tt>/sbin/modprobe ip_masq_irc</tt> <br />
<br />
<tt>(dan modul lain yang tersedia)</tt> <br />
<br />
Setelah proses ini selesai, jalankan booting pada mesin Linux Anda, dan IP Masquerading siap untuk dimanfaatkan.<br />
<h2><a href="" name="SECTION02372000000000000000"> Menjalankan modul</a> </h2>Selesai kompilasi ulang kernel Anda, maka jalankan modul pada saat booting. Caranya, masukkan perintah-perintah berikut ke dalam file <tt>rc.local</tt> atau skrip lainnya yang dieksekusi saat booting. Perintah ini bergungsi untuk menjalankan modul yang tersimpan di <tt>/var/lib/2.2.x/ipv4</tt> atau <tt>/var/lib/2.0.x/ipv4</tt>. <br />
<br />
<tt>/sbin/depmod -a</tt> <br />
<br />
<tt>/sbin/modprobe ip_masq_ftp</tt> <br />
<br />
<tt>/sbin/modprobe ip_masq_raudio</tt> <br />
<br />
<tt>/sbin/modprobe ip_masq_irc</tt> <br />
<br />
<tt>(dan modul lain yang tersedia)</tt> <br />
<br />
Setelah proses ini selesai, jalankan booting pada mesin Linux Anda, dan IP Masquerading siap untuk dimanfaatkan. <br />
<br />
<h3><a href="" name="SECTION02373100000000000000"> Windows 9x</a> </h3><br />
<ol><li>Instal terlebih dahulu kartu jaringan di mesin Windows 95 yang akan disetup </li>
<li>Masuk ke '<i>Control Panel'/'Network'.</i> </li>
<li>Tambahkan <i>'TCP/IP protocol'</i> jika Anda belum menggunakannya. </li>
<li>Di <i>'TCP/IP properties'</i>, klik tab <i>'IP Address'</i>, tentukan nomor IP 192.168.1.x, (1 < x < 255), dan tentukan pula Subnet Mask-nya dengan nomor 255.255.255.0 </li>
<li>Tambahkan 192.168.1.1 sebagai gateway di bawah tab <i>'Gateway'</i>. </li>
<li>Di bawah tab <i>'DNS Configuration'/'DNS Server search order'</i> tambahkan DNS yang dipergunakan Linux (biasanya ditemukan dalam file<tt>/etc/resolv.conf</tt>). Masukkan sama persis. </li>
<li>Sebagai tambahan, Anda dapat menambahkan <i>domain search suffix</i> yang cocok. Tapi ini tidak harus, kecuali Anda mempunyai seting khusus, dan Anda yakin dengan isiannya. </li>
<li>Klik <i>'OK'</i> dan boot ulang komputer Anda. </li>
<li>Saat menyala kembali, ping komputer Linux Anda untuk menjalankan test terhadap sambungan dalam jaringan. <i>'Start/Run'</i>, ketik: ping 192.168.1.1 (Ini adalah tes sambungan LAN, dan belum bisa ping komputer di Internet/luar jaringan). </li>
<li>Sebagai tambahan, Anda dapat membuat file <tt>HOSTS</tt> dalam direktori Windows sehingga Anda dapat mengunakan nama host atas komputer dalam jaringan. Sebagai contoh, bisa dilihat file <tt>HOSTS.SAM</tt> dalam direktori Windows. <h3><a href="" name="SECTION02373200000000000000"> Windows for Workgroup 3.11</a> </h3></li>
<li>Install terlebih dahulu kartu jaringan pada mesin Windows For Workgroup yang akan disetup. </li>
<li>Install paket TCP/IP 32b jika Anda belum memilikinya. </li>
<li>Dalam kotak <i>'Main'/'Windows Setup'/'Network Setup</i>', klik <i>'Drivers'.</i> </li>
<li>Pilih <i>'Microsoft TCP/IP-32 3.11b'</i> pada tab <i>'Network Drivers'</i> dan klik <i>'Setup'.</i> </li>
<li>Bari nomor IP 192.168.1.x (1 < x < 255), dan Subnet Mask 255.255.255.0 serta Gateway 192.168.1.1 </li>
<li>Jangan pilih <i>'Automatic DHCP Configuration'</i> dan tambahkan <i>'WINS Server'</i> jika ada Server Windows NT (atau mesin Samba yang berperan sebagai Windows NT. Lihat Bab tentang Samba). </li>
<li>Klik <i>'DNS'</i>, isikan informasi yang perlu, dan klik <i>'OK'</i> jika sudah selesai. </li>
<li>Klik <i>'Advanced',</i> beri tanda pada pilihan <i>'Enable DNS for Windows Name Resolution'</i> dan <i>'Enable LMHOSTS lookup'</i> jika Anda menggunakan file host </li>
<li>Klik <i>'OK'</i> dan boot ulang komputer Anda. </li>
<li>Saat menyala kembali, ping komputer Linux Anda untuk menjalankan test terhadap sambungan dalam jaringan. <i>'Start/Run'</i>, ketik: ping 192.168.1.1 (Ini adalah tes sambungan LAN, dan belum bisa ping komputer di Internet/luar jaringan). </li>
</ol><blockquote> Gambar 5 </blockquote><br />
<blockquote>TCP/IP Properties di windows 9x <h3><a href="" name="SECTION02373300000000000000"> Windows NT</a> </h3><br />
<ol><li>Install terlebih dahulu kartu jaringan pada mesin Windows NT yang akan disetup. </li>
<li>Masuk ke <i>'Main'/'Control Panel'/'Network'</i> </li>
<li>Tambahkan protokol TCP/IP Protocol dan komponen lainnya dari menu <i>'Add Software'</i> jika Anda belum menggunakan protokol TCP/IP. </li>
<li>Di bawah bagian <i>'Network Software and Adapter Cards'</i>, pilih '<i>Installed Network Software'</i> dan klik <i>'TCP/IP Protocol'</i>. </li>
<li>Pada bagian <i>'TCP/IP Configuration'</i>, 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 </li>
<li>Jangan aktifkan <i>'Automatic DHCP Configuration'</i> dan berikan isian yang sesuai pada <i>'WINS Server'</i> jika Anda tergabung dalam domain Windows NT, dan Anda tahu persis apa yang Anda kerjakan. </li>
<li>Klik <i>'DNS'</i>, isikan informasi yang perlu, dan klik <i>'OK'</i> jika sudah selesai. </li>
<li>Klik <i>'Advanced'</i>, beri tanda pada pilihan <i>'Enable DNS for Windows Name Resolution'</i> dan <i>'Enable LMHOSTS lookup'</i> jika Anda menggunakan file host </li>
<li>Klik 'OK' dan boot ulang komputer Anda. </li>
<li>Saat menyala kembali, ping komputer Linux Anda untuk menjalankan test terhadap sambungan dalam jaringan. <i>'Start/Run'</i>, ketik: ping 192.168.1.1 (Ini adalah tes sambungan LAN, dan belum bisa ping komputer di Internet/luar jaringan).</li>
</ol></blockquote><h3><a href="" name="SECTION02373400000000000000"> Sistem UNIX</a> </h3><br />
<ol><li>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). </li>
<li>Install TCP/IP sebagai bagian dari perangkat jaringan jika Anda belum melakukannya. </li>
<li>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 <tt>/etc/sysconfig/network-scripts/ifcfg-eth0</tt> atau langsung lewat Control Panel. (Pada distribusi Slackware, seting nomor IP bisa dilihat pada sub bab sebelumnya, tentang kartu jaringan). </li>
<li>Tambahkan domain name service (DNS) dan domain search suffix pada file <tt>/etc/resolv.conf.</tt> (Jika Anda menggunakan sambungan PPP ke Penyedia Jasa Internet (PJI), Anda dapat isikan DNS PJI Anda di sini.) </li>
<li>Update beberapa bagian pada direktori <tt>/etc/networks</tt> jika perlu. (Pada distribusi Slackware, seting sebelumnya sudah mencukupi). </li>
<li>Restart beberapa service yang barkaitan, atau langsung boot ulang komputer Anda. </li>
<li>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). <br />
<h3><a href="" name="SECTION02373500000000000000"> DOS dengan paket NCSA Telnet</a> </h3></li>
<li>Install terlebih dahulu kartu jaringan pada mesin DOS yang akan disetup </li>
<li>Jalankan driver yang cocok dengan kartu jaringan Anda. Misalnya kartu NE2000, ketikkan <tt>nwpd 0x60 10 0x300,</tt> jika kartu Anda diset pada IRQ 10 dan hardware address di 0x300 </li>
<li>Bikin direktori baru, kemudian ekstrak paket Telnet NCSA; <br />
<tt>pkunzip tel2308b.zip</tt> </li>
<li>Edit file <tt>config.tel</tt> dengan editor teks </li>
<li>Set <tt>myip=192.168.1.x (1 < x < 255)</tt>, dan <tt>netmask=255.255.255.0</tt> </li>
<li>Dalam contoh ini, Anda harus set <tt>hardware=packet, interrupt=10, ioaddr=60</tt> </li>
<li>Minimal Anda harus mempunyai satu mesin khusus yang dipergunakan sebagai gateway, misalnya mesin Linux: name<tt>=default</tt> <br />
<tt>host=namamesinlinuxAnda</tt> <br />
<tt>hostip=192.168.1.1</tt> <br />
<tt>gateway=1</tt> <br />
</li>
<li>Tambahkan spesifikasi lain untuk DNS (Domain Name Service): <tt>name=dns.domain.com ; hostip=123.123.123.123; nameserver=1</tt> <br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Ganti isian DNS sesuai dengan yang dipergunakan Linux gateway Anda </blockquote></li>
<li>Simpan file <tt>Config.tel</tt> yang baru saja diedit </li>
<li>Telnet mesin Linux Anda untuk melakukan tes terhadap sambungan jaringan: <tt>telnet 192.168.1.1</tt><br />
<h3><a href="" name="SECTION02373600000000000000"> MacOS yang menjalankan MacTCP</a> </h3></li>
<li>Instal terlebih dahulu kartu jaringan pada mesin MacOS yang akan disetup </li>
<li>Buka <i>MacTCP control panel</i>. Pilih network driver yang cocok (Ethernet, BUKAN EtherTalk) dan klik tombol <i>'More...'.</i> </li>
<li>Di bawah <i>'Obtain Address:'</i>, klik <i>'Manually'.</i> </li>
<li>Di bawah <i>'IP Address:'</i>, pilih class C dari menu pop up yang muncul. Abaikan sisanya. </li>
<li>Isikan informasi yang sesuai di bawah <i>'Domain Name Server Information:'.</i> </li>
<li>Di bawah <i>'Gateway Address:'</i>, ketikkan 192.168.1.1 </li>
<li>Klik <i>'OK'</i> untuk menyimpan seting. Pada menu utama <i>Control Panel MacTCP</i>, isikan nomor IP dari mesin Mac Anda (192.168.1.x, 1 < x < 255) pada kotak <i>'IP Address:'</i> </li>
<li>Tutup control panel MacTCP. Jika muncul kotak dialog untuk merestart komputer, jalankan. </li>
<li>Anda bisa melakukan tes sambungan jaringan dengan menjalankan ping. Jika Anda mempunyai program freeware <i>MacTCP Watcher</i>, klik tombol <i>'Ping'</i>, 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). </li>
<li>Bila perlu, Anda dapat menambahkan file Hosts dalam <i>System Folder</i> untuk dapat menggunakan nama host dalam jarigan. File harus sudah ada dalam <i>System Folder</i>, dan terdiri atas contoh entri yang dapat dimodifikasi tergantung kebutuhan Anda. </li>
</ol><br />
<br />
<br />
<br />
<br />
<br />
<blockquote> </blockquote><br />
<hr />KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-17891150117860908932011-06-09T22:52:00.000-07:002011-06-09T22:52:29.106-07:00Koneksi ke Internet<h1> </h1>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 (<i>Local Area Network</i>). Sebut saja layanan daemon dalam <tt>inetd</tt>, seperti <tt>telnet</tt> daemon (yang membuat mesin dapat ditelnet mesin lain), <tt>finger</tt> daemon (memberikan informasi user kepada pihak-pihak yang dikehendaki), <tt>ftp</tt> daemon (<i>file transfer protocol daemon</i>, memberikan layanan kepada komputer lain untuk mengirimkan file ke komputer) dan sebagainya. <br />
Keamanan juga akan terasa di Linux, saat mesin tersambung ke Internet. Aplikasi <b>TCP Wrapper</b> yang memfilter setiap host yang akan mengakses komputer, lebih terasa manfaatnya saat tersambung ke internet. Apalagi keamanan terhadap serangan virus yang bertebaran di Internet, <i>discretionary access control</i> (baca di bab terakhir) di Linux memberikan perasaan aman saat menerima sisipan email atau saat berjalan jalan di web site favorit. <br />
Koneksi ke internet yang dibahas di sini adalah sambungan <i>Point to Point Protocol</i> (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. <br />
Banyak program dialer yang ada di Linux. Untuk basis teks yang banyak digunakan adalah <tt>wvdial</tt>. 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 <i>Window Manager</i> yang dipergunakan. Untuk Anda yang sudah terbiasa menggunakan Windows tentu akan familiar mengkonfigurasikannya meskipun tanpa bimbingan. <br />
Pada prinsipnya, dial ke internet membutuhkan : <br />
<br />
<ol><li>Dukungan kernel untuk ppp. Hampir semua binary kernel pada tiap distribusi menyertakannya </li>
<li>Skrip ppp, skrip yang akan dipergunakan untuk otomatisasi koneksi. </li>
<li>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 <tt>/dev/Cua0</tt> atau <tt>/dev/Tty0</tt> di Linux. COM2 pada DOS/Windows, adalah <tt>/dev/Cua1</tt> atau <tt>/dev/Tty1</tt> di Linux. Pengetahuan ini akan bermanfaat pada saat seting dialer nanti. </li>
<li>Dan tentu saja Anda membutuhkan sambungan telepon dengan account yang masih aktif di ISP. </li>
</ol>Autentikasi di ISP biasanya menggunakan metode PAP <i>(Password Authentication Protocol)</i>. Jika Anda harus memasukkan user name dan password langsung dengan menuliskan teksnya, berarti tidak menggunakan metode PAP (Biasanya untuk <i>account shell</i>).<br />
<h2><a href="" name="SECTION02361000000000000000"> Koneksi Manual</a> </h2>Untuk koneksi ke ISP secara manual, jalankan langkah berikut : <br />
<br />
<ol><li><b>Seting modem</b> 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 : <br />
<tt>Com1 pada DOS -> /dev/cua0 atau /dev/ttys0</tt> <br />
<br />
<tt>Com2 pada DOS -> /dev/cua1 atau /dev/ttys1 dan seterusnya.</tt> <br />
<br />
</li>
<li><b>Seting Nama dan DNS</b> Pastikan <tt>/etc/hosts</tt> telah berisi nama domain Anda. Selain itu, edit file /etc/resolv.conf Anda : <br />
<tt>domain nama.isp.Anda</tt> <br />
<br />
<tt>nameserver 10.25.0.1 # nomor IP DNS ISP Anda.</tt> <br />
<br />
<tt>nameserver 10.25.1.2 #Bisa diisi lebih dari 1</tt> <br />
<br />
Dan cek pula file <tt>/etc/host.conf</tt>, seharusnya berisi : <br />
<br />
<tt>order hosts,bind</tt> <br />
<br />
<tt>multi on</tt> <br />
<br />
</li>
<li><b>Buka folder</b><tt><b>/etc/pp</b></tt><b>p.</b> Edit file option yang ada disitu, sehingga menjadi seperti berikut (setelah pagar adalah komentar, dan tidak dijalankan): <br />
<tt># /etc/ppp/options</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Melindungi pppd untuk berjalan dibackground.</tt> <br />
<br />
<tt>-detach</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># menggunakan modem</tt> <br />
<br />
<tt>modem</tt> <br />
<br />
<tt># memastikan modem tidak dipakai program lain saat digunakan</tt> <br />
<br />
<tt>device</tt> <br />
<br />
<tt>lock</tt> <br />
<br />
<tt>crtscts</tt> <br />
<br />
<tt># membuat defaultroute untuk koneksi ini kedalam routing table</tt> <br />
<br />
<tt>defaultroute</tt> <br />
<br />
<tt>asyncmap 0</tt> <br />
<br />
<tt># Maksimum transmisi paket 552 bytes</tt> <br />
<br />
<tt>mtu 552</tt> <br />
<br />
<tt># Maksimum penerimaan paket</tt> <br />
<br />
<tt>552 bytes</tt> <br />
<br />
<tt>mru 552</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># memaksa pppd untuk menggunakan user name ISP sebagai 'host name'</tt> <br />
<br />
<tt># saat proses autentikasi.</tt> <br />
<br />
<tt>name <nama isp Anda></tt> <br />
<br />
</li>
<li><b>Buat file</b><tt>/etc/ppp/pap-secret</tt> <b>yang berisi nama user dan password Anda di ISP.</b> Pastikan file ini mempunyai atribut yang ketat, sehingga tidak dapat dilihat oleh user lain. chmod file berikut ke 700 <br />
<tt># Secrets for authentication using PAP</tt> <br />
<br />
<tt># client server secret acceptable local IP addresses</tt> <br />
<br />
<tt>fade * linuxispower</tt> <br />
<br />
</li>
<li><b>Test koneksi ke ISP.</b> Jalankan perintah berikut dengan user root : <br />
<tt># pppd -d -detach /dev/ttySx 3524001 &</tt> <br />
<br />
</li>
<li><b>Untuk mengetes koneksi Anda, cobalah ping ke website terkenal.</b> <tt># ping -c 5 sunsite.unc.edu</tt> <br />
<br />
<tt>PING sunsite.unc.edu (152.2.254.81): 56 data bytes</tt> <br />
<br />
<tt>64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms</tt> <br />
<br />
<tt>64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms</tt> <br />
<br />
<tt>64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms</tt> <br />
<br />
<tt>64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms</tt> <br />
<br />
<tt>64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms</tt> <br />
<br />
<tt>-- sunsite.unc.edu ping statistics --</tt> <br />
<br />
<tt>5 packets transmitted, 5 packets received, 0% packet loss</tt> <br />
<br />
<tt>round-trip min/avg/max = 169.8/176.3/190.1 ms</tt> <br />
<br />
</li>
<li><b>Untuk mematikan koneksi Anda, cukup jalankan ppp-off.</b> <tt># ppp-off</tt><br />
<h2><a href="" name="SECTION02362000000000000000"> Koneksi dengan menggunakan pppsetup (Slackware)</a> </h2>Skrip ppp setup merupakan skrip yang dibuat oleh R<small>OBERT </small>S. L<small>IESENFELD</small> dan disertakan hampir di setiap distribusi Slackware. Untuk memanggilnya cukup ketikkan pppsetup dengan account root. <br />
<tt>$ su #pindah ke account root</tt> <br />
<tt>password:</tt> <br />
<tt># pppsetup</tt> <br />
<br />
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 : <br />
<tt>atdt3524001 <- untuk menelpon dengan tone</tt> <br />
<tt>atdp3524001 <- untuk menelpon denga pulse</tt> <br />
<br />
Selanjutnya tekan enter, dan masuk ke penentuan modem. <br />
<tt>Pilih ttys0 jika modem Anda disambungkan ke port Com1</tt> <br />
<tt>Pilih ttys1 jika modem Anda disambungkan ke port Com2</tt> <br />
<tt>Pilih ttys2 jika modem Anda disambungkan ke port Com3</tt> <br />
<tt>Pilih ttys3 jika modem Anda disambungkan ke port Com4</tt> <br />
<br />
Setelah menentukan modem, dilanjutkan dengan menentukan baudrate dari modem. <br />
<tt>460800 untuk modem dengan kecepatan 460KBps - Modem ISDN</tt> <br />
<tt>230400 untuk modem dengan kecepatan 230KBps - Modem 56KBps atau ISDN</tt> <br />
<tt>115200 untuk modem dengan kecepatan 115KBps - Modem 56KBps atau 33.6 atau 28.8</tt> <br />
<tt>57600 untuk modem dengan kecepatan 57.6KBps - Modem 56KBps atau 33.6 atau 28.8</tt> <br />
<tt>38400 untuk modem dengan kecepatan 38.4KBps - Modem 56KBps atau 33.6 atau 28.8</tt> <br />
<tt>19200 untuk modem dengan kecepatan 19.2KBps - Modem ISDN</tt> <br />
<tt>57600 untuk modem dengan kecepatan 9.6KBps - Modem ISDN</tt> <br />
<br />
Pilih sesuai konfigurasi modem Anda. Selanjutnya akan muncul pertanyaan : <br />
<tt>Does your service provider provide call back?</tt> <br />
<br />
Jawab <tt>no</tt>. <i>Call back</i> 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 <tt>pppsetup</tt> memasukkan nilai standar. <br />
Konfigurasi selanjutnya adalah nama domain dari ISP. Misal; <tt>indosat.net.id</tt>, <tt>telkom.net.id</tt> 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 <tt>/etc/ppp/pppsetup.txt</tt> (minus username dan password untuk login ke ISP). Berikut contoh filenya : <br />
<tt>===============================================================</tt> <br />
<br />
<tt>PPPSETUP 1.98 on SLACKWARE.</tt> <br />
<br />
<tt>Written by Robert S. Liesenfeld <xunil@bitstream.net> <IRC:Xunil></tt> <br />
<br />
<tt>Changes for 1.98 by Kent Robotti <robotti@erols.com></tt> <br />
<br />
<tt>Patched for Slackware by Patrick Volkerding <volkerdi@slackware.com></tt> <br />
<br />
<tt>You should get these docs if you don't already have them:</tt> <br />
<br />
<tt>ftp://metalab.unc.edu/pub/Linux/docs/howto/PPP-HOWTO</tt> <br />
<br />
<tt>ftp://metalab.unc.edu/pub/Linux/docs/faqs/PPP-FAQ</tt> <br />
<br />
<tt>Press [Enter] to continue with pppsetup...</tt> <br />
<br />
<tt>===============================================================</tt> <br />
<br />
<tt>These are your PPP configuration files and instructions...</tt> <br />
<br />
<tt>===============================================================</tt> <br />
<br />
<tt># This is your /etc/ppp/pppscript.</tt> <br />
<br />
<tt>TIMEOUT 60</tt> <br />
<br />
<tt>ABORT ERROR</tt> <br />
<br />
<tt>ABORT BUSY</tt> <br />
<br />
<tt>ABORT "NO CARRIER"</tt> <br />
<br />
<tt>ABORT "NO DIALTONE"</tt> <br />
<br />
<tt>"" "AT&FH0"</tt> <br />
<br />
<tt>OK "atdt3524001"</tt> <br />
<br />
<tt>TIMEOUT 75</tt> <br />
<br />
<tt>CONNECT</tt> <br />
<br />
<tt># This is your /etc/ppp/options file.</tt> <br />
<br />
<tt># General configuration options for PPPD:</tt> <br />
<br />
<tt>lock</tt> <br />
<br />
<tt>defaultroute</tt> <br />
<br />
<tt>noipdefault</tt> <br />
<br />
<tt>modem</tt> <br />
<br />
<tt>/dev/ttyS1</tt> <br />
<br />
<tt>57600</tt> <br />
<br />
<tt>crtscts</tt> <br />
<br />
<tt># Uncomment the line below for more verbose error reporting:</tt> <br />
<br />
<tt>#debug</tt> <br />
<br />
<tt># If you have a default route already, pppd may require the other side</tt> <br />
<br />
<tt># to authenticate itself, which most ISPs will not do. To work around this,</tt> <br />
<br />
<tt># uncomment the line below. Note that this may have negative side effects</tt> <br />
<br />
<tt># on system security if you allow PPP dialins. See the docs in /usr/doc/ppp*</tt> <br />
<br />
<tt># for more information.</tt> <br />
<br />
<tt>#noauth</tt> <br />
<br />
<tt>passive</tt> <br />
<br />
<tt>asyncmap 0</tt> <br />
<br />
<tt>name "fade"</tt> <br />
<br />
<br />
<dl compact="compact"><dt> </dt>
<dd>
</dd></dl><tt>I created the symbolic link: /dev/modem -> /dev/ttyS1</tt> <br />
<tt># This is your /etc/ppp/options.demand dialing file.</tt> <br />
<br />
<tt># General configuration options for PPPD:</tt> <br />
<br />
<tt>lock</tt> <br />
<br />
<tt>defaultroute</tt> <br />
<br />
<tt>noipdefault</tt> <br />
<br />
<tt>modem</tt> <br />
<br />
<tt>/dev/ttyS1</tt> <br />
<br />
<tt>57600</tt> <br />
<br />
<tt>crtscts</tt> <br />
<br />
<tt># Uncomment the line below for more verbose error reporting:</tt> <br />
<br />
<tt>#debug</tt> <br />
<br />
<tt># If you have a default route already, pppd may require the other side</tt> <br />
<br />
<tt># to authenticate itself, which most ISPs will not do. To work around this,</tt> <br />
<br />
<tt># uncomment the line below. Note that this may have negative side effects</tt> <br />
<br />
<tt># on system security if you allow PPP dialins. See the docs in /usr/doc/ppp*</tt> <br />
<br />
<tt># for more information.</tt> <br />
<br />
<tt>#noauth</tt> <br />
<br />
<tt>passive</tt> <br />
<br />
<tt>asyncmap 0</tt> <br />
<br />
<tt>name "fade"</tt> <br />
<br />
<tt>ipcp-accept-local</tt> <br />
<br />
<tt>ipcp-accept-remote</tt> <br />
<br />
<tt>0.0.0.0:10.10.10.10</tt> <br />
<br />
<tt>demand</tt> <br />
<br />
<tt>connect "/usr/sbin/chat -v -f /etc/ppp/pppscript"</tt> <br />
<br />
<tt>If you have a ethernet connection you should change the local:remote</tt> <br />
<br />
<tt>IP addresses in the options.demand file, to your actual local and</tt> <br />
<br />
<tt>remote address. Example: 215.346.117.89:312.217.187.96</tt> <br />
<br />
<tt># This in your /etc/resolv.conf file.</tt> <br />
<br />
<tt>search cbn.net.id</tt> <br />
<br />
<tt>nameserver 202.158.3.7</tt> <br />
<br />
<tt>202.158.3.7 <-IMPORTANT: This should be the IP address of</tt> <br />
<br />
<tt>your service providers nameserver.</tt> <br />
<br />
<tt># This is your /etc/ppp/pap-secrets file.</tt> <br />
<br />
<tt>Look at /etc/ppp/pap-secrets.</tt> <br />
<br />
<tt>Does everything look correct? if not, run 'pppsetup' again...</tt> <br />
<br />
<tt>===============================================================</tt> <br />
<br />
<tt>To connect to your service provider.</tt> <br />
<br />
<tt>===============================================================</tt> <br />
<br />
<tt># ppp-go <-Make PPP connection.)</tt> <br />
<br />
<br />
<dl compact="compact"><dt> </dt>
<dd>
</dd></dl><tt>You'll hear and see the modem dialing then once connected,</tt> <br />
<tt>logging you in Username: or Login: and Password: etc.</tt> <br />
<br />
<tt>You won't see a Username or Login: and Password: prompt</tt> <br />
<br />
<tt>if they're using PAP or CHAP to authenticate you.</tt> <br />
<br />
<tt>If they use PAP or CHAP you'll just see CONNECT - got it.</tt> <br />
<br />
<tt>If the connection was successful you'll see the Local IP and</tt> <br />
<br />
<tt>Remote IP address printed to the screen, you can press [Enter].</tt> <br />
<br />
<tt>If you run ppp-go in X windows you probably won't see a Local</tt> <br />
<br />
<tt>and Remote IP address printed to the screen, you'll just see</tt> <br />
<br />
<tt>the connection process come to a end, wait a few seconds and</tt> <br />
<br />
<tt>press [Enter] at that point.</tt> <br />
<br />
<tt>If you don't connect for whatever reason e.g. Failed No</tt> <br />
<br />
<tt>Dialtone, Busy, No Carrier, Whatever, Exit, just press</tt> <br />
<br />
<tt>[Enter] at that point.</tt> <br />
<br />
<tt>if you have syslogd running, you can see the output messages</tt> <br />
<br />
<tt>from pppd and chat in the /var/log/messages and or debug file.</tt> <br />
<br />
<tt>Sample /var/log/messages file.</tt> <br />
<br />
<br />
<dl compact="compact"><dt> </dt>
<dd>
</dd></dl><tt>spawn pppd[562]: Serial connection established.</tt> <br />
<tt>spawn pppd[562]: Using interface ppp0</tt> <br />
<br />
<tt>spawn pppd[562]: Connect: ppp0 <-> /dev/modem</tt> <br />
<br />
<tt>spawn pppd[562]: local IP address 215.87.78.18</tt> <br />
<br />
<tt>spawn pppd[562]: remote IP address 205.94.97.35</tt> <br />
<br />
<tt>You don't have a successful PPP connection until you</tt> <br />
<br />
<tt>receive a local & remote IP address like above.</tt> <br />
<br />
<tt>If you have the X window system, you could connect in a Xterm.</tt> <br />
<br />
<tt>spawn # startx</tt> <br />
<br />
<tt>spawn # ppp-go</tt> <br />
<br />
<tt>spawn # netscape mosaic etc.</tt> <br />
<br />
<tt># ppp-off <-To end the ppp connection.)</tt> <br />
<br />
<tt># ppp-go -h <-For help.)</tt> <br />
<br />
<tt>There is no support in linux for "WinModems", if you have a</tt> <br />
<br />
<tt>WinModem you will not be able to use it in linux.</tt> <br />
<br />
<tt>There is support for plug n play modems, if you have a pnp</tt> <br />
<br />
<tt>modem you may need "isapnptools" to get it recognized.</tt> <br />
<br />
<tt>===============================================================</tt> <br />
<br />
<tt>#### Look at the /usr/doc/pppsetup/pppsetup-1.98.README. ####</tt> <br />
<br />
<tt>#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####</tt> <br />
<br />
<tt>===============================================================</tt> <br />
<br />
<tt>Done... You can exit now...</tt> <br />
<br />
<tt>End...</tt><br />
<h2><a href="" name="SECTION02363000000000000000"> Koneksi dengan Wvdial (SuSE)</a> </h2>Jika saat instalasi menggunakan pilihan SuSE default, seharusnya wvdial telah terinstal. Untuk memanggilnya lewat dua cara (keduanya dengan user root) : <br />
</li><br />
<li>Lewat <tt>yast</tt> -<tt>system administration</tt> -<tt>configure PPP network</tt> </li><br />
<li>Langsung mengetikkan <tt>wvdial.lxdialog</tt> di prompt shell. <tt># wvdial.lxdialog</tt> <br />
</li><br />
</ol>Segera akan muncul layar WvDial V 1.20 Configuration. Berikut review dari menu yang ada : <br />
<ol><li><tt>Change the language of SuSE WvDial</tt> <br />
Memilih bahasa konfigurasi WvDial. Bahasa yang tersedia adalah Bahasa Inggris, Jerman dan Spanyol. <br />
</li>
<li><tt>Configure the current profile</tt> <br />
Seting utama untuk melakukan hubungan ke ISP. Terdiri atas : <br />
<tt>a. Phone number : 1234567 (isikan nomor telepon Anda)</tt> <br />
<br />
<tt>b. Account Name : fade (user name di ISP)</tt> <br />
<br />
<tt>c. Password : linuxispower (password untuk menghubungi ISP)</tt> <br />
<br />
<tt>d. Automatic DNS (Pilih ini jika ISP Anda mendukung DNS otomatis. </tt> <br />
<tt> Jika tidak, Anda bisa isi langsung /etc/resolv.conf lewat YaST </tt> <br />
<tt> atau manual)</tt> <br />
<br />
<tt>e. Dial method (Metode menelepon, menggunakan tone dial atau pulse dial)</tt> <br />
<br />
<tt>f. PAP/CHAP authentification (Metode otentikasi. Pilihan lainnya adalah </tt> <br />
<tt> Compuserve, Germany T-online dan Non Standard Login untuk ISP </tt> <br />
<tt> yang tidak mendukung model PAP/CHAP).</tt> <br />
</li>
<li><tt>Autodetectmodem</tt> <br />
WvDial akan mencoba deteksi semua port serial untuk menemukan modem. <br />
</li>
<li><tt>Configure DNS with YaST</tt> <br />
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 <br />
</li>
<li><tt>Run WvDial</tt> <br />
Menghubungi internet untuk mencoba konfigurasi yang baru saja dibuat. <br />
</li>
</ol>Sebagai tambahan, SuSE WvDial menyertakan beberapa dokumentasi yang dapat dibaca langsung lewat menunya : <br />
<ol><li><tt>Show the README.SuSE for WvDial</tt> <br />
Pernyataan dan beberapa petunjuk ringkas dari SuSE tentang penggunaan WvDial for SuSE. <br />
</li>
<li><tt>Show the trouble shooting file</tt> <br />
Beberapa contoh kemungkinan pesan kesalahan / error message <br />
</li>
<li><tt>Show the original WvDial README</tt> <br />
README asli yang disertakan dalam file sumber WvDial. <br />
</li>
<li><tt>Load an alternatif profile</tt> <br />
Memanfaatkan <tt>wvdial.conf</tt> yang sudah diseting oleh pihak lain<br />
<h2><a href="" name="SECTION02364000000000000000"> Koneksi dengan skrip if-up (RedHat)</a> </h2>Skrip PPP di RedHat dapat dibuat secara otomatis oleh LinuxConf. Berikut cara mengkonfigurasikannya : <br />
</li>
<li>Aktifkan LinuxConf <tt># linuxconf</tt> <br />
<br />
</li>
<li>Masuk ke bagian <tt>Config - Networking - Routing and Gateways - PPP/SLIP/PLIP</tt> </li>
<li>Pilih Add - PPP, dan masukkan konfigurasi Anda : <br />
<ul><li><tt>phone number : 1234567 (isi nomor ISP yang akan dihubungi)</tt> </li>
<li><tt>modem port : /dev/ttyS1 (Port Com2 pada DOS, port yang akan dipergunakan oleh modem)</tt> </li>
<li><tt>Aktifkan Use PAP Authentication</tt> </li>
<li><tt>Password : linuxispower (isikan password koneksi ke ISP)</tt> </li>
</ul>Untuk konfigurasi lebih detail, tekan customize (bila perlu) : <br />
<ul><li><i>Hardware:</i> Non-aktifkan kontrol line di sini jika Anda mempunyai dua komputer dengan sambungan langsung. <br />
</li>
<li><i>Escape control characters:</i> Biasanya dipergunakan untuk negosiasi secara otomatis dengan server. Biarkan kosong. <br />
</li>
<li><i>Abort connection on well-known errors:</i> Pemutusan hubungan jika muncul pesan kesalahan/terjadi kesalahan umum. <br />
</li>
<li><i>Allow any user to (de)activate the interface:</i> Mengganti ijin akses file dari skrip <tt>if-up</tt> dan <tt>if-down</tt> sehingga dapat dijalankan oleh user (tidak harus root). <br />
</li>
<li><i>Line speed:</i> Dengan asumsi16550 UARTS, untuk modem berkecepatan 14.4 kbps harus diset 57600 dan modem berkecepatan 28.8kbps atau lebih harus diset ke 115200. <br />
</li>
<li><i>Modem port:</i> Port untuk modem. Biasanya <tt>/dev/modem</tt>, atau pada distribusi Linux yang lama diset ke <tt>/dev/cua1</tt> or <tt>/dev/cua2</tt>. Pada distribusi baru, diset ke <tt>/dev/ttyS0</tt> or <tt>/dev/ttyS1</tt>. <br />
<br />
</li>
<li><i>PPP options:</i> 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. <br />
</li>
<li><i>Communication:</i> <br />
<ul><li><i>Modem String</i>: Biarkan kosong. </li>
<li><i>Modem dial command:</i> ATDT untuk model tone, ATDP untuk model pulse. </li>
<li><i>Phone Number:</i> Nomor ISP yang akan dihubungi </li>
<li><i>Debug Connection:</i> Biarkan kosong </li>
</ul></li>
<li><i>Chat</i>: Perintah yang dijalankan lewat skrip chat. Biasanya berisi <i>username</i> dan <i>password</i> atau keterangan konfigurasi. <br />
</li>
<li><i>Networking:</i> <br />
<ul><li><i>activate interface at boot time:</i> Dijalankan saat boot. Aktifkan ini jika Anda memiliki sambungan yang permanen. <br />
</li>
<li><i>set default route:</i> Semua paket dikirimkan lewat ppp. Jika Anda sebelumnya sudah menentukan gateway secara default, maka pilihan ini tidak akan berfungsi. <br />
</li>
<li><i>Restart link when connection fails:</i> Skrip akan melakukan koneksi ulang (redial) jika hubungan terputus. <br />
</li>
<li><i>Time out value in seconds:</i> Tenggang waktu PPP akan memutuskan sambungan jika nomor yang dikontak tidak memberikan respons. <br />
</li>
<li><i>Maximum packet size:</i> Ukuran maksimum paket yang dikirim. Semakin besar nilainya, akan semakin cepat koneksinya. Tapi pada sambungan yang berisik (sudah mengalami induksi, justru akan memperlambat akses). <br />
</li>
</ul></li>
<li><i>Infrequently used options:</i> Alamat IP lokal dan remote yang diberikan secara otomatis oleh ISP. <br />
</li>
<li><i>PAP:</i> Password dan username yang diberikan oleh ISP <br />
</li>
</ul></li>
<li>Untuk mengatur user yang bisa menjalankan dialing, diatur lewat LinuxConf di bagian <tt>Config - User Account- Special Accounts</tt> </li>
<li>Untuk menjalankan koneksi, jalankan skrip ifup diikuti konfigurasi PPP yang sudah ditentukan sebelumnya. Dan untuk memutuskan, jalankan skrip <tt>ifdown</tt>. Semua konfigurasi ini disimpan di <tt>/etc/ppp</tt>. Untuk menjalankan dengan user selain root, pastikan memakai user yang telah diseting lewat <tt>LinuxConf - User Accounts - Special Accounts</tt>. <br />
<tt>$ ifup ppp0</tt> <br />
<br />
<tt>$ ifdown ppp0</tt> </li>
</ol>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-87668421013242658512011-06-09T22:50:00.000-07:002011-06-09T22:50:32.515-07:00Seting Kartu Jaringan<h2><a href="" name="SECTION02351000000000000000"> Seting manual di Slackware</a> </h2><br />
<ol><li>Catat vendor dan seri dari kartu jaringan <i>(ethernet card/network interface card)</i> yang Anda punyai </li>
<li>Cek apakah kernel waktu booting sudah mengenali kartu jaringan yang Anda miliki, dengan perintah <tt>dmesg</tt>. <br />
<dl compact="compact"><dt> </dt>
<dd># 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.
</dd></dl>Atau cara kedua, dengan perintah ifconfig. <br />
<dl compact="compact"><dt> </dt>
<dd># 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
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
</dd></dl></li><br />
<li>Jika kernel belum mengenal kartu jaringan Anda (outputnya hanya <tt>lo/loopback</tt>), maka Anda dapat menjalankannya dengan mengaktifkan modul kartu jaringan yang Anda miliki. Caranya, buka file <tt>/etc/rc.d/rc.modules</tt>. 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. </li><br />
<li>Jika Anda tidak menemukan rc.modules (distribusi selain Slackware), maka Anda dapat mencarinya langsung di <tt>/lib/modules</tt> atau di <tt>/etc/conf.modules</tt> untuk melihat konfigurasi aktivasi modul-modul yang ada. Untuk mengaktifkannya cukup jalankan perintah modprobe. Misalnya : <tt># modprobe ne2k-pci</tt> <br />
<br />
</li><br />
<li>Setelah Anda temukan dalam file rc.modules, hilangkan tanda pagar agar dieksekusi oleh kernel pada saat booting. Berikut contoh potongan file <tt>/etc/rc.d/rc.modules</tt> <br />
<tt># PCI NE2000 clone support:</tt> <br />
<br />
<tt>#/sbin/modprobe ne2k-pci</tt> <br />
<br />
<tt># SMC Ultra support:</tt> <br />
<br />
<tt>#/sbin/modprobe smc-ultra</tt> <br />
<br />
<tt># SMC Ultra32 EISA support:</tt> <br />
<br />
<tt>#/sbin/modprobe smc-ultra32</tt> <br />
<br />
<tt># Western Digital WD80*3 (and clones) support:</tt> <br />
<br />
<tt>#/sbin/modprobe wd</tt> <br />
<br />
</li><br />
<li>Misal, kartu jaringan Anda adalah NE 2000 kompatibel, Anda cukup hilangkan tanda pagar di depan <tt>/sbin/modprobe ne2k-pci</tt> dengan editor teks, dan simpan. <tt># PCI NE2000 clone support:</tt> <br />
<br />
<tt>/sbin/modprobe ne2k-pci</tt> <br />
<br />
<tt># SMC Ultra support:</tt> <br />
<br />
<tt>#/sbin/modprobe smc-ultra</tt> <br />
<br />
<tt># SMC Ultra32 EISA support:</tt> <br />
<br />
<tt>#/sbin/modprobe smc-ultra32</tt> <br />
<br />
<tt># Western Digital WD80*3 (and clones) support:</tt> <br />
<br />
<tt>#/sbin/modprobe wd</tt> <br />
<br />
<br />
<blockquote> Catatan : <blockquote> 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. </blockquote></blockquote></li><br />
<li>Setelah memasukkan modul kartu jaringan agar dieksekusi oleh kernel saat booting, lanjutkan dengan memberikan nomor IP pada kartu jaringan. Caranya adalah dengan mengedit file <tt>/etc/rc.d/rc.inet1</tt>. Jika file rc ini tidak ada, maka Anda dapat memasukkannya ke dalam <tt>rc.local</tt> (ada di setiap distribusi), atau membuat sendiri skrip rc sejenis. Berikut contoh isi file <tt>rc.inet1</tt> yang telah diedit sesuai kebutuhan. <tt>#!/bin/sh</tt> <br />
<tt>#</tt> <br />
<tt># rc.inet1 This shell script boots up the base INET system.</tt> <br />
<tt>#</tt> <br />
<tt># Version: @(#)/etc/rc.d/rc.inet1 1.01 05/27/93</tt> <br />
<tt>#</tt> <br />
<tt>HOSTNAME=`hostname`</tt> <br />
<tt># Attach the loopback device.</tt> <br />
<tt>/sbin/ifconfig lo 127.0.0.1</tt> <br />
<tt>/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo</tt> <br />
<tt># IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to configure the</tt> <br />
<tt># eth0 interface. If you're only using loopback or SLIP, don't include the</tt> <br />
<tt># rest of the lines in this file.</tt> <br />
<tt># Edit for your setup.</tt> <br />
<tt>IPADDR="192.168.1.1" # REPLACE with YOUR IP address!</tt> <br />
<tt>NETMASK="255.255.255.0" # REPLACE with YOUR netmask!</tt> <br />
<tt>#NETWORK="128.253.154.0" # REPLACE with YOUR network address!</tt> <br />
<tt>#BROADCAST="128.253.154.255" # REPLACE with YOUR broadcast address, if you</tt> <br />
<tt> # have one. If not, leave blank and edit below.</tt> <br />
<tt>GATEWAY="192.168.1.1" # REPLACE with YOUR gateway address!</tt> <br />
<tt> </tt> <br />
<tt># Uncomment the line below to initialize the ethernet device.</tt> <br />
<tt>/sbin/ifconfig eth0 ${IPADDR} broadcast ${BROADCAST} netmask ${NETMASK}</tt> <br />
<tt># Older kernel versions need this to set up the eth0 table:</tt> <br />
<tt>#KVERSION=`uname -r | cut -f 1,2 -d .`</tt> <br />
<tt>#if [ "$KVERSION" = "1.0" -o "$KVERSION" = "1.1"\</tt> <br />
<tt># -o "$KVERSION" = "1.2" -o "$KVERSION" = "2.0" -o "$KVERSION" = "" ]; then</tt> <br />
<tt># /sbin/route add -net ${NETWORK} netmask ${NETMASK} eth0</tt> <br />
<tt>#fi</tt> <br />
<tt># Uncomment this to set up your gateway route:</tt> <br />
<tt>/sbin/route add default gw ${GATEWAY} netmask 0.0.0.0 metric 1</tt> <br />
<tt># End of rc.inet1</tt> <br />
<br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Hanya baris yang telah dihilangkan pagarnya saja yang dieksekusi. Selain itu hanya berupa komentar yang membantu untuk mengedit. </blockquote></li><br />
<li>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. <tt># ping -c 5 192.168.1.2</tt> <br />
<br />
<tt>PING 192.168.1.2 (192.168.1.2): 56 data bytes</tt> <br />
<br />
<tt>64 bytes from 192.168.1.2: icmp_seq=0 ttl=128 time=0.6 ms</tt> <br />
<br />
<tt>64 bytes from 192.168.1.2: icmp_seq=1 ttl=128 time=0.4 ms</tt> <br />
<br />
<tt>64 bytes from 192.168.1.2: icmp_seq=2 ttl=128 time=0.4 ms</tt> <br />
<br />
<tt>64 bytes from 192.168.1.2: icmp_seq=3 ttl=128 time=0.5 ms</tt> <br />
<br />
<tt>64 bytes from 192.168.1.2: icmp_seq=4 ttl=128 time=0.4 ms</tt> <br />
<br />
<tt>-- 192.168.1.2 ping statistics --</tt> <br />
<br />
<tt>5 packets transmitted, 5 packets received, 0% packet loss</tt> <br />
<br />
<tt>round-trip min/avg/max = 0.4/0.4/0.6 ms</tt> <br />
<br />
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). <br />
<tt># ifconfig</tt> <br />
<br />
<tt>eth0 Link encap:Ethernet HWaddr 00:A0:C9:99:5C:4C</tt> <br />
<br />
<tt>inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0</tt> <br />
<br />
<tt>UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1</tt> <br />
<br />
<tt>RX packets:4679 errors:0 dropped:0 overruns:0 frame:0</tt> <br />
<br />
<tt>TX packets:3520 errors:0 dropped:0 overruns:83 carrier:0</tt> <br />
<br />
<tt>collisions:2 txqueuelen:100</tt> <br />
<br />
<tt>Interrupt:9 Base address:0xf8e0</tt> <br />
<br />
<tt>lo Link encap:Local Loopback</tt> <br />
<br />
<tt>inet addr:127.0.0.1 Mask:255.0.0.0</tt> <br />
<br />
<tt>UP LOOPBACK RUNNING MTU:3924 Metric:1</tt> <br />
<br />
<tt>RX packets:96 errors:0 dropped:0 overruns:0 frame:0</tt> <br />
<br />
<tt>TX packets:96 errors:0 dropped:0 overruns:0 carrier:0</tt> <br />
<br />
<tt>collisions:0 txqueuelen:0</tt> <br />
<br />
<tt>#ifconfig eth0 down # nonaktifkan dulu kartu jaringannya</tt> <br />
<br />
<tt>#ifconfig eth0 ip=192.168.1.100 netmask=255.255.255.0</tt> <br />
<br />
<tt>#ifconfig eth0 up # aktifkan kembali</tt> <br />
<br />
<tt># ifconfig</tt> <br />
<br />
<tt>eth0 Link encap:Ethernet HWaddr 00:A0:C9:99:5C:4C</tt> <br />
<br />
<tt>inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0</tt> <br />
<br />
<tt>UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1</tt> <br />
<br />
<tt>RX packets:4679 errors:0 dropped:0 overruns:0 frame:0</tt> <br />
<br />
<tt>TX packets:3520 errors:0 dropped:0 overruns:83 carrier:0</tt> <br />
<br />
<tt>collisions:2 txqueuelen:100</tt> <br />
<br />
<tt>Interrupt:9 Base address:0xf8e0</tt> <br />
<br />
<tt>lo Link encap:Local Loopback</tt> <br />
<br />
<tt>inet addr:127.0.0.1 Mask:255.0.0.0</tt> <br />
<br />
<tt>UP LOOPBACK RUNNING MTU:3924 Metric:1</tt> <br />
<br />
<tt>RX packets:96 errors:0 dropped:0 overruns:0 frame:0</tt> <br />
<br />
<tt>TX packets:96 errors:0 dropped:0 overruns:0 carrier:0</tt> <br />
<br />
<tt>collisions:0 txqueuelen:0</tt> <br />
<br />
</li><br />
</ol>Dengan demikian, kartu jaringan diganti dari nomor IP 192.168.1.1 menjadi 192.168.1.100.<br />
<h2><a href="" name="SECTION02352000000000000000"> Seting Kartu Jaringan melalui YaST</a> </h2><br />
<ol><li>Masuk sebagai user root, dan jalankan <tt>yast</tt> <tt>$ su</tt> <br />
<br />
<tt>password:</tt> <br />
<br />
<tt># yast</tt> <br />
<br />
</li>
<li>Segera muncul yast, masuk ke bagian <tt>System administration - Integrate hardware into system - Configure networking</tt> <tt>device.</tt> <br />
<br />
<ul><li><tt><b>Networking type : eth0</b></tt> Nama divais yang dipergunakan. Jika mampunyai kartu jaringan lebih dari satu, dapat mengisikan secara berurutan, misal eth0, eth1 dan seterusnya. <br />
</li>
<li><tt><b>Networking Device Type : ne2k-pci</b></tt> 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. <br />
</li>
<li><tt><b>Module Options</b></tt> Paramater port input output yang dipergunakan. YaST akan mengisikan secara otomatis berdasarkan modul yang dipilih. <br />
</li>
</ul></li>
<li>Setelah disimpan, keluar dari YaST, dan cek file <tt>/etc/conf.modules</tt> untuk melihat apakah modul kartu jaringan Anda sudah di-remark (dihilangkan karakter pagar di depan modulnya). </li>
<li>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. </li>
<li>Lakukan pengetesan dengan menjalankan ping terhadap komputer lain dalam jaringan Anda. Caranya dapat merujuk pada seting kartu jaringan sebelumnya. <br />
<h2><a href="" name="SECTION02353000000000000000"> Seting Kartu Jaringan melalui LinuxConf</a> </h2></li>
<li>Masuk sebagai user root, dan jalankan linuxconf. <tt>$ su</tt> <br />
<br />
<tt>password:</tt> <br />
<br />
<tt># linuxconf</tt> <br />
<br />
</li>
<li>Masuk ke bagian <tt>Config - Networking - Client tasks - Basic host information.</tt> </li>
<li>Bagian hostname isikan nama host komputer Anda. Misalnya spawn. </li>
<li>Di bagian adapter 1 ; <br />
<ul><li>Klik <tt><b>enabled</b></tt> untuk mengaktifkan </li>
<li><tt><b>Config mode</b></tt> ; pilih manual. </li>
<li><tt><b>Primary name + domain</b></tt> ; isikan nama host dan domain Anda. Misalnya spawn.heaven.or.id </li>
<li><tt><b>Aliases</b></tt>; biarkan kosong untuk seting pertama kali. Anda bisa menambahkan nantinya jika kartu jaringan Anda sudah aktif. </li>
<li><tt><b>IP Address</b></tt>; isikan alamat IP komputer Anda. Misalnya 192.168.100.1 </li>
<li><tt><b>Netmask</b></tt>; tentukan netmask berdasarkan kelas IP yang telah diisikan sebelumnya. Biarkan kosong jika Anda tidak yakin. </li>
<li><tt><b>Net Device</b></tt>; Nama divais yang dipergunakan. Misalnya eth0 </li>
<li><tt><b>Kernel Module</b></tt>; Nama modul kartu jaringan Anda. Pilih yang sesuai, misalnya ne2k-pci untuk kartu kompatibel ne 2000. </li>
</ul></li>
<li>Selesai dengan seting di atas klik Accept. Atau bisa ditambahkan ke pilihan Adapter 2 jika Anda memiliki kartu jaringan lebih dari 1. </li>
<li>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. </li>
<li> </li>
</ol>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-51487716585324080782011-06-09T22:48:00.003-07:002011-06-09T22:48:55.564-07:00YaST di SuSE<h1> </h1>SuSE memiliki program bantu untuk mengkonfigurasikan Linux dengan menu interaktif yang mudah dimengerti yakni yast (<i>Yet another Setup Tool</i>). Untuk menjalankannya, cukup ketikkan <tt>yast</tt> dengan user root. <br />
<br />
<dl compact="compact"><dt> </dt>
<dd># yast </dd></dl>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 : <br />
<ol><li><b>General help for installation</b> File help yang berisi tentang tombol-tombol yang dipergunakan untuk navigasi YaST. <br />
</li>
<li><b>Adjustments of installation</b> Bagian untuk instalasi atau update instalasi. <br />
<ol><li>Select Language </li>
<li>Select Keymap </li>
<li>Select Installation Medium </li>
<li>Configure harddisk partitions </li>
<li>Set target partitions/filesystems </li>
<li>Installation to a directory </li>
</ol></li>
<li><b>Choose/Install packages</b> Penambahan atau pengurangan (uninstall) paket aplikasi. <br />
</li>
<li><b>Update system</b> Pengecekan terhadap perubahan program-program lain serta sistem yang terpengaruh dengan instalasi program yang baru. <br />
</li>
<li><b>System Administration</b> Konfigurasi sistem, termasuk hardware, network dan user. Bagian ini terdiri dari : <br />
<br />
<ol><li><i>Integrate hardware into system</i> <br />
<ol><li>Mouse configuration </li>
<li>Modem </li>
<li>CD-ROM </li>
<li>Configure printers </li>
<li>Configure ISDN hardware </li>
<li>Configure your scanner </li>
<li>Configure networking device </li>
</ol></li>
<li><i>Kernel and boot configuration</i> <br />
<ol><li>Select boot kernel </li>
<li>Create a boot disk </li>
<li>Create a rescue disk </li>
<li>LILO Configuration </li>
</ol></li>
<li><i>Network configuration</i> </li>
<li><i>Network base configuration</i> <br />
<ol><li>Change hostname </li>
<li>Configure network services </li>
<li>Configure name server </li>
<li>Configure YP Client </li>
<li>DHCP client </li>
<li>Configure sendmail </li>
<li>Configure ISDN parameters </li>
<li>Configure a PPP network </li>
<li>Administer remote printers </li>
<li>Connect to printer via Samba </li>
<li>Connect to printer via novell network </li>
</ol></li>
<li><i>Login configuration</i> <br />
<ol><li>Settings of SuSE WM </li>
<li>User Administration </li>
<li>Group Administration </li>
<li>Create backups </li>
<li>Set the console font </li>
<li>Set Time Zone </li>
</ol></li>
<li><i>Configure XFREE86 (tm)</i> </li>
<li><i>Configure GPM</i> </li>
<li><i>Security Settings</i> </li>
<li><i>Change Configuration file</i> </li>
</ol></li>
</ol><b>6. Show README file for installation media</b> <b>7. CopyRight</b> <br />
<b>8. Exit YaST</b>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-14746155748993102492011-06-09T22:48:00.001-07:002011-06-09T22:48:15.531-07:00Instalasi SuSE<h1> </h1>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 : <br />
<br />
<ol><li>Masukkan CD-ROM SuSE </li>
<li>Jika Anda masih berada di Microsoft Windows, restart komputer ke dalam MSDOS mode. </li>
<li>Pindah ke drive dimana CD-ROM SuSE berada (misalnya <tt>D:\</tt>). </li>
<li>Saat berada di drive CD-ROM, jalankan program setup. <tt>D:\> setup</tt> </li>
<li>Pertama kali muncul adalah pilihan bahasa. Anda bisa pilih Bahasa Indonesia atau Inggris. Contoh dalam langkah instalasi berikut menggunakan pilihan Bahasa Inggris. </li>
<li>Kemudian muncul pertanyaan drive tempat CD-ROM berada. Ketikkan <tt>D:\</tt> atau <tt>E:\</tt> , tergantung komputer Anda. </li>
<li>Berikutnya adalah metode instalasi. Pilihan yang ada adalah : <br />
<ol><li><i>CD</i>; jika Linux sudah mendukung CD-ROM yang Anda miliki. </li>
<li><i>Hard disk</i>; jika Linux sudah disalin dari CD-ROM ke hard disk. </li>
</ol></li>
<li>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 <tt>kernelEIDE01</tt> untuk perangkat keras<tt>(E)IDE</tt> secara umum, atau <tt>kernelSCSI01</tt> untuk SCSI Adapter Aic 7xxx (<i>Adaptec 274x</i>). Pemilihan kernel ini tergantung konfigurasi komputer masing-masing. </li>
<li>Masukkan parameter kernel. Jika Anda tidak mengetahuinya, langsung tekan enter. </li>
<li>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. </li>
<li>Selesai proses instalasi Loadlin, kernel akan langsung dijalankan. Untuk inisialisasi kernel, secara otomatis dijalankan perintah : <tt>LOADLIN E:/suse/images/EIDE01 root=200 rw 2 Initrd</tt> <br />
<br />
<tt>E:/suse/images/initdisk.gz lang=english</tt> <br />
<br />
Jika Anda pelajari instalasi Slackware pada bagian sebelumnya, maka disini ditemukan metode yang serupa. Perintah pertama meminta loadlin untuk menjalankan <tt>kernelEIDE01</tt>, yang terletak di direktori <tt>E:/suse/images</tt>, dan status read write. Perintah kedua meminta initrd untuk menjalankan <tt>initdisk.gz</tt> 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: <br />
<br />
<tt>Load Linux now!</tt> <br />
<br />
</li>
<li>Dari perintah kedua, <tt>initrd</tt> 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 (<i>Main Menu</i>) Linuxrc, jalankan pengaturan dalam menu-menu berikut secara berurutan. <br />
<br />
<ol><li><b>Settings</b>, meliputi <br />
<ul><li><i>Language</i>; untuk pengaturan bahasa </li>
<li><i>Display</i>; untuk pengaturan monitor </li>
<li><tt>Keymap</tt>; untuk pengaturan keyboard </li>
<li><i>Debug</i>; pilihan untuk pengguna Linux tingkat lanjut. Isinya berupa pilihan <i>Animation, Force rootimage, Enter rootimage, Instalation system, Scripting NFS port</i>. Jika tidak tahu, Anda dapat abaikan pilihan ini, dan relatif tidak mengganggu proses instalasi secara keseluruhan. </li>
</ul></li>
<li><b>System Information</b><i>,</i> meliputi <br />
<ul><li><i>Kernel Messages</i>; 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. </li>
<li><i>Hard disk /CD-ROMs</i>; Catatan hard disk dan CD-ROM yang dikenali oleh kernel. </li>
<li><i>Modules</i>; Catatan tentang driver perangkat keras (di Linux disebut sebagai modul) yang sudah diaktifkan </li>
<li><i>PCI</i>; Catatan tentang kartu PCI yang dimiliki berdasarkan pengenalan oleh kernel. </li>
<li><i>Memory</i>; Catatan tentang memory yang dimiliki berdasarkan pengenalan oleh kernel. </li>
<li><i>IO Port</i>; Port Input Output </li>
<li><i>Interrupts</i>; Catatan interrupts. </li>
</ul></li>
<li><b>Kernel Modules</b>, meliputi <br />
<ul><li><i>Load SCSI module</i>; mengaktifkan modul SCSI yang belum dikenal oleh kernel. Hal ini diketahui dengan membaca pesan kernel pada bagian sebelumnya. </li>
<li><i>Load CD-ROM module</i>; Mengaktifkan modul CD-ROM </li>
<li><i>Load network card module</i>; Mengaktifkan modul kartu jaringan. </li>
<li><i>Load PCMCIA module</i>; Mengaktifkan modul PCMCIA. </li>
<li><i>Show Loaded modules</i>; Melihat modul-modul yang telah diaktifkan. </li>
<li><i>Unload modules</i>; Menon-aktifkan kembali modul-modul yang telah aktif. </li>
<li><i>Autoload modules</i>; Mengaktifkan modul secara otomatis dengan melakukan inspeksi (probing) terhadap semua perangkat keras yang ada. </li>
</ul></li>
<li><b>Start Instalation System</b>; meliputi <br />
<ul><li><i>Start Instalation</i>; Mulai instalasi </li>
<li><i>Boot Instalation</i>; Selesai instalasi dan boot komputer </li>
<li><i>Start Rescue System</i> </li>
<li><i>Start Live CD</i> </li>
</ul></li>
</ol></li>
<li>Pada saat memilih <i>Start Instalation</i>, 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. </li>
<li>Setelah memilih media instalasi, segera muncul program YaST yang menawarkan tipe instalasi. Tipe yang ditawarkan adalah : <br />
<ul><li><i>Install Linux from scratch</i>; Instal SuSE baru ke dalam komputer dengan metode standar. </li>
<li><i>Update existing file system</i>; Upgrade SuSE dari versi sebelumnya. </li>
<li><i>Instalation using expert mode</i>; Instalasi dengan pilihan-pilihan khusus yang menawarkan modifikasi penuh. </li>
<li><i>Abort</i>; membatalkan instalasi. </li>
</ul>Pilih <i>install Linux from scratch</i> </li>
<li>Langkah selanjutnya adalah penentuan partisi. Sebelum melanjutkan, silakan baca tentang partisi pada sub bab instalasi Slackware. Pilihan pertama adalah <i>partitioning hardware</i>; ada dua pilihan : <br />
<ul><li><i>partitioning</i>; SuSE akan melakukan partisi otomatis sisa spasi hard disk yang masih kosong. Partisi otomatis ini meliputi partisi Linux sekaligus swap. </li>
<li><i>Do not partitioning</i>; Untuk langkah partisi normal. Untuk belajar melakukan partisi, pilih do not partitioning. </li>
</ul></li>
<li>Setelah dipilih <i>do not partitioning</i>, akan muncul pilihan lagi, yakni : <br />
<ul><li><i>Whole hard disk</i>; SuSE akan mempartisi seluruh hard disk. Hindarkan pilihan ini. </li>
<li><i>Partitioning</i>; melakukan partisi secara manual. Pilih partitioning untuk menjalankan partisi hard disk secara manual. </li>
</ul></li>
<li>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 : <tt>Device Name From To Blocks Partition Type</tt> <br />
<br />
<tt>/dev/hda1 1 319 2562336 b Win 95 Fat 32</tt> <br />
<tt>/dev/hda2 320 1048 5855692 5 extended</tt> <br />
<tt>/dev/hda5 320 447 1028128 83 Linux Native</tt> <br />
<tt>/dev/hda6 448 463 128488 82 Linux Swap</tt> <br />
<br />
</li>
<li>Tampilan tabel partisi bisa bermacam-macam, tergantung pengaturan di komputer Anda sebelumnya. Untuk membuat partisi baru, tekan F5. <tt>Starting Cylinder :</tt> <br />
<br />
<tt>End of partition: +1000M</tt> <br />
<br />
Pada pilihan <tt>Starting Cylinder</tt>, biarkan kosong, langsung tekan enter. Selanjutnya muncul <tt>End of Partition</tt>, 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 <tt>Continue</tt>, dan akan muncul pertanyaan <tt>Select Swap Partition</tt>. Pilih partisi swap yang Anda tentukan sebelumnya. Anda akan dikonfirmasi, apakah Anda ingin melakukan cek swap yang akan diaktifkan? Cek ini meliputi <i>bad blocks</i> dan cek permukaan piringan hard disk yang akan digunakan. Pilih <tt>yes</tt>. <br />
<br />
</li>
<li>Langkah selanjutnya adalah melakukan format terhadap sistem file Linux yang baru saja Anda buat partisinya. Contoh sistem file yang sudah ada : <tt>List of existing hard drive</tt> <br />
<br />
<tt>Device Blocks Inodes Format fstype mountpoint partition</tt> <br />
<br />
<tt>/dev/hda5 1028128 4096 No ext2 Linux</tt> <br />
<br />
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. <br />
</li>
<li>Instalasi akan kembali ke prompt YaST untuk <i>load configuration</i>. 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. </li>
<li>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). </li>
<li>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. </li>
<li>Setelah itu muncul menu LILO Instalation. Jawab yes dan segera Anda dibawa ke menu : <br />
<ul><li>Pilihan berikut biarkan kosong <tt>Append line for hardware parameter :</tt> <br />
<br />
</li>
<li>Pilih <i>Master Boot Record</i> untuk menempatkan LILO di MBR sehingga saat # boot akan dijalankan. <tt>Where do you want install LILO :</tt> <br />
<br />
<tt>Master Boot Record</tt> <br />
<br />
<tt>Boot sector of root partition</tt> <br />
<br />
<tt>Boot sector of boot partition</tt> <br />
<br />
<tt>On floppy disk</tt> <br />
<br />
</li>
<li><i>Boot delay</i> adalah lama waktu dalam satuan detik pada saat memilih menu sistem operasi yang akan dijalankan saat komputer dinyalakan. <tt>Boot Delay :</tt> <br />
<br />
</li>
</ul></li>
<li>Proses selanjutnya penentuan time configuration. Ini adalah satuan waktu yang digunakan oleh sistem operasi. Anda bisa memilih antara menggunakan GMT atau waktu lokal. </li>
<li>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: <tt>Hostname : spawn</tt> <br />
<br />
<tt>Domain Name : heaven.or.id</tt> <br />
<br />
</li>
<li>Menu berikutnya adalah konfirmasi peran komputer Anda. Pilihannya adalah : <br />
<ul><li><i>IP Loopback only</i>; untuk mesin yang berjalan sendiri dan tidak terhubung ke jaringan </li>
<li><i>Real network</i>; untuk mesin yang terhubung dalam jaringan. </li>
</ul>Pada bagian DHCP client, pilih <tt>no</tt> (kecuali jika Anda terhubung dalam jaringan dengan DHCP). Dalam contoh berikut, pilih real network. <br />
<br />
<blockquote> Catatan: </blockquote><br />
<blockquote>DHCP atau<i>Dynamic Host Configuration Program</i>adalah 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 (<i>Internet Service Provider</i>), di mana setiap user yang tersambung lewat modem, memperoleh alamat IP berubah-ubah pada tiap koneksi. </blockquote></li>
<li>Jika dipilih <i>real network</i>, menu berikutnya adalah memasukkan alamat jaringan : <br />
<ul><li><i>type of network</i>; pilih<tt>eth0</tt>. 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. </li>
<li><i>IP Address of your machine</i>; isikan alamat IP misalnya 192.168.1.100 </li>
<li><i>Netmask</i>; Isikan netmask berdasarkan kelasnya. Misal 255.255.255.0 </li>
<li><i>Gateway</i>; Biarkan kosong. Gambaran tentang gateway dapat Anda baca di Bab III sub bab IP Masquerade. </li>
<li><i>IP Address of PPP Partner</i>; Isikan DNS server dari ISP Anda. Misalnya 202.158.3.7. </li>
</ul></li>
<li>Selanjutnya adalah mengkonfigurasikan sendmail lewat <tt>sendmail.cf</tt>. Menu yang diberikan: <br />
<br />
<ul><li><i>Host with permanent network connection</i>; Jika Anda terhubung dalam jaringan dengan sambungan yang permanen. </li>
<li><i>Single user machine without network connection</i>; Jika komputer tidak terhubung dalam jaringan (standalone) </li>
<li><i>Host with temporarily network connection</i>; Jika dalam waktu-waktu tertentu komputer Anda terhubung dalam jaringan (misalnya Internet). </li>
<li><i>Use UUCP to send mail</i>; Jika mesin Anda terhubung dalam jaringan UNIX, dan mempergunakan protokol UUCP (Unix to Unix Copy Protocol) </li>
<li><i>Do not install /etc/sendmail.cf</i>; Melewati menu ini, dan jika perlu sendmail.cf dapat dikonfigurasikan sendiri nantinya. </li>
</ul></li>
<li>Selesai konfigurasi sementara untuk sendmail, komputer akan direstart. Selanjutnya adalah mengisikan password untuk root. Usahakan untuk mengisi lebih dari 8 huruf. </li>
<li>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. </li>
<li>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. </li>
</ol><dl compact="compact"><dt> </dt>
<dd>Welcome to SuSE 6.2 (i386) - kernel 2.2.10 (tty1)
Spawn login : </dd></dl>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-61472225959504712092011-06-09T22:43:00.000-07:002011-06-09T22:43:15.040-07:00qmailqmail merupakan pengganti yang lebih modern dari sendmail, disusun oleh <tt>Dan Bernstein</tt>. Beberapa situs besar yang menggunakan qmail diantaranya Hotmail (untuk outgoing mail), USA.net (untuk outgoing e-mail), Yahoo! mail, Network Solutions, <tt>listserv.acsu.buffalo.ed</tt>u (menggunakan qmail sejak 1996), <tt>XOOM.com, onelist.com</tt> (yang tellah merger dengan E-group, perusahaan besar penyedia mailing list gratis), Red Hat's mailing lists, Hypermart.net, dan FSmail.net.<br />
<h2><a href="" name="SECTION02721000000000000000"> Instalasi qmail</a> </h2>Pertama, download terlebih dahulu program qmail dalam bentuk kode sumber <i>(source code)</i>. Daftar server yang menyediakan qmail dapat Anda lihat di <tt>http://www.qmail.org</tt> dan dapat Anda pilih mirror yang terdekat. Saat ini mirror di Indonesia yang masih aktif adalah <tt>http://qmail.indosite.co.id</tt>. <br />
<br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Binary qmail dalam format RPM <i>(Redhat Package Manager)</i> dapat diperoleh di <br />
<tt>ftp://moni.msci.memphis.edu/pub/qmail</tt>. Yang akan Anda bahas di sini adalah instalasi program yang mempunyai format kode sumber <i>(source code)</i> </blockquote>Setelah download programnya secara lengkap, Anda mulai dengan mengekstrak dari bentuk zip dan tar ball. Dianjurkan untuk melakukan proses instalasi sebagai root. <tt># gunzip qmail-1.0.03.tar.gz | tar xvf-</tt> <br />
<br />
Kemudian sebelum instalasi, tentukan terlebih dahulu direktori utama yang menyimpan program qmail. Secara <i>default</i> adalah <tt>/var/qmail</tt>. 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. <br />
Setelah itu, buat direktori tempat di mana qmail disimpan. <br />
<tt># mkdir /var/qmail</tt> <br />
<br />
Langkah selanjutnya, buat qmail user dan grup sebelum instalasi dimulai. <br />
<tt># groupadd nofiles</tt> <br />
<br />
<tt># useradd -g nofiles -d /var/qmail/alias alias</tt> <br />
<br />
<tt># useradd -g nofiles -d /var/qmail qmaild</tt> <br />
<br />
<tt># useradd -g nofiles -d /var/qmail qmaill</tt> <br />
<br />
<tt># useradd -g nofiles -d /var/qmail qmailp</tt> <br />
<br />
<tt># groupadd qmail</tt> <br />
<br />
<tt># useradd -g qmail -d /var/qmail qmailq</tt> <br />
<br />
<tt># useradd -g qmail -d /var/qmail qmailr</tt> <br />
<br />
<tt># useradd -g qmail -d /var/qmail qmails</tt> <br />
<br />
Setelah itu kompilasi dapat dijalankan. <br />
<tt>qmail-1.0.03#./make setup check</tt> <br />
<br />
<tt>qmail-1.0.03#./config</tt> <br />
<br />
Selain perintah config, untuk mengkonfigurasikan qmail dalam mesin Anda, Anda dapat menjalankan perintah config-fast nama.domain.Anda sebagai alternatif instalasi lebih singkat. <br />
<tt>qmail-1.0.03#./config-fast nama.domain.anda</tt> <br />
<br />
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 <tt>nama.domain.anda</tt> ke dalam file <tt>control/me, control/local</tt> dan <tt>control/rcpthosts</tt> 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 <i>(Fully Qualified Domain Name)</i>. Konsultasikan dengan ISP atau penyedia jasa hosting untuk bisa memperoleh nama domain resmi. <br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>Untuk lebih mengenal direktori direktori yang dibuat oleh qmail, Anda dapat membaca FAQ yang terletak di <tt>/var/qmail/doc</tt> setelah instalasi selesai. </blockquote>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 <tt>/etc/alias</tt>. Jika Anda ingin menggunakan file tersebut, maka perlu ditambahkan aplikasi pendukung bernama <i>fast forward</i>. Aplikasi ini bersama aplikasi pendukung lainnya dapat Anda peroleh di homepage qmail. Untuk mengaktifkan alias, jalankan perintah berikut : <br />
<tt>#touch alias/qmail-postmaster</tt> <br />
<br />
<tt>#chmod 644 alias/qmail-postmaster</tt> <br />
<br />
<tt>#touch alias/qmail-mailer-daemon</tt> <br />
<br />
<tt>#chmod 644 alias/qmail-mailer-daemon</tt> <br />
<br />
<tt>#touch alias/qmail-root</tt> <br />
<br />
<tt>#chmod 644 alias/qmail-root</tt> <br />
<br />
Alias postmaster akan menangani e-mail yang ditujukan kepada postmaster. Alias mailer daemon akan menangani setiap e-mail yang <i>bounce</i> (tidak bisa diteruskan). Sedangkan alias root dipergunakan untuk menangani e-mail yang ditujukan kepada root. Anda dapat menambahkan alias lainnya, seperti <tt>qmail-default</tt> yang akan menerima setiap e-mail dengan username yang tidak dikenal. <br />
Langkah berikutnya adalah seting Mailbox. Pada umumnya, <i>Mail Transfer Agent</i> menggunakan dua format dalam menangani e-mail. <br />
<br />
<ol><li><b>Format mbox</b> E-mail disimpan dalam sebuah file. Setiap kali ada surat masuk atau keluar, ditambahkan <i>(embed)</i> secara otomatis kedalam file yang bersangkutan. Dengan demikian ukuran file mbox ini bertambah setiap kali ada penambahan e-mail. <br />
Kelemahan dari format ini, jika di tengah-tengah download e-mail ada gangguan, maka pada sesi berikutnya <i>Mail User Agent</i> (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. <br />
</li>
<li><b>Format Maildir</b> Maildir merupakan format yang <i>anti crash</i>, dan lebih reliabel dibandingkan format mbox. Namun belum banyak MUA (Mail User Agent - klien e-mail) yang mendukung format maildir ini. <br />
</li>
</ol>qmail mendukung kedua format tersebut. Anda diberi kebebasan untuk memilihnya, namun dianjurkan untuk menggunakan format maildir.<br />
<h2><a href="" name="SECTION02722000000000000000"> Seting mbox</a> </h2>Sendmail dalam mendistribusikan e-mail secara lokal menggunakan binmail. Secara default, <tt>binmail</tt> akan mengirimkan mail ke dalam folder<tt>/var/spool/mail/nama_user</tt>. qmail menggunakan qmail-local untuk distribusi lokal, dan langsung menyimpannya ke<tt>nama_user/Mailbox</tt>. Prosedur untuk menggantikan dari <br />
<tt>/var/spool/mail/nama_user</tt> adalah : <br />
<br />
<blockquote> </blockquote><ol><li>Pindahkan semua <tt>/var/spool/mail/nama_user</tt> ke dalam <tt>nama_user/Mailbox</tt>. Demi keamanan, jalankan dalam proses <i>single mode</i>. Jika server masih dalam keadaan berjalan, berikan pesan <i>broadcast</i> kepada semua user untuk keluar dari jaringan. <tt># init 1 (menuju modus singel user)</tt> <br />
<br />
<tt># cd /var/spool/mail</tt> <br />
<br />
<tt># cp nama_user /home/nama_user/Mailbox</tt> <br />
<br />
<tt># rm nama_user</tt> <br />
<br />
</li>
<li>Kemudian sebagai root buat link simbolik dari nama_user/Mailbox ke dalam <tt>/var/spool/mail/nama_user</tt>. Lakukan ini untuk semua user. Berikan mode 1777 untuk folder <tt>/var/spool/mail</tt> untuk menghindarkan penghapusan link secara tidak sengaja. <tt># cd /home/nama_user</tt> <br />
<br />
<tt># ln Mailbox /var/spool/mail/nama_user</tt> <br />
<br />
Lakukan ini untuk semua user. Seting pada klien Windows 9x atau Windows NT akan dibahas dalam bagian lain. <br />
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 <tt>src/authenticate.c</tt>. <br />
Untuk mengoptimalkan kemampuan klien e-mail membaca e-mail dalam jumlah banyak (yang kadang-kadang menjadi lebih lambat karena membaca link simbolik dari Mailbox), Anda dapat tujukan langsung klien e-mailnya untuk membaca <tt>nama_user/Mailbox</tt>. <br />
</li>
<li>Sebagian besar klien e-mail, masukkan "<tt>setenv MAIL $HOME/Mailbox</tt>" jika menggunakan shell csh ke dalam .cshrc dan "<tt>MAIL=$HOME/Mailbox; export MAIL</tt>" jika menggunakan shell bash ke dalam <tt>.profile</tt> secara umum. </li>
<li>elm: ganti "<tt>mailbox</tt>" ke "<tt>Mailbox</tt>" pada baris 388 dari file <tt>newmbox.c</tt> 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. </li>
<li>pine: Masukkan "<tt>inbox-path=Mailbox</tt>" dalam file pine.conf. Atau jika masing-masing user mempunyai konfigurasi sendiri, minta kepada user untuk mengganti konfigurasi <tt>inbox-path-</tt>nya. <br />
<h2><a href="" name="SECTION02723000000000000000"> Seting Maildir</a> </h2>Untuk menggunakan format Maildir dalam menangani setiap mail yang masuk ke alamat Anda, jalankan perintah : <br />
<tt>$ maildirmake $HOME/Maildir</tt> <br />
<br />
<tt>$ echo ./Maildir/ > /.qmail</tt> <br />
<br />
Jangan lupa setelah Maildir tambahkan slash sebagaimana dituliskan di atas. Jalankan proses tersebut terhadap setiap user. Untuk MUA <i>(mail client)</i> yang hanya mendukung format mbox, qmail menyertakan program <tt>maildir2mbox</tt> yang dijalankan bersama wrapper elq dan pineq. Dengan demikian, setiap kali Anda menjalankan pine atau elm, wrapper tersebut akan memanggil program <tt>maildir2mbox</tt>, sehingga MUA favorit Anda tidak akan bermasalah menggunakan format maildir. <br />
<br />
<blockquote> Catatan: </blockquote><br />
<blockquote>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 <i>remote</i> dan lokal. Untuk user yang mengambil e-mail secara <i>remote</i>, diterapkan format maildir, dan yang lokal diterapkan format mbox. </blockquote>Langkah selanjutnya adalah mengkopi file-file yang berada dalam <tt>/var/qmail/boot/home</tt> ke dalam <tt>/var/qmail/rc</tt>. <tt># cd /var/qmail/boot/home</tt> <br />
<br />
<tt># cp * /var/qmail/rc.</tt> <br />
</li>
</ol><br />
<h2><a href="" name="SECTION02724000000000000000"> Test mengirim e-mail</a> </h2>Selesai mengkopi, Anda persiapkan untuk test kirim e-mail antar user. Langkah pertama adalah menjalankan program qmail. <br />
<tt>#csh -cf '/var/qmail/rc &'</tt> <br />
<br />
Jika qmail sudah berjalan, maka dalam gile log Anda (biasanya <tt>/var/log/messages</tt>) akan memberikan pesan : <br />
<tt>qmail: status: local 0/10 remote 0/20</tt> <br />
<br />
Jalankan perintah <tt>ps</tt> untuk mengetahui program-rogram qmail yang sedang berjalan. Suite qmail yang siap melayani pengiriman mail Anda adalah : <br />
<tt>qmail-send, dijalankan oleh qmails;</tt> <br />
<br />
<tt>qmail-lspawn, dijalankan oleh root;</tt> <br />
<br />
<tt>qmail-rspawn, dijalankan oleh qmailr;</tt> <br />
<br />
<tt>and qmail-clean, dijalankan oleh qmailq;</tt> <br />
<br />
<tt>splogger, dijalankan oleh qmaill, untuk mencatat aktivitas qmail ke file log.</tt> <br />
<br />
<tt>$ ps ax | more</tt> <br />
<br />
<tt>(grep hasil ps ax)</tt> <br />
<br />
Jika semua program qmail sudah berjalan dengan baik, coba kirim e-mail secara lokal. Gantikan aku berikut kepada salah satu <i>username</i> yang terdaftar di mesin Anda (atau <i>username</i> Anda). <br />
<tt>$ echo to: aku | /var/qmail/bin/qmail-inject</tt> <br />
<br />
Segera setelah Anda jalankan perintah di atas, file log Anda akan mencatat kurang lebih sebagai berikut : <br />
<tt>qmail: new msg 53</tt> <br />
<br />
<tt>qmail: info msg 53: bytes 246 from <aku@domain.com> qp 20345 uid 666</tt> <br />
<br />
<tt>qmail: starting delivery 1: msg 53 to local aku@domain.com</tt> <br />
<br />
<tt>qmail: status: local 1/10 remote 0/20</tt> <br />
<br />
<tt>qmail: delivery 1: success: did_1+0+0/</tt> <br />
<br />
<tt>qmail: status: local 0/10 remote 0/20</tt> <br />
<br />
<tt>qmail: end msg 53</tt> <br />
<br />
<br />
<blockquote> Catatan : </blockquote><br />
<blockquote>53 adalah nomor <i>inode</i> dan 20345 adalah nomor proses. Di komputer Anda mungkin akan tampak lain. Sedangkan <tt>domain.com</tt> adalah domain yang Anda konfigurasikan pada saat instalasi. </blockquote>Test berikutnya adalah mengirim e-mail kepada user sembarang (tidak terdaftar sebagai user). <tt>$ echo to: sembarangan | /var/qmail/bin/qmail-inject</tt> <br />
Pada file log Anda akan tampak sebagai berikut : <br />
<tt>qmail: new msg 53</tt> <br />
<br />
<tt>qmail: info msg 53: bytes 246 from <aku@domain.com> qp 20351 uid 666</tt> <br />
<br />
<tt>qmail: starting delivery 2: msg 53 to local sembarangan@domain.com</tt> <br />
<br />
<tt>qmail: status: local 1/10 remote 0/20</tt> <br />
<br />
<tt>qmail: delivery 2: failure: No_such_address.__#5.1.1_/</tt> <br />
<br />
<tt>qmail: status: local 0/10 remote 0/20</tt> <br />
<br />
<tt>qmail: bounce msg 53 qp 20357</tt> <br />
<br />
<tt>qmail: end msg 53</tt> <br />
<br />
<tt>qmail: new msg 54</tt> <br />
<br />
<tt>qmail: info msg 54: bytes 743 from <> qp 20357 uid 666</tt> <br />
<br />
<tt>qmail: starting delivery 3: msg 54 to local aku@domain.com</tt> <br />
<br />
<tt>qmail: status: local 1/10 remote 0/20</tt> <br />
<br />
<tt>qmail: delivery 3: success: did_1+0+0/</tt> <br />
<br />
<tt>qmail: status: local 0/10 remote 0/20</tt> <br />
<br />
<tt>qmail: end msg 54</tt> <br />
<br />
Segera setelah itu, buka mailbox Anda, maka akan terlihat di situ e-mail yang <i>bounce</i> (balik lagi). <br />
Jika mesin Linux Anda mempunyai nomor IP resmi dan terdaftar dalam salah satu name server, maka Anda dapat melakukan seting <i>MX Record</i>. Namun jika server Linux Anda mengunakan dial-up untuk koneksi ke internet, maka solusinya adalah menggunakan program tambahan (add on) untuk qmail yang bernama <tt>serialmail</tt> dan <tt>tcp-ucspi</tt>. Silakan lihat di bagian program tambahan qmail. <br />
Selain menjalankan test lewat qmail-inject, Anda dapat mengirim e-mail langsung lewat smtp qmail. <br />
<tt>% telnet 127.0.0.1 25</tt> <br />
<br />
<tt>Trying 127.0.0.1...</tt> <br />
<br />
<tt>Connected to 127.0.0.1.</tt> <br />
<br />
<tt>Escape character is ']'.</tt> <br />
<br />
<tt>220 domain ESMTP</tt> <br />
<br />
<tt>helo katro</tt> <br />
<br />
<tt>250 nama.domain.Anda</tt> <br />
<br />
<tt>mail <aku@nama.domain.Anda></tt> <br />
<br />
<tt>250 ok</tt> <br />
<br />
<tt>rcpt <aku@nama.domain.Anda></tt> <br />
<br />
<tt>250 ok</tt> <br />
<br />
<tt>data</tt> <br />
<br />
<tt>354 go ahead</tt> <br />
<br />
<tt>Subject: testing</tt> <br />
<br />
<tt>Ngetes doang nehhh.</tt> <br />
<br />
<tt>.</tt> <br />
<br />
<tt>250 ok 812345679 qp 12345</tt> <br />
<br />
<tt>quit</tt> <br />
<br />
<tt>221 nama.domain.Anda</tt> <br />
<br />
<tt>Connection closed by foreign host.</tt> <br />
<br />
<tt>$</tt> <br />
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.<br />
<h2><a href="" name="SECTION02725000000000000000"> Seting Klien Windows 9x atau Windows NT</a> </h2>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 <i>MX record</i> jika server Anda menjalankan name server) ke dalam konfigurasi smtp dan pop3 server. <br />
Pada klien Outlook Express, buka <tt>tools-account-mail</tt>. Buat account baru, dengan aturan : <br />
<br />
<ul><li>Username : isi dengan username yang dipakai untuk login ke mesin linux </li>
<li>Alamat e-mail : <tt>namauser@nama.domain</tt>. Anda (ingat saat instalasi qmail <br />
<tt>./config-fast nama.domain.Anda</tt>) </li>
<li>Smtp server, isi dengan nomor IP mesin linux Anda </li>
<li>Pop3 server, sama dengan di atas, isi dengan nomor IP mesin linux. </li>
</ul>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.<br />
<h2><a href="" name="SECTION02726000000000000000"> Program Tambahan qmail (Add on)</a> </h2><br />
<ol><li><tt>serialmail</tt> Program yang mengirimkan E-mail dari Maildir ke SMTP luar. Program ini cocok jika anda menggunakan koneksi dial up ke Internet. <br />
</li>
<li><tt>ucspi-tcp</tt> Program tcpserver yang dipergunakan untuk menjalankan qmail (selain lewat inetd). <br />
</li>
<li><tt>daemontools</tt> Program yang mengadministrasi qmail sebagai daemon. Misalnya menghentikan dan memulai kembali daemon qmail, penambahan fasilitas logging yang lebih komprehensif. <br />
</li>
<li><tt>qmailanalog</tt> 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. <br />
</li>
<li><tt>dot-forward</tt> Program yang membaca file .forward yang ada di Sendmail di bawah qmail. <br />
</li>
<li><tt>fastforward</tt> Program yang menangani forwarding di qmail dengan menggunakan database cdb. <br />
</li>
<li><tt>checkpassword</tt> Program yang memberikan metode pengecekan password sederhana terhadap semua aplikasi yang dijalankan di bawah root. <br />
</li>
</ol>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.KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-1868904122234281002011-06-09T22:37:00.001-07:002011-06-09T22:40:33.236-07:00Sendmail.cfSeperti telah disebutkan sebelumnya bahwa semua konfigurasi sendmail ini terdapat file <tt>/etc/sendmail.cf</tt> yang berisi bermacam-macam konfigurasi yang secara umum dibagi 3 fungsi utama yaitu : <br />
<br />
<ul><li>Mendefinisikan lingkungan sendmail <i>( sendmail environment )</i> </li>
<li>Menuliskan kembali alamat-alamat pada sintak yang benar (tepat) untuk mail penerima. </li>
<li>Memetakan alamat-alamat kepada intruksi yang dibutuhkan untuk mengirimkan e-mail. </li>
</ul>Didalam <tt>sendmail.cf</tt> ini juga dapat dibentuk beberapa <i>macro, rule</i> untuk mendefiniskan lingkungan yang akan digunakan sendmail.<br />
<h3><a href="" name="SECTION02714100000000000000"> Bagaimana membuat konfigurasi sendmail (<tt>sendmail.cf</tt>)?</a> </h3>Untuk memudahkan dalam memanfaatkan semua fasilitas dan kelebihan sendmail sebaiknya kode sumber <i>(source code)</i> dari sendmail disertakan pada linux yang diinstall, atau untuk mendapatkan versi terbaru sendmail dapat diambil di situs : <tt>http://www.sendmail.org</tt> . <br />
Gunakan m4 script untuk memudahkan feature yang ada, contoh file m4 dengan nama file <tt>locallinux.mc</tt> : <br />
<tt># File Name : locallinux.mc</tt> <br />
<br />
<tt>divert(0)dnl</tt> <br />
<br />
<tt>VERSIONID(`@(#)sendmail.mc 8.9.1 ')</tt> <br />
<br />
<tt>OSTYPE(linux)dnl</tt> <br />
<br />
<tt>DOMAIN(generic)dnl</tt> <br />
<br />
<tt>FEATURE(always_add_domain)dnl</tt> <br />
<br />
<tt>FEATURE(access_db, dbm -o /var/adm/sendmail/accessdb)dnl</tt> <br />
<br />
<tt>FEATURE(blacklist_recipients)dnl</tt> <br />
<br />
<tt>FEATURE(genericstable, hash -o /var/adm/sendmail/genericstable)dnl</tt> <br />
<br />
<tt>FEATURE(virtusertable, hash -o /var/adm/sendmail/virtusertable)dnl</tt> <br />
<br />
<tt>MAILER(local)dnl</tt> <br />
<br />
<tt>MAILER(smtp)dnl</tt> <br />
<br />
Setelah itu jalankan program m4 yang biasanya terletak pada direktori /usr/sbin <br />
<tt># m4 ../m4/cf.m4 locallinux.mc > sendmail.cf</tt> <br />
<br />
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. <br />
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. <br />
<tt># ####################################################################</tt> <br />
<br />
<tt># Copyright (c) 1998 Sendmail, Inc. All rights reserved.</tt> <br />
<br />
<tt># Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.</tt> <br />
<br />
<tt># Copyright (c) 1988, 1993</tt> <br />
<br />
<tt># The Regents of the University of California. All rights reserved.</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># By using this file, you agree to the terms and conditions set</tt> <br />
<br />
<tt># forth in the LICENSE file which can be found at the top level of</tt> <br />
<br />
<tt># the sendmail distribution</tt>. <br />
<br />
<tt>#</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>#####</tt> <br />
<br />
<tt>##### SENDMAIL CONFIGURATION FILE</tt> <br />
<br />
<tt>#####</tt> <br />
<br />
<tt>##### built by root@ns1.ut.astra.co.id on Wed Feb 23 11:41:37 GMT+0700 2000</tt> <br />
<br />
<tt>##### in /data/source/sendmail-8.9.1/cf/cf</tt> <br />
<br />
<tt>##### using ../ as configuration include directory</tt> <br />
<br />
<tt>#####</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)cfhead.m4 8.22 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt>##### @(#)cf.m4 8.29 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt>##### @(#)sendmail.mc 8.9.1 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)linux.m4 8.10 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)generic.m4 8.9 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)redirect.m4 8.10 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)use_cw_file.m4 8.6 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)always_add_domain.m4 8.6 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)access_db.m4 8.8 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)blacklist_recipients.m4 8.9 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)genericstable.m4 8.7 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)virtusertable.m4 8.7 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)proto.m4 8.223 (Berkeley) 6/30/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># level 8 config file forma</tt>t <br />
<br />
<tt>V8/Berkeley</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># override file safeties - setting this option compromises system security</tt> <br />
<br />
<tt># need to set this now for the sake of class files</tt> <br />
<br />
<tt>#O DontBlameSendmail=safe</tt> <br />
<br />
<tt>O DontBlameSendmail=GroupWritableDirPathSafe, forwardfileinunsafedirpath, </tt> <br />
<tt>GroupWritableAliasFile</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##################</tt> <br />
<br />
<tt># local info #</tt> <br />
<br />
<tt>##################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>Cwlocalhost</tt> <br />
<br />
<tt># file containing names of hosts for which we receive e-mail</tt> <br />
<br />
<tt>Fw/etc/sendmail.cw</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>CGut.astra.co.id</tt> <br />
<br />
<tt>C{DomainMilisBlocking} onelist.com</tt> <br />
<br />
<tt># my official domain name</tt> <br />
<br />
<tt># ... define this only if sendmail cannot automatically determine your domain</tt> <br />
<br />
<tt>#Dj$w.Foo.COM</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>CP.</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># "Smart" relay host (may be null)</tt> <br />
<br />
<tt>DS</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># operators that cannot be in local usernames (i.e., network indicators)</tt> <br />
<br />
<tt>CO @ % !</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># a class with just dot (for identifying canonical names)</tt> <br />
<br />
<tt>C..</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># a class with just a left bracket (for identifying domain literals)</tt> <br />
<br />
<tt>C[[</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Generics table (mapping outgoing addresses)</tt> <br />
<br />
<tt>Kgenerics hash -o /etc/mail/genericstable</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Virtual user table (maps incoming users)</tt> <br />
<br />
<tt>Kvirtuser hash -o /etc/mail/virtusertable</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Access list database (for spam stomping)</tt> <br />
<br />
<tt>Kaccess dbm -o /etc/mail/accessdb</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Blocking Mailing List Database</tt> <br />
<br />
<tt>Kmilis hash -o /etc/mail/milis</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># User list Database</tt> <br />
<br />
<tt>Kuserut hash -o /etc/mail/userut</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Resolve map (to check if a host exists in check_mail)</tt> <br />
<br />
<tt>Kresolve host -a<OK> -T<TEMP></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Hosts that will permit relaying ($=R)</tt> <br />
<br />
<tt>FR-o /etc/mail/relay-domains</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># who I send unqualified names to (null means deliver locally)</tt> <br />
<br />
<tt>DR</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># who gets all local e-mail traffic ($R has precedence for unqualified names)</tt> <br />
<br />
<tt>DH</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># dequoting map</tt> <br />
<br />
<tt>Kdequote dequote</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># class E: names that should be exposed as from this host, even if we masquerade</tt> <br />
<br />
<tt># class L: names that should be delivered locally, even if we have a relay</tt> <br />
<br />
<tt># class M: domains that should be converted to $M</tt> <br />
<br />
<tt>#CL root</tt> <br />
<br />
<tt>#CE root</tt> <br />
<br />
<tt>CEroot postmaster news uucp mailer-daemon rdist nobody daemon pop imap</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># who I masquerade as (null for no masquerading) (see also $=M)</tt> <br />
<br />
<tt>DM</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># my name for error messages</tt> <br />
<br />
<tt>DnMAILER-DAEMON</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>CPREDIRECT</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Configuration version number</tt> <br />
<br />
<tt>DZ8.9.1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>###############</tt> <br />
<br />
<tt># Options #</tt> <br />
<br />
<tt>###############</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># strip message body to 7 bits on input?</tt> <br />
<br />
<tt>O SevenBitInput=False</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># 8-bit data handling</tt> <br />
<br />
<tt>O EightBitMode=pass8</tt> <br />
<br />
<br />
<blockquote> </blockquote><br />
<blockquote> </blockquote><tt> </tt> <br />
<tt># wait for alias file rebuild (default units: minutes)</tt> <br />
<br />
<tt>#O AliasWait=5m</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># location of alias file</tt> <br />
<br />
<tt>O AliasFile=/etc/aliases</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># minimum number of free blocks on filesystem</tt> <br />
<br />
<tt>#O MinFreeBlocks=100</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># maximum message size</tt> <br />
<br />
<tt>O MaxMessageSize=2097152</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># substitution for space (blank) characters</tt> <br />
<br />
<tt>O BlankSub=.</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># avoid connecting to "expensive" mailers on initial submission?</tt> <br />
<br />
<tt>O HoldExpensive=False</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># checkpoint queue runs after every N successful deliveries</tt> <br />
<br />
<tt>#O CheckpointInterval=10</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># default delivery mode</tt> <br />
<br />
<tt>O DeliveryMode=background</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># automatically rebuild the alias database?</tt> <br />
<br />
<tt>#O AutoRebuildAliases</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># error message header/file</tt> <br />
<br />
<tt>#O ErrorHeader=/etc/sendmail.oE</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># error mode</tt> <br />
<br />
<tt>#O ErrorMode=print</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># save Unix-style "From_" lines at top of header?</tt> <br />
<br />
<tt>#O SaveFromLine</tt> <br />
<br />
<br />
<blockquote> </blockquote><br />
<blockquote> </blockquote><tt># temporary file mode</tt> <br />
<tt>#O TempFileMode=0600</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># match recipients against GECOS field?</tt> <br />
<br />
<tt>#O MatchGECOS</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># maximum hop count</tt> <br />
<br />
<tt>#O MaxHopCount=17</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># location of help file</tt> <br />
<br />
<tt>O HelpFile=/usr/local/lib/sendmail.hf</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># ignore dots as terminators in incoming messages?</tt> <br />
<br />
<tt>#O IgnoreDots</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># name resolver options</tt> <br />
<br />
<tt>#O ResolverOptions=+AAONLY</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># deliver MIME-encapsulated error messages?</tt> <br />
<br />
<tt>O SendMimeErrors=True</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Forward file search path</tt> <br />
<br />
<tt>O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># open connection cache size</tt> <br />
<br />
<tt>O ConnectionCacheSize=2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># open connection cache timeout</tt> <br />
<br />
<tt>O ConnectionCacheTimeout=5m</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># persistent host status directory</tt> <br />
<br />
<tt>#O HostStatusDirectory=.hoststat</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># single thread deliveries (requires HostStatusDirectory)?</tt> <br />
<br />
<tt>#O SingleThreadDelivery</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># use Errors-To: header?</tt> <br />
<br />
<tt>O UseErrorsTo=False</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># log level</tt> <br />
<br />
<tt>O LogLevel=9</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># send to me too, even in an alias expansion?</tt> <br />
<br />
<tt>#O MeToo</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># verify RHS in newaliases?</tt> <br />
<br />
<tt>O CheckAliases=False</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># default messages to old style headers if no special punctuation?</tt> <br />
<br />
<tt>O OldStyleHeaders=True</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># SMTP daemon options</tt> <br />
<br />
<tt>#O DaemonPortOptions=Port=esmtp</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># privacy flags</tt> <br />
<br />
<tt>O PrivacyOptions=authwarnings</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># who (if anyone) should get extra copies of error messages</tt> <br />
<br />
<tt>#O PostMasterCopy=Postmaster</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># slope of queue-only function</tt> <br />
<br />
<tt>#O QueueFactor=600000</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># queue directory</tt> <br />
<br />
<tt>O QueueDirectory=/var/spool/mqueue</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># timeouts (many of these)</tt> <br />
<br />
<tt>#O Timeout.initial=5m</tt> <br />
<br />
<tt>#O Timeout.connect=5m</tt> <br />
<br />
<tt>#O Timeout.iconnect=5m</tt> <br />
<br />
<tt>#O Timeout.helo=5m</tt> <br />
<br />
<tt>#O Timeout.mail=10m</tt> <br />
<br />
<tt>#O Timeout.rcpt=1h</tt> <br />
<br />
<tt>#O Timeout.datainit=5m</tt> <br />
<br />
<tt>#O Timeout.datablock=1h</tt> <br />
<br />
<tt>#O Timeout.datafinal=1h</tt> <br />
<br />
<tt>#O Timeout.rset=5m</tt> <br />
<br />
<tt>#O Timeout.quit=2m</tt> <br />
<br />
<tt>#O Timeout.misc=2m</tt> <br />
<br />
<tt>#O Timeout.command=1h</tt> <br />
<br />
<tt>#O Timeout.ident=30s</tt> <br />
<br />
<tt>#O Timeout.fileopen=60s</tt> <br />
<br />
<tt>O Timeout.queuereturn=5d</tt> <br />
<br />
<tt>#O Timeout.queuereturn.normal=5d</tt> <br />
<br />
<tt>#O Timeout.queuereturn.urgent=2d</tt> <br />
<br />
<tt>#O Timeout.queuereturn.non-urgent=7d</tt> <br />
<br />
<tt>O Timeout.queuewarn=4h</tt> <br />
<br />
<tt>#O Timeout.queuewarn.normal=4h</tt> <br />
<br />
<tt>#O Timeout.queuewarn.urgent=1h</tt> <br />
<br />
<tt>#O Timeout.queuewarn.non-urgent=12h</tt> <br />
<br />
<tt>#O Timeout.hoststatus=30m</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># should we not prune routes in route-addr syntax addresses?</tt> <br />
<br />
<tt>#O DontPruneRoutes</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># queue up everything before forking?</tt> <br />
<br />
<tt>O SuperSafe=True</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># status file</tt> <br />
<br />
<tt>O StatusFile=/etc/mail/sendmail.st</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># time zone handling:</tt> <br />
<br />
<tt># if undefined, use system default</tt> <br />
<br />
<tt># if defined but null, use TZ envariable passed in</tt> <br />
<br />
<tt># if defined and non-null, use that info</tt> <br />
<br />
<tt>#O TimeZoneSpec=</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># default UID (can be username or userid:groupid)</tt> <br />
<br />
<tt>O DefaultUser=daemon</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># list of locations of user database file (null means no lookup)</tt> <br />
<br />
<tt>#O UserDatabaseSpec=/etc/userdb</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># fallback MX host</tt> <br />
<br />
<tt>#O FallbackMXhost=fall.back.host.net</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># if we are the best MX host for a site, try it directly instead of config err</tt> <br />
<br />
<tt>#O TryNullMXList</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># load average at which we just queue messages</tt> <br />
<br />
<tt>#O QueueLA=8</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># load average at which we refuse connections</tt> <br />
<br />
<tt>#O RefuseLA=12</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># maximum number of children we allow at one time</tt> <br />
<br />
<tt>#O MaxDaemonChildren=12</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># maximum number of new connections per second</tt> <br />
<br />
<tt>#O ConnectionRateThrottle=3</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># work recipient factor</tt> <br />
<br />
<tt>#O RecipientFactor=30000</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># deliver each queued job in a separate process?</tt> <br />
<br />
<tt>#O ForkEachJob</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># work class factor</tt> <br />
<br />
<tt>#O ClassFactor=1800</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># work time factor</tt> <br />
<br />
<tt>#O RetryFactor=90000</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># shall we sort the queue by hostname first?</tt> <br />
<br />
<tt>#O QueueSortOrder=priority</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># minimum time in queue before retry</tt> <br />
<br />
<tt>#O MinQueueAge=30m</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># default character set</tt> <br />
<br />
<tt>#O DefaultCharSet=iso-8859-1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># service switch file (ignored on Solaris, Ultrix, OSF/1, others)</tt> <br />
<br />
<tt>#O ServiceSwitchFile=/etc/service.switch</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># hosts file (normally /etc/hosts)</tt> <br />
<br />
<tt>#O HostsFile=/etc/hosts</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># dialup line delay on connection failure</tt> <br />
<br />
<tt>#O DialDelay=10s</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># action to take if there are no recipients in the message</tt> <br />
<br />
<tt>#O NoRecipientAction=add-to-undisclosed</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># chrooted environment for writing to files</tt> <br />
<br />
<tt>#O SafeFileEnvironment=/arch</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># are colons OK in addresses?</tt> <br />
<br />
<tt>#O ColonOkInAddr</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># how many jobs can you process in the queue?</tt> <br />
<br />
<tt>#O MaxQueueRunSize=10000</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># shall I avoid expanding CNAMEs (violates protocols)?</tt> <br />
<br />
<tt>#O DontExpandCnames</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># SMTP initial login message (old $e macro)</tt> <br />
<br />
<tt>O SmtpGreetingMessage=$j Sendmail $v/$Z; $b</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># UNIX initial From header format (old $l macro)</tt> <br />
<br />
<tt>O UnixFromLine=From $g $d</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># From: lines that have embedded newlines are unwrapped onto one line</tt> <br />
<br />
<tt>#O SingleLineFromHeader=False</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Allow HELO SMTP command that does not include a host name</tt> <br />
<br />
<tt>#O AllowBogusHELO=False</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Characters to be quoted in a full name phrase (@,;:\()[] are automatic)</tt> <br />
<br />
<tt>#O MustQuoteChars=.</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># delimiter (operator) characters (old $o macro)</tt> <br />
<br />
<tt>O OperatorChars=.:%@!/[]+</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># shall I avoid calling initgroups(3) because of high NIS costs?</tt> <br />
<br />
<tt>#O DontInitGroups</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># are group-writable :include: and .forward files (un)trustworthy?</tt> <br />
<br />
<tt>#O UnsafeGroupWrites</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># where do errors that occur when sending errors get sent?</tt> <br />
<br />
<tt>#O DoubleBounceAddress=postmaster</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># what user id do we assume for the majority of the processing?</tt> <br />
<br />
<tt>#O RunAsUser=sendmail</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># maximum number of recipients per SMTP envelope</tt> <br />
<br />
<tt>#O MaxRecipientsPerMessage=100</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># shall we get local names from our installed interfaces?</tt> <br />
<br />
<tt>#O DontProbeInterfaces</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># No Vrfy and expn</tt> <br />
<br />
<tt>Opnovrfy</tt> <br />
<br />
<tt>Opnoexpn</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>###########################</tt> <br />
<br />
<tt># Message precedences #</tt> <br />
<br />
<tt>###########################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>Pfirst-class=0</tt> <br />
<br />
<tt>Pspecial-delivery=100</tt> <br />
<br />
<tt>Plist=-30</tt> <br />
<br />
<tt>Pbulk=-60</tt> <br />
<br />
<tt>Pjunk=-100</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#####################</tt> <br />
<br />
<tt># Trusted users #</tt> <br />
<br />
<tt>#####################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># this is equivalent to setting class "t"</tt> <br />
<br />
<tt>#Ft/etc/sendmail.ct</tt> <br />
<br />
<tt>Troot</tt> <br />
<br />
<tt>Tdaemon</tt> <br />
<br />
<tt>Tuucp</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#########################</tt> <br />
<br />
<tt># Format of headers #</tt> <br />
<br />
<tt>#########################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>H?P?Return-Path: <$g></tt> <br />
<br />
<tt>HReceived: $?sfrom $s $.$?_($?s$|from $.$_)</tt> <br />
<br />
<tt> $.by $j ($v/$Z)$?r with $r$. id $i$?u</tt> <br />
<br />
<tt> for $u; $|;</tt> <br />
<br />
<tt> $.$b</tt> <br />
<br />
<tt>H?D?Resent-Date: $a</tt> <br />
<br />
<tt>H?D?Date: $a</tt> <br />
<br />
<tt>H?F?Resent-From: $?x$x <$g>$|$g$.</tt> <br />
<br />
<tt>H?F?From: $?x$x <$g>$|$g$.</tt> <br />
<br />
<tt>H?x?Full-Name: $x</tt> <br />
<br />
<tt># HPosted-Date: $a</tt> <br />
<br />
<tt># H?l?Received-Date: $b</tt> <br />
<br />
<tt>H?M?Resent-Message-Id: <$t.$i@$j></tt> <br />
<br />
<tt>H?M?Message-Id: <$t.$i@$j></tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>################################################################</tt> <br />
<br />
<tt># Mailing List Rules ( Base on Reply-To Header ) #</tt> <br />
<br />
<tt># Contoh Rule untuk memblock mailing list dengan #</tt> <br />
<br />
<tt># berdasarkan Header Reply-To dan disimpan di file milis #</tt> <br />
<br />
<tt>################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>HReply-To: $>Check_RplyTo</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>D{MPat}REJECT</tt> <br />
<br />
<tt>D{MMsg}User unknown</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SCheck_RplyTo</tt> <br />
<br />
<tt>R$* $: < $1 ></tt> <br />
<br />
<tt>R$+ < $* > < $2 ></tt> <br />
<br />
<tt>R< $* > $+ < $1 ></tt> <br />
<br />
<tt>R<> $@ < @ ></tt> <br />
<br />
<tt>R< $+ > $: $1</tt> <br />
<br />
<tt>R$*@$={DomainMilisBlocking} $#error $: 553 ${MMsg} Block Mailing-List dari Onelist</tt> <br />
<br />
<tt>R$* $: $( milis $1 $)</tt> <br />
<br />
<tt>R${MPat} $#error $: 553 ${MMsg}</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>###############################################################</tt> <br />
<br />
<tt># Mailing List Rules ( Base on Subject Header ) #</tt> <br />
<br />
<tt># Contoh untuk memblok mailinglist/E-mail #</tt> <br />
<br />
<tt># berdasarkan subject #</tt> <br />
<br />
<tt>###############################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>HSubject: $>Check_Subject</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>D{MPat1}[http://come.to/konyol]</tt> <br />
<br />
<tt>D{MMsg1}User unknown</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SCheck_Subject</tt> <br />
<br />
<tt>R${MPat1} $* $#error $: 553 ${MMsg1}</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>#####</tt> <br />
<br />
<tt>##### REWRITING RULES</tt> <br />
<br />
<tt>#####</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>############################################</tt> <br />
<br />
<tt>### Ruleset 3 - Name Canonicalization ###</tt> <br />
<br />
<tt>############################################</tt> <br />
<br />
<tt>S3</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle null input (translate to <@> special case)</tt> <br />
<br />
<tt>R$@ $@ <@></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># strip group: syntax (not inside angle brackets!) and trailing semicolon</tt> <br />
<br />
<tt>R$* $: $1 <@> mark addresses</tt> <br />
<br />
<tt>R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr></tt> <br />
<br />
<tt>R@ $* <@> $: @ $1 unmark @host:...</tt> <br />
<br />
<tt>R$* :: $* <@> $: $1 :: $2 unmark node::addr</tt> <br />
<br />
<tt>R:include: $* <@> $: :include: $1 unmark :include:...</tt> <br />
<br />
<tt>R$* [ $* : $* ] <@> $: $1 [ $2 : $3 ] unmark IPv6 addrs</tt> <br />
<br />
<tt>R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon</tt> <br />
<br />
<tt>R$* : $* <@> $: $2 strip colon if marked</tt> <br />
<br />
<tt>R$* <@> $: $1 unmark</tt> <br />
<br />
<tt>R$* ; $1 strip trailing semi</tt> <br />
<br />
<tt>R$* < $* ; > $1 < $2 > bogus bracketed semi</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># null input now results from list:; syntax</tt> <br />
<br />
<tt>R$@ $@ :; <@></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># strip angle brackets - note RFC733 heuristic to get innermost item</tt> <br />
<br />
<tt>R$* $: < $1 > housekeeping <></tt> <br />
<br />
<tt>R$+ < $* > < $2 > strip excess on left</tt> <br />
<br />
<tt>R< $* > $+ < $1 > strip excess on right</tt> <br />
<br />
<tt>R<> $@ < @ > MAIL FROM:<> case</tt> <br />
<br />
<tt>R< $+ > $: $1 remove housekeeping <></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># make sure <@a,@b,@c:user@d> syntax is easy to parse - undone later</tt> <br />
<br />
<tt>R@ $+ , $+ @ $1 : $2 change all "," to ":"</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># localize and dispose of route-based addresses</tt> <br />
<br />
<tt>R@ $+ : $+ $@ $>96 < @$1 > : $2 handle <route-addr></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># find focus for list syntax</tt> <br />
<br />
<tt>R $+ : $* ; @ $+ $@ $>96 $1 : $2 ; < @ $3 > list syntax</tt> <br />
<br />
<tt>R $+ : $* ; $@ $1 : $2; list syntax</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># find focus for @ syntax addresses</tt> <br />
<br />
<tt>R$+ @ $+ $: $1 < @ $2 > focus on domain</tt> <br />
<br />
<tt>R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right</tt> <br />
<br />
<tt>R$+ < @ $+ > $@ $>96 $1 < @ $2 > already canonical</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># do some sanity checking</tt> <br />
<br />
<tt>R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># convert old-style addresses to a domain-based address</tt> <br />
<br />
<tt>R$- ! $+ $@ $>96 $2 < @ $1 .UUCP > resolve uucp names</tt> <br />
<br />
<tt>R$+ . $- ! $+ $@ $>96 $3 < @ $1 . $2 > domain uucps</tt> <br />
<br />
<tt>R$+ ! $+ $@ $>96 $2 < @ $1 .UUCP > uucp subdomains</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># if we have % signs, take the rightmost one</tt> <br />
<br />
<tt>R$* % $* $1 @ $2 First make them all @s.</tt> <br />
<br />
<tt>R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.</tt> <br />
<br />
<tt>R$* @ $* $@ $>96 $1 < @ $2 > Insert < > and finish</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># else we must be a local name</tt> <br />
<br />
<tt>R$* $@ $>96 $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>################################################</tt> <br />
<br />
<tt>### Ruleset 96 - bottom half of ruleset 3 ###</tt> <br />
<br />
<tt>################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>S96</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle special cases for local names</tt> <br />
<br />
<tt>R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all</tt> <br />
<br />
<tt>R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain</tt> <br />
<br />
<tt>R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain</tt> <br />
<br />
<tt>R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]</tt> <br />
<br />
<tt>R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal</tt> <br />
<br />
<tt>R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># if really UUCP, handle it immediately</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># try UUCP traffic as a local address</tt> <br />
<br />
<tt>R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3</tt> <br />
<br />
<tt>R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># pass to name server to make hostname canonical</tt> <br />
<br />
<tt>R$* < @ $* $P > $* $: $1 < @ $[ $2 $3 $] > $4</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># local host aliases and pseudo-domains are always canonical</tt> <br />
<br />
<tt>R$* < @ $=w > $* $: $1 < @ $2 . > $3</tt> <br />
<br />
<tt>R$* < @ $j > $* $: $1 < @ $j . > $2</tt> <br />
<br />
<tt>R$* < @ $=M > $* $: $1 < @ $2 . > $3</tt> <br />
<br />
<tt>R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4</tt> <br />
<br />
<tt>R$* < @ $* . . > $* $1 < @ $2 . > $3</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##################################################</tt> <br />
<br />
<tt>### Ruleset 4 - Final Output Post-rewriting ###</tt> <br />
<br />
<tt>##################################################</tt> <br />
<br />
<tt>S4</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>R$* <@> $@ handle <> and list:;</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># strip trailing dot off possibly canonical name</tt> <br />
<br />
<tt>R$* < @ $+ . > $* $1 < @ $2 > $3</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># eliminate internal code - should never get this far!</tt> <br />
<br />
<tt>R$* < @ *LOCAL* > $* $1 < @ $j > $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># externalize local domain info</tt> <br />
<br />
<tt>R$* < $+ > $* $1 $2 $3 defocus</tt> <br />
<br />
<tt>R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical</tt> <br />
<br />
<tt>R@ $* $@ @ $1 ... and exit</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># UUCP must always be presented in old form</tt> <br />
<br />
<tt>R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># delete duplicate local names</tt> <br />
<br />
<tt>R$+ % $=w @ $=w $1 @ $2 u%host@host => u@host</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##############################################################</tt> <br />
<br />
<tt>### Ruleset 97 - recanonicalize and call ruleset zero ###</tt> <br />
<br />
<tt>### (used for recursive calls) ###</tt> <br />
<br />
<tt>##############################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>S97</tt> <br />
<br />
<tt>R$* $: $>3 $1</tt> <br />
<br />
<tt>R$* $@ $>0 $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>######################################</tt> <br />
<br />
<tt>### Ruleset 0 - Parse Address ###</tt> <br />
<br />
<tt>######################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>S0</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>R$* $: $>Parse0 $1 initial parsing</tt> <br />
<br />
<tt>R<@> $#local $: <@> special case error msgs</tt> <br />
<br />
<tt>R$* $: $>98 $1 handle local hacks</tt> <br />
<br />
<tt>R$* $: $>Parse1 $1 final parsing</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Parse0 - do initial syntax checking and eliminate local addresses.</tt> <br />
<br />
<tt># This should either return with the (possibly modified) input</tt> <br />
<br />
<tt># or return with a #error mailer. It should not return with a</tt> <br />
<br />
<tt># #mailer other than the #error mailer.</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SParse0</tt> <br />
<br />
<tt>R<@> $@ <@> special case error msgs</tt> <br />
<br />
<tt>R$* : $* ; <@> $#error $@ 5.1.3 $: "List:; syntax illegal for recipient addresses"</tt> <br />
<br />
<tt>#R@ <@ $* > < @ $1 > catch "@@host" bogosity</tt> <br />
<br />
<tt>R<@ $+> $#error $@ 5.1.3 $: "User address required"</tt> <br />
<br />
<tt>R$* $: <> $1</tt> <br />
<br />
<tt>R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3</tt> <br />
<br />
<tt>R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "Colon illegal in host name part"</tt> <br />
<br />
<tt>R<> $* $1</tt> <br />
<br />
<tt>R$* < @ . $* > $* $#error $@ 5.1.2 $: "Invalid host name"</tt> <br />
<br />
<tt>R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "Invalid host name"</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># now delete the local info - note $=O to find characters that cause forwarding</tt> <br />
<br />
<tt>R$* < @ > $* $@ $>Parse0 $>3 $1 user@ => user</tt> <br />
<br />
<tt>R< @ $=w . > : $* $@ $>Parse0 $>3 $2 @here:... -> ...</tt> <br />
<br />
<tt>R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here</tt> <br />
<br />
<tt>R< @ $+ > $#error $@ 5.1.3 $: "User address required"</tt> <br />
<br />
<tt>R$* $=O $* < @ $=w . > $@ $>Parse0 $>3 $1 $2 $3 ...@here -> ...</tt> <br />
<br />
<tt>R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"</tt> <br />
<br />
<tt>R< @ *LOCAL* > $#error $@ 5.1.3 $: "User address required"</tt> <br />
<br />
<tt>R$* $=O $* < @ *LOCAL* ></tt> <br />
<br />
<tt> $@ $>Parse0 $>3 $1 $2 $3 ...@*LOCAL* -> ...</tt> <br />
<br />
<tt>R$* < @ *LOCAL* > $: $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Parse1 - the bottom half of ruleset 0.</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SParse1</tt> <br />
<br />
<tt># handle numeric address spec</tt> <br />
<br />
<tt>R$* < @ [ $+ ] > $* $: $>98 $1 < @ [ $2 ] > $3 numeric internet spec</tt> <br />
<br />
<tt>R$* < @ [ $+ ] > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 still numeric: send</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle virtual users</tt> <br />
<br />
<tt>R$+ < @ $=w . > $: < $(virtuser $1 @ $2 $@ $1 $: @ $) > $1 < @ $2 . ></tt> <br />
<br />
<tt>R<@> $+ + $* < @ $* . ></tt> <br />
<br />
<tt> $: < $(virtuser $1 + * @ $3 $@ $1 $: @ $) > $1 + $2 < @ $3 . ></tt> <br />
<br />
<tt>R<@> $+ + $* < @ $* . ></tt> <br />
<br />
<tt> $: < $(virtuser $1 @ $3 $@ $1 $: @ $) > $1 + $2 < @ $3 . ></tt> <br />
<br />
<tt>R<@> $+ < @ $+ . > $: < $(virtuser @ $2 $@ $1 $: @ $) > $1 < @ $2 . ></tt> <br />
<br />
<tt>R<@> $+ $: $1</tt> <br />
<br />
<tt>R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2</tt> <br />
<br />
<tt>R< $+ > $+ < @ $+ > $: $>97 $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># short circuit local delivery so forwarded e-mail works</tt> <br />
<br />
<tt>R$=L < @ $=w . > $#local $: @ $1 special local names</tt> <br />
<br />
<tt>R$+ < @ $=w . > $#local $: $1 regular local name</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># resolve remotely connected UUCP links (if any)</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># resolve fake top level domains by forwarding to other hosts</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># pass names that still have a host to a smarthost (if defined)</tt> <br />
<br />
<tt>R$* < @ $* > $* $: $>95 < $S > $1 < @ $2 > $3 glue on smarthost name</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># deal with other remote names</tt> <br />
<br />
<tt>R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle locally delivered names</tt> <br />
<br />
<tt>R$=L $#local $: @ $1 special local names</tt> <br />
<br />
<tt>R$+ $#local $: $1 regular local names</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>###########################################################################</tt> <br />
<br />
<tt>### Ruleset 5 - special rewriting after aliases have been expanded ###</tt> <br />
<br />
<tt>###########################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>S5</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># deal with plussed users so aliases work nicely</tt> <br />
<br />
<tt>R$+ + * $#local $@ $&h $: $1</tt> <br />
<br />
<tt>R$+ + $* $#local $@ + $2 $: $1 + *</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># prepend an empty "forward host" on the front</tt> <br />
<br />
<tt>R$+ $: <> $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># see if we have a relay or a hub</tt> <br />
<br />
<tt>R< > $+ $: < $H > $1 try hub</tt> <br />
<br />
<tt>R< > $+ $: < $R > $1 try relay</tt> <br />
<br />
<tt>R< > $+ $: < > < $1 $&h > nope, restore +detail</tt> <br />
<br />
<tt>R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part</tt> <br />
<br />
<tt>R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +</tt> <br />
<br />
<tt>R< > < $+ > $@ $1 no +detail</tt> <br />
<br />
<tt>R$+ $: $1 $&h add +detail back in</tt> <br />
<br />
<tt>R< local : $* > $* $: $>95 < local : $1 > $2 no host extension</tt> <br />
<br />
<tt>R< error : $* > $* $: $>95 < error : $1 > $2 no host extension</tt> <br />
<br />
<tt>R< $- : $+ > $+ $: $>95 < $1 : $2 > $3 < @ $2 ></tt> <br />
<br />
<tt>R< $+ > $+ $@ $>95 < $1 > $2 < @ $1 ></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt>### Ruleset 95 - canonify mailer:[user@]host syntax to triple ###</tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>S95</tt> <br />
<br />
<tt>R< > $* $@ $1 strip off null relay</tt> <br />
<br />
<tt>R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2</tt> <br />
<br />
<tt>R< local : $* > $* $>CanonLocal < $1 > $2</tt> <br />
<br />
<tt>R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user</tt> <br />
<br />
<tt>R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer</tt> <br />
<br />
<tt>R< $=w > $* $@ $2 delete local host</tt> <br />
<br />
<tt>R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt>### Ruleset CanonLocal - canonify local: syntax ###</tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SCanonLocal</tt> <br />
<br />
<tt># strip trailing dot from any host name that may appear</tt> <br />
<br />
<tt>R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 ></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle local: syntax - use old user, either with or without host</tt> <br />
<br />
<tt>R< > $* < @ $* > $* $#local $@ $1@$2 $: $1</tt> <br />
<br />
<tt>R< > $+ $#local $@ $1 $: $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle local:user@host syntax - ignore host part</tt> <br />
<br />
<tt>R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 ></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle local:user syntax</tt> <br />
<br />
<tt>R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1</tt> <br />
<br />
<tt>R< $+ > $* $#local $@ $2 $: $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt>### Ruleset 93 - convert header names to masqueraded form ###</tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>S93</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle generics database</tt> <br />
<br />
<tt>R$+ < @ $=G . > $: < $1@$2 > $1 < @ $2 . > @ mark</tt> <br />
<br />
<tt>R$+ < @ *LOCAL* > $: < $1@$j > $1 < @ *LOCAL* > @ mark</tt> <br />
<br />
<tt>R< $+ > $+ < $* > @ $: < $(generics $1 $: $) > $2 < $3 ></tt> <br />
<br />
<tt>R< > $+ < @ $+ > $: < $(generics $1 $: $) > $1 < @ $2 ></tt> <br />
<br />
<tt>R< $* @ $* > $* < $* > $@ $>3 $1 @ $2 found qualified</tt> <br />
<br />
<tt>R< $+ > $* < $* > $: $>3 $1 @ *LOCAL* found unqualified</tt> <br />
<br />
<tt>R< > $* $: $1 not found</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># special case the users that should be exposed</tt> <br />
<br />
<tt>R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed</tt> <br />
<br />
<tt>R$=E < @ $=M . > $@ $1 < @ $2 . ></tt> <br />
<br />
<tt>R$=E < @ $=w . > $@ $1 < @ $2 . ></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle domain-specific masquerading</tt> <br />
<br />
<tt>R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms</tt> <br />
<br />
<tt>R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3</tt> <br />
<br />
<tt>R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2</tt> <br />
<br />
<tt>R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null</tt> <br />
<br />
<tt>R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt>### Ruleset 94 - convert envelope names to masqueraded form ###</tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>S94</tt> <br />
<br />
<tt>R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt>### Ruleset 98 - local part of ruleset zero (can be null) ###</tt> <br />
<br />
<tt>###################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>S98</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># addresses sent to foo@host.REDIRECT will give a 551 error code</tt> <br />
<br />
<tt>R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} ></tt> <br />
<br />
<tt>R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. ></tt> <br />
<br />
<tt>R$* < @ $+ .REDIRECT. > < $- > $# error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>### LookUpDomain - search for domain in access database</tt> <br />
<br />
<tt>###</tt> <br />
<br />
<tt>### Parameters:</tt> <br />
<br />
<tt>### <$1> - key (domain name)</tt> <br />
<br />
<tt>### <$2> - default (what to return if not found in db)</tt> <br />
<br />
<tt>### <$3> - passthru (additional data passed unchanged through)</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SLookUpDomain</tt> <br />
<br />
<tt>R<$+> <$+> <$*> $: < $(access $1 $: ? $) > <$1> <$2> <$3></tt> <br />
<br />
<tt>R<?> <$+.$+> <$+> <$*> $@ $>LookUpDomain <$2> <$3> <$4></tt> <br />
<br />
<tt>R<?> <$+> <$+> <$*> $@ <$2> <$3></tt> <br />
<br />
<tt>R<$*> <$+> <$+> <$*> $@ <$1> <$4></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>### LookUpAddress - search for host address in access database</tt> <br />
<br />
<tt>###</tt> <br />
<br />
<tt>### Parameters:</tt> <br />
<br />
<tt>### <$1> - key (dot quadded host address)</tt> <br />
<br />
<tt>### <$2> - default (what to return if not found in db)</tt> <br />
<br />
<tt>### <$3> - passthru (additional data passed through)</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SLookUpAddress</tt> <br />
<br />
<tt>R<$+> <$+> <$*> $: < $(access $1 $: ? $) > <$1> <$2> <$3></tt> <br />
<br />
<tt>R<?> <$+.$-> <$+> <$*> $@ $>LookUpAddress <$1> <$3> <$4></tt> <br />
<br />
<tt>R<?> <$+> <$+> <$*> $@ <$2> <$3></tt> <br />
<br />
<tt>R<$*> <$+> <$+> <$*> $@ <$1> <$4></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>### ParseRecipient - Strip off hosts in $=R as well as possibly</tt> <br />
<br />
<tt>### $* $=m or the access database.</tt> <br />
<br />
<tt>### Check user portion for host separators.</tt> <br />
<br />
<tt>###</tt> <br />
<br />
<tt>### Parameters:</tt> <br />
<br />
<tt>### $1 - full recipient address</tt> <br />
<br />
<tt>###</tt> <br />
<br />
<tt>### Returns:</tt> <br />
<br />
<tt>### parsed, non-local-relaying address</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SParseRecipient</tt> <br />
<br />
<tt>R$* $: <?> $>Parse0 $>3 $1</tt> <br />
<br />
<tt>R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots</tt> <br />
<br />
<tt>R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># if no $=O character, no host in the user portion, we are done</tt> <br />
<br />
<tt>R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4></tt> <br />
<br />
<tt>R<?> $* $@ $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 ></tt> <br />
<br />
<tt>R<NO> $* < @ $* > $: $>LookUpDomain <$2> <NO> <$1 < @ $2 >></tt> <br />
<br />
<tt>R<$+> <$+> $: <$1> $2</tt> <br />
<br />
<tt>R<RELAY> $* < @ $* > $@ $>ParseRecipient $1</tt> <br />
<br />
<tt>R<$-> $* $@ $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>### check_relay - check hostname/address on SMTP startup</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SLocal_check_relay</tt> <br />
<br />
<tt>Scheck_relay</tt> <br />
<br />
<tt>R$* $: $1 $| $>"Local_check_relay" $1</tt> <br />
<br />
<tt>R$* $| $* $| $#$* $#$3</tt> <br />
<br />
<tt>R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SBasic_check_relay</tt> <br />
<br />
<tt># check for deferred delivery mode</tt> <br />
<br />
<tt>R$* $: < ${deliveryMode} > $1</tt> <br />
<br />
<tt>R< d > $* $@ deferred</tt> <br />
<br />
<tt>R< $* > $* $: $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>R$+ $| $+ $: $>LookUpDomain < $1 > <?> < $2 ></tt> <br />
<br />
<tt>R<?> < $+ > $: $>LookUpAddress < $1 > <OK> < $1 ></tt> <br />
<br />
<tt>R<OK> < $* > $: $1</tt> <br />
<br />
<tt>R<RELAY> < $* > $: $1</tt> <br />
<br />
<tt>R<REJECT> $* $#error $@ 5.7.1 $: "550 Access denied"</tt> <br />
<br />
<tt>R<DISCARD> $* $#discard $: discard</tt> <br />
<br />
<tt>R<$+> $* $#error $@ 5.7.1 $: $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>### check_mail - check SMTP `MAIL FROM:' command argument</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SLocal_check_mail</tt> <br />
<br />
<tt>Scheck_mail</tt> <br />
<br />
<tt>R$* $: $1 $| $>"Local_check_mail" $1</tt> <br />
<br />
<tt>R$* $| $#$* $#$2</tt> <br />
<br />
<tt>R$* $| $* $@ $>"Basic_check_mail" $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SBasic_check_mail</tt> <br />
<br />
<tt># check for deferred delivery mode</tt> <br />
<br />
<tt>R$* $: < ${deliveryMode} > $1</tt> <br />
<br />
<tt>R< d > $* $@ deferred</tt> <br />
<br />
<tt>R< $* > $* $: $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>R<> $@ <OK></tt> <br />
<br />
<tt>R$* $: <?> $>Parse0 $>3 $1 make domain canonical</tt> <br />
<br />
<tt>R<?> $* < @ $+ . > $* <?> $1 < @ $2 > $3 strip trailing dots</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Handle user from ut.astra.co.id</tt> <br />
<br />
<tt>R<?> $* < @ $=w > $* $: <USER $( userut $1 $: ? $)> $1 < @ $2 > $3</tt> <br />
<br />
<tt>R<USER ?> $* < @ $* > $* $#error $@ 5.7.1 $: "550 Access Denied"</tt> <br />
<br />
<tt>R< $* > $* < @ $* > $* $: <?> $2 < @ $3 > $4</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)</tt> <br />
<br />
<tt>R<?> $* < $* $=P > $* $: <OK> $1 < @ $2 $3 > $4</tt> <br />
<br />
<tt>R<?> $* < @ $+ > $* $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 > $3</tt> <br />
<br />
<tt>R<? $* <$->> $* < @ $+ > $*</tt> <br />
<br />
<tt> $: <$2> $3 < @ $4 > $5</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle case of @localhost on address</tt> <br />
<br />
<tt>R<$+> $* < @localhost > $: < ? $&{client_name} > <$1> $2 < @localhost ></tt> <br />
<br />
<tt>R<$+> $* < @localhost.$m ></tt> <br />
<br />
<tt> $: < ? $&{client_name} > <$1> $2 < @localhost.$m ></tt> <br />
<br />
<tt>R<$+> $* < @localhost.UUCP ></tt> <br />
<br />
<tt> $: < ? $&{client_name} > <$1> $2 < @localhost.UUCP ></tt> <br />
<br />
<tt>R<? $=w> <$+> $* <?> <$2> $3</tt> <br />
<br />
<tt>R<? $+> <$+> $* $#error $@ 5.5.4 $: "553 Real domain name required"</tt> <br />
<br />
<tt>R<?> <$+> $* $: <$1> $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># lookup localpart (user@)</tt> <br />
<br />
<tt>R<$+> $* < @ $+ > $* $: <USER $(access $2@ $: ? $) > <$1> $2 < @ $3 > $4</tt> <br />
<br />
<tt># no match, try full address (user@domain rest)</tt> <br />
<br />
<tt>R<USER ?> <$+> $* < @ $* > $*</tt> <br />
<br />
<tt> $: <USER $(access $2@$3$4 $: ? $) > <$1> $2 < @ $3 > $4</tt> <br />
<br />
<tt># no match, try address (user@domain)</tt> <br />
<br />
<tt>R<USER ?> <$+> $+ < @ $+ > $*</tt> <br />
<br />
<tt> $: <USER $(access $2@$3 $: ? $) > <$1> $2 < @ $3 > $4</tt> <br />
<br />
<tt># no match, try (sub)domain (domain)</tt> <br />
<br />
<tt>R<USER ?> <$+> $* < @ $+ > $*</tt> <br />
<br />
<tt> $: $>LookUpDomain <$3> <$1> <></tt> <br />
<br />
<tt># check unqualified user in access database</tt> <br />
<br />
<tt>R<?> $* $: <USER $(access $1@ $: ? $) > <?> $1</tt> <br />
<br />
<tt># retransform for further use</tt> <br />
<br />
<tt>R<USER $+> <$+> $* $: <$1> $3</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># handle case of no @domain on address</tt> <br />
<br />
<tt>R<?> $* $: < ? $&{client_name} > $1</tt> <br />
<br />
<tt>R<?> $* $@ <OK> ...local unqualed ok</tt> <br />
<br />
<tt>R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required"</tt> <br />
<br />
<tt> ...remote is not</tt> <br />
<br />
<tt># check results</tt> <br />
<br />
<tt>R<?> $* $@ <OK></tt> <br />
<br />
<tt>R<OK> $* $@ <OK></tt> <br />
<br />
<tt>R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain must resolve"</tt> <br />
<br />
<tt>R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain must exist"</tt> <br />
<br />
<tt>R<RELAY> $* $@ <RELAY></tt> <br />
<br />
<tt>R<DISCARD> $* $#discard $: discard</tt> <br />
<br />
<tt>R<REJECT> $* $#error $@ 5.7.1 $: "550 Access denied"</tt> <br />
<br />
<tt>R<$+> $* $#error $@ 5.7.1 $: $1 error from access db</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>### check_rcpt - check SMTP `RCPT TO:' command argument</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SLocal_check_rcpt</tt> <br />
<br />
<tt>Scheck_rcpt</tt> <br />
<br />
<tt>R$* $: $1 $| $>"Local_check_rcpt" $1</tt> <br />
<br />
<tt>R$* $| $#$* $#$2</tt> <br />
<br />
<tt>R$* $| $* $@ $>"Basic_check_rcpt" $1</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>SBasic_check_rcpt</tt> <br />
<br />
<tt># check for deferred delivery mode</tt> <br />
<br />
<tt>R$* $: < ${deliveryMode} > $1</tt> <br />
<br />
<tt>R< d > $* $@ deferred</tt> <br />
<br />
<tt>R< $* > $* $: $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>R$* $: $>ParseRecipient $1 strip relayable hosts</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># blacklist local users or any host from receiving mail</tt> <br />
<br />
<tt>R$* $: <?> $1</tt> <br />
<br />
<tt>R<?> $+ < @ $=w > $: <> <USER $1> <FULL $1@$2> <HOST $2> <$1 < @ $2 >></tt> <br />
<br />
<tt>R<?> $+ < @ $* > $: <> <FULL $1@$2> <HOST $2> <$1 < @ $2 >></tt> <br />
<br />
<tt>R<?> $+ $: <> <USER $1> <$1></tt> <br />
<br />
<tt>R<> <USER $+> $* $: <$(access $1 $: $)> $2</tt> <br />
<br />
<tt>R<> <FULL $+> $* $: <$(access $1 $: $)> $2</tt> <br />
<br />
<tt>R<OK> <FULL $+> $* $: <$(access $1 $: $)> $2</tt> <br />
<br />
<tt>R<> <HOST $+> $* $: <$(access $1 $: $)> $2</tt> <br />
<br />
<tt>R<OK> <HOST $+> $* $: <$(access $1 $: $)> $2</tt> <br />
<br />
<tt>R<> <$*> $: $1</tt> <br />
<br />
<tt>R<OK> <$*> $: $1</tt> <br />
<br />
<tt>R<RELAY> <$*> $: $1</tt> <br />
<br />
<tt>R<REJECT> $* $#error $@ 5.2.1 $: "550 Mailbox disabled for this recipient"</tt> <br />
<br />
<tt>R<$+> $* $#error $@ 5.2.1 $: $1 error from access db</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># anything terminating locally is ok</tt> <br />
<br />
<tt>R$+ < @ $=w > $@ OK</tt> <br />
<br />
<tt>R$+ < @ $* $=R > $@ OK</tt> <br />
<br />
<tt>R$+ < @ $* > $: $>LookUpDomain <$2> <?> <$1 < @ $2 >></tt> <br />
<br />
<tt>R<RELAY> $* $@ RELAY</tt> <br />
<br />
<tt>R<$*> <$*> $: $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># check for local user (i.e. unqualified address)</tt> <br />
<br />
<tt>R$* $: <?> $1</tt> <br />
<br />
<tt>R<?> $+ < @ $+ > $: <REMOTE> $1 < @ $2 ></tt> <br />
<br />
<tt># local user is ok</tt> <br />
<br />
<tt>R<?> $+ $@ OK</tt> <br />
<br />
<tt>R<$+> $* $: $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># anything originating locally is ok</tt> <br />
<br />
<tt>R$* $: <?> $&{client_name}</tt> <br />
<br />
<tt># check if bracketed IP address (forward lookup != reverse lookup)</tt> <br />
<br />
<tt>R<?> [$+] $: <BAD> [$1]</tt> <br />
<br />
<tt># pass to name server to make hostname canonical</tt> <br />
<br />
<tt>R<?> $* $P $: <?> $[ $1 $2 $]</tt> <br />
<br />
<tt>R<$-> $* $: $2</tt> <br />
<br />
<tt>R$* . $1 strip trailing dots</tt> <br />
<br />
<tt>R$@ $@ OK</tt> <br />
<br />
<tt>R$=w $@ OK</tt> <br />
<br />
<tt>R$* $=R $@ OK</tt> <br />
<br />
<tt>R$* $: $>LookUpDomain <$1> <?> <$1></tt> <br />
<br />
<tt>R<RELAY> $* $@ RELAY</tt> <br />
<br />
<tt>R<$*> <$*> $: $2</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># check IP address</tt> <br />
<br />
<tt>R$* $: $&{client_addr}</tt> <br />
<br />
<tt>R$@ $@ OK originated locally</tt> <br />
<br />
<tt>R0 $@ OK originated locally</tt> <br />
<br />
<tt>R$=R $* $@ OK relayable IP address</tt> <br />
<br />
<tt>R$* $: $>LookUpAddress <$1> <?> <$1></tt> <br />
<br />
<tt>R<RELAY> $* $@ RELAY relayable IP address</tt> <br />
<br />
<tt>R<$*> <$*> $: $2</tt> <br />
<br />
<tt>R$* $: [ $1 ] put brackets around it...</tt> <br />
<br />
<tt>R$=w $@ OK ... and see if it is local</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># anything else is bogus</tt> <br />
<br />
<tt>R$* $#error $@ 5.7.1 $: "550 Relaying denied"</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>#####</tt> <br />
<br />
<tt>##### MAILER DEFINITIONS</tt> <br />
<br />
<tt>#####</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt>######################################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##################################################</tt> <br />
<br />
<tt>### Local and Program Mailer specification ###</tt> <br />
<br />
<tt>##################################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)local.m4 8.30 (Berkeley) 6/30/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>Mlocal, P=/bin/mail, F=lsDFMAw5:/|@qrmn9, S=10/30, R=20/40,</tt> <br />
<br />
<tt> T=DNS/RFC822/X-Unix,</tt> <br />
<br />
<tt> A=mail -r $g -d $u</tt> <br />
<br />
<tt>Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/,</tt> <br />
<br />
<tt> T=X-Unix,</tt> <br />
<br />
<tt> A=sh -c $u</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Envelope sender rewriting</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S10</tt> <br />
<br />
<tt>R<@> $n errors to mailer-daemon</tt> <br />
<br />
<tt>R@ <@ $*> $n temporarily bypass Sun bogosity</tt> <br />
<br />
<tt>R$+ $: $>50 $1 add local domain if needed</tt> <br />
<br />
<tt>R$* $: $>94 $1 do masquerading</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Envelope recipient rewriting</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S20</tt> <br />
<br />
<tt>R$+ < @ $* > $: $1 strip host part</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Header sender rewriting</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S30</tt> <br />
<br />
<tt>R<@> $n errors to mailer-daemon</tt> <br />
<br />
<tt>R@ <@ $*> $n temporarily bypass Sun bogosity</tt> <br />
<br />
<tt>R$+ $: $>50 $1 add local domain if needed</tt> <br />
<br />
<tt>R$* $: $>93 $1 do masquerading</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Header recipient rewriting</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S40</tt> <br />
<br />
<tt>R$+ $: $>50 $1 add local domain if needed</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Common code to add local domain name (only if always-add-domain)</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S50</tt> <br />
<br />
<tt>R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified</tt> <br />
<br />
<tt>R$+ $@ $1 < @ *LOCAL* > add local qualification</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#####################################</tt> <br />
<br />
<tt>### SMTP Mailer specification ###</tt> <br />
<br />
<tt>#####################################</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>##### @(#)smtp.m4 8.38 (Berkeley) 5/19/98 #####</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990,</tt> <br />
<br />
<tt> T=DNS/RFC822/SMTP,</tt> <br />
<br />
<tt> A=IPC $h</tt> <br />
<br />
<tt>Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n, L=990,</tt> <br />
<br />
<tt> T=DNS/RFC822/SMTP,</tt> <br />
<br />
<tt> A=IPC $h</tt> <br />
<br />
<tt>Msmtp8, P=[IPC], F=mDFMuX8, S=11/31, R=21, E=\r\n, L=990,</tt> <br />
<br />
<tt> T=DNS/RFC822/SMTP,</tt> <br />
<br />
<tt> A=IPC $h</tt> <br />
<br />
<tt>Mrelay, P=[IPC], F=mDFMuXa8, S=11/31, R=61, E=\r\n, L=2040,</tt> <br />
<br />
<tt> T=DNS/RFC822/SMTP,</tt> <br />
<br />
<tt> A=IPC $h</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># envelope sender rewriting</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S11</tt> <br />
<br />
<tt>R$+ $: $>51 $1 sender/recipient common</tt> <br />
<br />
<tt>R$* :; <@> $@ list:; special case</tt> <br />
<br />
<tt>R$* $: $>61 $1 qualify unqual'ed names</tt> <br />
<br />
<tt>R$+ $: $>94 $1 do masquerading</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># envelope recipient rewriting -</tt> <br />
<br />
<tt># also header recipient if not masquerading recipients</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S21</tt> <br />
<br />
<tt>R$+ $: $>51 $1 sender/recipient common</tt> <br />
<br />
<tt>R$+ $: $>61 $1 qualify unqual'ed names</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># header sender and masquerading header recipient rewriting</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S31</tt> <br />
<br />
<tt>R$+ $: $>51 $1 sender/recipient common</tt> <br />
<br />
<tt>R:; <@> $@ list:; special case</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># do special header rewriting</tt> <br />
<br />
<tt>R$* <@> $* $@ $1 <@> $2 pass null host through</tt> <br />
<br />
<tt>R< @ $* > $* $@ < @ $1 > $2 pass route-addr through</tt> <br />
<br />
<tt>R$* $: $>61 $1 qualify unqual'ed names</tt> <br />
<br />
<tt>R$+ $: $>93 $1 do masquerading</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># convert pseudo-domain addresses to real domain addresses</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S51</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># pass <route-addr>s through</tt> <br />
<br />
<tt>R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr></tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># output fake domains as user%fake@relay</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># do UUCP heuristics; note that these are shared with UUCP mailers</tt> <br />
<br />
<tt>R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form</tt> <br />
<br />
<tt>R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># leave these in .UUCP form to avoid further tampering</tt> <br />
<br />
<tt>R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. ></tt> <br />
<br />
<tt>R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 ></tt> <br />
<br />
<tt>R< $&h ! > $+ $@ $1 < @ $&h .UUCP. ></tt> <br />
<br />
<tt>R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY</tt> <br />
<br />
<tt>R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part</tt> <br />
<br />
<tt>R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># common sender and masquerading recipient rewriting</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S61</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified</tt> <br />
<br />
<tt>R$+ $@ $1 < @ *LOCAL* > add local qualification</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># relay mailer header masquerading recipient rewriting</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt>S71</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>R$+ $: $>61 $1</tt> <br />
<br />
<tt>R$+ $: $>93 $1</tt> <br />
<h3><a href="" name="SECTION02714200000000000000"> sendmail.cf di SuSE</a> </h3>Untuk menghasilkan file <tt>sendmail.cf</tt> di SuSE, bisa dilakukan secara otomatis oleh yast. Lewat account root, jalankan yast. <br />
<tt># yast</tt> <br />
Masuk kebagian <tt>System Administration - Network Configuration - Configure Sendmail</tt>. Disitu sudah ada pilihan : <br />
<br />
<ol><li><i>Host with permanent network connection</i> </li>
<li><i>Single user machine without network connection</i> </li>
<li><i>Host with temporarily network connection (modem/ISDN)</i> </li>
<li><i>Do not instal /etc/sendmail.cf</i> </li>
</ol>Pilih sesuai dengan kebutuhan anda, dan yast secara otomatis akan membuat file <tt>sendmail.cf</tt> yang sederhana, namun dapat langsung difungsikan.<br />
<h3><a href="" name="SECTION02714300000000000000"> sendmail.cf di RedHat</a> </h3>Untuk RedHat, file konfigurasi sendmail.cf bisa dibuat melalui LinuxConf, pada bagian <tt>Config - Server Task - Sendmail Basic Information</tt>. Pilihan yang ada akan memudahkan anda untuk mengkonfigurasikannya : <br />
<br />
<ul><li><tt>Present your system as</tt> Nama domain utama yang dipergunakan. <br />
</li>
<li><tt>Accept e-mail for your domain</tt> 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. <br />
</li>
<li><tt>Mail Server</tt> Nama server mail utama. Hal ini bisa terjadi jika dalam satu intranet terdapat banyak server mail. <br />
</li>
<li><tt>Mail Gateway</tt> 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) <br />
</li>
<li><tt>Mail Gateway Protocol</tt> 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. <br />
</li>
<li><tt>Features</tt> Beberapa pilihan untuk layanan sendmail. Pilihan tersebut adalah : <br />
</li>
<li><tt>Relay Control</tt> Mengontrol siapa saja yang boleh menggunakan sendmail anda untuk relay. <br />
</li>
<li>N<tt>o batching for uucp mail</tt> E-mail yang menggunakan UUCP akan langsung dikirimkan (tidak diantrikan terlebih dahulu). Hal ini mengurangi lalu lintas dalam jaringan. <br />
</li>
<li><tt>Max size for UUCP users</tt> Ukuran maksimal untuk pengguna UUCP. <br />
</li>
<li><tt>Deliver locally to users</tt> </li>
</ul><blockquote> Dipergunakan biasanya untuk pseudo user. </blockquote><ul><li><tt>No masquerade for users</tt> Nama user yang tidak dimasquerade (lihat pilihan present your system as). <br />
</li>
<li><tt>Special routing database enabled</tt> Pilih jika ingin menggunakan routing khusus. <br />
</li>
<li><tt>Special routing database format</tt> Database yang digunakan oleh sendmail. Biasanya menggunakan format dbm. <br />
</li>
<li><tt>Local Delivery Agent</tt> 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. <br />
</li>
<li><tt>Don't try to deliver immediately</tt> E-mail tidak langsung dikirim, melainkan diantrikan terlebih dahulu (dengan perintah sendmail -q) <br />
</li>
<li><tt>Process queue every (minutes</tt>) Interval waktu untuk mengirimkan e-mail yang antri (qeued). <br />
</li>
<li><tt>Support bogus mail client (HELO)</tt> 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. <br />
</li>
</ul>Agar dapat di Relay jangan lupa dapftarkan domain mail server yang bersangkutan ke file <tt>/etc/sendmail.cw.</tt>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-46902516315144832642011-06-09T22:36:00.000-07:002011-06-09T22:36:55.126-07:00POP3 di Sendmail<h2> </h2>Agar user dapat mengambil e-mail secara <i>remote</i>, 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 <tt>ipop3d</tt> yang melayani pengguna di port 110. Tidak ada konfigurasi secara khusus. <br />
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 <tt>Tools - Accounts - Mail - Add - Mail</tt>. Pada bagian E-mail Server Names, cukup isikan nama server Linux, atau alamat IP-nya. Jika diisi nama server, perlu diperhatikan seting <i>MX Record</i> pada DNS servernya. Untuk ujicoba memastikan bahwa sistem berjalan baik, isikan terlebih dahulu nomor IP-nya.<br />
<h2><a href="" name="SECTION02713000000000000000">Administrasi Sendmail</a></h2><h3><a href="" name="SECTION02713100000000000000"> Alias sendmail (sendmail aliases)</a> </h3>Fungsi alias disini adalah untuk : <br />
<br />
<ul><li>Memberikan nama alternatif kepada setiap user </li>
<li>Mailing list </li>
</ul>Biasanya untuk aliases ini disimpan di <tt>/etc/aliases</tt> yang merupakan file teks. Format penulisannya yaitu : <tt>Alias: penerima, [penerima, ...]</tt> <br />
Alias ini biasanya digunakan untuk menerima khusus seperti <i>postmaster</i> atau <i>root</i>. Pada saat membuat aliasnya dapat digunakan hanya nama atau alamat lengkap, contoh : anggap bahwa domain yang digunakan adalah <tt>nuts.com</tt> <br />
<br />
<tt># special names</tt> <br />
<br />
<tt>postmaster: root</tt> <br />
<br />
<tt>root: wars</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># accept first-intial_last-name@ nuts.com</tt> <br />
<br />
<tt>kacang: anda@peanut</tt> <br />
<br />
<tt>tanah: andajuga@walnut</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># a mailing list</tt> <br />
<br />
<tt>admin: wars, root, anda@peanut , andajuga@walnut , fade2blac@pecan , sipoer</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>owner-admin: root</tt> <br />
<br />
<tt> </tt> <br />
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 <tt>postmaster@nuts.com</tt> akan dikirimkan ke user root dan begitupun dengan alias admin maka akan dikirim ke user <tt>wars, root, anda@peanut</tt> dan seterusnya. <br />
Untuk alias ini sendmail tidak langsung mengenal pada saat ada penambahan ataupun pengurangan data, untuk supaya dapat dikenal maka harus dilakukan perintah <tt>newaliases</tt> atau <tt>sendmail</tt> <tt>-bi</tt> oleh user root.<br />
<h3><a href="" name="SECTION02713200000000000000"> <i>Personal Mail Forwarding</i></a> </h3>Untuk <i>forwarding</i> ini selain dapat dilakukan oleh aliases juga dapat dilakukan dengan menambahkan file <tt>.forward</tt> pada direktori user masing-masing dan ini bisa dilakukan oleh user yang bersangkutan sementara untuk aliases hanya dapat dilakukan oleh <i>superuser</i> atau root, jadi apabila user ingin memindahkan alamat e-mailnya cukup dengan membuat p<i>ersonal mail forwarding</i> ini. Contoh user wars akan dipindahkan ke user wars yang ada di domain domain.com <br />
Berarti isi dari file <tt>.forward</tt> ini adalah : <br />
<tt>Wars@domain.com</tt> <br />
<br />
Apabila ada e-mail untuk user <tt>wars@nuts.com</tt> akan secara otomatis dikirim lagi ke user <br />
<tt>wars@domain.com</tt> <br />
<br />
Biasanya .forward ini digunakan untuk forwarding sementara. Dan semua konfigurasi untuk sendmail ini ditentukan oleh file <tt>/etc/sendmail.cf.</tt>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-11591333295102154992011-06-09T22:35:00.000-07:002011-06-09T22:35:25.419-07:00Server MailSudah menjadi fakta bahwa selama bertahun-tahun Sendmail merupakan <i>Mail Transfer Agent</i> (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 : <br />
<ul><li><i>MIME Buffer Overflow Bug</i>. 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 <i>buffer overflow</i>. Isu ini dapat dibaca di <br />
<tt>http://www.cert..org/advisories/CA-98.10.mime_buffer_overflows.html.</tt> </li>
<li><i>HELO Buffer overflow</i>. 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. </li>
</ul>Selain sendmail, banyak bermunculan beberapa <i>Mail Transfer Agent</i> sebagai alternatif. <tt>qmail</tt>, <tt>Exim</tt> dan <tt>Postfix</tt> merupakan mailer yang banyak digunakan. Bab ini akan membahas secara singkat, bagaimana mengkonfigurasikan dan menjalankan 2 MTA, yakni Sendmail dan qmail.<br />
<h1><a href="" name="SECTION02710000000000000000"> Sendmail</a> </h1>Sendmail adalah program yang mengimplementasikan kebutuhan umum fasilitas <i>mail routing</i> 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 : <br />
<br />
<ul><li>RFC821 <i>(Simple Mail Transport Protocol),</i> </li>
<li>RFC822 <i>(Internet Mail Headers Format),</i> </li>
<li>RFC1123 <i>(Internet Host Requirements),</i> </li>
<li>RFC2045 <i>(MIME),</i> </li>
<li>RFC1869 <i>(SMTP Service Extensions),</i> </li>
<li>RFC1652 <i>(SMTP 8BITMIME Extension),</i> </li>
<li>RFC1870 <i>(SMTP SIZE Extension),</i> </li>
<li>RFC1891 <i>(SMTP Delivery Status Notifications),</i> </li>
<li>RFC1892 <i>(Multipart/Report),</i> </li>
<li>RFC1893 <i>(Mail System Status Codes),</i> </li>
<li>RFC1894 <i>(Delivery Status Notifications),</i> </li>
<li>RFC1985 <i>(SMTP Service Extension for Remote Message Queue Starting),</i> </li>
<li>RFC2033 <i>(Local Message Transmission Protocol).</i> </li>
</ul>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 <tt>/etc/sendmail.cf</tt>). Hal ini menyulitkan pengguna biasa untuk mengkonfigurasikan secara manual. Meskipun demikian banyak program bantu (biasanya berupa skrip atau macro) yang memudahkan pengadministrasian sendmail. <br />
<br />
<h2><a href="" name="SECTION02711000000000000000"> Menjalankan sendmail sebagai Daemon.</a> </h2>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.<br />
<h3><a href="" name="SECTION02711100000000000000"> Slackware</a> </h3>Untuk menjalankan sendmail sebagai daemon di Slackware, skripnya dapat ditemukan di <tt>/etc/rc.d/rc.M.</tt> Secara keseluruhan, skrip tersebut menjalankan semua daemon pada modus multi user. Untuk skrip sendmail, dapat ditemukan di baris 54 <br />
<br />
<dl compact="compact"><dt> </dt>
<dd># Start the sendmail daemon:
if [ -x /usr/sbin/sendmail ]; then
echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -q15m)..."
/usr/sbin/sendmail -bd -q15m
</dd></dl>Pertama kali script diatas akan mengecek keberadaan program sendmail, jika ada maka akan dijalankan perintah dibawahnya jika tidak akan dilewatkan. Untuk pilihan <tt>-q</tt> adalah memberitahu sendmail berapa lama untuk memproses antrian mail. Contoh diatas adalah memproses setiap satu jam (<tt>-q1h</tt>). Contoh lain, misalnya diubah menjadi (<tt>-q30m</tt>) 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 <tt>-bd</tt> menunjukkan bahwa sendmail dijalankan sebagai daemon dan menunggu <i>(listen)</i> 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 <tt>-bd</tt> menunjukkan bahwa sendmail dijalankan sebagai daemon dan menunggu <i>(listen)</i> di port 25 (SMTP) TCP untuk mail yang datang.<br />
<h3><a href="" name="SECTION02711200000000000000"> SuSE</a> </h3>Skrip untuk menjalankan, mematikan, mengecek status dan merestart daemon sendmail di SuSE terletak di <tt>/etc/rc.d/init.d/sendmail</tt>. Berikut kutipannya : <br />
<tt>#! /bin/sh</tt> <br />
<br />
<tt># Copyright (c) 1996 S.u.S.E. Gmbh Fuerth, Germany. All rights</tt> <br />
<br />
<tt># reserved.</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># Author: Florian La Roche <florian@suse.de>, 1996, 1997</tt> <br />
<br />
<tt># Werner Fink <werner@suse.de>, 1996</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>. /etc/rc.config</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Determine the base and follow a runlevel link name.</tt> <br />
<br />
<tt>base=${0##*/}</tt> <br />
<br />
<tt>link=${base#*[SK][0-9][0-9]}</tt> <br />
<br />
<tt> </tt> <br />
<tt># Force execution if not called by a runlevel directory.</tt> <br />
<br />
<tt>test $link = $base && SMTP=yes</tt> <br />
<br />
<tt>test "$SMTP" = yes || exit 0</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>if test -z "$SENDMAIL_ARGS" ; then</tt> <br />
<br />
<tt> SENDMAIL_ARGS="-bd -q30m -om"</tt> <br />
<br />
<tt>fi</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># The echo return value for success (defined in /etc/rc.config).</tt> <br />
<br />
<tt>return=$rc_done</tt> <br />
<br />
<tt>case "$1" in</tt> <br />
<br />
<tt> start)</tt> <br />
<br />
<tt> echo -n "Initializing SMTP port. (sendmail)"</tt> <br />
<br />
<tt> startproc /usr/sbin/sendmail $SENDMAIL_ARGS || return=$rc_failed</tt> <br />
<br />
<tt> echo -e "$return"</tt> <br />
<br />
<tt> ;;</tt> <br />
<br />
<tt> stop)</tt> <br />
<br />
<tt> echo -n "Shutting down SMTP port:"</tt> <br />
<br />
<tt> killproc -TERM /usr/sbin/sendmail || return=$rc_failed</tt> <br />
<br />
<tt> echo -e "$return"</tt> <br />
<br />
<tt> ;;</tt> <br />
<br />
<tt> restart)</tt> <br />
<br />
<tt> $0 stop && $0 start || return=$rc_failed</tt> <br />
<br />
<tt> ;;</tt> <br />
<br />
<tt> reload)</tt> <br />
<br />
<tt> echo -n "Reload service sendmail"</tt> <br />
<br />
<tt> killproc -HUP /usr/sbin/sendmail || return=$rc_failed</tt> <br />
<br />
<tt> echo -e "$return"</tt> <br />
<br />
<tt> ;;</tt> <br />
<br />
<tt> status)</tt> <br />
<br />
<tt> echo -n "Checking for service sendmail: "</tt> <br />
<br />
<tt> checkproc /usr/sbin/sendmail && echo OK || echo No process</tt> <br />
<br />
<tt> ;;</tt> <br />
<br />
<tt> *)</tt> <br />
<br />
<tt> echo "Usage: $0 {start|stop|status|restart|reload}"</tt> <br />
<br />
<tt> exit 1</tt> <br />
<br />
<tt>esac</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Inform the caller not only verbosely and set an exit status.</tt> <br />
<br />
<tt>test "$return" = "$rc_done" || exit 1</tt> <br />
<br />
<tt>exit 0</tt> <br />
<br />
Untuk mengadministrasikannya, tersedia pilihan <tt>start, stop, status, restart, reload</tt>. Misalnya untuk melihat status sendmail : <br />
<tt># /etc/rc.d/init.d/sendmail status</tt><br />
<h3><a href="" name="SECTION02711300000000000000"> RedHat</a> </h3>RedHat memiliki skrip yang agak mirip dengan SuSE untuk menadministrasikan daemon sendmail. Skrip tersebut dapat ditemukan pula di <tt>/etc/rc.d/init.d/sendmail</tt>. <br />
<tt>#!/bin/sh</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># sendmail This shell script takes care of starting and stopping</tt> <br />
<br />
<tt># sendmail.</tt> <br />
<br />
<tt>#</tt> <br />
<br />
<tt># chkconfig: 2345 80 30</tt> <br />
<br />
<tt># description: Sendmail is a Mail Transport Agent, which is the</tt> <br />
<br />
<tt># program\</tt> <br />
<br />
<tt># that moves mail from one machine to another.</tt> <br />
<br />
<tt># processname: sendmail</tt> <br />
<br />
<tt># config: /etc/sendmail.cf</tt> <br />
<br />
<tt># pidfile: /var/run/sendmail.pid</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Source function library.</tt> <br />
<br />
<tt>. /etc/rc.d/init.d/functions</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Source networking configuration.</tt> <br />
<br />
<tt>. /etc/sysconfig/network</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># Source sendmail configureation.</tt> <br />
<br />
<tt>if [ -f /etc/sysconfig/sendmail ] ; then</tt> <br />
<br />
<tt> . /etc/sysconfig/sendmail</tt> <br />
<br />
<tt>else</tt> <br />
<br />
<tt> DAEMON=yes</tt> <br />
<br />
<tt> QUEUE=1h</tt> <br />
<br />
<tt>fi</tt> <br />
<br />
<br />
<blockquote> </blockquote><br />
<blockquote> </blockquote><tt># Check that networking is up.</tt> <br />
<tt>[ ${NETWORKING} = "no" ] && exit 0</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>[ -f /usr/sbin/sendmail ] || exit 0</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>RETVAL=0</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt># See how we were called.</tt> <br />
<br />
<tt>case "$1" in</tt> <br />
<br />
<tt> start)</tt> <br />
<br />
<tt> # Start daemons.</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt> echo -n "Starting sendmail: "</tt> <br />
<br />
<tt> /usr/bin/newaliases > /dev/null 2>&1</tt> <br />
<br />
<tt> for i in virtusertable access domaintable mailertable ; do</tt> <br />
<br />
<tt> if [ -f /etc/mail/$i ] ; then</tt> <br />
<br />
<tt> makemap hash /etc/mail/$i < /etc/mail/$i</tt> <br />
<br />
<tt> fi</tt> <br />
<br />
<tt> done</tt> <br />
<br />
<tt> daemon /usr/sbin/sendmail $([ "$DAEMON" = yes ] && echo -bd)\</tt> <br />
<br />
<tt> $([ -n "$QUEUE" ] && echo -q$QUEUE)</tt> <br />
<br />
<tt> RETVAL=$?</tt> <br />
<br />
<tt> echo</tt> <br />
<br />
<tt> [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sendmail</tt> <br />
<br />
<tt> ;;</tt> <br />
<br />
<tt> stop)</tt> <br />
<br />
<tt> # Stop daemons.</tt> <br />
<br />
<tt> echo -n "Shutting down sendmail: "</tt> <br />
<br />
<tt> killproc sendmail</tt> <br />
<br />
<tt> RETVAL=$?</tt> <br />
<br />
<tt> echo</tt> <br />
<br />
<tt> [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail</tt> <br />
<br />
<tt> ;;</tt> <br />
<br />
<tt> restart|reload)</tt> <br />
<br />
<tt> $0 stop</tt> <br />
<br />
<tt> $0 start</tt> <br />
<br />
<tt> RETVAL=$?</tt> <br />
<br />
<tt> ;;</tt> <br />
<br />
<tt> status)</tt> <br />
<br />
<tt> status sendmail</tt> <br />
<br />
<tt> RETVAL=$?</tt> <br />
<br />
<tt> ;;</tt> <br />
<br />
<tt> *)</tt> <br />
<br />
<tt> echo "Usage: sendmail {start|stop|restart|status}"</tt> <br />
<br />
<tt> exit 1</tt> <br />
<br />
<tt>esac</tt> <br />
<br />
<tt> </tt> <br />
<br />
<tt>exit $RETVAL</tt> <br />
<br />
<tt> </tt> <br />
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 : <br />
<tt># /etc/rc.d/init.d/sendmail stop</tt> <br />
<a href="" name="CHILD_LINKS"><strong></strong></a>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-71524478603787829642011-06-09T22:31:00.000-07:002011-06-09T22:31:34.701-07:00Binary Apache<h2><a href="http://www.blogger.com/post-create.g?blogID=4909984577060291944" name="SECTION02671000000000000000"> Binary Apache di Slackware</a> </h2>Binary Apache di Slackware terletak di diskset <tt>n9</tt>. 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. <br />
<tt># pkgtool</tt> <br />
Apache menyimpan semua program apache dalam satu direktori yakni <tt>/var/lib/apache</tt>. Direktori tersebut terdiri dari : <br />
<br />
<ol><li><tt>sbin</tt> <br />
Binary apache yang dapat dieksekusi. Terdiri dari <tt>apachectl, httpd, apxs</tt> dan <tt>ab.</tt> </li>
<li><tt>libexec</tt> <br />
Modul yang dibutuhkan oleh Apache </li>
<li><tt>include</tt> <br />
Library yang dibutuhkan untuk menjalankan Apache. </li>
<li><tt>cgi-bin</tt> <br />
Contoh skrip cgi yang dapat dieksekusi. Direktor ini juga dilink lewat definisi alias pada file httpd.conf </li>
<li><tt>conf</tt> <br />
Berisi file konfigurasi Apache. Termasuk di dalamnya <tt>httpd.conf, srm.conf</tt> dan <tt>access.conf</tt>. Slackware memusatkan file konfigurasi Apache dalam satu file, yakni <tt>httpd.conf</tt>, dan membiarkan <tt>srm.conf</tt> serta <tt>access.conf</tt> kosong. </li>
</ol>Untuk mengadministrasi Apache, cukup gunakan skrip <tt>apachectl</tt>. Penggunaannya adalah: <tt># /var/lib/apache/sbin/apachectl (start | stop | restart | configtest | help | fullstatus | status | graceful)</tt> <br />
Keterangan dalam tanda kurung merupakan pilihan, dijalankan tanpa tanda kurung. Misalnya : <br />
<tt># /var/lib/apache/sbin/apachectl start</tt> <br />
Keterangan dari masing masing pilihan : <br />
<br />
<ol><li><tt>start</tt> <br />
Mulai menjalankan httpd (daemon Apache) </li>
<li><tt>stop</tt> <br />
Menghentikan layanan httpd </li>
<li><tt>restart</tt> <br />
Restart httpd jika berjalan dengan mengirimkan SIGHUP atau menjalankan apache jika saat itu tidak aktif. </li>
<li><tt>fullstatus</tt> <br />
Melihat status apache secara lengkap, membutuhkan lynx dan mod_status enabled </li>
<li><tt>status</tt> <br />
Melihat status apache secara singkat, membutuhkan lynx dan mod_status enabled </li>
<li><tt>graceful</tt> <br />
Melakukan restart secara 'baik-baik' dengan mengirimkan SIGUSR1 atau menjalankan apache jika tidak aktif. </li>
<li><tt>configtest</tt> <br />
Mengetest sintaks dan parameter yang ditentukan di httpd.conf </li>
<li><tt>help</tt> <br />
Melihat pilihan-pilihan yang ada dan keterangannya.<br />
<h2><a href="http://www.blogger.com/post-create.g?blogID=4909984577060291944" name="SECTION02672000000000000000"> Binary Apache di SuSE</a> </h2>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. <br />
<tt># yast</tt> <br />
Pilih di bagian Choose/Install Packages. Jangan lupa untuk memasukkan CD SuSE jika sebelumnya anda instal lewat CDROM. <br />
Untuk file konfigurasinya, SuSE menempatkannya di direktori <tt>/etc/httpd</tt>. Sedangkan binarynya, yakni httpd, apxs dan ab, diletakkan di /usr/sbin. Program bantu untuk mengadministrasi Apache, yang juga bernama httpd, terletak di <tt>/usr/sbin/init.d</tt> . Untuk pengaturannya dapat menggunakan perintah : <br />
<tt>$ /usr/sbin/init.d/httpd |start|stop|restart|reload</tt><h2><a href="http://www.blogger.com/post-create.g?blogID=4909984577060291944" name="SECTION02673000000000000000"> Binary Apache di RedHat</a> </h2>Di RedHat, Apache merupakan salah satu daemon yang dapat diatur lewat LinuxConf. Untuk mengkonfigurasikan Apache, masuk ke bagian <tt>Config - Networking - Server Tasks - Apache</tt>. Untuk memahami menu-menu yang ditawarkan, akan lebih mudah Anda mengerti jika telah membaca bahasan file konfigurasi di bagian sebelumnya. Linuxconf menawarkan menu : <br />
</li>
<li><b>Defaults</b> Bagian ini berisi konfigurasi dasar yang akan mengubah sub bagian global Environment pada file httpd.conf. Pilihan-pilihan yang ada meliputi : <br />
<br />
<ol><li><i>Administrator Email</i> <br />
Alamat email yang disertakan pada setiap halaman yang berisi pesan kesalahan kepada pengakses. Biasanya webmaster@nama.domain.Anda </li>
<li><i>Domain IP Address</i> <br />
Jika Anda ingin beberapa virtual domain berbagi dalam satu alamat IP, masukkan IP tersebut disini. </li>
<li><i>ServerName</i> <br />
Nama Server. Pastikan memiliki nama DNS yang valid. </li>
<li><i>Server Alias</i> <br />
Biarkan kosong, tentukan dalah virtual domains. </li>
<li><i>Error Log, Transfer Log, Agent Log, Referer Log</i> <br />
Penentuan file log </li>
<li><i>Script Alias</i> <br />
Direktori alias tempat program CGI diletakkan (pada direktori yang bisa dieksekusi) </li>
<li><i>User, Group</i> <br />
Nama user dan group untuk menjalankan Apache Server. </li>
</ol></li>
<li><b>Virtual Domains</b> Mendefinisikan virtual domains. <br />
</li>
<li><b>Sub Directory Specs</b> <br />
Mendefinisikan alias untuk direktori yang akan dipublikasikan. </li>
<li><b>Files Specs</b> </li>
<li><b>Modules</b> <br />
Modul-modul yang aktif, dan daftar modul yang telah didukung. </li>
<li><b>Performance</b> <br />
Menentukan alias untuk menampilkan kemampuan server, serta status server. </li>
<li><b>Mod_ssl configuration</b> <br />
Konfigurasi SSL jika mod_ssl diaktifkan. </li>
</ol>Selesai mengkonfigurasikan lewat LinuxConf, dan Anda klik <tt>Accept</tt> untuk <i>update to Curent State</i>, maka semua perubahan akan disimpan ke dalam file <tt>httpd.conf</tt>, dan daemon httpd akan direstart dengan menggunakan konfigurasi baruKHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-15431325863257337942011-06-09T22:28:00.000-07:002011-06-09T22:28:24.472-07:00Program Bantu ApacheSelain binary httpd, apache memiliki 2 program bantu :<br />
<h2><a href="" name="SECTION02661000000000000000"> apxs (Apache Extension Tool)</a> </h2>Adalah program bantu untuk membangun dan menginstal modul-modul tambahan untuk apache HTTP server. <tt>Apxs</tt> melakukannya dengan membangun <i>Dynamic Shared Object (DSO)</i> dari satu sumber atau lebih sehingga dapat dimuatkan pada Apache server lewat paramater <tt>LoadModule</tt> dari modul <tt>mod_so</tt> (lihat bagian modul Apache yang telah dibahas sebelumnya). Misalnya untuk menambahkan modul foo <tt>(mod_foo.c)</tt>, cukup ketikkan : <br />
<tt>$ apxs -i -a -c mod_foo.c</tt> <br />
Pilihan <tt>-i</tt> berarti menginstal, <tt>-a</tt> adalah otomatis menjalankan modul, <tt>-c</tt> berarti kompilasi pada saat instalasi. Untuk pilihan-pilihannya secara lengkap, tersedia dalam manual apxs. <br />
<tt>$ man apxs</tt><br />
<h2><a href="" name="SECTION02662000000000000000"> ab (Apache HTTP Server Benchmarking Tools)</a> </h2>Adalah program bantu untuk melakukan benchmarking terhadap <i>Hyper Text Transfer Protocol (HTTP)</i> server. Program ini terutama menunjukkan berapa banyak permintaan yang dapat dilayani oleh apache pada satu waktu. Contoh : <br />
<tt>$ ab -k -n 900 -w benchmark.html http://localhost:80</tt> <br />
Pilihan <tt>-k</tt> berarti mengaktifkan fitur <i>KeepAlive</i> (misal satu PID diakses oleh beberapa permintaan), <tt>-n</tt> adalah jumlah permintaan yang akan ditest, <tt>-w</tt> menuliskan output ke dalam sebuah file html, dan <tt>http://localhost:80</tt> menunjukkan alamat site yang akan ditest dan port yang dipergunakan. <br />
<tt> </tt>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-84997078489536689242011-06-09T22:27:00.000-07:002011-06-09T22:27:05.027-07:00KONFIGURASI APACHE<h1><a href="" name="SECTION02650000000000000000"> </a> </h1>File konfigurasi Apache terletak di direktori <tt>/var/apache/conf</tt> (atau <tt>PREFIX/conf</tt>, tergantung direktori yang Anda set saat configure Apache ditahap instalasi) atau <tt>/var/lib/apache/conf</tt> jika Anda instal lewat binary Slackware. Nama filenya adalah <tt>httpd.conf, srm.conf</tt> dan <tt>access.conf.</tt> <br />
<tt>httpd.conf</tt> merupakan file yang dieksekusi pertama kali saat Apache dijalankan. Didalamnya berisi konfigurasi secara umum. <tt>srm.conf</tt> adalah file konfigurasi yang dieksekusi setelah <tt>httpd.conf</tt>. Disarankan untuk membiarkan file konfigurasi ini tetap kosong. Dan <tt>access.conf</tt> merupakan konfigurasi untuk memfilter host-host yang boleh mengakses layanan Apache.<br />
<h2><a href="" name="SECTION02651000000000000000"> File Konfigurasi Apache</a> </h2>Secara default, Apache memisahkan file konfigurasinya menjadi 3 bagian, yakni httpd.conf, <tt>srm.conf</tt> dan <tt>access.conf</tt>. 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 : <br />
<br />
<ol><li><b>Global environment</b> Berisi konfigurasi Apache secara umum, seperti berapa banyak user dapat mengakses pada saat yang bersamaan. <br />
</li>
<li><b>Section (Main) Configuration</b> Konfigurasi utama yang tidak termasuk dalam virtual host. Bagian ini juga termasuk seting default untuk virtual host. <br />
</li>
<li><b>Virtual host</b> Konfigurasi untuk virtual host, yakni memanggil nomor IP dan DNS yang berbeda meskipun masih dalam satu administrasi oleh Apache. <br />
</li>
</ol>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.<br />
<h2><a href="" name="SECTION02652000000000000000"> Global Environment</a> </h2><br />
<dl compact="compact"><dt> </dt>
<dd>ServerType [standalone/inetd] </dd></dl>Pilihan untuk menentukan apakah menjalankan Apache sebagai http daemon sendiri atau lewat inetd. Pilihan inetd hanya untuk platform Unix. <br />
<dl compact="compact"><dt> </dt>
<dd>ServerRoot "/var/lib/apache" </dd></dl>Direktori utama di mana file konfigurasi, dan log diletakkan. <br />
<dl compact="compact"><dt> </dt>
<dd>LockFile /var/run/httpd.lock </dd></dl>Direktori untuk lock file. Disarankan menyimpannya dalam direktori lokal. <br />
<dl compact="compact"><dt> </dt>
<dd>PidFile /var/run/httpd.pid </dd></dl>File yang dipergunakan server untuk merekam nomor identifikasi proses (pid) saat apache dijalankan. <br />
<dl compact="compact"><dt> </dt>
<dd>ScoreBoardFile /var/run/httpd.scoreboard </dd></dl>File yang dipergunakan untuk merekam informasi internal dari proses server. <br />
<dl compact="compact"><dt> </dt>
<dd>ResourceConfig conf/srm.conf AccessConfig conf/access.conf </dd></dl>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 <tt>/dev/null</tt> jika ingin Apache mengabaikan dua file tersebut. <br />
<dl compact="compact"><dt> </dt>
<dd>Timeout 300 </dd></dl>Jumlah detik sebelum server mengeluarkan pesan time out. <br />
<dl compact="compact"><dt> </dt>
<dd>KeepAlive On </dd></dl>Untuk menentukan apakah server memperbolehkan lebih dari satu permintaan dalam satu koneksi. Untuk non-aktif, isikan Off. <br />
<dl compact="compact"><dt> </dt>
<dd>MaxKeepAliveRequests 100 </dd></dl>Jumlah maksimum permintaan yang diperbolehkan dalam satu koneksi yang bersamaan. Nilai 0 bernilai tak terhingga. <br />
<dl compact="compact"><dt> </dt>
<dd>KeepAliveTimeout 15 </dd></dl>Jumlah detik untuk menunggu permintaan berikutnya dari klien yang sama dan koneksi yang bersamaan. <br />
<dl compact="compact"><dt> </dt>
<dd>MinSpareServers 5 MaxSpareServers 10 </dd></dl>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 <tt>MinspareServer</tt>, maka apache akan membuat spare baru. Begitu pula sebaliknya, jika lebih besar dari nilai <tt>MaxSpareServer</tt> maka beberapa spare akan dimatikan. Nilai default sudah cukup memadai untuk kebanyakan server. <br />
<dl compact="compact"><dt> </dt>
<dd>StartServers 5 </dd></dl>Jumlah server yang berjalan saat diaktifkan. <br />
<dl compact="compact"><dt> </dt>
<dd>MaxClients 150 </dd></dl>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. <br />
<dl compact="compact"><dt> </dt>
<dd>MaxRequestsPerChild 30 </dd></dl>Jumlah permintaan maksimal untuk mempergunakan <i>child process</i>. <br />
<blockquote> Catatan : </blockquote><br />
<blockquote><i>Child process</i> adalah proses yang muncul karena ada proses di atasnya. Jika proses di atasnya mati, maka <i>child process</i> ikut mati. Di sistem Unix, proses dijalankan dengan berjenjang, dan puncak segala proses adalah init. </blockquote><dl compact="compact"><dt> </dt>
<dd>Listen 3000 Listen 12.34.56.78:80 </dd></dl>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). <br />
<dl compact="compact"><dt> </dt>
<dd>BindAddress * </dd></dl>Dukungan Virtual hosts dengan memerintahkan Apache untuk mengikat beberapa alamat. Pilihan ini bisa diisi * , alamat IP atau nama domain internet yang memenuhi syarat. <br />
<dl compact="compact"><dd>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
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 </dd></dl>Agar DSO dapat berjalan dengan maksimal (Baca tentang <i>Dynamic Shared Object</i> di sub bab sebelumnya), Anda harus tempatkan modul sehingga mereka dijalankan secara urut. <br />
<dl compact="compact"><dt> </dt>
<dd>ClearModuleList </dd></dl>Bagian ini merupakan rekonstruksi dari modul yang dijalankan sebelumnya. Jika Anda mengganti urutan atau entri pada bagian sebelumnya, Anda juga harus mengupdate bagian ini. <br />
<dl compact="compact"><dt> </dt>
<dd>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
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_so.c
AddModule mod_setenvif.c </dd></dl> ExtendedStatus On Pilihan untuk menampilkan informasi status server lebih banyak. Jika diset Off, maka informasi status menjadi standar. <br />
<dl compact="compact"><dt> </dt>
<dd>'Main' server configuration </dd></dl>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. <br />
<br />
<dl compact="compact"><dt> </dt>
<dd>Port 80 </dd></dl>Port yang dipergunakan oleh server. Jika menggunakan port 1023, jalankan httpd sebagai root. <br />
<dl compact="compact"><dt> </dt>
<dd>User nobody Group nogroup </dd></dl>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. <br />
<dl compact="compact"><dt> </dt>
<dd>ServerAdmin root@domain.Anda.com </dd></dl>Alamat yang dipergunakan untuk mengirim/memberitahukan halaman-halaman yang dibuat secara otomatis oleh server. Misalnya, pesan-pesan kesalahan. <br />
<dl compact="compact"><dt> </dt>
<dd>ServerName domain.anda.com </dd></dl>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 <br />
<dl compact="compact"><dt> </dt>
<dd>DocumentRoot "/var/lib/apache/htdocs" </dd></dl>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. <br />
<br />
<dl compact="compact"><dt> </dt>
<dd><Directory /> Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/lib/apache/htdocs">
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory> </dd></dl><blockquote></blockquote><dl compact="compact"><dd>UserDir public_html </dd></dl>Nama direktori yang ditambahkan ke dalam direktori home dari user, jika ada permintaan <tt>user</tt>. Misal, permintaan <tt>http://nama.domain.anda/fade</tt> akan membuat direktori <tt>public_html</tt> di direktori home untuk user fade. Anda dapat memberikan seting secara default dari direktori tersebut, misalnya : <br />
<dl compact="compact"><dt> </dt>
<dd><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>
Order deny,allow
Deny from all
</Limit>
</Directory> </dd></dl>Kesulitan dalam penerapan direktori ini biasanya adalah <i>Access Forbidden</i> atau <i>User not Found.</i> Untuk itu pastikan bahwa : <br />
<ol><li>User yang bersangkutan terdaftar dalam sistem </li>
<li>Pemilik daemon httpd punya hak baca terhadap direktori tersebut. </li>
<li>Perhatikan konfigurasi file .htaccess yang ada di tiap direktori. </li>
</ol><dl compact="compact"><dt> </dt>
<dd>DirectoryIndex index.html index.htm default.htm </dd></dl>Nama file yang dijalankan secara otomatis pada saat membuka indeks direktori. Anda dapat memasukkan nama lain dengan spasi, sebagaimana contoh di atas. <br />
<dl compact="compact"><dt> </dt>
<dd>AccessFileName .htaccess </dd></dl>Nama file yang dilihat saat mengakses masing-masing direktori. File ini untuk informasi kontrol akses. Hal ini berkaitan dengan pilihan berikut : <br />
<dl compact="compact"><dt> </dt>
<dd><Files .htaccess> Order allow,deny
Deny from all
</Files> </dd></dl>Pilihan tersebut menghindarkan file <tt>.htaccess</tt> 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 <tt>AccessFileName</tt> yang telah didefinisikan sebelumnya. <br />
<dl compact="compact"><dt> </dt>
<dd>CacheNegotiatedDocs </dd></dl>Memungkinkan proxy untuk menyimpan cache web dari server. Jika Anda menghilangkan pilihan ini (dengan memberi tanda pagar di depannya, maka Apache akan mengirim <tt>'Pragma: no-cache'</tt> pada setiap dokumen yang diakses. Hal ini berarti jika user mengakses lewat proxy, maka Apache meminta proxy tersebut untuk tidak melakukan caching terhadap halamannya. <br />
<dl compact="compact"><dt> </dt>
<dd>UseCanonicalName On </dd></dl>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. <br />
<dl compact="compact"><dt> </dt>
<dd>TypesConfig /var/lib/apache/conf/mime.types </dd></dl>Direktori tempat menyimpan file mime.types. <br />
<dl compact="compact"><dt> </dt>
<dd>DefaultType text/plain </dd></dl>Default MIME types yang digunakan jika sebuah dokumen tidak dikenal. Disarankan untuk menggunakan <tt>'text/plain'</tt> jika mayoritas file html atau teks. Jika mayoritas gambar atau aplikasi, disarankan untuk menggunakan <tt>'application/octet-stream'</tt> <br />
<dl compact="compact"><dt> </dt>
<dd><IfModule mod_mime_magic.c> MIMEMagicFile /var/lib/apache/conf/magic
</IfModule> </dd></dl>modul <tt>mod_mime_magic</tt> 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 <tt>mod_mime_magic</tt> tidak secara default menjadi bagian kompilasi. Anda harus menambahkan sendiri (lihat bagian <i>DSO, Dynamic Shared Object</i>) dan mengkompilasi ulang. Jika modul tersebut tidak ada, maka MIMEMagicFile tidak akan memproses pilihan ini. <br />
<dl compact="compact"><dt> </dt>
<dd>HostnameLookups Off </dd></dl>Log dari nama klien yang mengakses atau alamat IP-nya saja. Jika diset on maka log akan mencatat misalnya <tt>www.apache.org</tt>, 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. <br />
<dl compact="compact"><dt> </dt>
<dd>ErrorLog /var/log/error_log </dd></dl>Letak file log error. Untuk <tt><VirtualHost></tt> jika Anda tidak mendefinisikan file log error, maka setiap error di <tt><VirtualHost></tt> tersebut akan dilog di sini juga. <br />
<dl compact="compact"><dt> </dt>
<dd>LogLevel warn </dd></dl>Jumlah pesan kesalahan yang dicatat di error_log. Nilai yang dimasukkan adalah <i>debug, info, notice, warn, error, crit, aler, emerg</i> <br />
<dl compact="compact"><dt> </dt>
<dd>LogFormat "%h %l %u %t\"%r\" %>s %b" common </dd></dl>Format dari pesan yang dicatat dalam file log. <br />
<dl compact="compact"><dt> </dt>
<dd>CustomLog /var/log/access_log common </dd></dl>Letak file log akses. Jika dalam <tt><VirtualHost></tt> Anda tidak mendefinisikan letak file log akses, maka aktivitas akses dari <tt><VirtualHost></tt> akan dicatat di sini pula. <br />
<dl compact="compact"><dt> </dt>
<dd>CustomLog /var/log/referer_log referer CustomLog /var/log/agent_log agent
CustomLog /var/log/access_log combined </dd></dl>Dipergunakan untuk menentukan file log yang berbeda. <i>Combined</i> berarti kombinasi antara <i>log referer</i> dan <i>log user agent</i>. <br />
<dl compact="compact"><dt> </dt>
<dd>ServerSignature On </dd></dl>Menambahkan satu baris yang berisi versi Apache server yang digunakan dan nama <i>virtual host</i> pada setiap halaman yang dibuat oleh server. Misalnya dokumen <i>error</i>, daftar direktori FTP, dll). Pilihan yang berlaku di sini adalah <i>On, Off</i> atau Email untuk mengirim email kepada <tt>ServerAdmin</tt>. <br />
<dl compact="compact"><dt> </dt>
<dd>Alias /icons/ "/var/lib/apache/icons/" </dd></dl>Memberikan alias sebanyak mungkin yang Anda inginkan. Formatnya adalah : <br />
<dl compact="compact"><dt> </dt>
<dd>Alias namasamaran namaasli </dd></dl>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 : <br />
<dl compact="compact"><dt> </dt>
<dd>Alias /fade "/home/fade/publik" </dd></dl>Maka user bisa mengaksesnya dengan alamat <tt>http://nama.domain.anda/fade</tt> dan langsung menuju direktori <tt>/home/fade/publik</tt>. Setiap alias yang didefinisikan harus diberikan atribut terhadap direktorinya. Misalnya untuk alias di atas diberikan atribut : <br />
<dl compact="compact"><dt> </dt>
<dd><Directory "/home/fade/publik"> Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory> </dd></dl>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 : <br />
<dl compact="compact"><dt> </dt>
<dd>ScriptAlias /cgi-bin/ "/var/lib/apache/cgi-bin/" <Directory "/var/lib/apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory> </dd></dl><blockquote> </blockquote><dl compact="compact"><dt> </dt>
<dd>Redirect nama.domain.lama nama.domain.baru </dd></dl>Pilihan di atas untuk mengarahkan klien yang mengakses file atau direktori yang sebelumnya ada di server, namun dihapus atau dipindahkan. <br />
<dl compact="compact"><dt> </dt>
<dd>IndexOptions FancyIndexing </dd></dl>Pilihan ini untuk menentukan tampilan pada saat indeks direktori diakses oleh user. Pilihan yang ada adalah <tt>FancyIndexing</tt> dan <tt>StandardIndexing.</tt> <br />
<dl compact="compact"><dt> </dt>
<dd>AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/* </dd></dl>Pilihan di atas untuk menentukan file icon terhadap jenis file yang ada dalam daftar direktori. Ini hanya berlaku terhadap pilihan <tt>FancyIndexing</tt>. Anda bisa membuat variasi sebanyak mungkin dari tipe file yang ada dalam direktori Anda. <br />
<dl compact="compact"><dt> </dt>
<dd>DefaultIcon /icons/unknown.gif </dd></dl>Dipergunakan untuk icon tipe file yang tidak dikenal, atau tidak didefinisikan sebelumnya. <br />
<dl compact="compact"><dt> </dt>
<dd>AddDescription "GZIP compressed document" .gz </dd></dl>Memberikan deskripsi dari masing masing tipe file yang ditampilkan. Pilihan ini hanya berlaku untuk <tt>FancyIndexing.</tt> <br />
<dl compact="compact"><dt> </dt>
<dd>ReadmeName README </dd></dl>Nama file README yang dimasukkan terhadap semua direktori yang diindeks. <br />
<dl compact="compact"><dt> </dt>
<dd>HeaderName HEADER </dd></dl>Nama file yang dimasukkan pula dalam direktori yang diindeks. Server pertama kali akan membaca <tt>HEADER.html</tt>, jika tidak ditemukan, maka akan mencari <tt>HEADER.txt</tt>, dan memasukkannya dalam format plaintext. <br />
<dl compact="compact"><dt> </dt>
<dd>IndexIgnore .??* * *# HEADER* README* RCS CVS *,v *,t </dd></dl>Nama file yang diabaikan pada saat listing direktori. Penggunaan <i>wildcard</i> diperbolehkan. File-file ini tidak akan terlihat saat direktorinya diindeks/dilisting. <br />
<dl compact="compact"><dt> </dt>
<dd>AddEncoding x-gzip gz </dd></dl>Memungkinkan browser tertentu (Mosaic/X 2.1+) melakukan dekompresi langsung lewat browser. <br />
<dl compact="compact"><dt> </dt>
<dd>AddLanguage en .en </dd></dl>Menentukan bahasa dari dokumen. Anda dapat memberikan browser file dengan bahasa yang dimengerti oleh browser. Sebagai catatan, bahwa Anda dapat mendefinisikan sendiri bahasa yang dipergunakan. Misal : <tt>AddLanguage id .in</tt> <br />
<dl compact="compact"><dt> </dt>
<dd>LanguagePriority en fr de </dd></dl>Prioritas bahasa yang dipergunakan. <br />
<dl compact="compact"><dt> </dt>
<dd>AddType application/x-httpd-php3 .php3 </dd></dl>Dipergunakan untuk membuka file dengan memasukkan dalam <i>mime.types</i> tanpa harus mengeditnya. Yang sering digunakan misalnya untuk memproses modul php, sebagaimana contoh diatas. <br />
<dl compact="compact"><dt> </dt>
<dd>AddHandler cgi-script .cgi </dd></dl>Dipergunakan untuk memetakan 'handlers' yang dipergunakan dan perintah yang dijalankan pada file dengan ekstensi tertentu. Contoh di atas untuk menjalankan skrip dengan ekstensi <tt>.cgi.</tt> Contoh lainnya adalah : <br />
<dl compact="compact"><dt> </dt>
<dd>AddHandler server-parsed .shtml AddHandler send-as-is asis
AddHandler imap-file map
AddHandler type-map var </dd></dl><blockquote> </blockquote><dl compact="compact"><dt> </dt>
<dd>Action handler-name /cgi-script/location </dd></dl>Dipergunakan untuk mendefinisikan <i>'handler'</i> yang dipergunakan atau perintah yang dijalankan untuk memproses pada ekstensi file yang didefinisikan sebelumnya. Biasanya digunakan untuk skrip cgi. Bentuk lain dari pilihan ini : <br />
<dl compact="compact"><dt> </dt>
<dd>Action media/type /cgi-script/location </dd></dl><blockquote> </blockquote><dl compact="compact"><dt> </dt>
<dd>MetaDir .web </dd></dl>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 <tt>MetaSuffix</tt> untuk mendefinisikan file meta yang akan dilampirkan. Contoh : <br />
<dl compact="compact"><dt> </dt>
<dd>MetaSuffix .meta </dd></dl><blockquote> </blockquote><dl compact="compact"><dt> </dt>
<dd>ErrorDocument 404 /missing.html </dd></dl>Dipergunakan untuk membuat file error response sendiri. Respon ini mempunyai tiga bentuk : <br />
<ul><li>Teks murni; misal <tt>ErrorDocument 404 "File yang Anda akses tidak tersedia.</tt> <br />
</li>
<li>Menunjuk file lokal; misal <tt>ErrorDocument 404 /cgi-bin/missing_handler.pl</tt> <br />
</li>
<li>Menunjuk file eksternal <tt>ErrorDocument 402 http://server.lain.com/info_daftar.html</tt> <br />
</li>
</ul><blockquote> </blockquote><dl compact="compact"><dt> </dt>
<dd>BrowserMatch "Mozilla/2" nokeepalive </dd></dl>Pilihan <tt>BrowserMatch</tt> memberikan environment khusus berdasarkan <i>header browser</i> yang mengakses. Dalam contoh di atas, jika browser yang digunakan adalah Netscape 2.x akan dimatikan fasilitas <i>keepalive</i>-nya. <br />
<dl compact="compact"><dt> </dt>
<dd><Location /server-status> SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.1.1
</Location> </dd></dl>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 : <br />
<dl compact="compact"><dt> </dt>
<dd>http://nama.server/server-status. </dd></dl>Dengan fasilitas sejenis, Anda dapat mengaktifkan laporan konfigurasi server dengan memasukkan pilihan di bawah ini : <br />
<dl compact="compact"><dt> </dt>
<dd><Location /server-info> SetHandler server-info
Order deny,allow
Deny from all
Allow from .your_domain.com
</Location> </dd></dl><blockquote> </blockquote><dl compact="compact"><dt> </dt>
<dd><Location /cgi-bin/phf*> Deny from all
ErrorDocument 403 http://nama.domain.Anda/phf_abuse_log.cgi
</Location> </dd></dl>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 <tt>support/phf_abuse_log.cgi</tt> dengan mencatat setiap klien yang mencoba skrip bug tersebut. Apache dapat dimanfaatkan sebagai proxy, berdasarkan modul <tt>mod_proxy.c</tt> yang dikompilasi saat instalasi. Untuk mengaktifkannya masukkan pilihan berikut: <br />
<br />
<dl compact="compact"><dt> </dt>
<dd><IfModule mod_proxy.c> ProxyRequests On
<Directory proxy:*>
Order deny,allow
Deny from all
Allow from .nama.domain.Anda
</Directory> </dd></dl>Untuk mengaktifkan atau memblok klien yang menggunakan proxy dengan header HTTP/1.1 "Via:" <br />
<dl compact="compact"><dt> </dt>
<dd>ProxyVia On </dd></dl>Pilihannya adalah <tt>Off | On | Full | Block</tt>. Selain itu, Apache juga mendukung <i>caching</i> terhadap halaman-halaman yang diakses lewat proxynya. Untuk mengaktifkan dan mengkonfigurasikan, tambahkan pilihan berikut : <br />
<dl compact="compact"><dt> </dt>
<dd>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> </dd></dl><h2><a href="" name="SECTION02653000000000000000"> Virtual Hosts</a> </h2>Bagian ini berisi pilihan jika Anda akan menggunakan domain atau <i>hostnames</i> lebih dari satu dalam satu server. <br />
Untuk dapat memanfaatkan <i>Virtual Hosts</i>, pertama Anda harus mendefinisikan dulu nomor IP dan port yang dipergunakan, minimal satu. Contoh : <br />
<br />
<dl compact="compact"><dt> </dt>
<dd>NameVirtualHost 192.168.1.2:80 NameVirtualHost 192.168.1.3 </dd></dl>Contoh konfigurasi <i>Virtual Hosts</i> dapat dilihat sebagai berikut : <br />
<dl compact="compact"><dt> </dt>
<dd><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>
<h3><a href="" name="SECTION02654100000000000000"> AllowOverride</a> </h3>Dalam mengakses setiap file dalam direktori, apache membaca file akses yang telah ditentukan sebelumnya. File akses tersebut berada dalam tiap direktori. Atribut <tt>AllowOverride</tt> mengesampingkan hal itu.
<ol><li><tt>AllowOverride</tt> <br />
diikuti dengan None (berarti mengesampingkan semua file akses) atau All (menggunakan semua parameter) atau parameter pilihan berikut : </li>
<li><tt>AuthConfig</tt> <br />
Memungkinkan penggunaan parameter-parameter lain yang berkaitan dengan autentikasi. Misalnya; <tt>AuthName, AuthType</tt> dll. </li>
<li><tt>FileInfo</tt> <br />
Memungkinkan penggunaan parameter-parameter lain yang berkaitan dengan kontrol terhadap tipe dokumen. Misalnya; <tt>AddType, DefaultType</tt> dll. </li>
<li><tt>Indexing</tt> <br />
Memungkinkan penggunaan parameter-parameter lain yang berkaitan dengan indeks direktori. Misal; <tt>DefaultIcon, FancyIndexing</tt> dll. </li>
<li><tt>Limit</tt> <br />
Memungkinkan penggunaan parameter-parameter tentang akses file <tt>(allow, deny dan order)</tt> </li>
<li><tt>Options</tt> <br />
Memungkinkan penggunaan parameter yang mengontrol direktori khusus. Misal; <tt>Option</tt><h3><a href="" name="SECTION02654200000000000000"> Options</a> </h3>Atribut ini mengontrol fitur yang ditawarkan tiap direktori. Atribut option diikuti oleh : <br />
</li>
<li><tt>All</tt> <br />
Semua pilihan, kecuali untuk MultiView. </li>
<li><tt>ExecCGI</tt> <br />
Diperbolehkan mengeksekusi CGI. </li>
<li><tt>FollowSymLinks</tt> <br />
Server akan mengikuti link simbolik pada direktori yang bersangkutan. Mengikuti link simbolik tidak akan merubah nama tujuan (path name) URL-nya. </li>
<li><tt>Includes</tt> <br />
Diperbolehkan Server-side includes. Misalnya eksekusi skrip perl. </li>
<li><tt>IncludesNOEXEC</tt> <br />
Server-side includes diperbolehkan, tapi perintah #exec dan #include atas skrip CGI tidak diperbolehkan. </li>
<li><tt>Indexes</tt> <br />
Jika sebuah file mengakses sebuah direktori yang tidak mempunyai DirectoryIndex (misalnya, index.html) maka server akan menampilkan listing file dalam direktori yang bersangkutan. </li>
<li><tt>MultiViews</tt> <br />
MultiViews terhadap isi diperbolehkan. </li>
<li><tt>SymLinksIfOwnerMatch</tt> <br />
Server hanya akan mengikuti Symlinks jika yang mengakses adalah pemilik direktori atau file yang bersangkutan. </li>
</ol><ol><li><tt> </tt> </li>
</ol></dd></dl>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0tag:blogger.com,1999:blog-4909984577060291944.post-85089713913250810422011-06-09T22:20:00.001-07:002011-06-09T22:20:47.854-07:00APACHE<h1><a href="" name="SECTION02630000000000000000"> </a> </h1>Apache dikompilasi dengan memasukkan modul-modulnya sebagai bagian dari file binary. Modul-modul tersebut yang mendukung fitur-fitur yang ditawarkan oleh Apache. Misalnya <tt>mod_auth</tt> yang mendukung otentikasi teks murni. Modul yang disediakan oleh Apache secara default adalah : <br />
<br />
<ol><li><b>Pembuatan environment</b> <tt>(+)mod_env</tt> Pembuatan variabel environment untuk skrip CGI/SSI <br />
<tt>(+)mod_setenvif</tt> Pembuatan variabel environment berdasarkan header HTTP <br />
<tt>(-)mod_unique_id</tt> Pembuatan pengenal khusus untuk permintaan <i>Content Type Decision</i> <br />
<tt>(+)mod_mime</tt>Penentuan tipe isi/encoding <i>(configured)</i> <br />
<tt>(-)mod_mime_magic</tt> Penentuan tipe isi (otomatis) <br />
<tt>(+)mod_negotiation</tt> Penentuan pemilihan berdasarkan <i>the HTTP Accept* headers URL mapping</i> <br />
<tt>(+)mod_alias</tt> Penerjemahan dan penerusan URL sederhana <br />
<tt>(-)mod_rewrite</tt> Penerjemahan dan penerusan URL tingkat lanjut <br />
<tt>(+)mod_userdir</tt> Pemilihan direktori sumber berdasarkan nama user <br />
<tt>(-)mod_speling</tt> Mengoreksi URL salah eja. <br />
</li>
<li><b>Pengaturan direktori</b> <tt>(+)mod_dir</tt> Pengaturan direktori dan direktori default file <br />
<tt>(+)mod_autoindex</tt> Kontrol akses terhadap pembuatan direktori file indeks secara otomatis. <br />
<tt>(+)mod_access</tt> Kontrol akses <i>(user, host, jaringan)</i> <br />
<tt>(+)mod_auth</tt> Autentikasi dasar HTTP <i>(user, passwd)</i> <br />
<tt>(-)mod_auth_dbm</tt> Autentikasi dasar HTTP lewat file <i>Unix NDBM.</i> <br />
<tt>(-)mod_auth_db</tt> Autentikasi dasar HTTP lewat file <i>Berkeley-DB</i> <br />
<tt>(-)mod_auth_anon</tt> Autentikasi dasar HTTP untuk user <i>anonymous</i> <br />
<tt>(-)mod_digest</tt> Autentikasi HTTP Digest Autentikasi HTTP response <br />
<tt>(-)mod_headers</tt> Respon header HTTP secara acak (configured) <br />
<tt>(-)mod_cern_meta</tt> Respon header HTTP secara acak <i>(CERN-style files)</i> <br />
<tt>(-)mod_expires</tt> Respon HTTP yang lewat jangka waktu <br />
<tt>(+)mod_asis</tt> Skripting respon HTTP mentah <br />
<tt>(+)mod_include</tt> Dukungan <i>Server Side Includes (SSI)</i> <br />
<tt>(+)mod_cgi</tt> Dukungan <i>Common Gateway Interface (CGI)</i> <br />
<tt>(+)mod_actions</tt> Memetakan skrip CGI untuk berjalan sebagai <i>internal 'handlers'</i> <br />
</li>
<li><b>Pengaturan</b> <b><i>content internal</i></b> <tt>(+)mod_status</tt> Pengaturan <i>content</i> untuk status <i>server run-time</i> <br />
<tt>(-)mod_info</tt> Pengaturan <i>content</i> untuk info singkat konfigurasi server <br />
</li>
<li><b>Pencatatan akses</b> <br />
<ul><li>[<tt>(+)mod_log_config</tt>]Pencatatan akses yang dapat diatur sesuai keinginan </li>
<li>[<tt>(-)mod_log_agent</tt>]Pencatatan <i>HTTP</i> <i>User-Agent khusus (deprecated)</i> </li>
<li>[<tt>(-)mod_log_refer</tt>]Pencatatan <i>HTTP Referrer khusus(deprecated)</i> </li>
<li>[<tt>(-)mod_usertrack</tt>]Pencatatan atas <i>user click-trails</i> lewat <i>cookie HTTP</i> </li>
</ul></li>
<li><b>Lain-lain</b> <br />
<ul><li>[<tt>(+)mod_imap</tt>]Dukungan <i>Server-side Image Map</i> </li>
<li>[<tt>(-)mod_proxy</tt>]<i>Caching Modul Proxy (HTTP, HTTPS, FTP)</i> </li>
<li>[<tt>(-)mod_so</tt>]<i>Dynamic</i> <i>Shared Object (DSO) bootstrapping</i> </li>
</ul></li>
<li><b>Experimental</b> <br />
<ul><li>[<tt>(-)mod_mmap_static</tt>]Caching halaman yang sering diminta lewat <tt>mmap()</tt> </li>
</ul></li>
<li><b>Pengembangan</b> <br />
<ul><li>[<tt>(-)mod_example</tt>]Demonstrasi <i>Apache API demonstration (developers only)</i> </li>
</ul>(+) = tersedia secara default [menghilangkannya dengan <tt>-disable-module</tt>] (-) = tidak tersedia secara default [mengaktifkannya dengan <tt>-enable-module</tt>] </li>
</ol>KHUSNUL'13http://www.blogger.com/profile/14089675206146620920noreply@blogger.com0