Sekilas

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

  1. Performance. Postfix mampu melayani sejuta email dalam sehari
  2. Kompatibilitas. Postfix sangat kompatibel dengan Sendmail (yang sudah banyak dipergunakan orang sebagai MTA di UNIX.
  3. 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.
  4. Keamanan. Postfix dijalankan dengan proteksi bertingkat, oleh program-program kecil yang saling tidak percaya. Masing-masing program dijalankan oleh user khusus (bukan setuid).
  5. Multiple Transport. Postfix dapat mengirim surat dengan modus SMTP (Simple Mail Transfer Protocol) dan UUCP (Unix to Unix Copy Protocol) sekaligus.
  6. Mendukung format Maildir. Maildir adalah format boks penyimpanan surat dalam bentuk folder daripada berbentuk satu fila (mbox).
  7. 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 :

  1. 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.
  2. 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.
  3. Dari maildrop, mail akan di clean-up dengan menambahkan header, dan meletakkannya di direktori
    /var/mail/postfix/incoming. Disini program queue manager akan diaktifkan.
  4. 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.
  5. 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.