Monday, September 26, 2011

Instalasi dan Konfigurasi Postfix

Sekilas

Postfix adalah mail transfer agent yang dikembangkan oleh Wietse Venema. Beberapa fitur yang ditawarkan oleh Postfix :

Performance. Postfix mampu melayani sejuta email dalam sehari
Kompatibilitas. Postfix sangat kompatibel dengan Sendmail (yang sudah banyak dipergunakan orang sebagai MTA di UNIX.
Terdiri beberapa program kecil yang saling tidak percaya. Jika Sendmail hanya mampunyai satu program besar dan satu file konfigurasi besar, maka Postfix memiliki program-program kecil yang menjalankan tugasnya secara spesifik.
Keamanan. Postfix dijalankan dengan proteksi bertingkat, oleh program-program kecil yang saling tidak percaya. Masing-masing program dijalankan oleh user khusus (bukan setuid).
Multiple Transport. Postfix dapat mengirim surat dengan modus SMTP (Simple Mail Transfer Protocol) dan UUCP (Unix to Unix Copy Protocol) sekaligus.
Mendukung format Maildir. Maildir adalah format boks penyimpanan surat dalam bentuk folder daripada berbentuk satu fila (mbox).
Kemudahan konfigurasi. Meskipun Postfix terdiri dari banyak program kecil, namun hanya memiliki satu file konfigurasi yang mudah untuk di seting yakni /etc/postfix/main.cfg.
Bagaimana Postfix bekerja

Berikut sekilas gambaran bagaimana Postfix bekerja :

Jika ada mail lokal, maupun mail remote yang mempergunakan SMTP, diletakkan ke dalam direktori /var/mail/postfix/maildrop. Direktori ini world writable, dan permissionnya selalu dicek oleh pickup daemon setiap kali ada mail masuk.
Di sini akan dicek host, domain, maupun username yang dituju. Pengecekan juga termasuk yang didefinisikan di /etc/aliases dan ~/.forward. Jika bermasalah, mail akan dikembalikan ke pengirim. Biasanya ada satu tembusan ke postmaster.
Dari maildrop, mail akan di clean-up dengan menambahkan header, dan meletakkannya di direktori /var/mail/postfix/incoming. Disini program queue manager akan diaktifkan.
Queue Manager akan memisahkan mail-mail yang ditujukan untuk jaringan lokal dan mail yang ditujukan untuk host/jaringan remote. Jika ada mail yang macet, Queue Manager akan memilahnya, sehingga tidak mempengaruhi pengantaran mail lainnya.
Trivial-rewrite adalah program yang dipanggil oleh Queue Manager untuk resolving alamat dari tujuan surat.
Instalasi dan aktivasi Postfix

Untuk distribusi TSL (Trustix Secure Linux), Postfix sudah menjadi bagian dari paket instalasi. Yang diperlukan hanyalah mengaktifkannya. Namun jika pada saat instalasi terlewatkan, Postfix bisa diinstal secara manual. Berikut langkah instalasinya :

Mount CD Trustix Secure Linux dengan account root.
# mount /dev/cdrom /mnt/cdrom
Masuk ke direktori RPMS, tempat disimpannya program aplikasi.
# cd /mnt/cdrom/Trustix/RPMS
Instal Program Postfix dari Trustix Secure Linux
# rpm -ivh postfix-19991231_p108-1tr.i386.rpm
Setelah itu, postfix bisa langsung diaktifkan (dengan catatan komputer memiliki alamat host FQDN), dengan menjalankan skrip yang sudah terpasang di /etc/rc.d/init.d.
# /etc/rc.d/init.d/postfix start
Untuk mengecek postfix sudah berjalan dengan baik, bisa dilakukan dengan beberapa cara
# netstat -a
Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 localhost:smtp *:* LISTEN

tcp 0 0 *:6000 *:* LISTEN

tcp 0 0 *:printer *:* LISTEN

raw 0 0 *:icmp *:* 7

raw 0 0 *:tcp *:* 7

# ps ax

PID TTY STAT TIME COMMAND

1 ? S 0:06 init [3]

2 ? SW 0:00 [kflushd]

3 ? SW 0:00 [kupdate]

4 ? SW 0:00 [kpiod]

5 ? SW 0:00 [kswapd]

6 ? SW< 0:00 [mdrecoveryd]

227 ? S 0:00 syslogd -m 0

235 ? S 0:00 klogd

248 ? S 0:00 crond

261 ? S 0:00 lpd

380 tty1 S 0:00 login - sofyan

381 tty2 S 0:00 login - root

382 tty3 S 0:00 /sbin/mingetty tty3

383 tty4 S 0:00 /sbin/mingetty tty4

384 tty5 S 0:00 /sbin/mingetty tty5

385 tty6 S 0:00 /sbin/mingetty tty6

388 tty1 S 0:00 -bash

395 tty2 S 0:00 -bash

527 ? S 0:00 /usr/lib/postfix/master

551 pts/0 S 0:00 /bin/bash

557 pts/0 R 0:00 ps ax

Kofigurasi Postfix

Konfigurasi Postfix dilakukan dengan mengedit file konfigurasi postfix yang berada di /etc/postfix/main.cf. Beberapa parameter penting yang perlu di edit untuk memfungsikan Postfix :

Konfigurasi dasar

Berikut contoh konfigurasi dasar;

queue_directory = /var/spool/postfix
command_directory = /usr/sbin

daemon_directory = /usr/lib/postfix

mail_owner = postfix

default_privs = nobody

myhostname = host.trustix.co.id

mydomain = trustix.co.id

myorigin = $mydomain

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain

virtual_maps = hash:/etc/postfix/virtual

alias_maps = hash:/etc/postfix/aliases

alias_database = hash:/etc/postfix/aliases

recipient_delimiter = +

mail_spool_directory = /var/spool/mail

mynetworks = 192.168.21.0/28, 127.0.0.0/8

smtpd_banner = $myhostname ESMTP $mail_name

debugger_command =

PATH=/usr/bin:/usr/X11R6/bin

xxgdb $daemon_directory/$process_name $process_id & sleep 5

Postfix sebagai mail server Intranet

Cara yang paling mudah untuk seting Postfix di dalam intranet, adalah mengirimkan semuanya ke mail gateway, dan biarkan mail gateway meneruskan semua emailnya. Beberapa konfigurasi yang perlu ditambahkan

/etc/postfix/main.cf:
myorigin = $mydomain

relayhost = gateway.trustix.co.id

disable_dns_lookups = yes

Postfix sebagai mail host lokal dalam intranet

Jika di dalam Intranet, postfix berperan sebagai host yang mengirimkan email lokal, langsung mengirim mail tanpa melewati mail server gateway, setingnya sebagai berikut :

/etc/postfix/transport :
trustix.co.id smtp:

.trustix.co.id smtp:

host.trustix.co.id local:

host.trustix.co.id local:



/etc/postfix/main.cf :

transport_maps = hash : /etc/postfix/transport

Postfix di mesin dialup

Pada host dengan sambungan dialup, Postfix dapat diseting dengan menambahkan parameter berikut :

/etc/postfix/main.cf :
relayhost = smtp.provider.net

defer_transports = smtp

disable_dns_lookups = yes

Saat anda mengirimkan email, Postfix akan menempatkannya dalam antrian, dan dapat dipaksa untuk mengirimkan (flush the queue), dengan menjalankan perintah :
/usr/sbin/sendmail -q
Jangan lupa untuk menjalankan ulang postfix setelah anda mengubah konfigurasinya.
#/etc/rc.d/init.d/postfix restart
Virtual Domain dan aliases

Virtual Domain

Untuk seting virtual domain , pastikan di /etc/postfix/main.cf terdapat baris :

virtual_maps = hash:/etc/postfix/virtual
Edit file /etc/postfix/virtual dengan sintaks :
virtual.domain apasaja
user@virtual.domain sofyan,root

Dari keterangan di atas, berarti secara default, semua user di real domain, punya alamat juga di virtual domain. Kemudian di baris kedua, dapat pula ditambahkan, user tertentu akan diteruskan ke alamat tertentu. Dalam contoh diatas, setiap email yang tertuju ke user@virtual.domain akan diteruskan ke sofyan@real.domain dan root@real.domain.
Selesai editing file /etc/postfix/virtual, jalankan :

# postmap -c /etc/postfix hash:/etc/postfix/virtual
Kemudian restart postfix untuk memastikan virtual domain telah aktif.
# postfix reload
Aliases

Untuk mengaktifkan aliases cukup mudah. Pertama pastikan baris berikut ada di /etc/postfix/main.cf

alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases

Setelah itu edit file /etc/postfix/aliases, tambahkan beberapa baris alias.
# alias default dari postfix
MAILER-DAEMON: postmaster

postmaster: root

bin: root

daemon: root

named: root

nobody: root

uucp: root

www: root

ftp-bugs: root

postfix: root

# tambahan alias sendiri

spawn: sofyan

# Well-known aliases

manager: root

dumper: root

operator: root

abuse: postmaster

decode: root

Selesai edit file tersebut, jalankan perintah newaliases untuk memasukkan alias baru ke dalam postfix, dan setelah itu reload postfix-nya.
# newaliases
# postfix reload

POP3 Server

Untuk mengaktifkan POP3 Server (merupakan paket tersendiri, bukan bagian dari postfix) dapat dilakukan dengan cara :

Edit /etc/inetd.conf, remark bagian berikut :
pop3 stream tcp nowait root /usr/bin/tcpd ipop3d
Jalankan / Restart inet services
# /etc/rc.d/init.d/inet start
Pengujian

Untuk menjalankan test apakah Postfix sudah berjalan dengan baik, bisa dilakukan dengan mengirimkan mail, baik antar user lokal maupun Internet.

Test kirim kepada user lokal

# mail sofyan
subject : Test

Testing satu dua tiga

.

Cc: root

#

Test terima dari user lokal

# su sofyan
$ mail

Mail Version 8.1 6/6/93. Type ? for help.

``/var/spool/mail/sofyan'': 1 message 1 new

>N sofyan@trustix.co.id Fry Jul 28 12:02 13/447 ``Test''

& (tekan enter)

From root@trustix.co.id Fri Jul 28 12:02:01 2000

Return-Path:

Delivered-To: sofyan@trustix.co.id

Received: by trustix.co.id (Postfix, from userid 0)

id E4ACF1C35F; Fri, 28 Jul 2000 12:00:28 +0800 (BORT)

To: sofyan@trustix.co.id

Subject: Test

Cc: root@trustix.co.id

Message-Id: <20000728040028.E4ACF1C35F@trustix.co.id>

Date: Fri, 28 Jul 2000 12:00:28 +0800 (BORT)

From: root@trustix.co.id (root)

Status: RO



Testing satu dua tiga

& (tekan enter untuk kembali ke prompt)

$

Test terima dan kirim dari host lain

Untuk menjalankan test dari host lain, cukup tunjuk mesin postfix (baik real host maupun virtual host) menjadi SMTP dan POP3 Server. Seting tergantung dari mail client yang dipergunakan.