Hướng dẫn cài đặt postfix, dovecot và squirrelmail trên centos(web mail)

Chuẩn bị 

1 vps thông số

DOMAiN=maxserver.net

IP=107.189.160.7

GATEWAY=107.189.160.1

NETMASK=255.255.255.192

Cài đặt thêm kho epel. Tham khảo link Click here

Cài đặt LAMP. Tham khảo link Click here Click here

Tắt tạm iptables 

# service iptables stop

Tắt selinux ,sửa file selinux

# nano /etc/sysconfig/selinux 

Sửa SELINUX=disabled

# reboot để khởi động lại máy

Cấu hình mạng

# nano /etc/sysconfig/network-scripts/ifcfg-eth0

# Generated by SolusVM
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=107.189.160.7
GATEWAY=107.189.160.1
NETMASK=255.255.255.192
DNS1=107.189.160.7
DNS2=107.189.160.1
DNS3=8.8.8.8

# service network restart

# chkconfig network on

Cấu hình file /etc/hosts, /etc/resolv.conf và hostname sửa nội dung như sau

# nano /etc/hosts

# Generated by SolusVM
127.0.0.1       localhost
107.189.160.7   mail.maxserver.net mail

 

# nano /etc/resolv.conf

# Generated by SolusVM
search maxserver.net
nameserver 107.189.160.7
nameserver 107.189.160.1
nameserver 8.8.8.8

 

Đổi tên hostname trong  /etc/sysconfig/network

# nano /etc/sysconfig/network

# Generated by SolusVM
NETWORKING=yes
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no
HOSTNAME=mail.maxserver.net

Khởi động lại server

# reboot

Cấu hình DNS Server

Cài đặt các gọi cần thiết

# yum -y install perl perl-core wget screenw3m elinks openssh-clients openssh-server bind bind-utils unzip nmap sednc sysstat libaio rsync telnet aspell

Chỉnh sửa file named.conf

# nano /etc/named.conf

Thêm chữ ’any’

options {
        listen-on port 53 { 127.0.0.1;any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost;any; };
        recursion yes;

 

Tạo đoạn ở dưới cùng của file named.conf như sau

zone "maxserver.net" IN {
type master;
file "db.maxserver.net";
allow-update { none; };
};

 

Tạo 1 thư mục và thêm quyền sử dụng nhóm

# touch /var/named/db.maxserver.net
# chgrp named /var/named/db.maxserver.net
# nano /var/named/db.maxserver.net

Tạo nội dung như sau

$TTL 1D
@       IN SOA  ns1.maxserver.netroot.maxserver.net. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      ns1.maxserver.net.
@       IN      MX      0 mail.maxserver.net.
ns1     IN      A       107.189.160.7
mail    IN      A       107.189.160.7

 

Khởi động lại dịch vụ & Kiểm tra cấu hình kết quả của DNS Server

# service named restart
# chkconfig named on

Dùng lệnh nslookup và dig để kiểm tra

# nslookup mail.maxserver.net

Server:         107.189.160.7
Address:        107.189.160.7#53

Name:   mail.maxserver.net
Address: 107.189.160.7

 

# dig maxserver.net mx

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.6 <<>> maxserver.net mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29090
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;maxserver.net.             IN      MX

;; ANSWER SECTION:
maxserver.net.      86400   IN      MX      0 mail.maxserver.net.

;; AUTHORITY SECTION:
maxserver.net.      86400   IN      NS      ns1.maxserver.net.

;; ADDITIONAL SECTION:
mail.maxserver.net. 86400   IN      A       107.189.160.7
ns1.maxserver.net.  86400   IN      A       107.189.160.7

;; Query time: 0 msec
;; SERVER: 107.189.160.7#53(107.189.160.7)
;; WHEN: Tue Mar 15 23:16:50 2016
;; MSG SIZE  rcvd: 106

Tiến hành

1.Cài đăt postfix

Thường postfix đã đc cài dặt sẵn, nếu chưa có ta dùng lệnh 

# yum install postfix -y

# nano /etc/postfix/main.cf

Ấn ctrl+w để tìm chữ

Tìm chữ ’myhostname’ và thêm dòng sau

#myhostname = host.domain.tld
#myhostname = virtual.domain.tld

myhostname = mail.maxserver.net

Tìm chữ ’mydomain’ và thêm dòng sau

#mydomain = domain.tld
mydomain = maxserver.net
 

Tìm chữ ’myoirgin’ và bỏ dấu ’#’ ở dòng sau

#myorigin = $myhostname
myorigin = $mydomain
 

Tìm chữ ’inet_interfaces’ và sửa các dòng như sau

inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost

# Enable IPv4, and IPv6 if supported
inet_protocols = all

Tìm chữ ’mydestination’ thêm dấu ’#’ và bỏ dấu ’#’ như sau

#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain

Tìm chữ ’mynetworks’ bỏ dấu’#’ và sửa ip

mynetworks = 107.189.160.7, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table

Tìm chữ ’home_mailbox’ bỏ dấu ’#’ 

#home_mailbox = Mailbox
home_mailbox = Maildir/

Khởi động lại postfix và cho chạy cùng hệ thống

# service postfix restart
# chkconfig postfix on


Kiểm tra postfix

Tạo user và đặt mật khẩu cho user đó 

# useradd maxserver
# passwd maxserver

Dùng lệnh telnet để kiểm tra kết nối
# telnet localhost smtp


[root@mail ~]# telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is ’^]’.
220 mail.maxserver.net ESMTP Postfix

ehlo localhost            (gõ lệnh này)
250-mail.maxserver.net.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

mail from:<maxserver>                ( Địa chỉ email người gửi)
250 2.1.0 Ok
rcpt to:<maxserver>                    (Địa chỉ email người nhận)
250 2.1.5 Ok
data                                                (Bắt đầu vào nội dung tin nhắn email)
354 End data with <CR><LF>.<CR><LF>
test thanh cong                                 (Nội dung tin nhắn email)
.                                                          (Nội dung tin nhắn email kết thúc bằng dấu ’.’ )
250 2.0.0 Ok: queued as EB82554E2
quit                                                (lệnh thoát)
221 2.0.0 Bye
Connection closed by foreign host.

Bây giờ điều hướng đến user "maxserver" thư mục mail và kiểm tra thư mới:

# ls /home/maxserver/Maildir/new/

root@mail ~]# ls /home/maxserver/Maildir/new/
1459484457.Vfc01I209f3M150354.mail.maxserver.net.net

