Kamis, 07 Agustus 2014

Membangun Intermediate Mail Server Berbasis Ubuntu Server 14.04

Intermediate Mail Server (IMS) adalah email server yang menjembatani antara user-user local dalam mengakses Reguler Mail Server yang ada di internet semisal gmail.com dan yang lainnya. Intermediate Mail Server (IMS) akan megambil email-email user lokal di internet kemudian menyimpannya. IMS juga akan mengirimkan email-email user lokal ke internet melalui Reguler Mail Server di internet yang telah ditentukan. Perhatikan topology nya seperti di bawah ini :


Gambar 1. Topology Jaringan Dengan Intermediate Mail Server


Pada gambar diatas, di dalam jaringan lokal (LAN) terdapat 3 Sub Jaringan yaitu Ruang Accounting dengan IP 192.168.1.0/24, Ruang Admin dengan IP 192.168.2.0/24 dan Ruang Server dengan IP 172.16.16.0/24. Intermediate Mail Server Sendiri memiliki alamat IP 172.16.16.121. Untuk mengelola ke 3 jaringan tersebut digunakan sebuah router, yang juga sebagai penghubung jaringan lokal (LAN) ke internet. Pada topology diatas juga tampak di jaringan internet terdapat sebuah Reguler Mail Server (mail.google.com) yang menyediakan layanan SMTP Server dan POP3 Server. Seluruh user di jaringan lokal (LAN) tidak secara langsung mengakses Email Server di internet tersebut, hanya IMS yang memiliki IP 172.16.16.121 saja yang mengakses Email Server tersebut. Sedangkan user-user di jaringan lokal semuanya hanya mengakses IMS saja, dengan bantuan Thunderbird Mail Client.

