Konfigurasi Mail Server Postfix dan Courier dengan WebMail pada Debian 7

Mail Server adalah server yang menyediakan layanan E-Mail yang dapat digunakan untuk berkirim surat lewat jaringan komputer seperti Internet. Mail Server menggunakan protokol SMTP (Simple Mail Transfer Protocol) untuk mengirim pesan E-Mail dari satu server ke server lainnya, SMTP menggunakan TCP pada port 25. Dan ketika kita ingin mengakses isi  Mail Server dari Client, protokol yang digunakan adalah POP3 dan IMAP, protokol POP3 menggunakan port 110 sedangkan IMAP menggunakan port 143. Intinya SMTP untuk berikirim pesan antar Mail Server sedangkan POP3 dan IMAP untuk mengambil pesan dari Server oleh Client.


Pada Debian 7 aplikasi yang menjalankan protocol SMTP adalah postfix yang berperan sebagai MTA (Mail Transfer Agent) untuk mengirim pesan E-Mail pada tujuannya, sedangkan aplikasi yang dapat menjalankan POP3 dan IMAP adalah courier, aplikasi courier ini akan membuka layanan POP3 dan IMAP agar pesan-pesan pada Mail Server dapat diambil oleh Client seperti aplikasi Thunderbird, Microsoft Outlook, dll.
Sedangkan aplikasi yang berfungsi sebagai WebMail adalah SquirrelMail yang menyediakan tampilan GUI berbasis Web pada Mail Server, sehingga client tinggal mengakses Mail Server lewat browser untuk mengirim maupun menerima E-Mail, tanpa aplikasi tambahan lainnnya seperti Thunderbird ataupun Outlook. Aplikasi yang menjalankan WebMail yang akan kita gunakan kali ini adalah Apache2 yang mendukung PHP.

Seperti inilah Mail Server yang akan kita konfigurasi :

  • Mail Server memiliki domain server1.xyz, dan Record MX (Mail Exchange) pada DNS Server lokal, anda dapat melihat tutorial DNS Server Record MX di google atau pada postingan blog saya yang ini.
  • Aplikasi Mail Transfer Agent yang digunakan adalah Postfix dengan protokol SMTP.
  • Dan untuk pengambilan pesan E-Mail menggunakan aplikasi courier dengan protokol IMAP maupun POP3.
  • WebMail kita gunakan SquirrelMail, yang akan berjalan dengan aplikasi Apache2 dan PHP.
