Selasa, 22 Desember 2009

Tips Mengatasi Generic Host For Win32 Error (svchost.exe)

svchost-error

Beberapa hari yang lalu saya sering kena “Generic Host For Win32 error” dan kemudian koneksi internet terputus dan ngga’ bisa reconnect lagi, satu-satunya jalan harus restart komputer.
Tapi selang beberapa jam kejadiannya seperti itu terulang lagi, saya pikir sistemnya crash. Kemudian saya lakukan perbaikan dengan memakai norton utility (win doctor) dan scan dengan norton corporate antivirus serta xoftspy anti spyware. Ternyata ngga’ ada efeknya sama sekali dan masih juga sering keluar error svchost.exe nya.

Akhirnya setelah ngobok-obok google ketemu solusinya dan sampai sekarang ngga’ pernah keluar lagi pesan error Generic Host For Win32
Caranya manualnya sebagai berikut :

Buka registry editor, start – run – ketik regedit – ok
masuk ke HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters, kemudian pada kolom sebelah kanan cari TransportBindName dan klik 2x
Setelah itu kosongin parameter pada Value data dan klik OK

Terakhir masuk ke HKEY_LOCAL_MACHINE\Software\Microsoft\OLE, cari EnableDCOM pada kolom sebelah kanan dan klik 2x. Pada kolom parameter Value data secara default akan terisi Y, ganti Y menjadi N kemudian klik OK.

Tutup registri editor dan aplikasi lainnya kemudian restart

Cara yang di atas jika dipergunakan untuk jaringan lokal akan menemui beberapa kendala, soalnya port 445 dan 135 ditutup.

Cara kedua yang belum saya coba adalah dengan patch windows-nya dengan KB89439 dan KB921883

Update (12-2-2009) : KB958644

Cara ketiga yang juga belum pernah saya coba dengan menggunakan aplikasi Svchost Fix Wizard 1.0, silakan kunjungi situs dan unduh filenya. Mereka mengklaim aplikasi tersebut merupakan solusi untuk memperbaiki error pada svchost termasuk Generic Host-nya. Kalau ngga’ salah itu shareware, sampai detik ini saya belum dapat versi full-nya.

Info tambahan : kunjungi microsoft help and support tentang permasalahan Generic Host Process for Win32 Services Error

LVM HOW-TO (part-2 : 1st Case)

Contoh Implementasi LVM pada sebagian partisi + whole hardisk
Kita mempunyai 2 hardisk yg siap utk dipake bermain2 yaitu sda(20 GB) dan sdb (80 GB), anggaplah linux sudah terinstall pada hardisk pertama (sda) dg partisi sbb :
/dev/sda1 -> /boot = 100 MB
/dev/sda3 -> / = 2 GB
/dev/sda4 -> /usr = 3 GB
/dev/sda5 -> /var = 3 GB
/dev/sda6 -> free space / unpartition space = 11,9 GB (20GB-100MB-2GB-3GB-3GB)

/dev/sdb1 -> free space / unpartition space = 80 GB

1. Install LVM dari repository terdekat
apt-get install lvm2
2. Buatlah partisi baru yg belum diformat dengan cfdisk, fdisk, ataupun gparted (dg GUI)
Partisi baru akan bernama /dev/sda6 dan /dev/sdb1
3. Inisialisasi partisi sebagai LVM dengan cara
pvcreate -v /dev/sda6
utk melihat list Phisycal Volume yg telah dibuat gunakan pvdisplay
4. Buatlah Volume Group baru dengan cara
vgcreate vgmirror /dev/sda6
utk melihat list Volume Group yg telah dibuat gunakan vgdisplay dan amatilah baris VG Size.
# lakukan juga langkah [3] dan [4] pada /dev/sdb1
pvcreate -v /dev/sdb1
vgcreate vgmirror /dev/sdb1
lalu lakukan vgdisplay maka dapat dilihat bahwa VG Size sekarang adalah 91,9 GB (kumulatif dari 11,9 GB + 80 GB).
5. Buatlah Logical Volume sesuai kebutuhan
lvcreate -L 60G -n debian vgmirror
utk membuat Logical Volume “ISO” adalah dg cara menyesuaikan sisa free space yg masih ada
lihat vgdisplay perhatikan baris Free PE / Size 33232 / 31,9 GB lalu lakukan
lvcreate -l 33232 -n ISO vgmirror
6. Format masing-masing partisi
mkfs.reiserfs -l DEBIAN-LVM /dev/mapper/vgmirror-debian
mkfs.reiserfs -l ISO-LVM /dev/mapper/vgmirror-ISO
7. Mount partisi kedalam folder yg diinginkan
mount /dev/mapper/vgmirror-debian /mnt/debian
mount /dev/mapper/vgmirror-ISO /mnt/ISO
lakukan df -h utk memastikan kapasitas partisi yg termount.Pada kasus ini, jika partisi “/dev/mapper/vgmirror-ISO” sudah penuh, sedangkan partisi “/dev/mapper/vgmirror-debian” masih mempunyai banyak free space, maka dengan mudah qta bisa me-reduce ukuran partisi “/dev/mapper/vgmirror-debian” dan memberikan free space-nya pada partisi “/dev/mapper/vgmirror-ISO”.
Utk memindahkan alokasi free space sebagaimana kasus diatas, ada mekanisme yg harus kita lakukan secara terurut, yaitu :
REDUCE PARTITION
1. Lihat kapasitas partisi dengan
df -h -> kapasitas partisi /dev/mapper/vgmirror-debian = 60 GB
2. un-Mount partition
umount /mnt/debian
3. Reduce / Resize filesystems dengan
resize_reiserfs -s -3G /dev/mapper/vgmirror-debian -> mengurangi kapasitas partisi sebesar 3 GB pada /dev/mapper/vgmirror-debian
4. Reduce LVM partition dengan
lvreduce -L -3G /dev/vgmirror/debian
5. Mount partition
mount /dev/mapper/vgmirror-debian /mnt/debian
6. Lihat kapasitas partisi dengan
df -h -> kapasitas partisi /dev/mapper/vgmirror-debian = 57 GB (60GB-3GB)

EXTENDS PARTITION
1. Lihat kapasitas partisi dengan
df -h -> kapasitas partisi /dev/mapper/vgmirror-ISO = 31,9 GB
2. un-Mount partition
umount /mnt/debian
3. Extends LVM partition dengan
lvextend -L +3G /dev/vgmirror/ISO
4. Extends / Resize filesystems dengan
resize_reiserfs -s +3G /dev/mapper/vgmirror-ISO -> mennambah kapasitas partisi sebesar 3 GB pada /dev/mapper/vgmirror-ISO
5. Mount partition
mount /dev/mapper/vgmirror-ISO /mnt/ISO
6. Lihat kapasitas partisi dengan
df -h -> kapasitas partisi /dev/mapper/vgmirror-ISO = 34,9 GB (31,9GB+GB)

Selamat mencoba.
Happy Hacking.. :-)

LVM HOW-TO (part-1 : Preface)

Untuk mengimplementasikan tutorial ini, anda dianggap sudah memahami cara dasar untuk partisi hardisk pada linux, paham mounting device, dll
Serta Penulis tdk bertanggungjawab akan segala kemungkinan kesalahan yg akan terjadi ketika anda mengimplementasikan tutorial ini. Just like debian, this tutorial is ABSOLUTELY NO WARRANTY

Saat pertama kali melakukan instalasi linux, kita biasanya bingung dalam melakukan alokasi partisi, kemudian kita berusaha utk melakukan proses kira2, misalnya :
1. Partisi root yaitu “/” = 1 GB
2. Partisi “/usr” = 3 GB -> karena akan berisi program2
3. Partisi “/var” = 2 GB -> hanya berisi log file dan file2 dinamis lainnya
4. Partisi “/home” = 5 GB -> utk menyimpan data2 user

Permasalahan pertama yg bisa timbul adalah pada saat kita sudah menginstall banyak program, maka ternyata partisi “/usr” menjadi penuh (mis : 98% used), sedangkan partisi “/root” dan “/var” ternyata tdk banyak terisi (mis : 20 % used), maka kita ingin me-resize partisi “/root” dan “/var” menjadi lebih kecil, dan kemudian mengalokasikan free space-nya pada “/usr”.
Permasalahan kedua yg akan timbul adalah ketika data user menjadi sangat banyak, maka kita akan menambah dengan hardisk baru, dan kita ingin hardisk baru ini langsung dikenali dibawah partisi “/home” dan tidak membuat mount point baru lagi.
Konsep LVM (Logical Volume Manager) ini memungkinkan kita utk memanfaatkan alokasi space pada hardisk (baik single disk, maupun multiple disk) dengan lebih fleksibel.

Anatomi LVM
Anatomi LVM

PV / Physical Volume : partisi fisik yg di-inisialisasi sebagai LVM
VG / Volume Group : volume group pada LVM, pada gambar diatas kapasitas VG = kapasitas hda1 + kapasitas hdc1
LV / Logical Volume : partisi yg ditangani oleh LVM, partisi ini bisa diubah-ubah secara dinamis, tanpa harus mengubah partisi secara fisik.

Installasi mailserver dengan postfix and courier menggunakan authentikasi mysql

Tutorial ini menjelaskan Step by Step tentang cara membuat mailserver dg virtual domain (domain email tidak harus selalu sama dg domain komputer yang sesungguhnya) denganberbasiskan postfix dan courier dg memanfaatkan mysql sebagai penyimpan data username & password bagi tiap2 user. Berikut ini yang harus anda lakukan.

( INTERNET )—————-| DMZ |—————-( Local Area Networks )


Step 1: Install paket-paket yang diperlukan
Paket yang diperlukan dalam tutorial ini antara lain :
Untuk Mengirim email (SMTP) : postfix (Pilih: “Local only”), postfix-tls, postfix-mysql, postfix-doc
Untuk Database user : mysql-client-5.0, mysql-server-5.0
Untuk menerima email (POP3 & IMAP) : courier-base (Pilih: “No”), courier-authdaemon, courier-authlib-mysql, courier-pop, courier-pop-ssl, courier-imap, courier-imap-ssl
Untuk Keamanan Pengiriman dan Penerimaan email : libsasl2, libsasl2-modules, libsasl2-modules-sql, openssl
Untuk Mencegah Virus dan Spam : amavisd-new, spamassassin, clamav, clamav-daemon, zoo, unzip, lha
Untuk tampilan WebMail : squirrelmail, phpmyadmin
Untuk testing tools : telnet

root@bajoel:~#apt-get install postfix postfix-tls postfix-mysql postfix-doc mysql-client-5.0 mysql-server-5.0 courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2 libsasl2-modules libsasl2-modules-sql openssl amavisd-new spamassassin clamav clamav-daemon zoo unzip lha squirrelmail phpmyadmin telnet

Step 2: Membuat user, database, dan tabel yang diperlukan pada mysql
Tambahkan database dan tabel-tabel baru pada mysql anda sebagai berikut
root@bajoel:~#mysql -u root -p
password:
mysql>CREATE DATABASE mail;
mysql>CREATE USER 'mailadmin'@'localhost' identified by 'passwordanda';
mysql>USE mail;
mysql>CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain) )
TYPE=MyISAM;
mysql>CREATE TABLE forwardings (
source varchar(80) NOT NULL,
destination TEXT NOT NULL,
PRIMARY KEY (source) )
TYPE=MyISAM;
mysql>CREATE TABLE users (
email varchar(80) NOT NULL,
password varchar(20) NOT NULL,
PRIMARY KEY (email) )
TYPE=MyISAM;
mysql>GRANT all ON mail.* TO 'mailadmin'@'localhost';

Step 3: Membuat file2 baru sebagai penunjuk ke database mysql
Buat file baru dg nama mysql-virtual_domains.cf
root@bajoel:~#touch /etc/postfix/mysql-virtual_domains.cf
isi file mysql-virtual_domains.cf dg baris-baris dibawah ini:
root@bajoel:~#mcedit /etc/postfix/mysql-virtual_domains.cf
user = mailadmin
password = passwordanda
dbname = mail
table = domains
select_field = ‘virtual’
where_field = domain
hosts = 127.0.0.1

Buat file baru dg nama mysql-virtual_forwardings.cf yg berisi :
root@bajoel:~#touch /etc/postfix/mysql-virtual_forwardings.cf
isi file mysql-virtual_forwardings.cf dg baris-baris dibawah ini:
root@bajoel:~#mcedit /etc/postfix/mysql-virtual_forwardings.cf
user = mailadmin
password = passwordanda
dbname = mail
table = forwardings
select_field = destination
where_field = source
hosts = 127.0.0.1

Buat file baru dg nama user mysql-virtual_mailboxes.cf yg berisi :
root@bajoel:~#touch /etc/postfix/mysql-virtual_mailboxes.cf
isi file mysql-virtual_mailboxes.cf dg baris-baris dibawah ini:
root@bajoel:~#mcedit /etc/postfix/mysql-virtual_mailboxes.cf
user = mailadmin
password = passwordanda
dbname = mail
table = users
select_field = CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/')
where_field = email
hosts = 127.0.0.1