Một thư mới cho user "maxserver". Để đọc mail, nhập vào lệnh sau đây:

# cat /home/maxserver/Maildir/new/1459484457.Vfc01I209f3M150354.mail.maxserver.net.net

[root@mail ~]# cat /home/maxserver/Maildir/new/1459484457.Vfc01I209f3M150354.mail.maxserver.net.net
Return-Path: <maxserver@maxserver.net.net>
X-Original-To: maxserver
Delivered-To: maxserver@maxserver.net.net
Received: from localhost (localhost [127.0.0.1])
        by mail.maxserver.net.net (Postfix) with ESMTP id EB82554E2
        for <maxserver>; Fri,  1 Apr 2016 00:19:24 -0400 (EDT)
Message-Id: <20160401041938.EB82554E2@mail.maxserver.net.net>
Date: Fri,  1 Apr 2016 00:19:24 -0400 (EDT)
From: maxserver@maxserver.net.net
To: undisclosed-recipients:;

test thanh cong

 

2.Cài đặt dovecot

Dovecot là một mã nguồn mở IMAP và POP3 mail server cho các hệ thống Unix / Linux. Để cài đặt:

# yum install dovecot -y

Chỉnh sửa cấu hình dovecot

# nano /etc/dovecot/dovecot.conf

Tìm chữ ’Protocols’ và bỏ dấu ’#’ ở dòng sau

# Protocols we want to be serving.
protocols = imap pop3 lmtp

# nano /etc/dovecot/conf.d/10-mail.conf

Tìm chữ ’mail_location’ và bỏ dấu ’#’ ở dòng sau

# See doc/wiki/Variables.txt for full list. Some examples:
#
   mail_location = maildir:~/Maildir

#   mail_location = mbox:~/mail:INBOX=/var/mail/%u
#   mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n


 # nano /etc/dovecot/conf.d/10-auth.conf

Tìm chữ ’disable_plaintext_auth’ và bỏ dấu ’#’

# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you’re connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.

disable_plaintext_auth = yes

Tìm chữ ’auth_mechanisms’ thêm chữ ’login’ vào dòng đó

# Space separated list of wanted authentication mechanisms:
#   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
#   gss-spnego
# NOTE: See also disable_plaintext_auth setting.

auth_mechanisms = plain login
 

# nano /etc/dovecot/conf.d/10-master.conf

Tìm chữ ’mode = 0600’ bỏ dấu ’#’ và thêm user = postfix , group = postfix

unix_listener auth-userdb {
    #mode = 0600

    user = postfix
    group = postfix

  }

Khởi động dovecot và cho chạy cùng hệ thống

# service dovecot start
# chkconfig dovecot on

Kiểm tra dovecot

# telnet localhost pop3
 

[root@mail ~]# telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.
Escape character is ’^]’.
+OK Dovecot ready.

user maxserver                     (đăng nhập user maxserver)
+OK
pass matkhau                         (mật khẩu của usre maxserver là matkhau)
+OK Logged in.
retr 1
+OK 475 octets
Return-Path: <maxserver@maxserver.net>
X-Original-To: maxserver
Delivered-To: maxserver@maxserver.net
Received: from localhost (localhost [127.0.0.1])
        by mail.maxserver.net (Postfix) with ESMTP id EB82554E2
        for <maxserver>; Fri,  1 Apr 2016 00:19:24 -0400 (EDT)