Sekarang kita lanjut pada konfigurasi Mailservernya :
  • Hal yang paling penting adalah kita mengkonfigurasi IP Address pada Mail Server, agar dapat diakses lewat jaringan. file konfigurasi ada di /etc/network/interfaces.
  • root@mail-server:~# nano /etc/network/interfaces 
    
    auto eth0
    iface eth0 inet static
            address 192.168.56.10
            netmask 255.255.255.0
            gateway 192.168.56.1
            dns-nameservers 192.168.56.10
    
    Restart layanan network untuk memperbarui konfigurasi IP Address.
    root@mail-server:~# /etc/init.d/networking restart
    [warn] Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).
    [ ok ] Reconfiguring network interfaces...done.
    
  • Kemudian kita install paket-paket aplikasi yang dibutuhkan.
  • apt-get update
    apt-get install apache2 php5 postfix courier-imap courier-pop
    
    Ketika Installasi postfix akan muncul seperti ini, tekan OK lalu pilih Internet Site.
    Muncul beberapa pesan lagi tekan OK saja sampai muncul seperti ini. Isi system mail name dengan nama domain Mail Server yang telah dibuat.
  • Kita lakukan reconfigure paket postfix untuk mengubah konfigurasi dengan perintah dibawah ini.
  • root@mail-server:~# dpkg-reconfigure postfix
    
    Kemudian akan muncul beberapa pilihan dibawah ini :
    • Pertama pilih Internet Site
    • System mail name isi dengan nama domain misalnya server1.xyz
    • Pada bagian Root and postmaster.... kosongkan saja.
    • Pada Other destionations to accept ..... biarkan default.
    • Force synchronous updates "no"
    • Pada bagian Local networks tambahkan 0.0.0.0/0 dibelakangnya. Ex (127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 0.0.0.0/0)
    • Use procmail for local delivery "no"
    • Mailbox size limit "0"
    • Local address extension character "+"
    • Internet Protocol ipv4
  • Buat directory untuk menempatkan pesan pesan email pada masing-masing User.
  • root@mail-server:~# maildirmake /etc/skel/Maildir
    
  • Kemudian tambahkan konfigurasi pada /etc/postfix/main.cf
  • root@mail-server:~# echo home_mailbox = Maildir/ >> /etc/postfix/main.cf
    
    Restart layanan postfix untuk memperbarui konfigurasi.
    root@mail-server:~# /etc/init.d/postfix restart
    [ ok ] Stopping Postfix Mail Transport Agent: postfix.
    [ ok ] Starting Postfix Mail Transport Agent: postfix.
    
  • Buat user baru untuk pengguna E-Mail baru pada mail server ini.
  • adduser fathin
    adduser rahma
    
  • Kita uji coba SMTP pada server ini dengan melakukan telnet pada server di port 25 SMTP. Kemudian kita dapat melakukan pengiriman email.
  • root@mail-server:~# telnet localhost 25
    Trying ::1...
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    220 mail-server ESMTP Postfix (Debian/GNU)
    mail from:fathin \\Pengirim
    250 2.1.0 Ok
    rcpt to:rahma \\Penerima
    250 2.1.5 Ok
    data
    354 End data with .
    PESAN YANG AKAN DIKIRIM OLEH SERVER
    . \\ Titik untuk mengakhiri
    250 2.0.0 Ok: queued as 42F60615F5
    quit
    221 2.0.0 Bye
    Connection closed by foreign host.
    
  • Kemudian testing POP3 dan IMAP pada Server untuk mengambil pesan E-Mail yang masuk pada server.
  • root@mail-server:~# telnet localhost 110
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    +OK Hello there.
    user rahma \\User login
    +OK Password required.
    pass password \\password untuk user
    +OK logged in.
    stat
    +OK 1 407
    retr 1
    +OK 407 octets follow.
    Return-Path: 
    X-Original-To: rahma
    Delivered-To: rahma@server1.xyz
    Received: from localhost (localhost [127.0.0.1])
     by mail-server (Postfix) with SMTP id 42F60615F5
     for ; Sun,  5 Mar 2017 16:56:06 +0700 (WIB)
    Message-Id: <20170305095612 .42f60615f5="" mail-server="">
    Date: Sun,  5 Mar 2017 16:56:06 +0700 (WIB)
    From: fathin@server1.xyz
    
    PESAN YANG AKAN DIKIRIM OLEH SERVER
    .
    quit
    +OK Bye-bye.
    Connection closed by foreign host.
    
  • Berikirim pesan menggunakan telnet diatas tentu tidak akan menarik dan rumit, untuk itu kita perlu menginstall WebMail squirrelmail.
  • root@mail-server:~# apt-get install squirrelmail
    
  • Salin file konfigurasi WebMail pada folder konfigurasi situs apache2.
  • root@mail-server:~# cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/webmail
    
  • Edit file konfiguasi tersebut untuk mengubah virtualhost agar webmail hanya dapat dibuka dengan subdomain mail.server1.xyz.
  • root@mail-server:~# nano /etc/apache2/sites-available/webmail
    
    Cari tulisan ini. kemudian beri tanda pagar didepannya untuk mematikan konfigurasi tersebut.
    #Alias /squirrelmail /usr/share/squirrelmail
    
    Selanjutnya cari lagi tulisan seperti ini.
    #<VirtualHost 1.2.3.4>
    #  DocumentRoot /usr/share/squirrelmail
    #  ServerName webmail.example.com
    #</VirtualHost>
    
    Kita ubah seperti menghapus tanda pagar dan ServerName dengan sub-domain kita.
    <VirtualHost *:80>
      DocumentRoot /usr/share/squirrelmail
      ServerName mail.server1.xyz   
    </VirtualHost>
    
    Simpan file tersebut. kemudian tambahkan situs tersebut pada situs apache.
    root@mail-server:~# cd /etc/apache2/sites-available/
    root@mail-server:/etc/apache2/sites-available# a2ensite webmail
    
    Lalu reload konfigurasi apache2.
    service apache2 reload
    
  • Kita testing webmail lewat web browser dengan mengakses sub-domain mail.server1.xyz
  • login dengan salah satu User yang telah dibuat sebelumnya.
  • Coba kirim email pada user sebelah, caranya klik menu compose pada atas menu.
  • Log out dan login pada user yang satunya lagi.
  • Terlihat user satu ini kedapatan E-Mail baru.
  • Dan inilah header pesannya, tandanya konfigurasi Mail server telah berhasil.

Komentar