Mail Server

Layanan E-mail

Tutorial ini   menjelaskan pengertian,   konsep   dan   manfaat   layanan   e-mail   bagi organisasi. Setelah itu pembaca dipandu untuk melakukan instalasi, konfigurasi dan implementasi mail server.

E-mail

Pengertian

Surat elektronik atau yang lebih dikenal dengan sebutan e-mail(electronic mail) merupakan sebuah protokol pengiriman pesan berbasis teks dan data digital. Protocol ini menggunakan jaringan internet ataupun intranet. Karena memanfaatkan jaringan internet, biaya yang dikeluarkan untuk mengirim email sangatlah murah yakni merupakan biaya pengiriman data melalui internet atau
lebih ringkasnya biaya koneksi internet.

Email memiliki komponen-komponen standar yang digunakan untuk berkirim pesan secara digital. Berikut ini adalah komponen-komponen dari sebuah email

  • Tujuan : merupakan tujuan kepada siap kita mengirim email. Field ini diisi dengan alamat email penerima pesan elektronik.
  • CC: merupakan tembusan kepada siap surat turut dilampirkan. Field ini diisi dengan alamat email penerima tembusan.
  • BCC: merupakan tembusan tetapi si penerima utama tidak mengetahui bahwa surat tersebut tidak  diketahui penerima utama.
  • Subject: merupakan judul dari surat yang kitakirimkan melalui email.
  • Isi email/body email: merupakan isi dari email yang akan kita kirimkan.
  • Attachment: merupakan file yang akan dilmpirkanpada surat.

Konsep

Berikut ini adalah gambaran ringkas mengenai mekanisme dasar pengiriman suatu email.

  1. Sebuah email dikirimkan menuju webserver dengan menggunakan SMTP protocolpada TCP port 25.
  2. Webserver melihat alamat tujuan email dikirimkan lalu kemudian mencari alamat dari webserver penerima email kepada DNS.
  3. ServerDNS kemudian mencari  memberikan alamat IP dari webserver penerima email.
  4. Webserver mengirimkan email kepada webserver dari penerima email
  5. Webserver mengirimkan email kepada client dengan menggunakan SMTP protocol pada TCPport 25.

Apa yang terjadi ketika proses pengiriman email terjadi?

E-mail menggunakan protokol yang bisa disebut SMTP. Setiap email meliki header yang berisikan rangkaian header yang
memberitahukan mailservr apa yang harus dilakukan pada email tersebut dan kemana akan mengirimkanya. Jadi, ketika pengirim mengirimkan email mereka menambahkan penerima pada field to: dan mungkin cc: ataupun bcc:

Email client dari pengguna dikonfigurasikan oleh sebuah server, dan client tersebut kini menghubungi server dengan menggunakan tcp pada port 25 dengan menggunakan keyword tertentu. Pada contoh dibawah ini client mencoba memberitahu server siapa dirinya

220 mail.example.com
ESMTP Server

EHLO
client.example.com

250
mail.example.com Hello client.example.com [192.168.0.100], pleased to meet
you

Pada baris pertama client mencoba memberitahu server siapa mail.example.com dan bahwa ia SMTP server yang support Extended
SMTP (ESMTP). Baris berikutnya client berkata hello dan memberitahukan siapa client.example.com. terakhir, server merespons koneksi dan membalas salam.

Selanjutnya proses pengiriman email dimulai, email dikirim ke server pengirim. Hal ini dimulai dengan mengirim detail dari pengirim dan penerima yang biasanya disebut envelope

MAIL FROM: <bambolz@example.com>

250 bambolz@example.com…
Sender ok

Disini pengirim bambolz@example.com telah menggunakan perintah MAIL FROM. Server melakukan pengecekan dan mengembalikan
250 sebagai response code, yang mengindikasikan bahwa client tersebut dapat mengirimkan e-mail. Persetujuan ini bisa berdasarkan beberapa kriteria seperti alamat email yang valid, dll.

RCPT TO: <ayam.chiken@example.com>

250 ayam.chiken@example.com… Recipient ok (will queue)

Terjadi proses yang sama dengan proses pertama yakni pengecekan mail client dari penerima. Selanjutnya pada contoh ringkas ini
akan ditampilkan isi sesungguhnya dari email. Client mengirimkan command yang disebut DATA kepada server

DATA

354 Enter mail, end with
“.” on a line by itself

Message-ID:

Date: Mon, 17 Aug 2009
12:29:26 +1100