Message-Id: <20160401041938.EB82554E2@mail.maxserver.net>
Date: Fri,  1 Apr 2016 00:19:24 -0400 (EDT)
From: maxserver@maxserver.net
To: undisclosed-recipients:;

test thanh cong
.
quit
+OK Logging out.

Connection closed by foreign host.
 

3.Cài đặt squirrelmail

Cài đặt SquirreMail sử dụng lệnh sau đây:

# yum install squirrelmail -y

Điều hướng đến thư mục / usr / share / SquirreMail / config / và chạy lệnh conf.pl lệnh:

# cd /usr/share/squirrelmail/config/
# ./conf.pl

Trình hướng dẫn sau đây sẽ mở ra. Nhập lựa chọn "1" để thiết lập chi tiết tổ chức của bạn:

[root@mail ~]# cd /usr/share/squirrelmail/config/
[root@mail config]# ./conf.pl
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> 1

Trình hướng dẫn sau đây sẽ mở ra. Nhập "1" một lần nữa thay đổi các chi tiết tổ chức của bạn:

SquirrelMail Configuration : Read: config.php (1.4.0) 
---------------------------------------------------------
Organization Preferences
1.  Organization Name      : SquirrelMail
2.  Organization Logo      : ../images/sm_logo.png
3.  Org. Logo Width/Height : (308/111)
4.  Organization Title     : SquirrelMail $version
5.  Signout Page           :
6.  Top Frame              : _top
7.  Provider link          : http://squirrelmail.org/
8.  Provider name          : SquirrelMail
R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit
Command >> 1

Đặt tên  Organization của bạn và nhấn Enter:

We have tried to make the name SquirrelMail as transparent as
possible.  If you set up an organization name, most places where
SquirrelMail would take credit will be credited to your organization.

If your Organization Name includes a ’$’, please precede it with a \.
Other ’$’ will be considered the beginning of a variable that
must be defined before the $org_name is printed.
$version, for example, is included by default, and will print the
string representing the current SquirrelMail version.

[SquirrelMail]: maxserver

Bằng cách này, thiết lập tất cả các chi tiết như tên tổ chức, logo, tên nhà cung cấp trong chương trình trên. Khi bạn làm xong, nhấn "S" để lưu các thay đổi và nhấn "R" để trở lại menu chính của bạn:

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Organization Preferences
1.  Organization Name      : maxserver
2.  Organization Logo      : ../images/sm_logo.png
3.  Org. Logo Width/Height : (308/111)
4.  Organization Title     : SquirrelMail $version
5.  Signout Page           :
6.  Top Frame              : _top
7.  Provider link          : http://squirrelmail.org/
8.  Provider name          : MaxserverMail

R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit

Command >> s

Bây giờ nhập "2" để cài đặt thiết lập mail Server như tên miền và đại lý email ....

SquirrelMail Configuration : Read: config.php (1.4.0) 
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages
D.  Set pre-defined settings for specific IMAP servers
C   Turn color off
S   Save data
Q   Quit
Command >> 2

Nhập "1", Nhập tên miền mail của bạn  và nhấn phím Enter.

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Server Settings

General
-------
1.  Domain                 : localhost
2.  Invert Time            : false
3.  Sendmail or SMTP       : sendmail

A.  Update IMAP Settings   : localhost:143 (uw)
B.  Update SMTP Settings   : localhost:25

R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit

Command >> 1

The domain name is the suffix at the end of all email addresses.  If
for example, your email address is jdoe@example.com, then your domain
would be example.com.

[nguyenvietduc.net]: maxserver.net

Nhập "3" và thay đổi từ sendmail sang SMTP

SquirrelMail Configuration : Read: config.php (1.4.0) 
---------------------------------------------------------
Server Settings General -------
1.  Domain                 : maxserver.net
2.  Invert Time            : false
3.  Sendmail or SMTP       : Sendmail
A.  Update IMAP Settings   : localhost:143 (uw)
B.  Change Sendmail Config : /usr/sbin/sendmail
R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit
Command >> 3

Nhập "2" để chuyển đổi

You now need to choose the method that you will use for sending messages in SquirrelMail.  You can either connect to an SMTP server or use sendmail directly.   
1.  Sendmail  
2.  SMTP Your choice [1/2] [1]: 2

Bây giờ nhập "S" tiếp theo là "Q" để lưu lại cấu hình và thoát SquirreMail.

Cấu hình httpd

# nano /etc/httpd/conf/httpd.conf

Sửa những dòng sau 

DocumentRoot "/usr/share/squirrelmail"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory /usr/share/squirrelmail>
    Options Indexes FollowSymLinks
    RewriteEngine On
    AllowOverride All
    DirectoryIndex index.php
    Order allow,deny
    Allow from all

</Directory>

#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something’s not working as
# you might expect, make sure that you have specifically enabled it
# below.
#

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/usr/share/squirrelmail">

 

Khởi động lại httpd

# service httpd restart

Bây giờ bạn có thể truy cập vào  địa chỉ http://ip-vps