Pasang Mail Server Bahagian 1 – Postfix, Courier, MySQL & AfterLogic WebMail

Artikel ini akan membantu anda untuk pasang mail server sendiri pada sistem pengoperasian Linux dengan ciri-ciri berikut:

  • Pasang mail server untuk terima dan hantar mail dengan perkhidmatan asas seperti POP3, IMAP, SMTP;
  • Pasang mail server dengan virtual users dan domain (akaun pengguna dan domain disimpan di dalam pangkalan data MySQL. Anda juga boleh memasang email untuk pelbagai domain dalam satu server);
  • Ciri-ciri keselamatan seperti SSL/TLS, anti spam dan anti virus; dan
  • Capai mail melalui mail client seperti Mozilla Thunderbird, Gmail atau WebMail anda sendiri.

Artikel ini adalah berdasarkan terjemahan dari artikel asal yang diubah serba sedikit mengikut selera penulis:

https://www.howtoforge.com/virtual-users-and-domains-with-postfix-courier-mysql-and-squirrelmail-ubuntu-14.04-lts

Apa yang anda perlukan?

  • Server sendiri yang mempunyai public IP address (i.e., saya menggunakan Virtual Private Server (VPS));
  • Sistem pengoperasian Ubuntu 14.04 atau lebih terkini; dan
  • Mempunyai domain (DNS) sendiri (boleh register dengan MyNIC atau GoDaddy etc.) dan telah menghalakan MX record kepada alamat IP mail server.

Contoh pemasangan dalam artikel ini adalah terhadap nama domain: “datalead . com . my“, gantikan nama domain ini dengan nama domain server anda yang berkenaan.  Alamat email server yang digunakan adalah ” mail . datalead . com . my” dan alamat email akan menggunakan ” @ datalead. com . my“.

 

Artikel ini menggunakan format seperti berikut, arahan sistem pengoperasian Linux atau MySQL.  Anda boleh copy+paste pasa sistem pengoperasian anda:

arahan

Output arahan:

output

Input atau sebarang direktif yang anda perlu masukkan atau tukar akan diwarnakan dengan warna “merah“.

1. Persediaan Pasang Mail Server

Pastikan anda mempunyai saiz storan yang mencukupi bagi direktori “/home“.  Semua mailbox dan mail pengguna akan disimpan di sini!

Anda perlu menggunakan akaun yang mempunyai “rootprivilege untuk pasang mail server ini.  Gunakan arahan “sudo“:

sudo su

Tukar konfigurasi untuk menggunakan bash shell bagi mengantikan shell yang asal:

dpkg-reconfigure dash

Masukkan “No“:

Use dash as the default system shell (/bin/sh)?  No

Matikan fungsi “apparmour” untuk mengelakkan sebarang kesulitan semasa pemasangan:

service apparmor stop 
update-rc.d -f apparmor remove 
apt-get remove apparmor apparmor-utils

2. Pasang pakej dan konfigurasi Postfix, Courier, Saslauthd dan MySQL

Pasang pakej perisian dengan arahan:

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass

Semasa pemasangan, anda perlu memasukkan input seperti berikut:

New password for the MySQL "root" user: password_root_mysql_anda
Repeat password for the MySQL "root" user: password_root_mysql_anda
Create directories for web-based administration? No
General type of mail configuration: <-- pilih Internet Site
System mail name: mail.datalead.com.my
SSL certificate required: Ok
Web server to reconfigure automatically: apache2

Nota: tukar password_root_mysql_anda dan nama mail server mail.datalead.com.my kepada yang sepatutnya!

3. Pasang patch Postfix untuk fungsi Kuota pengguna

Edit source repositories anda untuk pasang mail server:

vi /etc/apt/sources.list

Masukkan maklumat berikut:

deb http://archive.ubuntu.com/ubuntu trusty main restricted universe
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe
deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu trusty partner


deb-src http://archive.ubuntu.com/ubuntu trusty main restricted universe
deb-src http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe
deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb-src http://archive.canonical.com/ubuntu trusty partner

Kemaskini source repositories anda dengan arahan:

apt-get update
apt-get build-dep postfix

Jalankan arahan untuk mula memasang patch:

cd /usr/src
apt-get source postfix

Pastikan versi Postfix anda seperti berikut:

postconf -d | grep mail_version

Output:

mail_version = 2.11.0
milter_macro_v = $mail_name $mail_version

Muat turun dan pasang patch:

wget http://vda.sourceforge.net/VDA/postfix-vda-v13-2.10.0.patch
cd postfix-2.11.0
patch -p1 < ../postfix-vda-v13-2.10.0.patch

Edit fail debian/rules dan ubah direktif DEB_BUILD_HARDENING daripada 1 kepada 0:

[...]
export DEB_BUILD_HARDENING=0
[...]

Compile dan bina pakej debian (“*.deb”):

Lihat pakej debian yang telah dibina:

dpkg-buildpackage

Anda akan dapat lihat pakej postfix untuk pasang mail server dibina seperti berikut:

cd ..
ls -l

Output:

