membangun mail server menggunakan postfix

8
Membangun Mail Server Menggunakan Postfix + Courier IMAP/POP + MySQL + Squirrelmail Kali ini saya akan memberikan tutorial tentang membangun sebuah mail server menggunakan postfix sebagai MTA-nya, Courier IMAP dan POP sebagai MDA, MySQL sebagai database, dan Squirrelmail sebagai webmail-nya. Saya menggunakan Linux Ubuntu 8.04 Hardy Heron. Berikut adalah langkah-langkah yang harus dilakukan : Langkah1 : Menyiapkan paket-paket yang kita butuhkan 1. postfix, postfix-tls, postfix-mysql 2. courier- base, [...] Kali ini saya akan memberikan tutorial tentang membangun sebuah mail server menggunakan postfix sebagai MTA-nya, Courier IMAP dan POP sebagai MDA, MySQL sebagai database, dan Squirrelmail sebagai webmail-nya. Saya menggunakan Linux Ubuntu 8.04 Hardy Heron. Berikut adalah langkah-langkah yang harus dilakukan : Langkah1 : Menyiapkan paket-paket yang kita butuhkan 1. postfix, postfix-tls, postfix-mysql 2. courier-base, courier-authdaemon, courier-authlib-mysql, courier-pop, courier-imap, courier-pop-ssl, courier-imap-ssl 3. mysql-server-5.0 4. squirrelmail 5. libsasl2, libsasl2-modules, libsasl2-modules-sql, openssl Kemudian install paket-paket tersebut. root@baladewa:~#apt-get install postfix postfix-tls postfix- mysql mysql-server-5.0 courier-authdaemon courier-authlib- mysql courier-pop courier-imap squirrelmail Langkah2 : Mempersiapkan database dan tabel-tabel yang dibutuhkan root@baladewa:~#mysql -u root -p <password root>

Upload: sun-narto

Post on 01-Jul-2015

555 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Membangun Mail Server Menggunakan Postfix

Membangun Mail Server Menggunakan Postfix + Courier IMAP/POP + MySQL + Squirrelmail

Kali ini saya akan memberikan tutorial tentang membangun sebuah mail server menggunakan postfix sebagai MTA-nya, Courier IMAP dan POP sebagai MDA, MySQL sebagai database, dan Squirrelmail sebagai webmail-nya. Saya menggunakan Linux Ubuntu 8.04 Hardy Heron. Berikut adalah langkah-langkah yang harus dilakukan : Langkah1 : Menyiapkan paket-paket yang kita butuhkan 1. postfix, postfix-tls, postfix-mysql 2. courier-base, [...]

Kali ini saya akan memberikan tutorial tentang membangun sebuah mail server menggunakan postfix sebagai MTA-nya, Courier IMAP dan POP sebagai MDA, MySQL sebagai database, dan Squirrelmail sebagai webmail-nya. Saya menggunakan Linux Ubuntu 8.04 Hardy Heron. Berikut adalah langkah-langkah yang harus dilakukan :

Langkah1 : Menyiapkan paket-paket yang kita butuhkan

1. postfix, postfix-tls, postfix-mysql

2. courier-base, courier-authdaemon, courier-authlib-mysql, courier-pop, courier-imap, courier-pop-ssl, courier-imap-ssl

3. mysql-server-5.0

4. squirrelmail

5. libsasl2, libsasl2-modules, libsasl2-modules-sql, openssl

Kemudian install paket-paket tersebut.

root@baladewa:~#apt-get install postfix postfix-tls postfix-mysql mysql-server-5.0 courier-authdaemon courier-authlib-mysql courier-pop courier-imap squirrelmail

Langkah2 : Mempersiapkan database dan tabel-tabel yang dibutuhkan

root@baladewa:~#mysql -u root -p <password root>

#Kita membuat user di MySQL untuk mengatur database email

mysql>CREATE DATABASE mail;mysql>CREATE USER ‘mailadmin’@'localhost’ identified by ‘mailadmin’;mysql>USE mail;

#membuat tabel-tabel yan dibutuhkanmysql>CREATE TABLE domains (domain varchar(50) NOT NULL,PRIMARY KEY (domain) )TYPE=MyISAM;

Page 2: Membangun Mail Server Menggunakan Postfix

mysql>CREATE TABLE forwardings (source varchar(80) NOT NULL,destination TEXT NOT NULL,PRIMARY KEY (source) )TYPE=MyISAM;

mysql>CREATE TABLE users (email varchar(80) NOT NULL,password varchar(20) NOT NULL,PRIMARY KEY (email) )TYPE=MyISAM;

mysql>GRANT all ON mail.* TO ‘mailadmin’@'localhost’;

Langkah3 : Membuat file-file yan dibutuhkan