Buat file baru mysql-virtual_email2email.cf yang berisi :
root@bajoel:~#touch /etc/postfix/mysql-virtual_email2email.cf
isi file mysql-virtual_email2email.cf dg baris-baris dibawah ini:
root@bajoel:~#mcedit /etc/postfix/mysql-virtual_email2email.cf
user = mailadmin
password = passwordanda
dbname = mail
table = users
select_field = email
where_field = email
hosts = 127.0.0.1

[Penting] Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat.
root@bajoel:~#chown root:postfix /etc/postfix/mysql-virtual_*.cf
root@bajoel:~#chmod u=rw,g=r,o= /etc/postfix/mysql-virtual_*.cf

Step 4: Membuat user baru pada system kita sebagai administrator-email
User ini bertugas untuk membuat maildir baru setiap ada user baru yang mendaftar pada mailserver anda
root@bajoel:~#groupadd -g 5000 mail-admin
root@bajoel:~#useradd -g mail-admin -u 5000 mail-admin -d /home/mail -m
root@bajoel:~#mkdir /home/mail
root@bajoel:~#chown -R mail-admin:mail-admin /home/mail
root@bajoel:~#chmod -R u=rwx,g=,o= /home/mail

Step 5: Mengkonfigurasi postfix sbg server SMTP
File main.cf ini adalah file konfigurasi utama dari postfix
root@bajoel:~#mcedit /etc/postfix/main.cf
Editlah file tsb, sehingga menjadi seperti dibawah ini:
inet_interfaces = all
myhostname = mail.domain-anda.org (fqdn)
mydestination = (jangan menuliskan virtual domain disini -> lebih baik dikosongi saja)
mynetworks = lqman.org (nama domain anda)
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_forwardings.cf mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/mail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key

Testing…
Restart service postfix, dan cobalah untuk mengakses port 25 dengan telnet
root@bajoel:~#/etc/init.d/postfix restart
root@bajoel:~#postfix check
Jika tidak muncul suatu pesan kesalahan, berarti anda sukses…….
root@bajoel:~#telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 mail.lqman.org ESMTP Postfix (Debian/GNU)

Jika muncul sebagaimana tulisan diatas, berarti postfix anda sudah berjalan lancar…….
Tekanlah tombol Ctrl+] lalu ketik quit untuk keluar dari sesi telnet,
Ambilah napas dalam-dalam, dan lanjutkan perjuangan ;)

Step 6: Mengaktifkan fasilitas authentikasi pada postfix (Auth-SMTP)
Tell Postfix to use SASL/MySQL, dg cara buat file baru dg nama /etc/postfix/sasl/smtpd.conf
root@bajoel:~#touch /etc/postfix/sasl/smtpd.conf
Isi file /etc/postfix/sasl/smtpd.conf dg baris-baris dibawah ini:
root@bajoel:~#mcedit /etc/postfix/sasl/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: plain login cram-md5 digest-md5
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: mailadmin
sql_passwd: passwordanda
sql_database: mail
sql_select: select password from users where email=’%u@%r’
log_level: 7

[Penting] Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat.
root@bajoel:~#chown root:postfix /etc/postfix/sasl/smtpd.conf
root@bajoel:~#chmod u=rw,g=r,o= /etc/postfix/sasl/smtpd.conf

Mengaktifkan TLS untuk meng-encrypt SMTP traffik, dg cara membuat sertifikat (certificate)
root@bajoel:~#openssl req -new -outform PEM -out /etc/postfix/smtpd.cert -newkey rsa:2048 -nodes -keyout /etc/postfix/smtpd.key -keyform PEM -days 365 -x509

[Penting] Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat.
root@bajoel:~#chown root:postfix /etc/postfix/smtpd.*
root@bajoel:~#chmod u=rw,g=r,o= /etc/postfix/smtpd.*

Step 7: Mengkonfigurasi courier sebagai server POP3 / IMAP
Edit file /etc/courier/authdaemonrc,
root@bajoel:~#mcedit /etc/courier/authdaemonrc
ubah parameter authmodulelist menjadi :
authmodulelist=”authmysql”
Lalu edit file /etc/courier/authmysqlrc,
root@bajoel:~#mcedit /etc/courier/authmysqlrc
Ubah beberapa parameter, shg menjadi seperti di bawah ini :
MYSQL_SERVER localhost
MYSQL_USERNAME mailadmin
MYSQL_PASSWORD passwordanda
MYSQL_PORT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
#MYSQL_CRYPT_PWFIELD (jadikan baris ini sebagai komentar)
MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD “/home/mail”
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/')
#MYSQL_NAME_FIELD (jadikan baris ini sebagai komentar)

[Penting] Mengedit file authmysqlrc agak sedikit susah, pastikan anda berhati-hati dan tidak membuat kesalahan (jangan memakai tanda SPASI, tetapi gunakan tombol TAB)

Testing…
Restart service courier-authdaemon, dan cobalah untuk mengakses port 110 dengan telnet
root@bajoel:~#/etc/init.d/courier-authdaemon restart
Jika tidak muncul suatu pesan kesalahan, berarti anda sukses…….
root@bajoel:~#telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.

Jika muncul pesan seperti diatas, maka berbahagialah.
Tarik napas dalam-dalam dan ucapkan hamdalah atas keberhasilan anda :)

[Penting] Anda tidak dapat membuka mailbox / maildir anda sebelum ada email yang terkirim pada mailbox anda.Pesan kesalahan akan dimunculkan. Karena itulah anda harus mengirim welcome email pada setiap user baru.

Step 8: Test hasil konfigurasi anda
Selamat, anda telah menyelesaikan poin konfigurasi. Pada bagian ini anda anda hanya akan men-testing server yang telah anda konfig sebelumnya.
Sekarang kita akan membuat database pada domain yang akan kita coba, domain inilah yang kita jadikan sebagai domain percobaan untuk mengirim dan menerima email.
Buatlah domain baru dg nama lqman.org pada tabel domains, dan buatlah juga alamat email dan password baru pada tabel users.
Untuk lebih jelasnya ikutilah syntax mysql dibawah ini.

root@bajoel:~#mysql -u mailadmin -p mail
password:
mysql>INSERT INTO domains(domain) VALUES ('lqman.org');
mysql>INSERT INTO users(email,password) VALUES ('admin@lqman.org','admin');
mysql>INSERT INTO users(email,password) VALUES ('user@lqman.org','user');

Sekarang kita sudah punya sebuah virtual domain baru dg nama “lqman.org” dan 2 orang user, yaitu “admin@lqman.org” dan “user@lqman.org” yang masing-masing user ini mempunyai password “admin” dan “user”.

Jika anda tidak mempunyai MX record pada DNS server anda, maka kami menyarankan utk menambahkan MX record spt dibawah ini:
root@bajoel:~#mcedit /etc/bind/db.lqman.org

@ IN MX 5 mail.lqman.org.
mail IN A 10.122.1.22

IP-Address 10.122.1.22 hanya sebagai contoh saja, ubahlah sesuai dg IP-Address yg anda inginkan. Kemudian untuk mencoba pengiriman email dari smtp server anda, lakukan telnet pada localhost 25

root@bajoel:~#telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 mail.lqman.org ESMTP Postfix (Debian/GNU)

kemudian secara interaktif (pada mode telnet) berikan perintah spt dibawah ini:
Anda : ehlo virtual.test
Server : 250-mailtest
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-AUTH=LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 8BITMIME
Anda : mail from:admin@lqman.org
Server : 250 Ok
Anda : rcpt to:user@lqman.org
Server : 250 Ok
Anda : data
Server : 354 End data with .
Anda : Subject:Just for test
This is a test email
. (tanda titik)
Server : 250 Ok: queued as ABC1D1C123
Anda : quit
Server : 221 BYE

Jika respon server seperti tulisan diatas, berarti email dari admin@lqman.org kepada user@lqman.org sudah masuk ke dalam antrian untuk segera dikirimkan oleh postfix (SMTP server).
Lihatlah pada log file yang berada pada /var/log/mail.info
root@bajoel:~#tail -f /var/log/mail/info | ccze
pasti akan kita lihat bagin seperti dibawah ini :
Jul 24 21:48:28 myserver postfix/smtpd[9119]: connect from myserver[127.0.0.1]
Jul 24 21:48:48 myserver postfix/smtpd[9119]: F2C1B47BD: client=myserver[127.0.0.1]
Jul 24 21:48:52 myserver postfix/cleanup[9144]: F2C1B47BD: message-id=
Jul 24 21:48:52 myserver postfix/qmgr[9117]: F2C1B47BD: from=, size=313, nrcpt=1 (queue active)
Jul 24 21:48:52 myserver postfix/virtual[9148]: F2C1B47BD: to=, relay=virtual, delay=10, status=sent (delivered to maildir)

Jika anda melihat “status=sent (delivered to maildir)” maka email yang anda kirimkan sudah berhasil dikirimkan ke dalam Maildir user yang bersangkutan (user@lqman.org). Jalankan perintah find untuk melihat seluruh file dan direktori yang ada dibawah direktori “/home/mail”.
root@bajoel:~#find /home/mail
/home/mail/
/home/mail/lqman.org
/home/mail/lqman.org/user
/home/mail/lqman.org/user/cur
/home/mail/lqman.org/user/new
/home/mail/lqman.org/user/new/1170803794.V805I1c1fbM98807.bajoel
/home/mail/lqman.org/user/new/1170803833.V805I1c1feM87660.bajoel
/home/mail/lqman.org/user/tmp

Semuanya berjalan Lancar? Bagus.. :) Sebagai langkah terakhir, anda harus mencoba login pada email baru nada melalui tampilan web yg telah disediakan oleh squirrelmail. Pada percobaan ini, username yang bisa digunakan adalah “user@lqman.org” dengan password “user”

Step 9: Menambahkan User Baru pada Mail-Server
Pada step yang terakhir ini anda tinggal memasukkan / menambahkan pada database setiap username dan password user baru pada mailserver anda.
Untuk setiap virtual-domain baru, Tambahkan nama virtual-domain tsb pada tabel ‘domains’
Untuk setiap user baru, Tambahkan username (email address) dan password (plain text) pada tabel ‘users’
Untuk setiap forwarding, Tambahkan source dan destination mail address pada tabel ‘forwardings’, jika anda punya banyak destination, pisahkan dengan koma. Tabel ini digunakan untuk me-redirect setiap email pada system anda, termasuk juga anda bisa me-redirect local mail-address.

Contoh :
source destination Effect
test@my.domain philip@my.domain me-redirect emails untuk postmaster kepada philip.
@my.domain @another.domain Ini adalah re-direction thd seluruh domain. Setiap email yang dialamatkan
kpd suatu user pada domain ‘my.domain’ akan di-forward kepada user
yang sama pada domain ‘another.domain’.
Jadi mail kpd lqman@my.domain akan di-redirect kepada
lqman@another.domain.
jesper@my.domain dilbert@my.domain,dilbert@gmail.com mem-forward email yg dialamatkan untuk jesper@my.domain kepada
dilbert@my.domain dan dilbert@gmail.com

Step 10: Interface WebMail dg squirrelmail
Untuk mempermudah user anda dalam menggunakan mailserver yg sdh anda buat, maka tampilan web merupakan interface yang paling mudah. Oleh karena itu paket squirrelmail yang sudah kita install pada step pertama harus dikonfigurasi sesuai dg mailserver yg sdh kita buat.
Untuk menyesuaikan dg konfigurasi mailserver ini, cukup lakukan perintah squirrelmail-configure
root@bajoel:~#squirrelmail-configure
lalu lakukan sesuai dg langkah-langkah yang sudah tersedia. Langkah yang paling penting disini adalah saat menentukan “Server Settings” saja, selain itu tidak ada yang terlalu penting.
Pada saat menentukan “Server Settings”, lakukan perubahan spt dibawah ini

Secure IMAP (TLS) : false
Server software : courier

kemudian save opsi tersebut dg cara menekan tombol “s”, lalu keluar dari configurasi dg menekan tombol “q”.
Step 11: Menjadikan webmail kita sebagai VirtualHost baru
Buatlah file baru pada konfigurasi webserver anda (pada tutorial ini dipakai webserver apache2)
root@bajoel:~#touch /etc/apache2/sites/available/squirrelmail
kemudian tambahkan baris-baris dibawah ini :
NameVirtualHost 10.122.1.22:80

ServerAdmin admin@lqman.org
ServerName mail.lqman.org
DocumentRoot /usr/share/squirrelmail

Options FollowSymLinks
AllowOverride None

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

setelah itu, buatlah symbolic link ke direktori /etc/apache2/sites-enable/ dengan cara
root@bajoel:~#ln -s /etc/apache2/sites-available/squirrelmail.conf /etc/apache/sites-enable/001squirrelmail.conf
lalu cek konfigurasi apache2 dg syntax :
root@bajoel:~#apache2ctl configtest
dan jika muncul tulisan Syntax OK, maka restart-lah apache2 dg :
root@bajoel:~#apache2ctl restart

Setting DNS Client

Table of Contents
Pendahuluan
/etc/hosts
/etc/resolv.conf
/etc/host.conf
Tool untuk Testing DNS


Pendahuluan