From: Mohamad Andriyanbambolz@example.com

To: Tri rachmadyayam.chiken@example.com

Subject: percobaan email

Halo ini percobaan pengiriman
email
.

.

250 SAA112345 Message
accepted for delivery

Server merespons dengan mencari end of file yang pada contoh ini berikan berupa tanda titik pada sebuah baris secara mandiri.

Sekarang proses pengiriman email dapat dilanjutkan dengan mengirim email lain dengan menggunakan  command MAIL FROM atau bisa menyudahi dengan menggunakan command  QUIT

QUIT

221 Goodbye

Apa yang terjadi setelah pengiriman email?

Setelah server menerima email yang kita kirimkan dan menaruhnya pada mail queue, serangkaian command dan langkah dieksekusi. Pertama-tama server butuh untuk mencari tahu kemana email akan dikirim. Untuk melakukan hal ini server mengambil bagian dari email address setelah simbol  @. Bagian ini biasanya merupakan nama domain yang sah, misalnya example.com. Email server kemudian menggunakan sebuah query DNS untuk menghubungi remote domain dan menanyakan alamat ip server  penerima email.
Tentu saja jika penerima menggunakan domain email yang sama dengan pengirim, tahapan ini bisa di skip.

Email server melakukanhal ini dengan melakukan proses querying pada record DNS jenis tertentu yang disebut MX record. Querying MX Record  mengembalikan satu atau beberapa  entry  yang memberitahukan email server pengirim  ke server mana harus mengirimkan email. Biasanya berupa sebuah IP address spesifik dari server tujuan.

        Email server kemudian mengirimkan email tersebut ke queue lainya dan dari sana dikirimkan ke server email tujuan. Untuk melakukan hal ini, email server pengirim coba melakukan koneksi via tcp pada port 25, untuk setiap alamat ip email server yang direturn oleh MX query, Email server. Email server kemudian mengikuti urutan pengiriman untuk mengetahui apakah email dapat terkirim.

  1.  Jika server tujuan merespons, akan dikirimkan email. 
  2. Jika server tidak memberikan respons, maka akan mecoba mengimkan keserver selanjutnya sesuai dengan urutan MX record.
  3. Jika tidak ada server yang me respons, email server pengirim biasanya akan meletakkan email terebut di queue untuk mencoba dikirimkan lagi.
  4. Jika tetap tidak bisa terkirim maka email server pengirim akan memberikan laporan kegagalan pengiriman via email.

Manfaat

Email telah menjadi sarana komunikasi utama yang sangat bermanfaat bagi suatu organisasi. Selain karena murah dan cepat penggunaannya pun dirasa paling mudah diimplementasikan. Oleh karena itu pemanfaatannya pada organisasi pun sangatlah luas. Dalam beberapa kasus email telah menggantikan layanan post dan fax sebagai suatu perangkata komunikasi. berikut ini adalah
manfaat penggunaan email bagi suatu organisasi:

  • Sarana Komunikasi secara menyeluruh pada seluruh organisasi. Pemanfaatan mailing list dalam hal ini sangatlah mendukung kegiatan organisasi dalam melakukan komunikasi kepada seluruh organisasi
  • Menghemat penggunaan kertas dan tinta: penggunaan surat elektronik di suatu organisasi dapat mengurangi pemakaian kertas dan tinta untuk berkirim surat secara fisk.
  • Dapat digunakan tidak hanya untuk berkomunikasi tetapi dapat berbagi data-data antar sesame rekanan.
  • Dapat dipergunakan untuk berlangganan info-info yang user inginkan

Instalasi Mailserver

Untuk melakukan instalasi mailserver pada debian squeeze diperlukan untuk menginstall beberapa paket antara lain

Install Postfix

1.   Untuk melakukan instalasi webserver maka diperlukan untuk menginstall postfix terlebih dahulu, Maka lakukan perintah

# aptitude install postfix

Setelah proses download selesai akan muncul dialog untuk menghapus paket Exim dari debian,

Ketik y, lalu tekan tombol enter kemudian akan muncul kembali dialog continue ketik y lalu kemudian tekan tombol enter

proses instalasi dimulai.

Klik tab sehingga pilihan <ok> terpilih kemudian tekan enter sehingga proses instalasi  dapat dilakukan.

2.   Selanjutnya pilih internet site pada layar postfix configuration
3.   Masukkan nama postfix dari webserver yang kita kehendaki misal gakky.com, nantinya alamat email pada mail server ini akan menggunakan domain @gakky.com secara default.
4.   Klik pada tombol TAB untuk memindahkan kursor dan klik enter pada pilihan <OK> dan proses instalasi akan berlangsung, tunggu sampai selesai.