Buat file mysql_domains.cf dg kemudian isi dengan baris-baris dibawah ini:vim /etc/postfix/mysql_domains.cf

user = mailadminpassword = mailadmindbname = mailtable = domainsselect_field = ‘virtual’where_field = domainhosts = 127.0.0.1

isi file mysql_forwardings.cf dg baris-baris dibawah ini:vim /etc/postfix/mysql_forwardings.cf

user = mailadminpassword = mailadmindbname = mailtable = forwardingsselect_field = destinationwhere_field = sourcehosts = 127.0.0.1

isi file mysql_mailboxes.cf dg baris-baris dibawah ini:vim /etc/postfix/mysql-virtual_mailboxes.cfuser = mailadminpassword = mailadmindbname = mailtable = usersselect_field = CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/')where_field = emailhosts = 127.0.0.1

Page 3: Membangun Mail Server Menggunakan Postfix

Langkah4 : pastikan hanya user root & postfix saja yang bisa mengakses file-file tadiroot@baladewa:~#chown root:postfix /etc/postfix/mysql_*.cfroot@baladewa:~#chmod u=rw,g=r,o= /etc/postfix/mysql_*.cf

Langkah5: Buat user yang bertugas untuk membuat maildir baru setiap ada user baru yang mendaftar pada mailserver root@baladewa:~#groupadd -g 500 mail-adminroot@baladewa:~#useradd -g mail-admin -u 500 mail-admin -d /home/mail -mroot@baladewa:~#mkdir /home/mailroot@baladewa:~#chown -R mail-admin:mail-admin /home/mailroot@baladewa:~#chmod -R u=rwx,g=,o= /home/mail

Langkah6 : Konfigurasi postfix

Edit file /etc/postfix/main.cf seperti berikut:

myhostname = baladewa.ncc.its-sby.edu#mydomain = ncc.its-sby.edualias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesmyorigin = ncc.its-sby.edumydestination =  #kosongi sajarelayhost =  #kosongi sajamynetworks = ncc.its-sby.edu  #domain network andamailbox_size_limit = 51200000 #Ukuran mailbox 50MBrecipient_delimiter = +inet_interfaces = all

virtual_alias_domains =virtual_alias_maps = mysql:/etc/postfix/mysql_forwardings.cfvirtual_mailbox_domains = mysql:/etc/postfix/mysql_domains.cfvirtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cfvirtual_mailbox_base = /home/mailvirtual_uid_maps = static:500virtual_gid_maps = static:500

smtpd_sasl_auth_enable = yesbroken_sasl_auth_clients = yessmtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destinationsmtpd_use_tls = yessmtpd_tls_cert_file = /etc/postfix/smtpd.certsmtpd_tls_key_file = /etc/postfix/smtpd.keyKemudian restart postfix

root@baladewa:~# /etc/init.d/postfix restart

Test postfix menggunakan telnet

Page 4: Membangun Mail Server Menggunakan Postfix

root@baladewa:~# telnet 127.0.0.1 25Trying 127.0.0.1…Connected to 127.0.0.1.Escape character is ‘^]’.220 baladewa.ncc.its-sby.edu ESMTP Postfix (Ubuntu)

Jika muncul sebagaimana tulisan diatas, berarti postfix anda sudah berjalan lancar…….Tekanlah tombol Ctrl+] lalu ketik quit untuk keluar dari sesi telnet.

Langkah7 : Mengaktifkan fasilitas autentikasi Auth-SMTP

buat file baru dg nama /etc/postfix/sasl/smtpd.confroot@baladewa:~#vim /etc/postfix/sasl/smtpd.conf

Isi file /etc/postfix/sasl/smtpd.conf seperti berikut:

pwcheck_method: auxpropauxprop_plugin: sqlmech_list: plain login cram-md5 digest-md5sql_engine: mysqlsql_hostnames: 127.0.0.1sql_user: mailadminsql_passwd: mailadminsql_database: mailsql_select: select password from users where email=’%u@%r’log_level: 7

Save file smtpd.conf.

pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat.root@baladewa:~#chown root:postfix /etc/postfix/sasl/smtpd.confroot@baladewa:~#chmod u=rw,g=r,o= /etc/postfix/sasl/smtpd.conf

Mengaktifkan TLS untuk meng-encrypt SMTP traffik, dg cara membuat sertifikatroot@baladewa:~#openssl req -new -outform PEM -out /etc/postfix/smtpd.cert -newkey rsa:2048 -nodes -keyout /etc/postfix/smtpd.key -keyform PEM -days 365 -x509

Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah dibuat.root@baladewa:~#chown root:postfix /etc/postfix/smtpd.*root@baladewa:~#chmod u=rw,g=r,o= /etc/postfix/smtpd.*

Step 7: Mengkonfigurasi courier sebagai server POP3 / IMAP