Supaya Linux dapat mengenali nama-nama site di Internet seperti linux.or.id atau nama host di jaringan LAN harus ada suatu mekanisme untuk mengubah nama-nama tersebut kedalam bentuk yang dikenali oleh komputer yaitu alamat IP misalnya linux.or.id diubah menjadi 64.29.24.175 . Mekanisme ini disediakan oleh Name Resolver yang terdapat dalam standard library linux. Tentu saja agar mekanisme ini bekerja dengan baik diperlukan beberapa konfigurasi.
/etc/hosts

File /etc/hosts berisi pemetaan nama host dengan alamat IPnya dengan format sebagai berikut:

IP nama.domain.lengkap alias

Perlu diperhatikan bahwa jumlah spasi atau tab antara masing-masing kolom tidak berpengaruh, yang penting ada pemisahnya baik spasi atau tab.

Contoh /etc/hosts

127.0.0.1 localhost.intra.aki localhost
192.168.1.100 linux.intra.aki linux
192.168.1.3 cctv.intra.aki cctv

Setting /etc/hosts melalui Linuxconf

Selain mengedit secara langsung file /etc/hosts anda juga bisa mengeditnya melalui linuxconf.

1. Jalankan linuxconf
2. Pilih Config -> Networking -> Misc -> Information about other hosts
3. Di dialog tersebut anda bisa menambah (Add) atau mengedit atau menghapus entry tertentu dengan menekan enter pada entry yang ingin diubah atau dihapus

Kelemahan /etc/hosts

Mekanisme /etc/hosts mempunyai beberapa kelemahan seperti:

* Tidak scalable untuk jaringan yang mempunyai banyak host
* Host yang berbeda bisa mempunyai isi /etc/hosts yang berbeda sehingga bisa tidak seragam dan menyulitkan peng-update-an

Karena itulah biasanya /etc/hosts hanya digunakan untuk mendaftarkan alamat IP lokal saja yaitu untuk alamat IP loopback (127.0.0.1) dan alamat IP ethernet card (jika ada).
/etc/resolv.conf

File /etc/resolv.conf adalah file konfigurasi utama bagi Name Resolver. Formatnya sederhana yaitu file text dengan satu keyword per baris. Ada tiga keyword yang biasa digunakan yaitu:

domain

9 menentukan nama domain lokal
search

menentukan daftar dari nama-nama domain yang digunakan untuk mencari nama host
namaserver

keyword ini yang bisa digunakan beberapa kali, menentukan alamat IP dari server DNS yang digunakan oleh Name Resolver

Contoh /etc/resolv.conf

domain intra.aki
search intra.aki cbn.net.id
nameserver 202.158.3.6
nameserver 202.158.3.7

Perlu diperhatikan bahwa semua domain yang terdapat dalam baris search akan dicari untuk setiap nama host yang di-resolve. Sehingga jika anda ingin telnet ke host cctv maka untuk mendapatkan alamat IP untuk host cctv dicari alamat IP untuk cctv.intra.aki pertama kali, lalu cctv.cbn.net.id dan terakhir cctv. Begitupun jika untuk linux.or.id maka akan dicoba dulu linux.or.id.intra.aki, lalu linux.or.id.cbn.net.id dan terakhir linux.or.id. Sebaiknya anda tidak menaruh terlalu banyak domain di dalam baris search karena akan memakan waktu untuk mencari domain-domain tersebut.

Biasanya yang diperlukan hanyalah keyword nameserver karena keyword domain mengambil default dari nama host dan keyword search defaultnya berisi isi dari keyword domain.
Setting /etc/resolv.conf melalui Linuxconf

Untuk mengedit /etc/resolv.conf menggunakan linuxconf jalankan langkah berikut

1. Jalankan linuxconf
2. Pilih Config -> Networking -> Client tasks-> Name server specification (DNS)
3. Di dialog tersebut anda bisa mengedit default domain, nameserver ke-1 s/d 3, search domain ke-1 s/d 6 dan apakah menggunakan DNS untuk operasi normal

/etc/host.conf

File ini mengatur cara kerja dari Name Resolver defaultnya adalah

order hosts,bind
multi on

Konfigurasi ini mengatur agar Name Resolver untuk mencari nama host di /etc/hosts dahulu sebelum bertanya ke nameserver dan mengembalikan semua alamat yang ditemukan di file /etc/hosts bukan cuma yang pertama saja.
Tool untuk Testing DNS

Untuk mengetes Setting DNS Client, anda bisa menggunakan perintah host dan nslookup. Misalnya:

[zakaria@linux zakaria]$ host cctv
cctv.intra.aki has address 192.168.1.3

[zakaria@linux zakaria]$ nslookup linux
Server: localhost
Address: 127.0.0.1

Name: linux.intra.aki
Address: 192.168.1.100

Untuk nslookup anda juga bisa melakukan test secara interaktif contohnya:

[zakaria@linux zakaria]$ nslookup
Default Server: localhost
Address: 127.0.0.1

> linux.or.id
Server: localhost
Address: 127.0.0.1

Non-authoritative answer:
Name: linux.or.id
Address: 64.29.24.175

> yahoo.com
Server: localhost
Address: 127.0.0.1

*** localhost can't find yahoo.com: Non-existent host/domain

Seperti biasa tekan Ctrl+D untuk kembali ke shell
Sumber Lebih Lanjut

Setting DNS Server

Table of Contents
Konsep & Cara Kerja DNS
DNS Server di Linux
Caching Only DNS Server
Membuat Domain Sendiri
Zona Reverse
Security


Konsep & Cara Kerja DNS

DNS (Domain Name System) adalah suatu system yang mengubah nama host (seperti linux.or.id) menjadi alamat IP (seperti 64.29.24.175) atas semua komputer yang terhubung langsung ke Internet. DNS juga dapat mengubah alamat IP menjadi nama host.

DNS bekerja secara hirarki dan berbentuk seperti pohon (tree). Bagian atas adalah Top Level Domain(TLD) seperti COM, ORG, EDU, MIL dsb. Seperti pohon DNS mempunyai cabang-cabang yang dicari dari pangkal sampai ke ujung. Pada waktu kita mencari alamat misalnya linux.or.id pertama-tama DNS bertanya pada TLD server tentang DNS Server yang melayani domain .id misalnya dijawab ns1.id, setelah itu dia bertanya pada ns1.id tentang DNS Server yang bertanggung jawab atas .or.id misalnya ns.or.id kemudian dia bertanya pada ns.or.id tentang linux.or.id dan dijawab 64.29.24.175

Sedangkan untuk mengubah IP menjadi nama host melibatkan domain in-addr.arpa. Seperti domain lainnya domain in-addr.arpa pun bercabang-cabang. Yang penting diingat adalah alamat IP-nya ditulis dalam urutan terbalik di bawah in-addr.arpa. Misalnya untuk alamat IP 64.29.24.275 prosesnya seperti contoh linux.or.id: cari server untuk arpa, cari server untuk in-addr.arpa, cari server untuk 64.in-addr.arpa, cari server 29.64.in-addr.arpa, cari server untuk 24.29.64.in-addr.arpa. Dan cari informasi untuk 275.24.29.64.in-addr.arpa. Pembalikan urutan angkanya memang bisa membingungkan.
DNS Server di Linux

DNS Server di linux biasanya dijalankan oleh program yang bernama named. Program ini merupakan bagian dari paket bind yang dikoordinasikan oleh Paul Vixie dari The Internet Software Consortium. Biasanya program ini terletak di /usr/sbin/named dan dijalankan pada waktu booting dari /etc/rc.d/init.d/named start. Agar named dijalankan pada setiap booting masukkan named ke daftar server yang harus distart dengan menggunakan ntsysv.
File Konfigurasi

File konfigurasi untuk named adalah /etc/named.conf yang seperti biasa adalah text file. Format file ini seperti format program C atau Pascal yakni tiap perintah diakhiri dengan ';' dan blok perintah di kurung dengan '{' dan '}'. Ada beberapa blok yang sering digunakan yaitu:

options

untuk mengatur konfigurasi server secara global dan menentukan default
zone

untuk mengatur konfigurasi zona DNS

Caching Only DNS Server

Caching Only DNS Server akan mencari jawaban dari pertanyaan DNS dan mengingat jawabannya ketika anda bertanya lagi. Ini akan mempersingkat waktu tunggu pada pertanyaan DNS berikutnya terutama jika anda menggunakan koneksi yang lambat seperti modem.
Konfigurasi

File konfigurasi Caching Only DNS sudah disediakan oleh RedHat dalam paket caching-nameserver anda tinggal menginstal paketnya dan mengedit file /etc/named.conf dan menambahkan baris berikut pada blok options:

forward first;
forwarders {
202.158.3.6;
202.158.3.7;
};


Kedua alamat IP diatas adalah alamat IP untuk DNS Server ISP saya yaitu CBN jika ISP anda berbeda anda harus menggantinya.
Membuat Domain Sendiri

Pada bagian ini kita akan membuat domain untuk jaringan lokal (LAN) misalnya intra.aki. Ada baiknya menggunakan domain yang benar-benar tidak ada di Internet sehingga kita tidak mengganggu domain siapa pun. Perlu diingat bahwa tidak semua karakter diperbolehkan untuk menjadi nama host yang dibolehkan hanya A-Z, a-z, 0-9 dan karakter '-'. Selain itu nama hostitu tidak bergantung pada huruf besar atau huruf kecil, jadi linux.intra.aki dan LINUX.Intra.AKI adalah sama. Kita masih mengedit file yang berasal dari paket caching-nameserver.
Tambahan di /etc/named.conf

Pertama kita mengedit file /etc/named.conf untuk menambahkan baris berikut:

zone "intra.aki" {
type master;
notify no;
file "intra.aki";
}


Yang berarti bahwa kita membuat zona domain intra.aki dimana kita adalah penguasa domain tersebut (type master) tetapi kita tidak ingin domain ini tersebar ke internet (notify no) dan informasi tentang anggota domainnya itu sendiri disimpan di file intra.aki di direktori yang ditentukan oleh keyword direktory dari blok options yang berisi /var/named
File Zona intra.aki

Kemudian kita membuat file zona intra.aki yang berisi informasi tentang anggota domain

; Zone file for intra.aki
@ IN SOA ns.intra.aki. root.intra.aki. (
2000091401 ; serial
8H ; refresh
3H ; retry
1W ; expire
1D ; default_ttl
)
NS ns
A 192.168.1.100
MX 10 linux.intra.aki.
MX 20 other.extra.aki.
localhost A 127.0.0.1
linux A 192.168.1.100
ns A 192.168.1.100
ftp CNAME linux
pop CNAME linux
www CNAME linux.intra.aki
cctv A 192.168.1.3


Perhatikan tanda '.' pada akhir dari nama domain di file ini. File zona ini mengandung 9 Resource Record(RR): satu SOA RR, satu NS RR, tiga CNAME RR dan empat AA RR. SOA merupakan singkatan dari Start Of Authority. Karakter “@” berarti nama domain dari zona yaitu intra.aki jadi baris kedua diatas berarti

intra.aki. IN SOA ....


NS adalah Name Server RR. Tidak ada “@” pada awal baris karena baris diatasnya dimulai dengan '@'. Menghemat waktu mengetiknya. Jadi baris NS bisa juga di tulis

intra.aki. IN NS ns


Ini memberitahu DNS host mana yang menjadi name server bagi domain intra.aki yakni ns.intra.aki. 'ns' adalah nama yang biasa dipakai untuk name server, tetapi seperti web server yang biasa dinamakan www.anu namanya bisa diubah menjadi apapun.

Baris SOA adalah pembuka bagi semua file zona dan harus ada satu dalam setiap file zona. Baris tersebut menjelaskan zona, darimana dia datang (host bernama ns.intra.aki), siapa yang bertanggung jawab atas isinya (root@intra.aki), versi zona file (serial: 2000091401) dan parameter lainnya yang berhubungan dengan caching dan secondary DNS Server. Perlu diperhatikan bahwa ns.intra.aki haruslah nama host dengan A RR. Tidak diperbolehkan membuat CNAME RR untuk nama yang disebutkan di SOA.

RR A mendefinisikan alamat IP dari suatu nama host sedangkan CNAME mendefinisikan nama alias dari suatu host yang harus merujuk ke RR lainnya.

Ada satu lagi tipe RR pada file ini yaitu MX atau Mail eXchanger. RR ini berfungsi untuk memberitahukan sistem mail kemana harus mengirim e-mail yang di alamatkan ke seseorang@intra.aki dalam hal ini linux.intra.aki atau other.extra.aki. Angka sebelum nama host adalah prioritas MX. RR dengan angka terendah (10) adalah host yang harus dikirimkan email pertama kali. Jika tidak berhasil maka e-mail bisa dikirim ke host lain dengan angka yang lebih besar misalnya other.extra.aki yang mempunyai prioritas 20.
Zona Reverse

Zona Reverse diperlukan untuk mengubah dari alamat IP menjadi nama. Nama ini digunakan oleh berbagai macam server (FTP, IRC, WWW dsb) untuk menentukan apakah anda diperbolehkan mengakses layanan tersebut atau sejauh mana prioritas yang diberikan kepada anda. Untuk mendapatkan akses yang penuh pada semua layanan di Internet diperlukan zona reverse.
Tambahan di /etc/named.conf