Install mysql-server

1.       Lakukan instalasi mysql-server dengan menggunakan perintah

# aptitude install mysql-server

2.       Akan muncul dialog seperti berikut , tekan y lalu enter

3.       Maka proses instalasi pun akan dimulai dengan proses download package-package yang di butuhkan

4.       Setelah proses download selesai maka akan muncul tampilan sebagai berikut

5.       Masukkan password untuk mysql root user, ingat password ini karena akan di butuhkan pada saat setting database.

6.       Klik tab lalu tekan enter pada pilihan <ok>, kemudain re-enter password dan klik enter pada pilihan <ok>

7.       Proses instalasi mysql-server selesai.

Install dovecot-pop3d & dovecot-imapd

1.       Install dovecot-pop3d & dovecot-imapd, agar mail server yang kita buat dapat menggunakan protokol
pop3 dan imap dengan melakukan perintah

# aptitude install dovecot-pop3d

# aptitude install dovecot-imapd

Tunggu sampai instalasi selesai.

Install phpmyadmin

Instalasi phpmyadmin digunakan jika anda tidak biasa menggunakan text based editor sebagai tempat untuk melakukan setting database. phpmyadmin akan memberikan tampilan gui yang akan memepermudah dalam pengaturan database.

1.       Lakukan instalasi phpmyadmin dengan perintah

# aptitude install phpmyadmin

2.       Lakukkan penyettingan database dengan memilih pilihan <ok>

3.Lakukan penyetelan pasword admin untuk mysql dan phpmyadmin,

4.Untuk menggunakan phpmyadmin lakukan akses melalui browser dengan alamat

Localhost/phpmyadmin

Setting Database

        Pada tulisan ini akan di jelaskan cara untuk melakukan setting menggunakan textbased command line.

mysqladmin –p create mailserve


  1. Lakukan pembuatan database mysql dengan perintah Akan diminta untuk memasukkan password, masukkan pasword MySQL yang telah dibuat pada tahapan sebelumnya.
  2. Setelah itu masuk ke database mailserver yang telah kita buat dengan menggunakan perintah

mysqladmin –p mailuser

Akan diminta untuk memasukkan password, masukkan pasword MySQL yang telah dibuat pada tahapan sebelumnya.

Masukkan perintah sebagai berikut.

Perintah ini digunakan untuk memberikan akses SELECT ke database mailserver kepada user ‘mailuser’ pada server localhost dengan password ‘penggunasurat’. Lakukan perubahan pada id maupun password sesuai dengan keinginan anda. Namun pada tulisan ini saya akan menggunakan id dan password seperti pada contoh di atas.

3.Membuat table untuk digunakan sebagai database dari mailserver yang akan di bangun.

  • Membuat table untuk nama domain dari mailserver yang ingin kita bangun.

  • Membuat table untuk user, user akan menyimpan id dan password dari pengguna fasilitas email.

4.Membuat Test data, untuk dapat melakukan test padamailserver yang akan di buat.

Virtual_domains

id

name

1

example.org

2

gakky.co.id

Users

Id

Domain_id

Email

password

1

1

john@example.org

*****

2

2

Mochammad.tri@gakky.co.id

*****

3

2

Mohamad.andriyan@gakky.co.id

*****

Password pada field ini akan
berisi text yang telah terenkripsi.

Virtual_aliases

Id

Domain_id

Source

destination

1

1

jack@example.org

john@example.org

2

2

tri@gakky.co.id

mochammad.tri@gakky.co.id

3

2

andriyan@gakky.co.id

mohamad.andriyan@gakky.co.id

Penginputan data di atas
dapat di lakukan menggunakan phpmyadmin maupun command line pada linux.

Contoh :

Untuk virtual_domains

Insert into mailserver values(2,’gakky.co.id’);

 Untuk Users

Insert into mailserver values(2,2,MD5(‘ayam’),’mochammad.tri@gakky.co.id‘);

MD5 digunakan untuk melakukan
enkripsi pada field password

Untuk Aliases

Insert into mailserver
values(2,2,’tri@gakky.co.id‘,’mochammad.tri@gakky.co.id);

Konfigurasi Database untuk Postfix

Pada bagian ini kita akan mencoba untuk melakukan konfigurasi pada postfix, sehingga dapat menggunakan database yang telah kita
bangun di tahap sebelumnya.

