Follow Me On Facebook

Home » » Tutorial IT

Tutorial IT

Tutorial ini menjelaskan Step by Step tentang cara membuat mailserver dg virtual domain (domain email tidak harus selalu sama dg domain komputer yang sesungguhnya) denganberbasiskan postfix dan courier dg memanfaatkan mysql sebagai penyimpan data username & password bagi tiap2 user. Berikut ini yang harus anda lakukan. ( INTERNET )—————-| DMZ |—————-( Local Area Networks ) Step 1: Install paket-paket yang diperlukan Paket yang diperlukan dalam tutorial ini antara lain : Untuk Mengirim email (SMTP) : postfix (Pilih: “Local only”), postfix-tls, postfix-mysql, postfix-doc Untuk Database user : mysql-client-5.0, mysql-server-5.0 Untuk menerima email (POP3 & IMAP) : courier-base (Pilih: “No”), courier-authdaemon, courier-authlib-mysql, courier-pop, courier-pop-ssl, courier-imap, courier-imap-ssl Untuk Keamanan Pengiriman dan Penerimaan email : libsasl2, libsasl2-modules, libsasl2-modules-sql, openssl Untuk Mencegah Virus dan Spam : amavisd-new, spamassassin, clamav, clamav-daemon, zoo, unzip, lha Untuk tampilan WebMail : squirrelmail, phpmyadmin Untuk testing tools : telnet root@bajoel:~#apt-get install postfix postfix-tls postfix-mysql postfix-doc mysql-client-5.0 mysql-server-5.0 courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2 libsasl2-modules libsasl2-modules-sql openssl amavisd-new spamassassin clamav clamav-daemon zoo unzip lha squirrelmail phpmyadmin telnet Step 2: Membuat user, database, dan tabel yang diperlukan pada mysql Tambahkan database dan tabel-tabel baru pada mysql anda sebagai berikut root@bajoel:~#mysql -u root -p password: mysql>CREATE DATABASE mail; mysql>CREATE USER ‘mailadmin’@'localhost’ identified by ‘passwordanda’; mysql>USE mail; 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’; Step 3: Membuat file2 baru sebagai penunjuk ke database mysql Buat file baru dg nama mysql-virtual_domains.cf root@bajoel:~#touch /etc/postfix/mysql-virtual_domains.cf isi file mysql-virtual_domains.cf dg baris-baris dibawah ini: root@bajoel:~#mcedit /etc/postfix/mysql-virtual_domains.cf user = mailadmin password = passwordanda dbname = mail table = domains select_field = ‘virtual’ where_field = domain hosts = 127.0.0.1 Buat file baru dg nama mysql-virtual_forwardings.cf yg berisi : root@bajoel:~#touch /etc/postfix/mysql-virtual_forwardings.cf isi file mysql-virtual_forwardings.cf dg baris-baris dibawah ini: root@bajoel:~#mcedit /etc/postfix/mysql-virtual_forwardings.cf user = mailadmin password = passwordanda dbname = mail table = forwardings select_field = destination where_field = source hosts = 127.0.0.1 Buat file baru dg nama user mysql-virtual_mailboxes.cf yg berisi : root@bajoel:~#touch /etc/postfix/mysql-virtual_mailboxes.cf isi file mysql-virtual_mailboxes.cf dg baris-baris dibawah ini: root@bajoel:~#mcedit /etc/postfix/mysql-virtual_mailboxes.cf user = mailadmin password = passwordanda dbname = mail table = users select_field = CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/') where_field = email hosts = 127.0.0.1 Buat file baru mysql-virtual_email2email.cf yang berisi : root@bajoel:~#touch /etc/postfix/mysql-virtual_email2email.cf isi file mysql-virtual_email2email.cf dg baris-baris dibawah ini: root@bajoel:~#mcedit /etc/postfix/mysql-virtual_email2email.cf user = mailadmin password = passwordanda dbname = mail table = users select_field = email where_field = email hosts = 127.0.0.1 [Penting] Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat. root@bajoel:~#chown root:postfix /etc/postfix/mysql-virtual_*.cf root@bajoel:~#chmod u=rw,g=r,o= /etc/postfix/mysql-virtual_*.cf Step 4: Membuat user baru pada system kita sebagai administrator-email User ini bertugas untuk membuat maildir baru setiap ada user baru yang mendaftar pada mailserver anda root@bajoel:~#groupadd -g 5000 mail-admin root@bajoel:~#useradd -g mail-admin -u 5000 mail-admin -d /home/mail -m root@bajoel:~#mkdir /home/mail root@bajoel:~#chown -R mail-admin:mail-admin /home/mail root@bajoel:~#chmod -R u=rwx,g=,o= /home/mail Step 5: Mengkonfigurasi postfix sbg server SMTP File main.cf ini adalah file konfigurasi utama dari postfix root@bajoel:~#mcedit /etc/postfix/main.cf Editlah file tsb, sehingga menjadi seperti dibawah ini: inet_interfaces = all myhostname = mail.domain-anda.org (fqdn) mydestination = (jangan menuliskan virtual domain disini -> lebih baik dikosongi saja) mynetworks = lqman.org (nama domain anda) virtual_alias_domains = virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_forwardings.cf mysql:/etc/postfix/mysql-virtual_email2email.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf virtual_mailbox_base = /home/mail virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 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 Testing… Restart service postfix, dan cobalah untuk mengakses port 25 dengan telnet root@bajoel:~#/etc/init.d/postfix restart root@bajoel:~#postfix check Jika tidak muncul suatu pesan kesalahan, berarti anda sukses……. root@bajoel:~#telnet localhost 25 Trying 127.0.0.1… Connected to localhost.localdomain. Escape character is ‘^]’. 220 mail.lqman.org ESMTP Postfix (Debian/GNU) Jika muncul sebagaimana tulisan diatas, berarti postfix anda sudah berjalan lancar……. Tekanlah tombol Ctrl+] lalu ketik quit untuk keluar dari sesi telnet, Ambilah napas dalam-dalam, dan lanjutkan perjuangan ;) Step 6: Mengaktifkan fasilitas authentikasi pada postfix (Auth-SMTP) Tell Postfix to use SASL/MySQL, dg cara buat file baru dg nama /etc/postfix/sasl/smtpd.conf root@bajoel:~#touch /etc/postfix/sasl/smtpd.conf Isi file /etc/postfix/sasl/smtpd.conf dg baris-baris dibawah ini: root@bajoel:~#mcedit /etc/postfix/sasl/smtpd.conf 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: passwordanda sql_database: mail sql_select: select password from users where email=’%u@%r’ log_level: 7 [Penting] Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat. root@bajoel:~#chown root:postfix /etc/postfix/sasl/smtpd.conf root@bajoel:~#chmod u=rw,g=r,o= /etc/postfix/sasl/smtpd.conf Mengaktifkan TLS untuk meng-encrypt SMTP traffik, dg cara membuat sertifikat (certificate) root@bajoel:~#openssl req -new -outform PEM -out /etc/postfix/smtpd.cert -newkey rsa:2048 -nodes -keyout /etc/postfix/smtpd.key -keyform PEM -days 365 -x509 [Penting] Demi keamanan, pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah anda buat. root@bajoel:~#chown root:postfix /etc/postfix/smtpd.* root@bajoel:~#chmod u=rw,g=r,o= /etc/postfix/smtpd.* Step 7: Mengkonfigurasi courier sebagai server POP3 / IMAP Edit file /etc/courier/authdaemonrc, root@bajoel:~#mcedit /etc/courier/authdaemonrc ubah parameter authmodulelist menjadi : authmodulelist=”authmysql” Lalu edit file /etc/courier/authmysqlrc, root@bajoel:~#mcedit /etc/courier/authmysqlrc Ubah beberapa parameter, shg menjadi seperti di bawah ini : MYSQL_SERVER localhost MYSQL_USERNAME mailadmin MYSQL_PASSWORD passwordanda MYSQL_PORT 0 MYSQL_DATABASE mail MYSQL_USER_TABLE users #MYSQL_CRYPT_PWFIELD (jadikan baris ini sebagai komentar) MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD 5000 MYSQL_GID_FIELD 5000 MYSQL_LOGIN_FIELD email MYSQL_HOME_FIELD “/home/mail” MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,’@',-1),’/',SUBSTRING_INDEX(email,’@',1),’/') #MYSQL_NAME_FIELD (jadikan baris ini sebagai komentar) [Penting] Mengedit file authmysqlrc agak sedikit susah, pastikan anda berhati-hati dan tidak membuat kesalahan (jangan memakai tanda SPASI, tetapi gunakan tombol TAB) Testing… Restart service courier-authdaemon, dan cobalah untuk mengakses port 110 dengan telnet root@bajoel:~#/etc/init.d/courier-authdaemon restart Jika tidak muncul suatu pesan kesalahan, berarti anda sukses……. root@bajoel:~#telnet localhost 110 Trying 127.0.0.1… Connected to localhost. Escape character is ‘^]’. +OK Hello there.

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.
Chrome Pointer
 
Support : Your Link | Your Link | Your Link
Copyright © 2013. Pati Cyber Agency - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger