Postfix+Dovecot+Squirrelmail
Pengantar Pengertian dasar dari email adalah mengirimkan pesan berupa plain text dan juga berkas binary berupa attachment antar pengguna di satu jaringan maupun jaringan yang berlainan, melalui Internet. Dan saat ini email telah menjadi salah satu bagian perilaku atau aktifitas yang tak terpisahkan dari para netizer (komunitas pengguna Internet). Untuk aplikasi email sendiri banyak sekali ragam jenisnya, dan jika berbicara secara spesifik hanya pada aplikasi yang berjalan di atas sistem Linux, telah mencapai jumlah yang menggembirakan dimana keaktifan para developer untuk terus berkreasi untuk membuat dan mengembangkan aplikasi untuk komunitas pengguna. Salah satu aplikasi mail server yang menjadi pilihan dari administrator sistem adalah postfix, yang tersedia pula berbagai aplikasi pendukung untuk meningkatkan kinerja dari sistem secara keseluruhan, misalkan dukunga terhadap pop3, ssl, antivirus, hingga sasl. Pada tutorial ini akan membahas cara untuk membangun mail server (mail transfer agent – MTA) menggunakan postfix, sedangkan fasilitas pop3 disediakan oleh dovecot. Kemudian untuk membangun tingkat kepercayaan pengguna terhadap proses otentikasi login, maka disediakan pengamanan dengan metode SASL-TLS. Bagaimana untuk antarmuka ke pengguna? Tentu saja ini sesuai dengan kebutuhan masing-masing dari pengguna yang dapat memilih untuk mengakses via web seperti email client yang biasa digunakan di Internet, atau dapat pula menggunakan aplikasi berbasis desktop seperti misalnya Outlook Express atau Kmail. Instalasi postfix Berikut ini akan dijelaskan mengenai tahapan instalasi dari aplikasi postfix. Beberapa aplikasi pendukung yang merupakan dependencies sebagai telah terinstall, sehingga walaupun pengguna menyertakannya pada perintah apt-get, tetap tidak akan proses instalasi ulang. Perintah yang dieksekusi melalui konsol untuk memulai instalasi postfix adalah sebagai berikut: apt-get install postfix postfix-tls libsasl2 sasl2-bin libsasl2-modules popa3d Aktifitas dari sistem ketika pengguna memberikan perintah seperti di atas, adalah seperti yang terlihat pada bagian di bawah ini: deb:~# apt-get install postfix postfix-tls libsasl2 sasl2-bin libsasl2-modules popa3d Reading package lists... Done Building dependency tree... Done Note, selecting postfix instead of postfix-tls libsasl2 is already the newest version. libsasl2-modules is already the newest version. Suggested packages: postfix-mysql postfix-pgsql postfix-ldap postfix-pcre resolvconf postfix-cdb The following packages will be REMOVED: exim4 exim4-base exim4-config exim4-daemon-light The following NEW packages will be installed: popa3d postfix sasl2-bin 0 upgraded, 3 newly installed, 4 to remove and 0 not upgraded. Need to get 1245kB of archives. After unpacking 733kB disk space will be freed. Do you want to continue [Y/n]?
Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
1
Dalam proses instalasi, pengguna akan diminta untuk memasukkan beberapa informasi pendukung yang dibutuhkan oleh sistem.
Gambar 11.1. Informasi awal dari proses instalasi postfix Kemudian pengguna diminta untuk melakukan pemilihan tipe konfigurasi yang disesuaikan dengan kondisi dari jaringan. Pada tutorial ini, type of configuration yang dipilih adalah “Internet Site”.
Gambar 11.2. Pemilihan tipe konfigurasi
Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
2
Pengguna kemudian diminta melakukan pengesetan hostname yang akan digunakan sebagai alamat email yang akan disertakan sebagai informasi identitas, yang berada setelah karakter @ pada email. Seperti halnya pada contoh berikut: apedie.com, merupakan nama hostname dari server email. Untuk publikasi ke jaringan eksternal, pengguna dengan username “me” akan diberikan identitas:
[email protected].
Gambar 11.3. Memasukkan hostname untuk publikasi email. Selesai melakukan proses instalasi, pastikan tidak ada pesan kesalahan yang diberikan oleh sistem. Untuk melihat konfigurasi dari postfix yang terletak di lokasi /etc/postfix/, dapat dengan menggunakan salah satu editor yang tersedia. Sedangkan untuk berkas utama dari server postfix adalah ditempatkan pada berkas main.cf. Contoh membuka berkas /etc/postfix/main.cf menggunakan aplikasi editor pico:
Gambar 11.4. Membuka berkas /etc/postfix/main.cf dengan pico Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
3
Instalasi dovecot Untuk menambah fitur dari MTA agar dapat memberikan layanan pop3 dan IMAP, maka pengguna dapat menggunakan aplikasi dovecot. Perlu diketahui bahwa aplikasi ini telah terdapat pada distribusi instalasi dari Debian, sehingga dapat langsung diinstall melalui konsol, dengan menjalankan perintah berikut: apt-get install dovecot-imapd dovecot-pop3d dovecot-common deb:~# apt-get install dovecot-imapd dovecot-pop3d dovecot-common Reading package lists... Done Building dependency tree... Done The following packages will be REMOVED: popa3d The following NEW packages will be installed: dovecot-common dovecot-imapd dovecot-pop3d 0 upgraded, 3 newly installed, 1 to remove and 0 not upgraded. Need to get 2185kB of archives. After unpacking 4194kB of additional disk space will be used. Do you want to continue [Y/n]
Setelah selesai melakukan instalasi, maka pengguna dapat melakukan konfigrasi pada berkas utama dari dovecot yang berada pada lokasi /etc/dovecot/dovecot.conf, dengan menambahkan beberapa parameter berikut ini: protocols = pop3 imap
hilangkan komentar (#) di awal parameter, dan berikan nilai “no” pada parameter tersebut. disable_plaintext_auth = no
simpan hasil perubahan pada berkas konfigurasi tersebut. Kemudian restart ulang layanan dari dovecot dengan mengetikkan perintah: /etc/init.d/dovecot restart Ujicoba pengiriman email menggunakan telnet dari komputer lokal Dalam tutorial ini akan menggunakan salah satu user yang telah terdapat di sistem, karena proses penerimaan email akan mempengaruhi inbox dari pengguna tersebut. untuk data pengguna yang dijadikan percobaan adalah: username: me password: me selanjutnya dari konsol, pengguna dapat menggunakan aplikasi telnet untuk mengakses server email. Perintah yang diberikan adalah: telnet localhost 25 deb:~# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 deb.apedie.com ESMTP Postfix (Debian/GNU)
Ketikkan perintah ehlo localhost pada konsol telnet. Hasil dari eksekusi perintah tersebut adalah seperti yang terlihat pada bagian berikut ini: Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
4
ehlo localhost 250-deb.apedie.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
Kemudian pengguna dapat mencoba untuk mengirimkan email ke pengguna yang terdapat di server apedie.com, melalui perintah-perintah berikut: mail from:
[email protected] 250 2.1.0 Ok rcpt to:
[email protected] 250 2.1.5 Ok data 354 End data with
. tes pengiriman email . 250 2.0.0 Ok: queued as 9332A6AEC2
penjelasan dari eksekusi perintah di atas adalah untuk mencoba melakukan pengiriman email dari [email protected] ke pengguna [email protected]. dengan memperhatikan dari hasil perekaman aktifitas dari server email di berkas log, terlihat bahwa proses pengiriman email tersebut berhasil dilakukan. setelah di lakukan pengecekan mailbox yang terdapat di pengguna [email protected] yang sebelumnya menjadi tujuan pengiriman, tampilannya setelah pengguna mengetikkan perintah mail pada konsol adalah seperti berikut: me@deb:~$ mail Mail version 8.1.2 01/15/2001. Type ? for help. "/var/mail/me": 18 messages 1 new 18 unread …………………….. …………………….. …………………….. U 16 [email protected] Tue May 06 08:39 22/1070 Cron test -x /us U 17 [email protected] Tue May 6 12:38 20/890 Cron test -x /us >N 18 keren_abis@hidupi Tue May 6 13:21 14/510 terlihat bahwa email dari proses pengiriman email sebelumnya berhasil diterima oleh pengguna dengan username [email protected], terlihat bahwa email terdapat di inbox dari pengguna me. Cara untuk membaca email tersebut adalah dengan mengetikkan langsung nomor dari pesan tersebut yang menandakan lokasinya di inbox, yaitu 18. hasilnya adalah seperti berikut ini:
Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
5
& 18 Message 18: From [email protected] Tue May 6 13:21:21 2008 X-Original-To: [email protected] Date: Tue, 6 May 2008 13:21:08 +0700 (WIT) From: [email protected] To: undisclosed-recipients:; tes pengiriman email
Semua aktifitas yang dilakukan pengguna mulai dari awal melakukan koneksi ke server, hingga melakukan pengiriman email, tercatat secara detail di berkas log. Hasil pencatatan tersebut terdapat di lokasi /var/log/mail.log. Dengan menggunakan perintah tail -f /var/log/mail.log, pengguna dapat melihat secara kontinu aktifitas dari server mail, seperti yang terlihat di bawah ini: May 6 13:20:10 deb postfix/smtpd[19938]: connect from localhost[127.0.0.1] May 6 13:21:15 deb postfix/smtpd[19938]: 9332A6AEC2: client=localhost[127.0.0.1] May 6 13:21:21 deb postfix/cleanup[20158]: 9332A6AEC2: messageid=<[email protected]> May 6 13:21:21 deb postfix/qmgr[20605]: 9332A6AEC2: from=, size=357, nrcpt=1 (queue active) May 6 13:21:21 deb postfix/local[20180]: 9332A6AEC2: to=<[email protected]>, relay=local, delay=13, delays=13/0.01/0/0.02, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION") May 6 13:21:21 deb postfix/qmgr[20605]: 9332A6AEC2: removed
Ujicoba pengaksesan mail server melalui telnet dari komputer jaringan Pada contoh sebelumnya, pengguna melakukan pengaksesan server email melalui telnet di komputer lokal. Bagian ini akan menggambarkan aktifitas pengaksesan melalui telnet, tapi melalui salah satu komputer client yang terhubung dalam jaringan yang sama. Keberhasilan dari ujicoba ini tentu saja dipengaruhi oleh konfigurasi firewall yang telah dibuat sebelumnya, apakah mengijinkan akses telnet ke server selain dari komputer lokal. Pastikan bahwa pengguna memahami karakteristik dan rules yang ditetapkan di masing-masing jaringan komputer. Jika ujicoba ini dilakukan pada jaringan lokal, maka dapat berjalan sesuai yang diharapkan. Berikut skenario awal dari komputer client: komputer client : 192.168.1.11 account pengirim : [email protected] berikut adalah hasil capture proses yang dilakukan di komputer client.
Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
6
Gambar 11.5. Aktifitas pengaksesan server email dari client Pada waktu pengguna dari komputer client mengakses mail server, maka log yang tercata akan pula menampilkan informasi nomor IP dari client. Pada berkas log dari aktifitas tersebut akan jelas memperlihatkan perbedaan dengan aktifitas sebelumnya, dimana telnet dilakukan dari komputer lokal. Berikut adalah visualisasi hasil rekaman dari aktiftas dari komputer client yang tercatat di berkas log: May 6 13:27:42 deb postfix/smtpd[19938]: connect from unknown[192.168.1.11] May 6 13:28:14 deb postfix/smtpd[19938]: 92C786AEC2: client=unknown[192.168.1.11] May 6 13:28:24 deb postfix/cleanup[22159]: 92C786AEC2: messageid=<[email protected]> May 6 13:28:24 deb postfix/qmgr[20605]: 92C786AEC2: from=<[email protected]>, size=382, nrcpt=1 (queue active) May 6 13:28:24 deb postfix/local[22196]: 92C786AEC2: to=<[email protected]>, relay=local, delay=16, delays=16/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION") May 6 13:28:24 deb postfix/qmgr[20605]: 92C786AEC2: removed May 6 13:31:41 deb postfix/smtpd[19938]: disconnect from unknown[192.168.1.11] terlihat bahwa server email diakses dari client dari IP 192.168.1.11, yang melakukan aktifitas pengiriman email, dan berhasil dikirimkan ke pengguna dengan alamat tujuan email [email protected]. setelah dilakukan pengecekan di inbox, hasilnya adalah seperti berikut: me@deb:~$ mail Mail version 8.1.2 01/15/2001. Type ? for help. "/var/mail/me": 18 messages 1 new 18 unread ……………….. ……………….. ……………….. U 17 [email protected] Tue May 6 12:38 20/890 Cron test -x /us >N 18 user_lain@kompute Tue May 6 13:28 14/537 Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
7
terlihat bahwa email yang dikirim dari client (dari komputer 192.168.1.11) berhasil diterima oleh pengguna [email protected], pada inbox di nomor 18. Untuk memastikannya, pengguna dapat membaca isi dari email tersebut, dan hasilnya adalah: & 18 Message 18: From [email protected] Tue May 6 13:28:24 2008 X-Original-To: [email protected] Date: Tue, 6 May 2008 13:28:07 +0700 (WIT) From: [email protected] To: undisclosed-recipients:; ini kiriman dari user lain lho...
Mengakses server email dari client Windows dengan Outlook Expess Komputer client yang menggunakan sistem operasi Windows tetap dapat mengakses server email menggunakan aplikasi client bawaan yang telah terdapat sewaktu sistem diinstall, yaitu Outlook Express. Tetapi sebelumnya pengguna harus melakukan konfigurasi terlebih dahulu untuk mengeset account pop3 dan smtp.
Gambar 11.6. Account untuk mengakses mail server Perlu diingat bahwa untuk konfigurasi pop3 dan smtp, pengguna harus memastikan bahwa server DNS telah mengenali nama domain pop3.apedie.com dan smtp.apedie.com, apabila tidak, maka pengguna dapat menggunakan nomor IP dari komputer server, seperti yang terlihat pada gambar, konfigurasi menggunakan 192.168.1.1 sebagai informasi server.
Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
8
Gambar 11.7. Bagian konfigurasi server Setelah melakukan konfigurasi yang sesuai, maka pengguna dapat mulai untuk menggunakan aplikasi sebagai antarmuka komunikasi dengan mail server. Seperti yang terlihat pada gambar adalah aplikasi berhasil melakukan penarikan email dari server ke client.
Gambar 11.8. visualisasi aplikasi outlok express yang berhasil mengakses pop3
Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
9
konfigurasi Otentikasi SASL dengan TLS SASL – TSL adalah singkatan dari Simple Authentication Security Layer – Transport Layer Security, dimana dengan mengimplementasikannya ke email server akan mengaktifkan mode secure untuk proses otentikasi sebelum melakukan pengiriman ke server eksternal, dengan membatasi penggunaan server internal dari pengguna ilegal sebagai akses relay. lakukan modifikasi pada berkas utama dari postfix yang terdapat pada lokasi /etc/postfix/main.cf, dan tambahkan paramater-parameter di bawah ini: smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = apedie.com smtpd_recipient_restrictions permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination smtpd_sasl_security_options = noanonymous
=
simpan hasil konfigurasi tersebut. Kemudian pada konsol, lakukan perintah-perintah berikut: mkdir -p /var/spool/postfix/var/run/saslauthd ln -s /var/spool/postfix/var/run/saslauthd/ /var/run/ chgrp sasl /var/spool/postfix/var/run/saslauthd/ adduser postfix sasl konfigurasi pada dovecot lakukan modifikasi pada berkas /etc/dovecot/dovecot.conf cari pada berkas tersebut (gunakan fungsi find yang disesuaikan dengan editor dari pengguna) katakata berikut ini: auth default Pencarian tersebut akan menunjuk pada bagian seperti yang terlihat di bawah ini: auth default { # Space separated list of wanted authentication mechanisms: # plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi mechanisms = plain
kemudian, lakukan perubahan menjadi: auth default2 tambahkan konfigurasi berikut ini: auth default { mechanisms = plain login passdb pam { } userdb passwd { } socket listen { client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } } Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
10
Selanjutnya simpan berkas konfigurasi tersebut. Karena pada implementasinya akan menjalankan script saslauthd, maka lakukan modifikasi pada berkas konfigurasinya agar secara otomatis menjalankan aplikasi tersebut pada waktu sistem dihidupkan (booting), dengan melakukan langkah-langkah seperti berikut ini: buka berkas /etc/default/saslauthd dengan editor kemudian lakukan perubahan pada paramater START, yang sebelumnya bernilai no, menjadi yes. START=yes simpan berkas konfigurasi tersebut. dan lakukan restart layanan dari masing-masing aplikasi berikut ini: /etc/init.d/saslauthd restart /etc/init.d/postfix restart /etc/init.d/dovecot restart
Pastikan bahwa dari ketiga layanan yang di-restart tersebut tidak memberikan pesan error. Pengguna dapat mencoba untuk mencoba mengirimkan dan menerima email seperti yang telah dicontohkan pada tulisan di bagian atas dari tutorial ini. Mengaktifkan antarmuka berbasis web untuk pengaksesan server email Membuka email melalui web menjadi salah satu cara yang banyak dipilih oleh pengguna Internet. Faktor kemudahan menjadi alasan utama, karena tidak harus melakukan konfigurasi terlebih dahulu pada aplikasi berbasis desktop. Salah satu aplikasi yang banyak digunakan adalah squirrelmail. Aplikasi ini banyak dipilih karena tidak membebani resource dengan tampilannya yang sederhana, tetapi sesuai dengan kebutuhan mendasar dari pengguna. Karena berbasis web, maka pada server harus terinstall pula aplikasi web server. Pada tutorial ini, apache2 menjadi aplikasi web server utama yang dipilih, selain karena kehandalannya yang telah terbukti, sehingga menjadi web server yang paling banyak diinstall oleh administrator server di seluruh dunia, apache2 juga telah didukung oleh begitu banyak fitur sehingga web akan menjadi begitu dinamis. Untuk memulai proses instalasi, pengguna dapat mengetikkan perintah berikut melalui konsol: apt-get install squirrelmail apache2 php5 php5-cgi php5-cli php5-common libapache2-mod-php5 deb:/var/spool/postfix/private# apt-get install squirrelmail php5 php5-cgi php5-cli php5-common libapache2-mod-php5 Reading package lists... Done Building dependency tree... Done apache2 is already the newest version. php5 is already the newest version. php5-cgi is already the newest version. php5-cli is already the newest version. php5-common is already the newest version. libapache2-mod-php5 is already the newest version. Suggested packages: squirrelmail-decode imapproxy php4-ldap php5-ldap Recommended packages: squirrelmail-locales The following NEW packages will be installed: squirrelmail 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 591kB of archives. After unpacking 3629kB of additional disk space will be used. WARNING: The following packages cannot be authenticated! squirrelmail Install these packages without verification [y/N]? Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
apache2
11
Selanjutnya, lakukan perubahan pada berkas konfigurasi apache server yang terdapat di lokasi /etc/apache2/apache2.conf tambahkan paramater berikut ini: Include /etc/squirrelmail/apache.conf simpan hasil perubahan tersebut, dan lakukan restart layanan dari apache2 dengan menjalankan perintah: /etc/init.d/apache2 restart kemudian, dari jendela browser, akses squirrelmail melalui alamat: http://domain_atau_IPserver/squirrelmail/ visualisasi pada layar monitor ketika alamat tersebut diakses dari client adalah sebagai berikut:
Gambar 11.9. Halaman login login dengan username dan password yang sesuai. apabila berhasil, maka tampilan yang akan muncul di layar akan terlihat seperti berikut:
Gambar 11.10. Halaman inbox dari pengguna Sesi Postfix Mail Server. © 2008, Wilfridus Bambang. FIT, UK Maranatha, Bandung.
12