Untuk melakukan setting database, agar postfix dapat berinteraksi dengan database mysql yang telah kita buat maka kita akan membuat file .cf( configuration file) yang akan di daftarkan pada library postfix

1.Setting virtual_mailbox_domain

    Buat file pada /etc/postfix/mysql-virtual-mailbox-domains.cf Dengan isi sebagai berikut :

user = mailuser

password = penggunasurat

hosts = 127.0.0.1

dbname = mailserver

query = SELECT 1 FROM virtual_domains WHERE name=’%s’

   Untuk mendaftarkan file ini ke dalam konfigurasi post fix, gunakan command :

postconf -e
virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

   Lalu untuk melakukan pengecekan koneksi yang telah dibuat tersambung atau tidak ,gunakan command :

postmap -q example.org mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

   Hasil query di atas akan menghasilkan ‘1’, jika setting yang anda lakukan benar.

2.Setting virtual_mailbox_maps

   Buat file pada  /etc/postfix/mysql-virtual-mailbox-maps.cf

   Dengan isi sebagai berikut :

user = mailuser

password = penggunasurat

hosts = 127.0.0.1

dbname = mailserver

query = SELECT 1 FROM users WHERE email=’%s’

   Untuk mendaftarkan file ini ke dalam konfigurasi post fix, gunakan command :

postconf -e
virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

   Lalu untuk melakukan pengecekan koneksi yang telah dibuat tersambung atau tidak ,gunakan command :

postmap -q john@example.org
mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

Hasil query di atas akan menghasilkan ‘1’, jika setting yang anda lakukan benar.

3. Setting virtual_alias_maps

   Buat file dengan pada /etc/postfix/mysql-virtual-alias-maps.cf

   Dengan isi sebagai berikut :

user = mailuser

password = penggunauser

hosts = 127.0.0.1

dbname = mailserver

query = SELECT destination FROM virtual_aliases WHERE source=’%s’

   Untuk mendaftarkan file ini ke dalam konfigurasi post fix, gunakan command :

postconf -e
virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-alias-maps.cf

   Lalu untuk melakukan pengecekan koneksi yang telah dibuat tersambung atau tidak ,gunakan command :

postmap -q jack@example.org
mysql:/etc/postfix/mysql-virtual-alias-maps.cf

   Hasil query di atas akan    menghasilkan ‘john@example.org‘, jika setting yang anda lakukan benar.

 

Konfigurasi Dovecot

Hal-hal yang akan di lakukan pada bab ini adalah :

  • Mendapatkan email dari postfix dan menyimpannyapada disk
  • Mengeksekusi ‘sieve’ untuk pengaturan filter dari mail yang masuk
  • Memungkinkan pengguna untuk menerima email menggunakan POP3 dan IMAP

1. Untuk menigkatkan keamanan dari sistem, kita akan membuat user baru untuk sistem yang akan memiliki semua mailbox yang ada pada server. Command untuk membuat group dan user tersebut adalah sebagai berikut :

groupadd -g 5000 vmail

useradd -g vmail -u 5000 vmail -d /var/vmail –

Untuk melakukan perubahan dari ownership dan permission file lakukan command sebagai berikut :

chown -R vmail:vmail /var/vmail

chmod u+w /var/vmai

2.Untuk melakukan konfigurasi Dovecot, pertama masuk ke file /etc/dovecot menggunakan text editor, lalu ubah beberapa parameter sebagai berikut :Untuk mempermudah pencarian gunakan texteditor nano, dan short cut ‘ctrl+w’ untuk melakukan search field yang ingin di rubah.

Ubah protocol menjadi

protocols = imap imaps pop3 pop3s

Sehingga dovecot dapat mensupport protokol POP3 maupun IMAP.

disable_plaintext_auth=no

Hal ini akan membuat dovecot menerima password dalam bentuk text.

mail_location = maildir:/var/vmail/%d/%n/Maildir

Settingan ini akan membuat default lokasi dari mailbox dari setiap user, dimana %d adalah domain user dan %n adalah email user.

Kemudian cari blok dengan nama ‘auth_default’, lalu rubah mekanisme yang di gunakan untuk authentikasi.

mechanisms = plain login

Karena data password dari user mailserver yang ingin kita buat ada pada database mysql yang telah kita buat maka, lakukan  perubahan pada block passdb sql:

passdb sql {

args = /etc/dovecot/dovecot-sql.conf

}