total 6824
drwxr-xr-x 18 root root    4096 Apr 30 04:28 postfix-2.11.0
-rw-r--r--  1 root root   46756 Apr 30 04:28 postfix-cdb_2.11.0-1_amd64.deb
-rw-r--r--  1 root root  142842 Apr 30 04:28 postfix-dev_2.11.0-1_all.deb
-rw-r--r--  1 root root  851842 Apr 30 04:28 postfix-doc_2.11.0-1_all.deb
-rw-r--r--  1 root root   53898 Apr 30 04:28 postfix-ldap_2.11.0-1_amd64.deb
-rw-r--r--  1 root root   48500 Apr 30 04:28 postfix-mysql_2.11.0-1_amd64.deb
-rw-r--r--  1 root root   48610 Apr 30 04:28 postfix-pcre_2.11.0-1_amd64.deb
-rw-r--r--  1 root root   48324 Apr 30 04:28 postfix-pgsql_2.11.0-1_amd64.deb
-rw-r--r--  1 root root   55701 Jun  7  2013 postfix-vda-v13-2.10.0.patch
-rw-r--r--  1 root root  267855 Apr 30 04:27 postfix_2.11.0-1.diff.gz
-rw-r--r--  1 root root    1522 Apr 30 04:27 postfix_2.11.0-1.dsc
-rw-r--r--  1 root root    3885 Apr 30 04:28 postfix_2.11.0-1_amd64.changes
-rw-r--r--  1 root root 1329238 Apr 30 04:28 postfix_2.11.0-1_amd64.deb
-rw-r--r--  1 root root 4034741 Feb 12 01:38 postfix_2.11.0.orig.tar.gz

Dalam kes sistem pengoperasian yang saya gunakan, ianya adalah seperti berikut:

drwxr-xr-x 18 root root 4096 Mar 20 10:17 postfix-2.11.0
-rw-r--r-- 1 root root 46824 Mar 20 10:17 postfix-cdb_2.11.0-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root 142754 Mar 20 10:17 postfix-dev_2.11.0-1ubuntu1_all.deb
-rw-r--r-- 1 root root 852186 Mar 20 10:17 postfix-doc_2.11.0-1ubuntu1_all.deb
-rw-r--r-- 1 root root 53922 Mar 20 10:17 postfix-ldap_2.11.0-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root 48568 Mar 20 10:17 postfix-mysql_2.11.0-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root 48662 Mar 20 10:17 postfix-pcre_2.11.0-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root 48396 Mar 20 10:17 postfix-pgsql_2.11.0-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root 55701 Jun 7 2013 postfix-vda-v13-2.10.0.patch
-rw-r--r-- 1 root root 263550 Mar 20 10:16 postfix_2.11.0-1ubuntu1.diff.gz
-rw-r--r-- 1 root root 1550 Mar 20 10:16 postfix_2.11.0-1ubuntu1.dsc
-rw-r--r-- 1 root root 3752 Mar 20 10:17 postfix_2.11.0-1ubuntu1_amd64.changes
-rw-r--r-- 1 root root 1327564 Mar 20 10:17 postfix_2.11.0-1ubuntu1_amd64.deb
-rw-r--r-- 1 root root 4034741 Feb 12 2014 postfix_2.11.0.orig.tar.gz

Pasang pakej Postfix anda yang baru (postfix dan postfix-mysql):

 dpkg -i postfix_2.11.0-1ubuntu1_amd64.deb postfix-mysql_2.11.0-1ubuntu1_amd64.deb

4. Bina pangkalan data untuk mail server

Bina pangkalan data “mail_db”:

mysqladmin -u root -p create mail_db

Anda akan diminta untuk memasukkan password “root”:

Enter Password: password_root_mysql_anda

Jalankan sambungan ke MySQL & masukkan kata laluan sama seperti sebelum ini:

mysql -u root -p

 

Bina akaun pengguna untuk pangkalan data ini. Pastikan anda tidak menggunakan password yang sama dengan ‘password_root_mysql_anda’:

mysql> create user 'mail'@'localhost' identified by 'password_mail_anda';

Berikan privilege untuk capai pangkalan data:

mysql> grant all on mail_db.* to 'mail'@'localhost';

Flush privilege:

mysql> flush privileges;

Pilih pangkalan data yang baru kita bina:

mysql> use mail_db;

Bina table bagi pangkalan data.

Table: domains untuk simpan rekod domain yang hendak digunakan seperti “datalead.com.my” atau “example.com”

mysql> CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain) )
ENGINE=MyISAM;

Table: forwardings untuk simpan maklumat email yang hendak kita forward seperti “sales@datalead.com.my” ke “ali@datalead.com.my”

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

Table: users untuk simpan maklumat akaun pengguna iaitu “user@datalead.com.my”, kata laluan dan kuota

mysql> CREATE TABLE users (
email varchar(80) NOT NULL,
password varchar(20) NOT NULL,
quota INT(10) DEFAULT '10485760',
PRIMARY KEY (email)
) ENGINE=MyISAM;

Table: transport, optional untuk forward ke mail server lain.  Tidak digunakan dalam artikel ini.

mysql> CREATE TABLE transport (
domain varchar(128) NOT NULL default '',
transport varchar(128) NOT NULL default '',
UNIQUE KEY domain (domain)
) ENGINE=MyISAM;

Keluar dari pangkalan data MySQL:

mysql> quit;

Sekian untuk bahagian pertama untuk pasang mail server.  Nantikan bahagian ke dua (2) pada artikel berikutnya. Selamat mencuba!

____________________________________________________

BAHAGIAN 1 | BAHAGIAN 2 | BAHAGIAN 3 | BAHAGIAN 4 | BAHAGIAN 5 | BAHAGIAN 6