Recent twitter entries...


»»

English French German Spain Italian Russian Portuguese Japanese Korean Chinese Simplified






-

Membangun Mail Server Menggunakan Postfix+Squaremail

Belajar, belajar dan belajaaarrr !!! , yuk sekarang kita coba bikin Mail Server dengan menggunakan Postfix dan Squaremail . Ga perlu banyak cingcong dah langsung aja ikuti langkah-langkah di bawah ini ..

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@justikmal:~#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@justikmal:~#mysql -u root -p

#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 dibutuhkan
mysql>CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain) )
TYPE=MyISAM;

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 = mailadmin
password = mailadmin
dbname = mail
table = domains
select_field = ‘virtual’
where_field = domain
hosts = 127.0.0.1

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

user = mailadmin
password = mailadmin
dbname = mail
table = forwardings
select_field = destination
where_field = source
hosts = 127.0.0.1

isi file mysql_mailboxes.cf dg baris-baris dibawah ini:
vim /etc/postfix/mysql-virtual_mailboxes.cf
user = mailadmin
password = mailadmin
dbname = mail
table = users
select_field = CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/')
where_field = email
hosts = 127.0.0.1

Langkah4 : pastikan hanya user root & postfix saja yang bisa mengakses file-file tadi
root@justikmal:~#chown root:postfix /etc/postfix/mysql_*.cf
root@justikmal:~#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@justikmal:~#groupadd -g 500 mail-admin
root@justikmal:~#useradd -g mail-admin -u 500 mail-admin -d /home/mail -m
root@justikmal:~#mkdir /home/mail
root@justikmal:~#chown -R mail-admin:mail-admin /home/mail
root@justikmal:~#chmod -R u=rwx,g=,o= /home/mail

Langkah6 : Konfigurasi postfix

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

myhostname = justikmal.server.com
#mydomain = server.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = server.com
mydestination = #kosongi saja
relayhost = #kosongi saja
mynetworks = server.com #domain network anda
mailbox_size_limit = 51200000 #Ukuran mailbox 50MB
recipient_delimiter = +
inet_interfaces = all

virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_forwardings.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/mail
virtual_uid_maps = static:500
virtual_gid_maps = static:500

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
Kemudian restart postfix

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

Test postfix menggunakan telnet

root@justikmal:~# telnet 127.0.0.1 25
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’.
220 justikmal.server.com 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.conf
root@justikmal:~#vim /etc/postfix/sasl/smtpd.conf
Isi file /etc/postfix/sasl/smtpd.conf seperti berikut:

pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: plain login cram-md5 digest-md5
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: mailadmin
sql_passwd: mailadmin
sql_database: mail
sql_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@justikmal:~#chown root:postfix /etc/postfix/sasl/smtpd.conf
root@justikmal:~#chmod u=rw,g=r,o= /etc/postfix/sasl/smtpd.conf

Mengaktifkan TLS untuk meng-encrypt SMTP traffik, dg cara membuat sertifikat
root@justikmal:~#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@justikmal:~#chown root:postfix /etc/postfix/smtpd.*
root@justikmal:~#chmod u=rw,g=r,o= /etc/postfix/smtpd.*

Langkah 8 : Mengkonfigurasi courier sebagai server POP3 / IMAP

Edit file /etc/courier/authdaemonrc,

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

ubah parameter authmodulelist menjadi :
authmodulelist=”authmysql”
Lalu edit file /etc/courier/authmysqlrc,
root@justikmal:~#vim /etc/courier/authmysqlrc
Ubah beberapa parameter, shg menjadi seperti di bawah ini :
MYSQL_SERVER localhost
MYSQL_USERNAME mailadmin
MYSQL_PASSWORD mailadmin
MYSQL_PORT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
#MYSQL_CRYPT_PWFIELD (di comment)
MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 500
MYSQL_GID_FIELD 500
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD “/home/mail”
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/')
#MYSQL_NAME_FIELD (di comment)

Langkah 9 : Testing POP3 dan IMAP

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

kemudian telnet ke port 110 (POP3)

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

telnet ke port 143

root@justikmal:~# telnet 127.0.0.1 143
Trying 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.

Langkah 10 : Konfigurasi squirrelmail

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

root@justikmal:~#squirrelmail-configure

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) : false
Server software : courier

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

langkah 11 : Menjadikan squirrelmail sebagai virtual host di Apache2

Buat file virtual host baru di apache2

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

Kemudian isi seperti berikut ini:


ServerName mail.server.com
ServerAlias server.com
DocumentRoot /usr/share/squirrelmail
#CustomLog logs/www.example.com-access_log common


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

root@justikmal:~# a2ensite squirrelmail

Restart apache

/etc/init.d/apache2 reload

Kemudian kita lakukan penambahan host pada DNS

@ IN MX 5 mail
mail IN A 10.151.36.9

Berikutnya yang perlu kita lakukan adalah membuat database untuk user dan domain nya

Sekarang kita akan membuat database pada domain yang akan kita coba, domain inilah yang akan ktia jadikan sebagai domain percobaan untuk mengirim dan menerima email.
Buatlah domain baru dengan nama “server.com” pada tabel domains, dan buat juga alamat email dan pssword baru pada tabel users.
Untuk lebih jelasnya, coba ssaja syntax mysql berikut ini.

root@justikmal:~#mysql -u mailadmin -p
password:
mysql>INSERT INTO domains(domain) VALUES ('server.com');
mysql>INSERT INTO users(email,password) VALUES ('ikmal@server.com','ikmal');
mysql>INSERT INTO users(email,password) VALUES ('ilyas@server.com','ilyas');
mysql>INSERT INTO forwarding(source,destination) VALUES ('mailadmin@server.com','ikmal@server.com');

Terakhir, kita lakukan Testing mail server


Sekarang kita sudah punya sebuah virtual domain baru dg nama “server.com” dan 2 orang user, yaitu “ikmal@server.com” dan “ilyas@server.com” yang masing-masing user ini mempunyai password “ikmal” dan “ilyas”. Ada juga 1 forwarding, yaitu “mailadmin@server.com” yang akan di forward ke “ikmal@server.com”.

sekarang buka we browser. Kemudian ketik alamat http://mail.server.com

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.

Comments (0)

Post a Comment

ADVERTISE SPACE AVAILABLE HERE
justikmal@gmail.com | www.justikmal.tk