Sekarang kita akan mulai membangun Intermediate Mail Server tersebut. Misal kita memiliki 8 akun email di server mail.google.com sebagai berikut :
Username : user1@gmail.com - Password : 12345678
Username : user2@gmail.com - Password : abcd5678
Username : user3@gmail.com - Password : 1234xyzs
Username : user4@gmail.com - Password : 12345678
Username : user5@gmail.com - Password : 12345678
Username : user6@gmail.com - Password : 1abc5678
Username : user7@gmail.com - Password : 1234xdf8
Username : user8@gmail.com - Password : 12345678
Username : user_default@gmail.com - Password : abcabcdf
Dan saya anggap sekarang Anda juga telah menginstall Ubuntu Server 14.04 pada sebuah PC dan telah melakukan kongiurasi IP 172.16.16.20 pada interface jaringan Ubuntu Server tersebut. Lakukan tahapan berikut untuk membangun Intermediate Mail Server :
  1. Install Webmin

  2. it@ubuntu-srv-1404:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.asli
    it@ubuntu-srv-1404:~$ sudo rm /etc/apt/sources.list
    it@ubuntu-srv-1404:~$ sudo vi /etc/apt/sources.list 
    

    Tekan "i" kemudian edit file dengan mengisikan baris berikut diakhir file :

    deb http://download.webmin.com/download/repository sarge contrib 
    

    Tekan “esc” untuk mengakhiri mode edit, kemudian tekan “Shift” + “:” , diikuti “wq” → “Enter”.
    Download dan install key dengan mengeksekusi perintah berikut :

    it@ubuntu-srv-1404:~$ sudo wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add - 
    

    Update daftar repository dan Install webmin :

    it@ubuntu-srv-1404:~$ sudo apt-get update
    it@ubuntu-srv-1404:~$ sudo apt-get install webmin
    

    Untuk mengakses Webmin dapat dilakukan melalui Web Browser dengan mengetikkan alamat berikut :

    https://ip-address-server:10000

  3. Persiapkan User Local

  4. it@ubuntu-srv-1404:~$ sudo groupadd emailrelay -g 10000
    it@ubuntu-srv-1404:~$ tail /etc/group
    
    it@ubuntu-srv-1404:~$ sudo useradd user1 -m -d /home/user1 -u 1001 -g 10000
    it@ubuntu-srv-1404:~$ sudo useradd user2 -m -d /home/user2 -u 1002 -g 10000
    it@ubuntu-srv-1404:~$ sudo useradd user3 -m -d /home/user3 -u 1003 -g 10000
    it@ubuntu-srv-1404:~$ sudo useradd user4 -m -d /home/user4 -u 1004 -g 10000
    it@ubuntu-srv-1404:~$ sudo useradd user5 -m -d /home/user5 -u 1005 -g 10000
    it@ubuntu-srv-1404:~$ sudo useradd user6 -m -d /home/user6 -u 1006 -g 10000
    it@ubuntu-srv-1404:~$ sudo useradd user7 -m -d /home/user7 -u 1007 -g 10000
    it@ubuntu-srv-1404:~$ sudo useradd user8 -m -d /home/user8 -u 1008 -g 10000
    it@ubuntu-srv-1404:~$ sudo useradd user9 -m -d /home/user9 -u 1009 -g 10000
    it@ubuntu-srv-1404:~$ sudo useradd user_default -m -d /home/user_default -u 1010 -g 10000
    it@ubuntu-srv-1404:~$ ls -lF /home
    
    it@ubuntu-srv-1404:~$ sudo deluser --remove-home user9
    it@ubuntu-srv-1404:~$ ls -l /home
    
    it@ubuntu-srv-1404:~$ sudo passwd user1
    it@ubuntu-srv-1404:~$ sudo passwd user2
    it@ubuntu-srv-1404:~$ sudo passwd user3
    it@ubuntu-srv-1404:~$ sudo passwd user4
    it@ubuntu-srv-1404:~$ sudo passwd user5
    it@ubuntu-srv-1404:~$ sudo passwd user6
    it@ubuntu-srv-1404:~$ sudo passwd user7
    it@ubuntu-srv-1404:~$ sudo passwd user8
    it@ubuntu-srv-1404:~$ sudo passwd user_default 
    
    it@ubuntu-srv-1404:~$ sudo usermod -g 10000 -G 8 user1
    it@ubuntu-srv-1404:~$ sudo usermod -g 10000 -G 8 user2
    it@ubuntu-srv-1404:~$ sudo usermod -g 10000 -G 8 user3
    it@ubuntu-srv-1404:~$ sudo usermod -g 10000 -G 8 user4
    it@ubuntu-srv-1404:~$ sudo usermod -g 10000 -G 8 user5
    it@ubuntu-srv-1404:~$ sudo usermod -g 10000 -G 8 user6
    it@ubuntu-srv-1404:~$ sudo usermod -g 10000 -G 8 user7
    it@ubuntu-srv-1404:~$ sudo usermod -g 10000 -G 8 user8
    it@ubuntu-srv-1404:~$ sudo usermod -g 10000 -G 8 user_default
    it@ubuntu-srv-1404:~$ id user1
    it@ubuntu-srv-1404:~$ id user2
    

  5. Install & Konfigurasi Postfix, Fetchmail dan Dovecot
    • Postfix
    • Install postfix dan biarkan konfigurasi default demikian adanya saat instalasi sedang berlangsung :

      it@ubuntu-srv-1404:~$ sudo apt-get install postfix
      

      Konfigurasi postfix sebagai smtp relay ke smtp.gmail.com :

      it@ubuntu-srv-1404:~$ sudo pico /etc/postfix/main.cf
      

            .
            .
            .
         mynetworks = 192.168.0.0/17 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
            .
            .
         relayhost = [smtp.gmail.com]:587
         smtp_sasl_auth_enable = yes
         smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
         smtp_sasl_security_options = noanonymous
         smtp_tls_CAfile = /etc/postfix/cacert.pem
         smtp_use_tls = yes
         smtp_sender_dependent_authentication = yes
         sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map 
      

      SAVE (Ctrl + O) -> (Ctrl + x)

      it@ubuntu-srv-1404:~$ sudo pico /etc/postfix/sasl/Equifax_Secure_CA.pem
      

      -----BEGIN CERTIFICATE-----
      MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
      ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
      MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
      B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
      nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
      fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
      8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
      A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
      CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
      A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
      spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
      Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
      zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
      BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
      70+sB3c4
      -----END CERTIFICATE-----
      

      it@IES:/etc/postfix/sasl$ sudo cat /etc/postfix/sasl/Equifax_Secure_CA.pem | sudo tee -a /etc/postfix/cacert.pem
      
      -----BEGIN CERTIFICATE-----
      MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
      ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
      MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
      B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
      nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
      fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
      8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
      A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
      CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
      A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
      spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
      Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
      zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
      BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
      70+sB3c4
      -----END CERTIFICATE-----
      

      Buat file yang berisi daftar username dan password dari akun-akun user yang ada di email server internet :

      it@ubuntu-srv-1404:~$ sudo pico /etc/postfix/sasl_passwd
      

      #Per-sender Authentication
         user1@gmail.com user1@gmail.com:12345678
         user2@gmail.com user2@gmail.com:abcd5678
         user3@gmail.com user3@gmail.com:1234xyzs
         user4@gmail.com user4@gmail.com:12345678
         user5@gmail.com user5@gmail.com:12345678
         user6@gmail.com user6@gmail.com:1abc5678
         user7@gmail.com user7@gmail.com:1234xdf8
         user8@gmail.com user8@gmail.com:12345678
      
         #Login for default relayhost
         [smtp.gmail.com]:587 user_default@gmail.com:abcabcdf
      

      it@ubuntu-srv-1404:~$ sudo chmod 400 /etc/postfix/sasl_passwd
      it@ubuntu-srv-1404:~$ sudo postmap hash:/etc/postfix/sasl_passwd
      

      Petakan setiap user ke masing-masing provider / smtp server :

      it@ubuntu-srv-1404:~$ sudo pico /etc/postfix/relayhost_map
      

      # Per-sender provider
      user1@gmail.com     [smtp.gmail.com]:587
      user2@gmail.com     [smtp.gmail.com]:587
      user3@gmail.com     [smtp.gmail.com]:587
      user4@gmail.com     [smtp.gmail.com]:587
      user5@gmail.com     [smtp.gmail.com]:587
      user6@gmail.com     [smtp.gmail.com]:587
      user7@gmail.com     [smtp.gmail.com]:587
      user8@gmail.com     [smtp.gmail.com]:587
      

      it@ubuntu-srv-1404:~$ sudo postmap hash:/etc/postfix/relayhost_map
      

      Sampai disini postfix telah selesai dikonfigurasi sebagai smtp server di jaringan lokal sekaligus sebagai smtp client di internet. Selanjutnya kita akan melakukan konfigurasi fetchmail agar berfungsi sebagai POP3 Client di jaringan internet.

    • Fetchmail

    • it@ubuntu-srv-1404:~$ sudo apt-get install fetchmail
      it@ubuntu-srv-1404:~$ sudo pico /etc/fetchmailrc
      

      set syslog
      set daemon 300 
       
      poll pop.gmail.com
          with nodns,
          with protocol POP3
          user "user1@gmail.com" there is user1 here,
          with password 12345678
          with ssl, sslcertck;
      
      poll pop.gmail.com
          with nodns,
          with protocol POP3
          user "user2@gmail.com" there is user2 here,
          with password abcd5678
          with ssl, sslcertck; 
       
      poll pop.gmail.com
          with nodns,
          with protocol POP3
          user "user3@gmail.com" there is user3 here,
          with password 1234xyzs
          with ssl, sslcertck;
      
      poll pop.gmail.com
          with nodns,
          with protocol POP3
          user "user4@gmail.com" there is user4 here,
          with password 12345678
          with ssl, sslcertck; 
      poll pop.gmail.com
          with nodns,
          with protocol POP3
          user "user5@gmail.com" there is user5 here,
          with password 12345678
          with ssl, sslcertck;
      
      poll pop.gmail.com
          with nodns,
          with protocol POP3
          user "user6@gmail.com" there is user6 here,
          with password 1abc5678
          with ssl, sslcertck; 
       
      poll pop.gmail.com
          with nodns,
          with protocol POP3
          user "user7@gmail.com" there is user7 here,
          with password 1234xdf8
          with ssl, sslcertck;
      
      poll pop.gmail.com
          with nodns,
          with protocol POP3
          user "user8@gmail.com" there is user8 here,
          with password 12345678
          with ssl, sslcertck; 
       
       poll pop.gmail.com
          with nodns,
          with protocol POP3
          user "user_default@gmail.com" there is user_default here,
          with password abcabcdf
          with ssl, sslcertck;

      it@ubuntu-srv-1404:~$ sudo chmod 600 /etc/fetchmailrc
      it@ubuntu-srv-1404:~$ sudo chown fetchmail.root /etc/fetchmailrc
      it@ubuntu-srv-1404:~$ sudo pico /etc/default fetchmail
      

         .
         .
      START_DAEMON=yes 
       
       

      # /etc/init.d/fetchmail restart
      

      Alhamdulillah sampai disini kita juga telah menyelesaikan konfigurasi fetchmail sebagai POP3 Client di internet. Tinggal satu langkah lagi kita akan menyelesaikan konfigurasi Ubuntu Server 14.04 sebagai Intermediate Mail Server, yaitu menyediakan layanan POP3 Server di dalam jaringan lokal (LAN), sehingga email-email user yang sudah diambil di internet tersebut dapat di akses maupun di download ke local komputer masing-masing user. Untuk membangun sebuah POP3 / IMAP Server, kita dapat menggunakan aplikasi Dovecot.

    • Dovecot
    • Untuk menginstall dan mengkonfigurasi dovecot silahkan ikuti tahapan-tahapan berikut :

      it@ubuntu-srv-1404:~$ sudo apt-get install dovecot-imapd dovecot-pop3d
      it@ubuntu-srv-1404:~$ sudo pico /etc/dovecot/conf.d/10-mail.conf
      

       .
              .
      mail_location = mbox:~/mail:INBOX=/var/mail/%u 
       .
       .
      

      it@ubuntu-srv-1404:~$ sudo pico /etc/dovecot/conf.d/10-ssl.conf
      

         .
         .
      ssl = yes 
         .
         .
      

      it@ubuntu-srv-1404:~$ sudo service dovecot restart 
      

      Sampai disini kita telah selesai mengkonfigurasi dovecot, sekaligus kita telah berhasil membangun sebuah Intermediate Mail Server Berbasis Ubuntu 14.04. Anda dapat langsung mencoba mengakses IMS dengan menggunakan Thunderbird Mail Client yang konfigurasinya akan diperlihatkan pada point berikutnya. Namun sebelumnya saya akan sedikit berbagi pengalaman dalam konfigurasi dovecot pada Ubuntu 10.04 dan 12.04. Kalau saya tidak salah, dulu pada waktu mengkonfigurasi dovecot di Ubuntu 10.04 dan 12.04 saya tidak perlu melakukan instalasi paket dovecot secara terpisah, aplikasi dovecot tersebut sudah terinstall dengan sendirinya di saat melakukan instalasi postfix (kalau tidak salah). Dan untuk menjadikannya sebagai POP3 / IMAP server, pada Ubuntu 10.04 maka kita cukup melakukan konfigurasi seperti berikut :

      it@ubuntu-srv-1404:~$ pico /etc/dovecot/dovecot.conf
      

          .
          .
      protocols = imap pop3
          .
      mail_locations = mbox:~/mail:INBOX=/var/mail/%u
          .
          .
      

      Kemudian restart dovecot daemon, dan kita sudah siap mengaksesnya. Sedangkan pada Ubuntu 12.04, sebelum me-restart dovecot setelah konfigurasi tersebut, kita harus melakukan sedikit perubahan lagi pada file berikut :

      it@ubuntu-srv-1404:~$ sudo pico /etc/dovecot/conf.d/01-dovecot-postfix.conf
      

           .
           .
      mail_plugins = cmusieve ----> ubah menjadi mail_plugins = sieve
           .
           .
      

      Kemudian restart dovecot daemon, maka POP3 / IMAP Server sudah siap diakses pada Ubuntu 12.04. Demikian sedikit pengalaman saya yang sempat saya catat dan yang sempat sedikit mengingatnya. Berikutnya kita akan melakukan setting pada Thunderbird mail client agar bisa digunakan untuk mengirim dan menerima email dari Intermediate Mail Server yang sudah dibuat.

  6. Setting Email Client (Thunderbird)

  7. Untuk melakukan settingan pada Thunderbird Mail Client, ikuti tahapan-tahapan seperti gambar berikut :

    Gambar 2. Tahapan-tahapan setting Thunderbird pada komputer User1

    Sampai disini kita telah menyelesaikan semua konfigurasi dari server hingga ke client. Dalam implementasi di lapangan kalau kondisi Server Ubuntu anda tidak sama dengan saya, mungkin di dalam server tersebut anda telah menginstall beberapa aplikasi lain dan telah melakukan konfigurasi-konfigurasi yang bermacam-macam, mungkin saja anda akan menemukan sedikit masalah, atau bisa saja tidak menemui masalah sama sekali, namun jika anda menemukan masalah silahkan mencari solusi nya dengan melihat pesan error dan log yang muncul. Demikian postingan kali ini, sampai jumpa di artikel berikutnya.

1 komentar:

  1. Untuk mengatasi masalah postfix mengirim otomatis ke "root@domain.com" (root@gmail.com), maka lakukan langkah-langkah berikut ini :

    1. pico /etc/postfix/main.cf
    .
    .
    virtual_alias_maps = hash:/etc/postfix/virtual

    2. pico /etc/postfix/virtual

    root david@gmail.com

    3. postmap hash:/etc/postfix/virtual


    Selesai

    BalasHapus