Tambahkan baris berikut di /etc/named.conf

zone "1.168.192.in-addr.arpa" {
notify no;
type master;
file "192.168.1";
}


Seperti sebelumnya artinya kita membuat zona domain 1.168.192.in-addr.arpa yang tidak disebar ke internet dan disimpan di file /var/named/192.168.1
File zona 192.168.1

Sekarang kita membuat file zona 192.168.1 untuk domain 1.168.192.in-addr.arpa seperti berikut:

; Zone file for reverse zone 1.168.192.in-addr.arpa (192.168.1.x)
@ IN SOA ns.intra.aki. root.intra.aki. (
2000072801 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; default_ttl
)
@ IN NS ns.intra.aki.
100 IN PTR linux.intra.aki.
3 IN PTR cctv.intra.aki.


Ada RR baru disini yakni PTR yang berfungsi untuk memetakan IP ke nama host
Security

Jika anda memasang DNS server pada komputer yang berfungsi sebagai gateway antara jaringan internal anda dengan jaringan Internet serta DNS Server anda tidak melayani request dari luar (caching only DNS atau DNS untuk jaringan lokal saja) maka anda bisa membuat named untuk melayani hanya jaringan lokal saja dengan menambah baris berikut di dalam blok options:

listen-on { 127.0.0.1; 192.168.1.100; };

Sehingga named hanya membuka port pada interface loopback (127.0.0.1) dan eth0 (192.168.1.100).

Perintah - Perintah Pada Linux (Lanjutan)

Seperti halnya bila kita mengetikkan perintah di DOS, command line atau baris perintah di Linux juga diketikkan di prompt dan diakhiri enter untuk mengeksekusi perintah tersebut. Baris perintah merupakan cara yang lebih efisien untuk melakukan sesuatu pekerjaan oleh karena itu pemakai Linux tetap mengandalkan cara ini untuk bekerja. Sebaiknya pemula juga harus mengetahui dan sedikitnya pernah menggunanakan perintah baris ini karena suatu saat pengetahuan akan perintah-perintah ini bisa sangat diperlukan.

Saya mengumpulkan beberapa perintah dasar yang mungkin kelak akan sering digunakan terutama oleh para pemula. Perhatian: pengetahuan akan perintah-perintah yang lain akan segera bertambah seiring dengan kemajuan Anda menguasai sistem operasi Linux ini.

Penjelasan masing-masing perintah akan dipersingkat saja dan untuk mengetahui lebih detail lagi fungsi-fungsi suatu perintah, Anda dapat melihat manualnya, misalnya dengan mengetikkan perintah man:

$ man ls

Manual tersebut akan menampilkan bagaimana cara penggunaan perintah lsitu secara lengkap.
Daftar Perintah Menurut Alfabet
& adduser alias bg cat cd chgrp chmod chown
cp fg find grep gzip halt hostname kill less
login logout ls man mesg mkdir more mount mv
passwd pwd rm rmdir shutdown su tail talk tar
umount unalias unzip wall who xhost + xset zip
& index
Perintah & dipakai dibelakang perintah lain dan menjalankannya di background. Tujuannya adalah untuk membebaskan shell agar bisa dipergunakan menjalankan proses-proses yang lain. Lihat juga perintah bg dan fg.
adduser index
Biasanya hanya dilakukan oleh root untuk menambahkan user atau account yg baru. Setelah perintah ini bisa dilanjutkan dengan perintah passwd, yaitu perintah untuk membuat password bagi user tersebut.

# adduser udin
# passwd udin

Selanjutnya Anda akan diminta memasukkan password untuk user udin. Isikan password untuk udin dua kali dengan kata yang sama.
alias index

Digunakan untuk memberi nama lain dari sebuah perintah. Misalnya bila Anda ingin perintah ls dapat juga dijalankandengan mengetikkan perintah dir, maka buatlah aliasnya sbb:

$ alias dir=ls

Untuk melihat perintah-perintah apa saja yang mempunyai nama lain saat itu, cukup ketikkan alias. Lihat juga perintah unalias.
bg index

Untuk memaksa sebuah proses yang dihentikan sementara(suspend) agar berjalan di background. Misalnya Anda sedang menjalankan sebuah perintah di foreground (tanpa diakhiri perintah &) dan suatu saat Anda membutuhkan shell tersebut maka Anda dapat memberhentikan sementara perintah tersebut dengan Ctrl-Z kemudian ketikan perintah bg untuk menjalakannya di background. Dengan cara ini Anda telah membebaskanshell tapi tetap mempertahankan perintah lama berjalan di background. Lihat juga perintah fg.
cat index

Menampilkan isi dari sebuah file di layar.

$ cat namafile

cd index
Change Directoryatau untuk berpindah direktori dan saya kira Anda tidak akan menemui kesulitan menggunakan perintah ini karena cara penggunaanya mirip dengan perintah cd di DOS.
chgrp index

Perintah ini digunakan untuk merubah kepemilikan kelompok file atau direktori. Misalnya untuk memberi ijin pada kelompok atau grup agar dapat mengakses suatu file. Sintaks penulisannya adalah sbb:

# chgrp
chmod index

Digunakan untuk menambah dan mengurangi ijin pemakai untuk mengakses file atau direktori. Anda dapat menggunakan sistem numeric coding atau sistem letter coding. Ada tiga jenis permission/perijinan yang dapat dirubah yaitu r untuk read, w untuk write dan x untuk execute.

Dengan menggunakan letter coding, Anda dapat merubah permission diatas untuk masing-masing u (user), g (group), o (other) dan a (all) dengan hanya memberi tanda plus (+) untuk menambah ijin dan tanda minus (-) untuk mencabut ijin.

Misalnya untuk memberikan ijin baca dan eksekusi file coba1 kepada owner dan group, perintahnya adalah:

$ chmod ug+rx coba1

Untuk mencabut ijin-ijin tersebut:

$ chmod ug-rx coba1

Dengan menggunakan sitem numeric coding, permission untukuser, group dan other ditentukan dengan menggunakan kombinasi angka-angka, 4, 2 dan 1 dimana 4 (read), 2 (write) dan 1 (execute).

Misalnya untuk memberikan ijin baca(4), tulis(2) dan eksekusi(1) file coba2 kepada owner, perintahnya adalah:

$ chmod 700 coba2

Contoh lain, untuk memberi ijin baca(4) dan tulis(2) file coba3 kepada user, baca(4) saja kepada group dan other, perintahnya adalah:

$ chmod 644 coba3
chown index

Merubah user ID (owner) sebuah file atau direktori

$ chown

cp index

Untuk menyalin file atau copy. Misalnya untuk menyalin file1 menjadi file2:

$ cp

fg index
Mengembalikan suatu proses yang dihentikan sementar(suspend) agar berjalan kembali di foreground. Lihat juga perintah bg diatas.
find index

Untuk menemukan dimana letak sebuah file. Perintah ini akan mencari file sesuai dengan kriteria yang Anda tentukan. Sintaksnya adalah perintah itu sendiri diikuti dengan nama direktori awal pencarian, kemudian nama file (bisa menggunakan wildcard, metacharacters) dan terakhir menentukan bagaimana hasil pencarian itu akan ditampilkan. Misalnya akan dicari semua file yang berakhiran .doc di current direktori serta tampilkan hasilnya di layar:

$ find . -name *.doc -print
. /public/docs/account.doc
. /public/docs/balance.doc
. /public/docs/statistik/prospek.doc
./public/docs/statistik/presconf.doc

grep index

Global regular expresion parse atau grep adalah perintah untuk mencari file-file yang mengandung teks dengan kriteria yang telah Anda tentukan.

$ grep

Misalnya akan dicari file-file yang mengandung teks marginal di current direktori:

$ grep marginal
diferent.doc: Catatan: perkataan marginal luas dipergunakan di dalam ilmu ekonomi
prob.rtf: oleh fungsi hasil marginal dan fungsi biaya marginal jika fungsi
prob.rtf: jika biaya marginal dan hasil marginal diketahui maka biaya total


gzip index

Ini adalah software kompresi zip versi GNU, fungsinya untuk mengkompresi sebuah file. Sintaksnya sangat sederhana:

$ gzip

Walaupun demikian Anda bisa memberikan parameter tertentu bila memerlukan kompresi file yang lebih baik, silakan melihat manual page-nya. Lihat juga file tar, unzip dan zip.
halt index
Perintah ini hanya bisa dijalankan oleh super useratau Anda harus login sebagai root. Perintah ini untuk memberitahu kernel supaya mematikan sistem atau shutdown.
hostname index
Untuk menampilkan host atau domain name sistem dan bisa pula digunakan untuk mengesset nama host sistem.

[flory@localhost docs] $ hostname
localhost.localdomain

kill index
Perintah ini akan mengirimkan sinyal ke sebuah proses yang kita tentukan. Tujuannya adalah menghentikan proses.

$ kill

PID adalah nomor proses yang akan di hentikan.
less index
Fungsinya seperti perintah more.
login index
Untuk masuk ke sistem dengan memasukkan login ID atau dapat juga digunakan untuk berpindah dari user satu ke user lainnya.
logout index
Untuk keluar dari sistem.
ls index
Menampilkan isi dari sebuah direktori seperti perintah dirdi DOS. Anda dapat menggunakan beberapa option yang disediakan untuk mengatur tampilannya di layar. Bila Anda menjalankan perintah ini tanpa option maka akan ditampilkan seluruh file nonhidden(file tanpa awalan tanda titik) secara alfabet dan secara melebar mengisi kolom layar. Option -la artinya menampilkan seluruh file/all termasuk file hidden(file dengan awalan tanda titik) dengan format panjang.
man index
Untuk menampilkan manual pageatau teks yang menjelaskan secara detail bagaimana cara penggunaan sebuah perintah. Perintah ini berguna sekali bila sewaktu-waktu Anda lupa atau tidak mengetahui fungsi dan cara menggunakan sebuah perintah.

$ man
mesg index
Perintah ini digunakan oleh user untuk memberikan ijin user lain menampilkan pesan dilayar terminal. Misalnya mesg Anda dalam posisi y maka user lain bisa menampilkan pesan di layar Anda dengan write atau talk.

$ mesg y atau mesg n

Gunakan mesg n bila Anda tidak ingin diganggu dengan tampilan pesan-pesan dari user lain.
mkdir index
Membuat direktori baru, sama dengan perintah md di DOS.
more index
Mempaging halaman, seperti halnya less
mount index
Perintah ini akan me-mount filesystem ke suatu direktori atau mount-point yang telah ditentukan. Hanya superuser yang bisa menjalankan perintah ini. Untuk melihat filesystem apa saja beserta mount-pointnya saat itu, ketikkan perintah mount. Perintah ini dapat Anda pelajari di bab mengenai filesystem. Lihat juga perintah umount.

$ mount
/dev/hda3 on / type ext2 (rw)
none on /proc type proc (rw)
/dev/hda1 on /dos type vfat (rw)
/dev/hda4 on /usr type ext2 (rw)
none on /dev/pts type devpts (rw,mode=0622)

mv index
Untuk memindahkan file dari satu lokasi ke lokasi yang lain. Bila argumen yang kedua berupa sebuah direktori maka mv akan memindahkan file ke direktori tersebut. Bila kedua argumen berupa file maka nama file pertama akan menimpa file kedua. Akan terjadi kesalahan bila Anda memasukkan lebih dari dua argumen kecuali argumen terakhir berupa sebuah direktori.
passwd index
Digunakan untuk mengganti password. Anda akan selalu diminta mengisikan password lama dan selanjutnya akan diminta mengisikan password baru sebanyak dua kali. Password sedikitnya terdiri dari enam karakter dan sedikitnya mengandung sebuah karakter.
pwd index
Menampilkan nama direktori dimana Anda saat itu sedang berada.
rm index
Untuk menghapus file dan secara default rm tidak menghapus direktori. Gunakan secara hati-hati perintah ini terutama dengan option -r yang secara rekursif dapat mengapus seluruh file.
rmdir index
Untuk menghapus direktori kosong.
shutdown index
Perintah ini untuk mematikan sistem, seperti perintah halt. Pada beberapa sistem anda bisa menghentikan komputer dengan perintah shutdown -h now dan merestart sistem dengan perintah shutdown -r now atau dengan kombinasi tombol Ctr-Alt-Del.
su index
Untuk login sementara sebagai user lain. Bila user ID tidak disertakan maka komputer menganggap Anda ingin login sementara sebagai super user atau root. Bila Anda bukan root dan user lain itu memiliki password maka Anda harus memasukkan passwordnya dengan benar. Tapi bila Anda adalah root maka Anda dapat login sebagai user lain tanpa perlu mengetahui password user tersebut.
tail index
Menampilkan 10 baris terakhir dari suatu file. Default baris yang ditampilkan adalah 10 tapi Anda bisa menentukan sendiri berapa baris yang ingin ditampilkan:

$ tail
talk index
Untuk mengadakan percakapan melalui terminal. Input dari terminal Anda akan disalin di terminal user lain, begitu sebaliknya.
tar index
Menyimpan dan mengekstrak file dari media seperti tape drive atau hard disk. File arsip tersebut sering disebut sebagai file tar. Sintaknya sebagai berikut:

$ tar

Alasan mengapa CPU lebih cepat membaca data dari RAM dari pada data di Hardisk

Dalam bekerja dengan komputer kita banyak sekali menemui masalah yang tentu saja membuat kerja kita lambat, masalah tersebut dapat berupa hardware kita yang tidak dapat bekerja dengan maksimal atau malah tidak bisa bekerja sama sekali. Orang yang awam dengan masalah hardware seringkali menjadi bingung dan tidak tahu harus berbuat apa untuk menangani masalahnya sendiri dengan ini Agus Suryanto akan sedikit merangkum,merumuskan masalah dan memberi solusi untuk penangannan agar pembaca dapat mengambil langkah yang tepat dalam perbaikan komputernya. Rangkuman ini hanya bersifat ringan dan tentu saja tida terlalu lengkap merangkum semua kerusakan yang mengkin terjadi pada komputer anda.
Komputer anda tidak bisa display atau muncul gambar dan suara ti……t dengan suara panjang : Penangannannya adalah dengan mengecek VGA (video grafik adapter) jika anda menggunakan VGA diluar dari mainboard maka langkah yang harus anda ambil adalah membukanya dan membersikan dengan kuas, debu yang menempel pada bodi,kaki,dan slot VGA tersebut. Ada baiknya jika anda menggosokkan penghapus pada kaki VGA untuk lebih menjamin VGA itu bersih dari debu karena VGA sangat sensitif dengan debu sedikit saja debu yang masuk maka akan mengganggu kinerja VGA anda. Bila anda sudah melakukan langkah tersebut dan masih saja ada masalah anda sebaiknya mengganti VGA, jika dalam komputer anda dilengkapi dengan fasilitas VGA onboard maka yang anda harus lakukan adalah memindahkan kabel monitor display pada VGA yang di luar mainboard dengan dengan VGA mainboard,jika tidak bisa display/muncul gambar maka sebaiknya anda meminjam monitor teman untuk mengatur setingan BIOS untuk mengatur VGA onboard anda. Mengapa tidak bisa onboard karena resolusi VGA ad-on lebih tinggi kualitas gambarnya daripada VGA onboard sehingga setingan monitor anda tidak mampu menditeksi gambar yang lebih besar resolusinya. Caranya menseting di BIOS adalah seting pada slot PCI dengan men disable VGA ad-on nya. Komputer anda tidak bisa display atau muncul gambar dan suara tit..tit..ti..t : Penangannya adalah dengan anda mengecek memory RAM (random accsess memory pada komputer anda langkah penanganannya sama seperti yang diatas. Jika masih terjadi hal yang demikian sebaiknya anda melepas memori dan mengganti dengan yang baru,jika di koputer anda terisi dua RAM (dual chanel) maka anda tidak harus langsung menggantinya anda dapat memakai satu RAM komputer anda tidak apa-apa hanya lebih lambat saja dalam proses kerjanya.

Ada baiknnya anda mengetahui tentang cara kerja dan fungsi masing-masing hardware yang ada dalam komputer. Hardware yang ada dalam komputer adalah suatu susunan perangkat elektronik yang mengubah data atau input dari user/pengguna dan mengeksekusinya melalui bantuan software atau sistem operasi. Hardware yang ada dalam komputer anda diantaranya adalah :

1. PROCESSOR

The Processor atau CPU (Central Processing Unit) adalah otak dari komputer. Ketika Anda mengetikkan sesuatu di Word, misalnya, itu masuk ke dalam Random Access Memory (RAM). CPU akan melihatnya dan memutuskan apakah perlu untuk mengirim instruksi ke bagian lain dari komputer. Ini kemudian memberikan berbagai tugas bagian-bagian yang sesuai, dan apa yang baru saja diketik muncul pada layar Anda. Sebuah prosesor dinilai oleh para "clock speed" (GHz atau gigahertz), yang menunjukkan berapa banyak instruksi per detik itu bisa menangani.

Processor Contoh : Intel Core 2 Duo Processor T8300 (2. 4 GHz/800MHz FSB, 3MB Cache).
Prosesor ini dapat mengelola 2. 4 milyar instruksi per detik; informasi berjalan pada 800 juta siklus per detik (MHz atau megahertz) antara processor dan Random Access Memory (RAM) ( "bus speed") di sepanjang "Front Side Bus" (FSB), yang adalah sebuah "jalan" di dalam komputer sepanjang informasi yang bepergian, tetapi dapat menyimpan 3MB (Mega Bytes) informasi dalam cache, yang merupakan memori berkecepatan tinggi di mana yang paling terakhir diakses data dan informasi disimpan untuk proses lebih cepat.
Secara umum, lebih GHz adalah lebih baik, tetapi jika Anda menggunakan laptop Anda hanya untuk pengolah kata, email dan internet, biasanya Anda tidak perlu meng-upgrade GHz maksimum yang ditawarkan. Hal yang sama berlaku bagi MHz, tapi ingat bahwa mereka bekerja sama, jadi jika Anda memiliki sangat cepat bus (= lebih MHz), anda juga perlu cepat CPU (# GHz) agar komputer Anda bekerja lebih cepat. Jika Anda dapat memilih hanya satu hal untuk meng-upgrade ketika datang ke CPU, pergi dengan lebih GHz.

2. FSB Prosesor (Front Side Bus)

Adalah lebar jalur pengiriman dan pengambilan data,FSB pada prosesor ditandai dengan "Pc" misalnya Intel pentium III Pc-133 berarti dalam satu kali pengiriman prosesor itu mampu mengirim data (dalam bit) sebanyak 133 juta. Bus prosesor sebaiknya sama dengan Bus pada mainboard agar diperoleh kerja PC yang optimal.

3. CPU
Fungsi utama CPU adalah menjalankan program-program yang disimpan di memori utama. Hal ini dilakukan dengan cara mengambil instruksi-instruksi dari memori utama dan mengeksekusinya satu persatu sesuai dengan alur perintah. Pekerjaan ini dilakukan dalam dua tahapan yaitu membaca instruksi (fetch) dan melaksanakan instruksi tersebut (execute). Proses membaca dan melaksankan ini dilakukan berulang-ulang sampai semua instruksi yang terdapat di memori utama dijalankan atau komputer dimatikan. Proses ini dikenal juga sebagai siklus fetch-eksekusi.

Siklus fetch-eksekusi bisa dijelaskan sebagai berikut:

1. di awal setiap siklus, CPU akan membaca dari memori utama,
2. sebuah register, yang disebut Program Counter (PC), akan mengawasi dan menghitung instruksi selanjutnya,
3. ketika CPU membaca sebuah instruksi, Program Counter akan menambah satu hitungannya,
4. lalu instruksi-instruksi yang dibaca tersebut akan dimuat dalam suatu register yang disebut register instruksi (IR), dan akhirnya
5. CPU akan melakukan interpretasi terhadap instruksi yang disimpan dalam bentuk kode binari, dan melakukan aksi yang sesuai dengan instruksi tersebut.

4. RAM

Ketika orang berbicara tentang memori komputer, RAM biasanya mengacu pada mereka. RAM, atau Random Access Memory, fungsi seperti memegang sementara tempat dan hanya aktif bila komputer Anda diaktifkan. Semua informasi yang dimasukkan ke dalam komputer masuk ke RAM sebelum diproses oleh CPU. Program Anda sedang bekerja di juga disimpan dalam RAM (misalnya, Anda tidak perlu untuk memulai Word lagi setiap kali Anda kembali ke program, itu ada di sana dan menunggu untuk Anda, kecuali jika Anda menutup itu).


Contoh RAM : 3GB Shared Dual Channel DDR2 SDRAM at 667MHz.

The 3GB berarti bahwa ia memiliki total 3GB memori; "Bersama" berarti saham memori dengan kartu grafis. Ini bagus untuk word processing, browsing internet dan email, tapi akan memperlambat komputer Anda bawah jika Anda, misalnya, bermain online game, merekam musik atau mengedit video (jika anda memiliki kartu grafis yang terpisah, ini tidak akan terjadi). "Dual Channel" berarti bahwa memori sudah ditransfer ke CPU menggunakan 2 saluran, yang membuatnya lebih cepat. DDR2 SDRAM adalah nama dan jenis memori, dan MHz memberitahu Anda seberapa cepat memori perjalanan (dalam hal ini 667 million siklus per detik). Jika Anda ingin komputer anda bekerja cepat, ini adalah di mana Anda perlu untuk menghabiskan uang, lebih banyak dan lebih cepat RAM (yaitu lebih GB dan MHz).

Fungsi RAM ( Random Access Memory)
Yang disebut memory pada PC, sebetulnya mengacu pada RAM (Random Access Memory). Sebuah komputer membutuhkan RAM untuk menyimpan data dan instruksi yang dibutuhkan untuk menyelesaikan sebuah perintah (task). Data ataupun instruksi yang tersedia pada RAM memungkinkan processor atau CPU (Central Processing Unit) untuk mengaksesnya dengan cepat. Saat CPU membuka sebuah program aplikasi dari harddisk-seperti word processing, spreadsheet, ataupun game-ia akan me-loading-nya ke memory. Hal ini memungkinkan aplikasi bekerja lebih cepat dibandingkan harus mengakses langsung ke harddisk yang memang jauh lebih lambat. Sebab harddisk memang bertugas sebagai storage data, bukan sebagai memory. Dengan mengakses data ataupun aplikasi yang tersedia di RAM, mempercepat PC Anda dalam menyelesaikan tugasnya.
Analogi sederhana untuk mengerti hal ini, lebih mudah jika mengambil pada kegiatan nyata dalam kehidupan sehari-hari. Misalnya pada lingkungan kerja. Di mana ada meja kerja, dan sebuah lemari arsip. Lemari arsip dapat diandaikan layaknya harddisk, di mana tersedia berkas-berkas dan informasi yang dibutuhkan. Saat mulai bekerja, berkas-berkas informasi akan dikeluarkan dari dalam lemari ke meja kerja. Ini untuk memudahkan dan mempercepat akses ke informasi yang dibutuhkan. Maka, meja kerja dapat dianalogikan sebagai memory pada PC.
Dengan analogi sederhana tersebut, tentunya Anda sudah dapat membayangkan perbedaan kecepatan akses, antara memory dan harddisk. Juga sudah terbayang, pentingnya ketersediaan jumlah RAM yang mencukupi untuk dapat melayani data dan informasi yang dibutuhkan oleh CPU.

5. Harddisk

Alat ini merupakan tempat menyimpan data pada CPU. Jika hardisk dibuka, maka di dalamnya terlihat piringan logam sebagai tempat menulis data. Kecepatan putarannya bervariasi. Ada yang 5400 putaran per menit bahkan ada yang sampai 7200 putaran per menit. Kemampuan sebuah hardisk biasanya ditentukan oleh banyaknya data yang bisa disimpan. Besarnya bervariasi, ada yang 1,2 Gigabyte (GB) hingga 80 GB. Satu GB sama dengan 1000 Megabyte, sedangkan 1 Megabyte sama dengan 1000 Kilobyte. Sangat besar kan ? Kita bisa menyimpan semua data kita pada hardisk ini.

Fungsi Hardisk
* Harddisk merupakan ruang simpan utama dalam sebuah computer. Di situlah seluruh sistem operasi dan mekanisme kerja kantor dijalankan, setiap data dan informasi disimpan.
* Dalam sebongkah harddisk, terdapat berbagai macam ruangruang kecil (direktori, folder, subdirektori, subfolder), yang masing-masing dikelompokkan berdasarkan fungsi dan kegunaannya. Di situlah data-data diletakkan.
* Ruang kecil dalam harddisk bekerja dalam logika saling tergantung (interdependent). Data/informasi dalam satu ruang kadangkala diperlukan untuk menggerakkan data/ informasi yang berada di ruang lain. Ada ruang di mana data di dalamnya tidak boleh diutak-atik atau dipindahkan ke tempat lain, ada ruang di mana kita bisa membuang dan menaruh data secara bergantian sesuai kebutuhan.
* Harddisk terdiri atas beberapa komponen penting. Komponen utamanya adalah pelat (platter) yang berfungsi sebagai penyimpan data. Pelat ini adalah suatu cakram padat yang berbentuk bulat datar, kedua sisi permukaannya dilapisi dengan material khusus sehingga memiliki pola-pola magnetis. Pelat ini ditempatkan dalam suatu poros yang disebut spindle.

6. CHACE MEMORY

Adalah tempat atau media penyimpanan sementara data atau informasi yang sering digunakan oleh komputer. Cache memory dibagi menjadi level 1 dan level 2 (L1,L2) dalam cache memory dibagi menjadi 2 yaitu lokalitas yaitu lokalitas temporal dan lokalitas spasial, lokalitas temporal digunakan untuk menggunakan data atau instruksi dengan berulang-ulang,sedangkan lokalitas spasial digunakan
untuk program-program yang membutuhkan pengaksesan secara berurutan. Prosesor yang menjalankan perintah eksekusi akan mencari dan mengumpulkan sejumlah informasi dari chace L1 terlebih dahulu,secara teknis proses ini dinamakan ( HIT ). Jika informasi tersedia di chace L1 maka prosesor akan langsung mengeksekusinya tanpa ada jeda waktu, jIka tidak ditemukan di chace L1 maka prosesor akan melanjutkan mencarinya di chace L2 proses ini tentu saja akan menambah waktu kerja prosesor itu. Chace memory L1 berada paling dekat dengan inti (core) prosesor da ukurannya lebih kecil daripada chace memory L2. Dalam inti prosesor juga terdapat chace controller yang berfungsi sebagai pengaturan lalu lintas pengaksesan data atau program. Sementara itu chace L2 terdiri dari 2 komponen utama diantaranya adalah:
TAG RAM berfungsi untuk menjaga dan mengatur perletakan data dalam chace memory.DATA STORAGE berfungsi untuk menjaga aktualitas data dalam chace memory.

7. HYPER TREADING
Adalah teknologi yang memungkinkan sistem operasi membaca dua buah prosesor (Logical) walaupun kenyataannya dalam mainboard hanya ada 1 prosesor (Physical) hal ini akan memungkinkan sistem operasi menjalankan dua proses eksekusi secara paralel dengan demikian akan didapatkan efisiensi waktu eksekusi yang lebih cepat jika dibandingkan dengan prosesor yang tidak memiliki kemampuan hyper treading.

Download Software Cek CPU

Perintah-Perintah Pada Linux

Ø Dalam Shell

1. Menampilkan semua IP dalam shell : $ /sbin/ifconfig | grep inet

2. Mematikan proses dalam shell : $ kill -9

3. Melihat daftar file dalam direktori : $ ls -la

4. Mencari direktori yang ada permittion : $ find / -type d -perm 777

5. Menjadikan file read only : $ chmod 755

6. Download file : $ wget

7. Download file : $ curl -o

8. Download file : $ lwp-download

9. Memeriksa posisi direktori kita bekerja : $ pwd

10. Masuk ke direktori : $ cd

11. Menampilkan semua file yg tersembunyi (drwxrwxrwx): $ ls -FRla | grep

drwxrwxrwx

12. Mencari isi direktori : $ find . -name [nama direktori] -print

13. Mencari semua ID nobody : $ find / -name *gz* -user nobody

14. Menampilkan proses background : $ ps -x

15. Menampilkan semua proses background : $ ps -ax

16. Mengganti nama file ato direktori : $ mv

17. Mencari proses file secara spesifikasi : $ find | grep

18. Menghapus history : $ history -c

19. Menghapus logs history : $ rm -f /.bash_history /root/.bash_history

/var/log/messages

20. Extract file zip : $ tar -zxvf

21. Membuat file zip hanya dengan target file/direktori : $ tar -zcf

22. Membuat file zip dengan target seluruh isi direktori : $ tar –zcf



Ø Perintah berat linux orisinil

1. $ man ls

Manual tersebut akan menampilkan bagaimana cara penggunaan perintah ls itu secara lengkap.



2. Perintah &

Perintah & dipakai dibelakang perintah lain dan menjalankannya di background. Tujuannya adalahuntuk membebaskan shell agar bisa dipergunakan menjalankan proses-proses yang lain. Lihat juga perintah bg dan fg.



3. Perintah adduser

Biasanya hanya dilakukan oleh root untuk menambahkan user atau account yg baru. Setelah perintah ini bisa dilanjutkan dengan perintah passwd, yaitu perintah untuk membuat password bagi user tersebut.

# adduser rayman

# passwd rayman

Selanjutnya Anda akan diminta memasukkan password untuk user rayman. Isikan password untuk rayman dua kali

dengan kata yang sama.



4. Perintah alias

Digunakan untuk memberi nama lain dari sebuah perintah. Misalnya bila Anda ingin perintah ls dapat juga dijalankandengan mengetikkan perintah dir, maka buatlah aliasnya sbb:

$ alias dir=ls

Untuk melihat perintah-perintah apa saja yang mempunyai nama lain saat itu, cukup ketikkan alias. Lihat juga perintah unalias.



5. Perintah bg

Untuk memaksa sebuah proses yang dihentikan sementara(suspend) agar berjalan di background. Misalnya Anda sedang menjalankan sebuah perintah di foreground (tanpa diakhiri perintah &) dan suatu saat Anda membutuhkan shell

tersebut maka Anda dapat memberhentikan sementara perintah tersebut dengan Ctrl-Z kemudian ketikan perintah bg untuk menjalakannya di background. Dengan cara ini Anda telah membebaskanshell tapi tetap mempertahankan perintah lama berjalan di background. Lihat juga perintah fg.



6. Perintah cat

Menampilkan isi dari sebuah file di layar.

$ cat namafile



7. Perintah cd

Change Directory atau untuk berpindah direktori dan saya kira Anda tidak akan menemui kesulitan menggunakan perintah ini karena cara penggunaanya mirip dengan perintah cd di DOS.



8. Perintah chgrp

Perintah ini digunakan untuk merubah kepemilikan kelompok file atau direktori. Misalnya untuk memberi ijin pada kelompok atau grup agar dapat mengakses suatu file. Sintaks penulisannya adalah sbb:

# chgrp



9. Perintah chmod

Digunakan untuk menambah dan mengurangi ijin pemakai untuk mengakses file atau direktori. Anda dapat menggunakan sistem numeric coding atau sistem letter coding. Ada tiga jenis permission/perijinan yang dapat dirubah yaitu r untuk read, w untuk write dan x untuk execute. Dengan menggunakan letter coding, Anda dapat merubah permission diatas untuk masing-masing u (user), g (group), o (other) dan a (all) dengan hanya memberi tanda plus (+) untuk menambah ijin dan tanda minus (-) untuk mencabut ijin. Misalnya untuk memberikan ijin baca dan eksekusi file coba1 kepada owner dan group, perintahnya adalah:

$ chmod ug+rx coba1

Untuk mencabut ijin-ijin tersebut:

$ chmod ug-rx coba1

Dengan menggunakan sitem numeric coding, permission untukuser, group dan other ditentukan dengan menggunakan kombinasi angka-angka, 4, 2 dan 1 dimana 4 (read), 2 (write) dan 1 (execute).

Misalnya untuk memberikan ijin baca(4), tulis(2) dan eksekusi(1) file

coba2 kepada owner, perintahnya adalah:

$ chmod 700 coba2

Contoh lain, untuk memberi ijin baca(4) dan tulis(2) file coba3 kepada user, baca(4) saja kepada group dan other,

perintahnya adalah:

$ chmod 644 coba3



10. Perintah chown

Merubah user ID (owner) sebuah file atau direktori $ chown



11. Perintah cp

Untuk menyalin file atau copy. Misalnya untuk menyalin file1 menjadi file2: $ cp



12. Perintah fg

Mengembalikan suatu proses yang dihentikan sementar(suspend) agar berjalan kembali di foreground. Lihat juga perintah bg diatas.



13. Perintah find

Untuk menemukan dimana letak sebuah file. Perintah ini akan mencari file sesuai dengan kriteria yang Anda tentukan.

Sintaksnya adalah perintah itu sendiri diikuti dengan nama direktori awal pencarian, kemudian nama file (bisa menggunakan wildcard, metacharacters) dan terakhir menentukan bagaimana hasil pencarian itu akan ditampilkan. Misalnya akan dicari semua file yang berakhiran .doc di current direktori serta tampilkan hasilnya di layar:

$ find . -name *.doc -print

. /public/docs/account.doc

. /public/docs/balance.doc

. /public/docs/statistik/prospek.doc

./public/docs/statistik/presconf.doc



14. Perintah grep

Global regular expresion parse atau grep adalah perintah untuk mencari file-file yang mengandung teks dengan criteria yang telah Anda tentukan. $ grep Misalnya akan dicari file-file yang mengandung teks marginal di current direktori:

$ grep marginal

diferent.doc: Catatan: perkataan marginal luas dipergunakan di dalam ilmu ekonomi prob.rtf: oleh fungsi hasil marginal

dan fungsi biaya marginal jika fungsi prob.rtf: jika biaya marginal dan hasil marginal diketahui maka biaya total



15. Perintah gzip

Ini adalah software kompresi zip versi GNU, fungsinya untuk mengkompresi sebuah file. Sintaksnya sangat sederhana: $ gzip Walaupun demikian Anda bisa memberikan parameter tertentu bila memerlukan kompresi file yang lebih baik,

silakan melihat manual page-nya. Lihat juga file tar, unzip dan zip.



16. Perintah halt

Perintah ini hanya bisa dijalankan oleh super user atau Anda harus

login sebagai root. Perintah ini untuk memberitahu kernel supaya mematikan sistem atau shutdown.



17. Perintah hostname

Untuk menampilkan host atau domain name sistem dan bisa pula digunakan untuk mengesset nama host sistem. $

hostname localhost.localdomain



18. Perintah kill

Perintah ini akan mengirimkan sinyal ke sebuah proses yang kita tentukan. Tujuannya adalah menghentikan proses. $

kill PID adalah nomor proses yang akan di hentikan.



19. Perintah less

Perintah ini sama fungsinya dengan perintah more (melihat isi dari sebuah file) dan hampir sama juga dengan perintah cat. 20. Perintah login Untuk masuk ke sistem dengan memasukkan login ID atau dapat juga digunakan untuk berpindah

dari user satu ke user lainnya.



21. Perintah logout

Perintah yang digunakan apabila kita mau keluar dari sistem



22. Perintah ls

Menampilkan isi dari sebuah direktori seperti perintah dir di DOS. Anda dapat menggunakan beberapa option yang disediakan untuk mengatur tampilannya di layar. Bila Anda menjalankan perintah ini tanpa option maka akan ditampilkan

seluruh file nonhidden(file tanpa awalan tanda titik) secara alfabet dan secara melebar mengisi kolom layar. Option –la artinya menampilkan seluruh file/all termasuk file hidden(file dengan awalan tanda titik) dengan format panjang.

$ ls

$ ls -al

$ ls -la



23. Perintah man

Untuk menampilkan manual page atau teks yang menjelaskan secara detail bagaimana cara penggunaan sebuah perintah. Perintah ini berguna sekali bila sewaktu-waktu Anda lupa atau tidak mengetahui fungsi dan cara menggunakan

sebuah perintah. $ man



24. Perintah mesg

Perintah ini digunakan oleh user untuk memberikan ijin user lain menampilkan pesan dilayar terminal. Misalnya mesg Anda dalam posisi y maka user lain bisa menampilkan pesan di layar Anda dengan write atau talk. $ mesg y atau mesg n Gunakan mesg n bila Anda tidak ingin diganggu dengan tampilan pesan-pesan dari user lain.



25. Perintah mkdir

Membuat direktori baru, sama dengan perintah md di DOS. $ mkdir



26. Perintah more

Mempaging halaman, seperti halnya less.



27. Perintah mount

Perintah ini akan me-mount filesystem ke suatu direktori atau mount-point yang telah ditentukan. Hanya superuser yang bisa menjalankan perintah ini. Untuk melihat filesystem apa saja beserta mount-pointnya saat itu, ketikkan perintah mount. Perintah ini dapat Anda pelajari di bab mengenai filesystem. Lihat juga perintah umount.

$ mount

/dev/hda3 on / type ext2 (rw)

none on /proc type proc (rw)

/dev/hda1 on /dos type vfat (rw)

/dev/hda4 on /usr type ext2 (rw)

none on /dev/pts type devpts (rw,mode=0622)



28. Perintah mv

Untuk memindahkan file dari satu lokasi ke lokasi yang lain. Bila argumen yang kedua berupa sebuah direktori maka mv akan memindahkan file ke direktori tersebut. Bila kedua argumen berupa file maka nama file pertama akan menimpa file kedua. Akan terjadi kesalahan bila Anda memasukkan lebih dari dua argumen kecuali argumen terakhir berupa sebuah direktori.

$ mv psybnc /var/tmp

$ mv psybnc



29. Perintah passwd

Digunakan untuk mengganti password. Anda akan selalu diminta mengisikan password lama dan selanjutnya akan diminta mengisikan password baru sebanyak dua kali. Password sedikitnya terdiri dari enam karakter dan sedikitnya mengandung sebuah karakter. $ passwd



30. Perintah pwd

Menampilkan nama direktori dimana Anda saat itu sedang berada.



31. Perintah rm

Untuk menghapus file dan secara default rm tidak menghapus direktori. Gunakan secara hati-hati perintah ini terutama dengan option -r yang secara rekursif dapat mengapus seluruh file.

$ rm -rf

$ rm -f

$ rm



32. Perintah rmdir

Untuk menghapus direktori kosong. $ rmdir



33. Perintah shutdown

Perintah ini untuk mematikan sistem, seperti perintah halt. Pada beberapa sistem anda bisa menghentikan komputer dengan perintah shutdown -h now dan merestart sistem dengan perintah shutdown -r now atau dengan kombinasi tombol Ctr-Alt-Del.

# shutdown -r now



34. Perintah su

Untuk login sementara sebagai user lain. Bila user ID tidak disertakan maka komputer menganggap Anda ingin login sementara sebagai super user atau root. Bila Anda bukan root dan user lain itu memiliki password maka Anda harus memasukkan passwordnya dengan benar. Tapi bila Anda adalah root maka Anda dapat login sebagai user lain tanpa perlu mengetahui password user tersebut.



35. Perintah tail

Menampilkan 10 baris terakhir dari suatu file. Default baris yang ditampilkan adalah 10 tapi Anda bisa menentukan sendiri berapa baris yang ingin ditampilkan:

$ tail



36. Perintah talk

Untuk mengadakan percakapan melalui terminal. Input dari terminal Anda akan disalin di terminal user lain, begitu sebaliknya.



37. Perintah tar

Menyimpan dan mengekstrak file dari media seperti tape drive atau hard disk. File arsip tersebut sering disebut sebagai file tar. Sintaknya sebagai berikut:

$ tar



38. Perintah umount

Adalah kebalikan dari perintah mount, yaitu untuk meng-unmount filesystem dari mount-pointnya. Setelah perintah ini dijalankan direktori yang menjadi mount-point tidak lagi bisa digunakan.

# umount



39. Perintah unalias

Kebalikan dari perintah alias, perintah ini akan membatalkan sebuah alias. Jadi untuk membatalkan alias dir seperti telah dicontohkan diatas, gunakan perintah:

$ unalias dir



40. Perintah unzip

Digunakan untuk mengekstrak atau menguraikan file yang dikompres dengan zip. Sintaknya sederhana dan akan mengekstrak file yang anda tentukan:

$ unzip

Lihat juga perintah-perintah gzip dan unzip.



41. Perintah wall

Mengirimkan pesan dan menampilkannya di terminal tiap user yang sedang login. Perintah ini berguna bagi superuser atau root untuk memberikan peringatan ke seluruh user, misalnya pemberitahuan bahwa server sesaat lagi akan dimatikan. # who Dear, everyone….. segera simpan pekerjaan kalian, server akan saya matikan 10 menit lagi.



42. Perintah who

Untuk menampilkan siapa saja yang sedang login. Perintah ini akan menampilkan informasi mengenai login name, jenis terminal, waktu login dan remote hostname untuk setiap user yang saat itu sedang login. Misalnya:

$ who



43. Perintah xhost +

Perintah ini digunakan untuk memberi akses atau menghapus akses(xhost -) host atau user ke sebuah server X.



44. Perintah xset

Perintah ini untuk mengeset beberapa option di X Window seperti bunyi bel, kecepatan mouse, font, parameter screen saver dan sebagainya. Misalnya bunyi bel dan kecepatan mouse dapat Anda set menggunakan perintah ini:

$ xset b $ xset m



45. Perintah zip

Perintah ini akan membuat dan menambahkan file ke dalam file arsip zip. Lihat juga perintah gzip dan unzip.

Senin, 21 Desember 2009

Membuat mirror update anti virus AVIRA

Pada dasarnya mirror yg dimaksud disini adalah download secara otomatis, sebagaimana bisa anda baca pada tulisan saya yang ini.

ok langsung saja kita terjemahkan script avira.sh

1. Membuat direktori temporary

mkdir -p /mnt/website/update/avira/inprogress/
cd /mnt/website/update/avira/inprogress/
2. Saya asumsikan update avira mempunyai alamat url dan filename yg static (tdk berubah-ubah), sehingga kita bisa langsung mendownloadnya.

wget -c http://dl.antivir.de/down/vdf/ivdf_fusebundle_nt_en.zip
3. Delete update kemarin dan memindahkan update-an yg baru saja di download ke direktori yg diinginkan.

rm -f /mnt/website/update/avira/*.zip
cp /mnt/website/update/avira/inprogress/*.zip /mnt/website/update/avira/
rm -rf /mnt/website/update/avira/inprogress/
4. Memperbaharui tanggal direktori : utk untuk mempermudah kita mengetahui kapan update terakhir dilakukan

touch /mnt/website/update/avira/
5. setting permission

chown -R root:root /mnt/website/update/avira/
6. Jadikan script avira.sh mempunyai mode executable

lqman@constantine:~$ chmod +x /home/lqman/script-mirror/avira.sh
7. Jadikan proses update ini berulang sesuai periode yg anda inginkan dengan memasukkannya pada crontab.

root@agus:~$ crontab -e

# daily update avira by LQman every 21:00
0 21 * * * /home/root/script-mirror/avira.sh

Beres, selamat menikmati mirror update avira.


Script :
avira.sh

Hasil:
http://mirror.ee.its.ac.id/update/avira/

Membuat mirror update anti virus AVG8FREE

Tutorial ini merupakan kelanjutan dari tulisan ini, maka sebaiknya anda baca terlebih dahulu tulisan tersebut, kemudian baru melanjutkan ke tutorial yang ini.

1. Membuat direktori sementara (temporary directory) untuk proses download dan masuk pada direktori tersebut

lqman@constantine:~$ mkdir -p /mnt/website/update/avg8free/inprogress/
lqman@constantine:~$ cd /mnt/website/update/avg8free/inprogress/
2. Mendonlod halaman awal pada bagian update

lqman@constantine:~$ wget -c http://free.grisoft.com/ww.download-update -O /mnt/website/update/avg8free/inprogress/donlod.html
3. Parsing text dari file donlod.html

Pada halaman awal yg sudah kita donlod, ada link yang akan menunjukkan pada kita letak file updater yg sebenarnya, cuman kita harus sedikit melakukan rekayasa, sehingga keinginan kita bisa dilakukan secara otomatis. Dari file donlod.html yang harus diambil adalah baris yang mengandung tulisan .bin

lqman@constantine:~$ cat donlod.html | grep .bin | cut -d '=' -f8 > donlod2.html
lqman@constantine:~$ cat donlod2.html | cut -d '"' -f2 > donlod3.html

untuk menguji apakah script kita diatas sdh sesuai dg yg kita inginkan, kita harus melihat file donlod3.html yg baru saja dihasilkan.

lqman@constantine:~$ cat /mnt/website/update/avg8free/inprogress/donlod3.html

http://free.avg.com/softw/80free/update/f8all237ns.bin

http://free.avg.com/softw/80free/update/x8all110io.bin

http://free.avg.com/softw/80free/update/u7avi1481pm.bin

http://free.avg.com/softw/80free/update/u7iavi2046pm.bin

4. Hitung banyak file yg hrs d donlod = banyak baris pd donlod3.html

lqman@constantine:~$ jmlbrs=`wc donlod3.html | awk '{print $1}'`
5. Mendefinisikan nama file yg akan di download

lqman@constantine:~$ for i in `seq 1 $jmlbrs`; do basename `head -n $i donlod3.html | tail -n 1`; done > namafile
6. Mulai donload tiap baris

lqman@constantine:~$ for i in `seq 1 $jmlbrs`; do wget -c `head -n $i donlod3.html | tail -n 1` -O `head -n $i namafile | tail -n 1`; done
7. Membersihkan file temporary dan memindahkan update-an ke tempat yg sebenarnya

lqman@constantine:~$ rm -f /mnt/website/update/avg8free/*.*
mv /mnt/website/update/avg8free/inprogress/*.bin /mnt/website/update/avg8free/
rm -rf /mnt/website/update/avg8free/inprogress
8. Memperbaharui tanggal direktori

Perbaharuan tanggal direktori ini sengaja dilakukan untuk mempermudah kita mengetahui kapan update terakhir dilakukan.
lqman@constantine:~$ touch /mnt/website/update/avg8free/
9. Setting permission

lqman@constantine:~$ chown -R lqman:lqman /mnt/website/update/avg8free/
10. Jadikan file tsb dalam satu script

lqman@constantine:~$ touch /home/lqman/script-mirror/avg8free.sh
lqman@constantine:~$ mcedit /home/lqman/script-mirror/avg8free.sh

#!/bin/bash

mkdir -p /mnt/website/update/avg8free/inprogress/
cd /mnt/website/update/avg8free/inprogress/
wget -c http://free.grisoft.com/ww.download-update -O /mnt/website/update/avg8free/inprogress/donlod.html
cat donlod.html | grep .bin | cut -d ‘=’ -f8 > donlod2.html
cat donlod2.html | cut -d ‘”‘ -f2 > donlod3.html
cat /mnt/website/update/avg8free/inprogress/donlod3.html
jmlbrs=`wc donlod3.html | awk ‘{print $1}’`
for i in `seq 1 $jmlbrs`; do basename `head -n $i donlod3.html | tail -n 1`; done > namafile
for i in `seq 1 $jmlbrs`; do wget -c `head -n $i donlod3.html | tail -n 1` -O `head -n $i namafile | tail -n 1`; done
rm -f /mnt/website/update/avg8free/*.*
mv /mnt/website/update/avg8free/inprogress/*.bin /mnt/website/update/avg8free/
rm -rf /mnt/website/update/avg8free/inprogress
touch /mnt/website/update/avg8free/

11. Jadikan script avg8free.sh mempunyai mode executable

lqman@constantine:~$ chmod +x /home/lqman/script-mirror/avg8free.sh
12. Jadikan proses update ini berulang sesuai periode yg anda inginkan dengan memasukkannya pada crontab.

lqman@constantine:~$ crontab -e

# daily update avg8free by LQman every 21:00
0 21 * * * /home/lqman/script-mirror/avg8free.sh

Beres, selamat menikmati mirror update avg8free.

Membuat mirror update anti virus AVG7FREE

Sebelum membaca turorial ini, anda saya anggap sudah terbiasa dengan bash scripting languange, dan tools2 konsole lainnya. Ingat, sifat dari tulisan adalah seperti biasanya, yaitu ABSOLUTELY NO WARRANTY :) dan akan sewaktu2 menjadi tidak bisa di implementasikan apabila website yg bersangkutan (http://www.grisoft.com/ww.download-update-7), melakukan perubahan hierarki direktori / file-nya.
Sebagai tambahan saja, tutorial ini cocok di implementasikan pada LAN yang cukup middle/besar, dan tidak cocok utk digunakan pada LAN yang kecil karena hanya kan memboroskan bandwidth saja.

Pada dasarnya tutorial ini adalah simple shell script biasa yang fungsinya untuk melakukan parsing text pada file .html, intinya kita ingin mengetahui sebenarnya letak dari file update yg disediakan oleh http://www.grisoft.com/ww.download-update-7, untuk itu kita bisa melakukan langkah2 sbb :

1. Membuat direktori sementara (temporary directory) untuk proses download

lqman@constantine:~$ mkdir -p /mnt/website/update/avg7free/inprogress/
lqman@constantine:~$ cd /mnt/website/update/avg7free/inprogress/
2. Mendonlod halaman awal pada bagian update dari www.grisoft.com

lqman@constantine:~$ wget -c http://www.grisoft.com/ww.download-update-7 -O /mnt/website/update/avg7free/inprogress/donlod.html
3. Parsing text dari file donlod.html

Pada halaman awal yg sudah kita donlod, ada link yang akan menunjukkan pada kita letak file updater yg sebenarnya, cuman kita harus sedikit melakukan rekayasa, sehingga keinginan kita bisa dilakukan secara otomatis. Dari file donlod.html yang harus diambil adalah baris yang mengandung tulisan .bin

lqman@constantine:~$ cat donlod.html | grep .bin | cut -d'=' -f6 > donlod2.html
lqman@constantine:~$ cat donlod.html | grep .bin | cut -d'=' -f8 >> donlod2.html
lqman@constantine:~$ cat donlod.html | grep .bin | cut -d'=' -f9 >> donlod2.html
lqman@constantine:~$ cat donlod2.html | grep "http:" | cut -d '"' -f2 > donlod3.html

untuk menguji apakah script kita diatas sdh sesuai dg yg kita inginkan, kita harus melihat file donlod3.html yg baru saja dihasilkan.

lqman@constantine:~$ cat /mnt/website/update/avg7free/inprogress/donlod3.html

http://www.avg.com/softw/70/update/u7fbsd5291.bin

http://www.avg.com/softw/70/update/u7avi1386g2.bin

http://www.avg.com/softw/70/update/u7iavi17514m.bin

http://www.avg.com/softw/70/update/antispy/u7aspydb2035he.bin

http://www.avg.com/softw/70/update/u7f549yg.bin

http://www.avg.com/softw/70/update/u7fw533yh.bin

http://www.avg.com/softw/70/update/u7lx5298.bin

http://www.avg.com/softw/70/update/u7aspam510yb.bin

http://www.avg.com/softw/70/update/antispy/u7aspy494yb.bin

http://www.avg.com/softw/70/update/u7setup533yc.bin

http://www.avg.com/softw/70/update/u7avi1386u1323g2.bin

http://www.avg.com/softw/70/update/u7avi1386u1382g2.bin

http://www.avg.com/softw/70/update/antispy/u7aspydb3143u2246p1.bin

http://www.avg.com/softw/70/update/antispy/u7aspydb2246u2035zl.bin

4. Hitung banyak file yg hrs d donlod = banyak baris pd donlod3.html

lqman@constantine:~$ jmlbrs=`wc donlod3.html | awk '{print $1}'`
5. Mendefinisikan nama file yg akan di download

lqman@constantine:~$ for i in `seq 1 $jmlbrs`; do basename `head -n $i donlod3.html | tail -n 1`; done > namafile
6. Mulai donload tiap baris

lqman@constantine:~$ for i in `seq 1 $jmlbrs`
do
wget -c `head -n $i donlod3.html | tail -n 1` -O `head -n $i namafile | tail -n 1`
done
7. Membersihkan file temporary dan memindahkan update-an ke tempat yg sebenarnya

lqman@constantine:~$ rm -f /mnt/website/update/avg7free/*.*
lqman@constantine:~$ mv /mnt/website/update/avg7free/inprogress/*.bin /mnt/website/update/avg7free/
lqman@constantine:~$ rm -rf /mnt/website/update/avg7free/inprogress
8. Memperbaharui tanggal direktori

Perbaharuan tanggal direktori ini sengaja dilakukan untuk mempermudah kita mengetahui kapan update terakhir dilakukan.
lqman@constantine:~$ touch /mnt/website/update/avg7free/
9. Setting permission

lqman@constantine:~$ chown -R lqman:lqman /mnt/website/update/avg7free/
10. Jadikan file tsb dalam satu script

lqman@constantine:~$ touch /home/lqman/script-mirror/avg7free.sh
lqman@constantine:~$ mcedit /home/lqman/script-mirror/avg7free.sh

#!/bin/bash

mkdir -p /mnt/website/update/avg7free/inprogress/
cd /mnt/website/update/avg7free/inprogress/
wget -c http://www.grisoft.com/ww.download-update-7 -O /mnt/website/update/avg7free/inprogress/donlod.html
cat donlod.html | grep .bin | cut -d’=’ -f6 > donlod2.html
cat donlod.html | grep .bin | cut -d’=’ -f8 >> donlod2.html
cat donlod.html | grep .bin | cut -d’=’ -f9 >> donlod2.html
cat donlod2.html | grep “http:” | cut -d ‘”‘ -f2 > donlod3.html
cat /mnt/website/update/avg7free/inprogress/donlod3.html
jmlbrs=`wc donlod3.html | awk ‘{print $1}’`
for i in `seq 1 $jmlbrs`; do basename `head -n $i donlod3.html | tail -n 1`; done > namafile
for i in `seq 1 $jmlbrs`
do
$donlod `head -n $i donlod3.html | tail -n 1`$magic -O `head -n $i namafile | tail -n 1`
done
rm -f /mnt/website/update/avg7free/*.*
mv /mnt/website/update/avg7free/inprogress/*.bin /mnt/website/update/avg7free/
rm -rf /mnt/website/update/avg7free/inprogress
touch /mnt/website/update/avg7free/
chown -R lqman:lqman /mnt/website/update/avg7free/

11. Jadikan script avg7free.sh mempunyai mode executable

lqman@constantine:~$ chmod +x /home/lqman/script-mirror/avg7free.sh
12. Jadikan proses update ini berulang sesuai periode yg anda inginkan dengan memasukkannya pada crontab.

lqman@constantine:~$ crontab -e

# daily update avg7free by LQman every 21:00
0 21 * * * /home/lqman/script-mirror/avg7free.sh

Membangun Mail Server Menggunakan Postfix + Courier IMAP/POP + MySQL + Squirrelmail

Kali ini saya akan memberikan tutorial tentang membangun sebuah mail server menggunakan postfix sebagai MTA-nya, Courier IMAP dan POP sebagai MDA, MySQL sebagai database, dan Squirrelmail sebagai webmail-nya. Saya menggunakan Linux Ubuntu 8.04 Hardy Heron. Berikut adalah langkah-langkah yang harus dilakukan :

Langkah1 : Menyiapkan paket-paket yang kita butuhkan

1. postfix, postfix-tls, postfix-mysql

2. courier-base, courier-authdaemon, courier-authlib-mysql, courier-pop, courier-imap, courier-pop-ssl, courier-imap-ssl

3. mysql-server-5.0

4. squirrelmail

5. libsasl2, libsasl2-modules, libsasl2-modules-sql, openssl

Kemudian install paket-paket tersebut.

root@baladewa:~#apt-get install postfix postfix-tls postfix-mysql mysql-server-5.0 courier-authdaemon courier-authlib-mysql courier-pop courier-imap squirrelmail

Langkah2 : Mempersiapkan database dan tabel-tabel yang dibutuhkan

root@baladewa:~#mysql -u root -p

#Kita membuat user di MySQL untuk mengatur database email

mysql>CREATE DATABASE mail;
mysql>CREATE USER ‘mailadmin’@'localhost’ identified by ‘mailadmin’;
mysql>USE mail;

#membuat tabel-tabel yan dibutuhkan
mysql>CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain) )
TYPE=MyISAM;

mysql>CREATE TABLE forwardings (
source varchar(80) NOT NULL,
destination TEXT NOT NULL,
PRIMARY KEY (source) )
TYPE=MyISAM;

mysql>CREATE TABLE users (
email varchar(80) NOT NULL,
password varchar(20) NOT NULL,
PRIMARY KEY (email) )
TYPE=MyISAM;

mysql>GRANT all ON mail.* TO ‘mailadmin’@'localhost’;

Langkah3 : Membuat file-file yan dibutuhkan

Buat file mysql_domains.cf dg kemudian isi dengan baris-baris dibawah ini:
vim /etc/postfix/mysql_domains.cf

user = mailadmin
password = mailadmin
dbname = mail
table = domains
select_field = ‘virtual’
where_field = domain
hosts = 127.0.0.1

isi file mysql_forwardings.cf dg baris-baris dibawah ini:
vim /etc/postfix/mysql_forwardings.cf

user = mailadmin
password = mailadmin
dbname = mail
table = forwardings
select_field = destination
where_field = source
hosts = 127.0.0.1

isi file mysql_mailboxes.cf dg baris-baris dibawah ini:
vim /etc/postfix/mysql-virtual_mailboxes.cf
user = mailadmin
password = mailadmin
dbname = mail
table = users
select_field = CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/')
where_field = email
hosts = 127.0.0.1

Langkah4 : pastikan hanya user root & postfix saja yang bisa mengakses file-file tadi
root@baladewa:~#chown root:postfix /etc/postfix/mysql_*.cf
root@baladewa:~#chmod u=rw,g=r,o= /etc/postfix/mysql_*.cf

Langkah5: Buat user yang bertugas untuk membuat maildir baru setiap ada user baru yang mendaftar pada mailserver
root@baladewa:~#groupadd -g 500 mail-admin
root@baladewa:~#useradd -g mail-admin -u 500 mail-admin -d /home/mail -m
root@baladewa:~#mkdir /home/mail
root@baladewa:~#chown -R mail-admin:mail-admin /home/mail
root@baladewa:~#chmod -R u=rwx,g=,o= /home/mail

Langkah6 : Konfigurasi postfix

Edit file /etc/postfix/main.cf seperti berikut:

myhostname = baladewa.ncc.its-sby.edu
#mydomain = ncc.its-sby.edu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = ncc.its-sby.edu
mydestination = #kosongi saja
relayhost = #kosongi saja
mynetworks = ncc.its-sby.edu #domain network anda
mailbox_size_limit = 51200000 #Ukuran mailbox 50MB
recipient_delimiter = +
inet_interfaces = all

virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_forwardings.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/mail
virtual_uid_maps = static:500
virtual_gid_maps = static:500

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
Kemudian restart postfix

root@baladewa:~# /etc/init.d/postfix restart

Test postfix menggunakan telnet

root@baladewa:~# telnet 127.0.0.1 25
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’.
220 baladewa.ncc.its-sby.edu ESMTP Postfix (Ubuntu)

Jika muncul sebagaimana tulisan diatas, berarti postfix anda sudah berjalan lancar…….
Tekanlah tombol Ctrl+] lalu ketik quit untuk keluar dari sesi telnet.

Langkah7 : Mengaktifkan fasilitas autentikasi Auth-SMTP

buat file baru dg nama /etc/postfix/sasl/smtpd.conf
root@baladewa:~#vim /etc/postfix/sasl/smtpd.conf
Isi file /etc/postfix/sasl/smtpd.conf seperti berikut:

pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: plain login cram-md5 digest-md5
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: mailadmin
sql_passwd: mailadmin
sql_database: mail
sql_select: select password from users where email=’%u@%r’
log_level: 7

Save file smtpd.conf.

pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat.
root@baladewa:~#chown root:postfix /etc/postfix/sasl/smtpd.conf
root@baladewa:~#chmod u=rw,g=r,o= /etc/postfix/sasl/smtpd.conf

Mengaktifkan TLS untuk meng-encrypt SMTP traffik, dg cara membuat sertifikat
root@baladewa:~#openssl req -new -outform PEM -out /etc/postfix/smtpd.cert -newkey rsa:2048 -nodes -keyout /etc/postfix/smtpd.key -keyform PEM -days 365 -x509

Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah dibuat.
root@baladewa:~#chown root:postfix /etc/postfix/smtpd.*
root@baladewa:~#chmod u=rw,g=r,o= /etc/postfix/smtpd.*

Step 7: Mengkonfigurasi courier sebagai server POP3 / IMAP

Edit file /etc/courier/authdaemonrc,

root@baladewa:~#vim /etc/courier/authdaemonrc

ubah parameter authmodulelist menjadi :
authmodulelist=”authmysql”
Lalu edit file /etc/courier/authmysqlrc,
root@baladewa:~#vim /etc/courier/authmysqlrc
Ubah beberapa parameter, shg menjadi seperti di bawah ini :
MYSQL_SERVER localhost
MYSQL_USERNAME mailadmin
MYSQL_PASSWORD mailadmin
MYSQL_PORT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
#MYSQL_CRYPT_PWFIELD (di comment)
MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 500
MYSQL_GID_FIELD 500
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD “/home/mail”
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/')
#MYSQL_NAME_FIELD (di comment)

10. Testing POP3 dan IMAP

Restart service courier-authdaemon, /etc/init.d/courier-authdaemon restart

kemudian telnet ke port 110 (POP3)

root@baladewa:~#telnet 127.0.0.1 110
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
+OK Hello there.

telnet ke port 143

root@baladewa:~# telnet 127.0.0.1 143
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2005 Double Precision, Inc. See COPYING for distribution information.
Connection closed by foreign host.

Jika muncul seperti tampilan di atas, berarti konfigurasi POP3 dan IMAP server sudah benar.

11. Konfigurasi squirrelmail

Sekarang kita mengkonfigurasi webmail squirrelmail yang akan kita gunakan sebagai interfase dengan mail server.

root@baladewa:~#squirrelmail-configure

Lakukan konfigurasi yang anda perlukan. Yang terpenting dari konfigurasi ini adalah bagian Server Setting. Selain itu tidak terlalu penting.

Pada saat menentukan “Server Settings”, lakukan perubahan spt dibawah ini

Secure IMAP (TLS) : false
Server software : courier

kemudian save opsi tersebut dg cara menekan tombol “s”, lalu keluar dari configurasi dg menekan tombol “q”.

12. Menjadikan squirrelmail sebagai virtual host di Apache2

Buat file virtual host baru di apache2

root@baladewa:~# vim /etc/apache2/sites-available/squirrelmail

Kemudian isi seperti berikut ini:


ServerName mail.ncc.its-sby.edu
ServerAlias ncc.its-sby.edu
DocumentRoot /usr/share/squirrelmail
#CustomLog logs/www.example.com-access_log common


Simpan file, kemudian aktifkan virtual host yang baru kita buat tadi.

root@baladewa:~# a2ensite squirrelmail

Restart apache

/etc/init.d/apache2 reload

Kemudian kita lakukan penambahan host pada DNS

@ IN MX 5 mail
mail IN A 10.151.36.9

13. Testing mail server

Sekarang kita akan membuat database pada domain yang akan kita coba, domain inilah yang kita jadikan sebagai domain percobaan untuk mengirim dan menerima email. Buatlah domain baru dengan nama domain “ncc.its-sby.edu” pada tabel domains, dan buatlah juga alamat email dan password baru pada tabel users.
Untuk lebih jelasnya ikutilah syntax mysql dibawah ini.

root@bajoel:~#mysql -u mailadmin -p
password:
mysql>INSERT INTO domains(domain) VALUES ('ncc.its-sby.edu');
mysql>INSERT INTO users(email,password) VALUES ('joep@ncc.its-sby.edu','joep');
mysql>INSERT INTO users(email,password) VALUES ('fahim@ncc.its-sby.edu','fahim');
mysql>INSERT INTO forwarding(source,destination) VALUES ('mailadmin@ncc.its-sby.edu','joep@ncc.its-sby.edu');

Sekarang kita sudah punya sebuah virtual domain baru dg nama “ncc.its-sby.edu” dan 2 orang user, yaitu “joep@ncc.its-sby.edu” dan “fahim@ncc.its-sby.edu” yang masing-masing user ini mempunyai password “joep” dan “fahim”. Ada juga 1 forwarding, yaitu “mailadmin@ncc.its-sby.edu” yang akan di forward ke “joep@ncc.its-sby.edu”.

sekarang buka we browser. Kemudian ketik alamat http://mail.ncc.its-sby.edu

Maka akan tampil form login dari squirrelmail.

Login dengan username dan password yang sudah didaftarkan dala database tadi.Kemudian cobalah untk mengirim email ke user lain.