Assalamualaikum...
semoga tutor kali ini bermanfaat bagi kita semua...
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.
- Code:
-
[You must be registered and logged in to see this link.]:~#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
- Code:
-
mysql>CREATE DATABASE mail;
mysql>CREATE USER ‘black.exe’@'localhost’ identified by ‘mailadmin’;
mysql>USE mail;
#membuat tabel-tabel yan dibutuhkan
- Code:
-
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:
- Code:
-
vim /etc/postfix/mysql_domains.cf
user = black.exe
password = black.exe
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:
- Code:
-
vim /etc/postfix/mysql_forwardings.cf
user = black.exe
password = black.exe
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:
- Code:
-
vim /etc/postfix/mysql-virtual_mailboxes.cf
user = black.exe
password = black.exe
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
- Code:
-
[You must be registered and logged in to see this link.]:~#chown root:postfix /etc/postfix/mysql_*.cf
[You must be registered and logged in to see this link.]:~#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
- Code:
-
Langkah6 : Konfigurasi postfix
Edit file /etc/postfix/main.cf seperti berikut:
- Code:
-
myhostname = black.exe.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
[You must be registered and logged in to see this link.]:~# /etc/init.d/postfix restart
Test postfix menggunakan telnet
[You must be registered and logged in to see this link.]:~# 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
[You must be registered and logged in to see this link.]:~#vim /etc/postfix/sasl/smtpd.conf
Isi file /etc/postfix/sasl/smtpd.conf seperti berikut:
- Code:
-
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.
- Code:
-
[You must be registered and logged in to see this link.]:~#chown root:postfix /etc/postfix/sasl/smtpd.conf
[You must be registered and logged in to see this link.]:~#chmod u=rw,g=r,o= /etc/postfix/sasl/smtpd.conf
Mengaktifkan TLS untuk meng-encrypt SMTP traffik, dg cara membuat sertifikat
- Code:
-
[You must be registered and logged in to see this link.]:~#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.
- Code:
-
[You must be registered and logged in to see this link.]:~#chown root:postfix /etc/postfix/smtpd.*
[You must be registered and logged in to see this link.]:~#chmod u=rw,g=r,o= /etc/postfix/smtpd.*
Langkah 8 : Mengkonfigurasi courier sebagai server POP3 / IMAP
Edit file /etc/courier/authdaemonrc,
[You must be registered and logged in to see this link.]:~#vim /etc/courier/authdaemonrc
ubah parameter authmodulelist menjadi :
- Code:
-
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)
- Code:
-
[You must be registered and logged in to see this link.]:~#telnet 127.0.0.1 110
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
+OK Hello there.
telnet ke port 143
[You must be registered and logged in to see this link.]:~# 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.
[You must be registered and logged in to see this link.]:~#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
[You must be registered and logged in to see this link.]:~# 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.
[You must be registered and logged in to see this link.]:~# 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.
- Code:
-
[You must be registered and logged in to see this link.]:~#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
[You must be registered and logged in to see this link.]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.