Untuk setting userdb hampir sama dengan setting file_location dituliskan dimana folder mail akan di tempatkan.

userdb static {

args = uid=5000 gid=5000 home=/var/vmail/%d/%n/Maildir
allow_all_users=yes

}

Lalu Pada blok bernama ‘socket listen’, lakukan perubahan sebagai berikut :

 socket listen {

master {

path = /var/run/dovecot/auth-master

mode = 0600

user = vmail

}

client {

path = /var/spool/postfix/private/auth

mode = 0660

user = postfix

group = postfix

}

}

Lalu terdapat blok ‘protocol lda’ pada blok ini dapat di atur mengenai fitur yang dimiliki postfix sebagai agent delivery virtual. Disini dapat di lakukan penggunaaan kuota bagi email, dan juga filtering surat dengan ‘sieve’. Lakukan perubahan sebagai berikut :

protocol lda {

auth_socket_path = /var/run/dovecot/auth-master

postmaster_address = postmaster@gakky.com

mail_plugins = sieve

log_path =

}

Ubah postmaster pada email di atas dengan email valid yang anda miliki, atau administrator miliki.

Save file dovecot.conf dan tutup, kemudian edit file /etc/dovecot/dovecot-sql.conf,

Dan rubah setting sebagai berikut :

driver = mysql

connect = host=127.0.0.1 dbname=mailserver user=mailuser
password=mailuser2011

default_pass_scheme = PLAIN-MD5

password_query = SELECT email as user, password FROM users WHERE email=’%u’;

Lalu berikan perintah untuk merestart service dari dovecot :

/etc/init.d/dovecot restart

Jika setting yang anda lakukan benar, maka baris terakhir pada log file anda (/etc/dovecot/dovecot.conf)adalah sebagai
berikut :

… dovecot: Dovecot v1.2.15 starting up (core dumps disabled)

… dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mailserver)

Kemudian sebelum melakukan pengiriman email, perlu dilakukan perubahan ownership dan permission dari file yang baru saja kita edit, sehingga group vmail dapat mengakses setting.

chgrp vmail /etc/dovecot/dovecot.conf

chmod g+r /etc/dovecot/dovecot.conf

chown root:root /etc/dovecot/dovecot-sql.conf

chmod go= /etc/dovecot/dovecot-sql.conf

Menghubungkan Postfix dengan Dovecot

Untuk dapat menggunakan Postfix dan Dovecot secara kolaborasi, dimana Postfix sebagai penerima email, dan Dovecot sebagai agent sehingga dapat mendapatkan akses POP3 dan juga IMAP.

1.       Untuk melakukan hal ini kita perlu merubah file /etc/postfix/master.cf, pada file tersebut tambahkan line sebegai berikut :

dovecot unix – n n – –
pipe

flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender}
-d ${recipient}

Perhatikan bahwa baris kedua harus di beri spasi pertama, dan juga di antara -f dan $ juga di beri spasi.

2.       Lakukan restart pada service postfix :

postfix reload

3.
Kemudian lakukan command berikut untuk menambahkan baris kedalam file /etc/postfix/main.cf:

postconf -e virtual_transport=dovecot

postconf -e dovecot_destination_recipient_limit=1

Instalasi Squirrel mail

1.       Lakukan Instalasi Squirell mail dengan perintah

aptitude install squirrelmail

2.       Setelah proses instalasi selesai edit file di /etc/apache2/apache2.conf

3.    Lakukan penambahan

Include /etc/squirrelmail/apache.conf

Pada baris terakhir

4.Save file tersebut kemudian restart service apache dengan menggunakan perintah

/etc/init.d/apache2
restart

5.Buka web browser dan masuk ke halaman

http://localhost/squirrelmail/src/login.php

6.Lakukan proses  login

7.Lakukan testing pengiriman email

8.Klik send setelah itu Sign Out dan kemudian login dengan akun penerima email

9.Setelah login berhasil kemudian akan muncul surat baru pada halaman awal mail

10.   Isi dari email

Installasi dari squirrelmail
pun selesai.

Referensi

http://workaround.org/ispmail/squeeze

http://workaround.org/ispmail/squeeze/installing-packages

http://workaround.org/ispmail/squeeze/database-setup

http://workaround.org/ispmail/squeeze/postfix-database-configuration

http://workaround.org/ispmail/squeeze/setting-up-dovecot

http://workaround.org/ispmail/squeeze/postfix-dovecot

http://workaround.org/ispmail/squeeze/testing-email-delivery

 

 



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s