Edit file /etc/courier/authdaemonrc,

root@baladewa:~#vim /etc/courier/authdaemonrc

ubah parameter authmodulelist menjadi :authmodulelist=”authmysql”Lalu edit file /etc/courier/authmysqlrc,root@baladewa:~#vim /etc/courier/authmysqlrc

Page 5: Membangun Mail Server Menggunakan Postfix

Ubah beberapa parameter, shg menjadi seperti di bawah ini :MYSQL_SERVER localhostMYSQL_USERNAME mailadminMYSQL_PASSWORD mailadminMYSQL_PORT 0MYSQL_DATABASE mailMYSQL_USER_TABLE users#MYSQL_CRYPT_PWFIELD (di comment)MYSQL_CLEAR_PWFIELD passwordMYSQL_UID_FIELD 500MYSQL_GID_FIELD 500MYSQL_LOGIN_FIELD emailMYSQL_HOME_FIELD “/home/mail”MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/')#MYSQL_NAME_FIELD (di comment)

10. Testing POP3 dan IMAP

Restart service courier-authdaemon, /etc/init.d/courier-authdaemon restart

kemudian telnet ke port 110 (POP3)

root@baladewa:~#telnet 127.0.0.1 110Trying 127.0.0.1…Connected to localhost.Escape character is ‘^]’.+OK Hello there.

telnet ke port 143

root@baladewa:~# telnet 127.0.0.1 143Trying 127.0.0.1…Connected to 127.0.0.1.Escape character is ‘^]’.* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2005 Double Precision, Inc.  See COPYING for distribution information.Connection closed by foreign host.

Jika muncul seperti tampilan di atas, berarti konfigurasi POP3 dan IMAP server sudah benar.

11. Konfigurasi squirrelmail

Sekarang kita mengkonfigurasi webmail squirrelmail yang akan kita gunakan sebagai interfase dengan mail server.

root@baladewa:~#squirrelmail-configure

Page 6: Membangun Mail Server Menggunakan Postfix

Lakukan konfigurasi yang anda perlukan. Yang terpenting dari konfigurasi ini adalah bagian Server Setting. Selain itu tidak terlalu penting.

Pada saat menentukan “Server Settings”, lakukan perubahan spt dibawah ini

Secure IMAP (TLS) : falseServer software : courier

kemudian save opsi tersebut dg cara menekan tombol “s”, lalu keluar dari configurasi dg menekan tombol “q”.

12. Menjadikan squirrelmail sebagai virtual host di Apache2

Buat file virtual host baru di apache2

root@baladewa:~# vim /etc/apache2/sites-available/squirrelmail

Kemudian isi seperti berikut ini:

<VirtualHost *>ServerName mail.ncc.its-sby.eduServerAlias ncc.its-sby.eduDocumentRoot /usr/share/squirrelmail#CustomLog logs/www.example.com-access_log common</VirtualHost>

Simpan file, kemudian aktifkan virtual host yang baru kita buat tadi.

root@baladewa:~# a2ensite squirrelmail

Restart apache

/etc/init.d/apache2 reload

Kemudian kita lakukan penambahan host pada DNS

@                       IN      MX      5 mailmail                    IN      A       10.151.36.9

13. Testing mail server

Sekarang kita akan membuat database pada domain yang akan kita coba, domain inilah yang kita jadikan sebagai domain percobaan untuk mengirim dan menerima email. Buatlah domain baru dengan nama domain “ncc.its-sby.edu” pada tabel domains, dan buatlah juga alamat email dan password baru pada tabel users.Untuk lebih jelasnya ikutilah syntax mysql dibawah ini.

root@bajoel:~#mysql -u mailadmin -ppassword:mysql>INSERT INTO domains(domain) VALUES ('ncc.its-sby.edu');mysql>INSERT INTO users(email,password) VALUES ('[email protected]

Page 7: Membangun Mail Server Menggunakan Postfix

sby.edu','joep');mysql>INSERT INTO users(email,password) VALUES ('[email protected]','fahim');mysql>INSERT INTO forwarding(source,destination) VALUES ('[email protected]','[email protected]');

Sekarang kita sudah punya sebuah virtual domain baru dg nama “ncc.its-sby.edu” dan 2 orang user, yaitu “[email protected]” dan “[email protected]” yang masing-masing user ini mempunyai password “joep” dan “fahim”. Ada juga 1 forwarding, yaitu “[email protected]” yang akan di forward ke “[email protected]”.

sekarang buka we browser. Kemudian ketik alamat http://mail.ncc.its-sby.edu

Maka akan tampil form login dari squirrelmail.

Login dengan username dan password yang sudah didaftarkan dala database tadi.Kemudian cobalah untk mengirim email ke user lain.

Terimakasih buat http://lqman.wordpress.com atas referensinya.