Các bước cài đặt cấu hình iRedMail Server trên CentOS 7

Bài viết này, TungDT sẽ hướng dẫn các bạn từng bước cài đặt và cấu hình iRedMail Server trên CentOS 7. iRedMail là opensource rất dễ triển khai, cài đặt, cấu hình, có thể chạy trên Linux, FreeBSD và OpenBSD. Với iRedMail, nó trở nên rất dễ cài đặt, quản trị là hệ thống mail server rất mạnh mẽ.

Những tính năng của iRedMail

  • Fully Open Source: Tất cả những thành phần của iRedMail được xây dựng từ các phần mềm mã nguồn mở, hoạt động tốt trên Red Hat Enterprise Linux, CentOS, Debian, Ubuntu, FreeBSD, OpenBSD.
  • Top Security: Tất cả dịch vụ mail được truy cập thông qua các kết nối được mã hoá như: Sử dụng TLS để truy cập POP3, IMAP, SMTP. Web portals được truy cập thông qua HTTPS. Nội dung email được mã hoá bằng TLS khi gửi. 
  • Access to Webmail: Một giao diện web trực quan có sẵn để truy cập và quản lý thư, thư mục và các bộ lọc mail (Roundcube webmail or/and SOGo groupware).
  • Unlimited Accounts: Hệ thống mail cho phép tạo không giới hạn domain và tạo không giới hạn tài khoản email trong domain.
  • Web Admin Panel: Quản trị viên có thể truy cập Web Admin để quản lý domain và các tài khoản mail.
  • Antispam & Antivirus: SpamAssassin, ClamAV, SPF, DKIM, greylisting, whitelisting, blacklisting đảm bảo xác định Spam lưu vào SQL database để thống kê.
  • Hỗ trợ OpenLDAP, MySQL, MariaDB, và PostgreSQL backend cho việc lưu trữ tài khoản mail.

Yêu cầu của hệ thống

Có một vài yêu cầu của hệ thống cần phải thoả mản để triển khai thanh công hệ thống iRedMail trên CentOS 7. Những yêu cầu cơ bản như sau: 

  • Fresh Installation of CentOS 7
  • Đòi hỏi Tối thiểu 2 GB Ram cho môi trường test. Nếu bạn có kế hoạch sử dụng trong Môi trường thực tế với nhiều domain và nhiều tài khoản mail thì Ram đòi hỏi hơn 4G
  • Đảm bảo rằng 3 UID/GID không được sử dụng bởi những user/group khác: 2000, 2001, 2002.
  • Chuẩn bị Mail Server Domain Name
  • A sudo user account – User này phải được gán vào group wheel hoặc được truy cập bởi user root.

Phần kế tiếp tối sẽ hướng dẫn cho các bạn từng bước cài đặt và cấu hình iRedMail trên CentOS 7.

Bước 1: Thêm EPEL repository & Update hệ thống

Bắt đầu thêm EPEL repository và tiến hành cập nhật hệ thống CentOS 7.

sudo yum -y install epel-release
sudo yum -y update

Sau khi hệ thống được nâng cấp, chúng ta tiến hành reboot lại để cập nhật.

sudo shutdown -r now

Bước 2: Cấu hình SELinux dưới dạng Permissive mode

Team phát triển iRedMail không cung cấp SELinux policies cho những dịch vụ để chạy với SELinux ở chế độ enforcing. Do đó, bạn cần phải cấu hình disable SELinux hoặc cấu hình ở chế độ Permissive.

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Kiểm tra lại xem trạng thái SELinux sau khi cấu hình ở chế độ Permissive. 

$ sestatus 
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

Bước 3: Thiết lập Server hostname

Thiết lập server hostname thành subdomain như được cấu hình trong DNS server.

export HOSTNAME="mail.tungdt.net"
sudo hostnamectl set-hostname $HOSTNAME --static
sudo hostnamectl set-hostname $HOSTNAME --transient

Sau khi thiết lập hostname, logout và login lại để cập nhật môi trường. 

$ logout

Cấu hình địa chỉ IP và DNS để map với nhau trong file /etc/hosts.

# Example
$ sudo vim /etc/hosts
95.216.98.16 mail.tungdt.net

Kiểm tra phân giải DNS, cài đặt gói bind-utils.

sudo yum -y install bind-utils

Sau đó sử dụng lệnh host để kiểm tra phân giải.

$ host mail.tungdt.net mail.tungdt.net has address 95.216.98.16

Để kiểm tra các record DNS sử dụng lệnh dig. 

$ dig A mail.tungdt.net

Bước 4: Tải phiên bản iRedMail mới nhất

Truy cập vào trang web iRedMail  để tải phiên bản mới nhất của iRedMail hỗ trợ cho CentOS 7.

Phiên bản mới nhất tại thời điểm hiện tại là 1.2.

sudo yum -y install wget
wget https://github.com/iredmail/iRedMail/archive/1.2.tar.gz

Tiến hành giải nén.

sudo yum -y install tar bzip2
tar xvf 1.2.tar.gz

Bước 5: Tiến hành cài đặt iRedMail trên CentOS 7

Một script cài đặt được cung cấp để hỗ trợ cho quá trình cài đặt iRedMail trên CentOS 7. Truy cập vào thư mục vừa được giải nén.

cd iRedMail-*/

Tiến hành cài đặt iRedMail.

chmod +x iRedMail.sh
sudo ./iRedMail.sh

Scrip cài đặt sẽ tự động cài đặt những gói phụ thuộc sau khi bạn trả lời một vài câu hỏi đơn giản để cài đặt iRedMail.

1 . Đồng ý cài đặt iRedMail

Màn hình đầu tiên hỏi bạn có đồng ý hoặc từ chối cài đặt iRedMail, chọn Yes

2 .Chọn thư mục để lưu mailboxes

Bảo đảm rằng bạn phải đoc thật kỹ những ghi chú được cung cấp trước khi thay đổi thư mục lưu mailboxes mặc định.

3 .Chọn loại web server

Mặc định hệ thống sẽ chọn Nginx.

4 .Chọn backend để lưu tài khoản mail

Chọn một backend mà bạn quen sử dụng nhất để lưu trữ thông tin tài khoản và những thông tin khác để quản lý và vận hành sau khi cài đặt. Tôi chọn OpenLDAP.

5  .Khai báo LDAP Suffix

Nếu bạn chọn OpenLDAP như là một backend mặc định để lưu trữ tài khoản mail thì khai báo LDAP suffix. Đó chỉ là những thành phần trong tên miền.

dc=tundt,dc=net

6  .Đặt MySQL root password

Cung cấp passowrd cho tài khoản MySQL root.

7 .Đặt tên miền cho mail 

Trong quá trình cài đặt, bạn cần phải đặt tên miền đầu tiên cho hệ thống mail: tungdt.net

8 .Đặt password Mail Domain Administrator

Nhập password mail domain administrator và chọn những tính năng để cho phép.

Xem lại nhưng giá trị đã cung cấp và quá trình cài đặt bắt đầu tiến hành.

*************************************************************************
***************************** WARNING ***********************************
*************************************************************************
*                                                                       *
* Below file contains sensitive infomation (username/password), please  *
* do remember to *MOVE* it to a safe place after installation.          *
*                                                                       *
*   * /root/iRedMail-1.2/config
*                                                                       *
*************************************************************************
********************** Review your settings *****************************
*************************************************************************

* Storage base directory:               /var/vmail
* Mailboxes:                            
* Daily backup of SQL/LDAP databases:   
* Store mail accounts in:               OpenLDAP
* Web server:                           Nginx
* First mail domain name:               tungdt.net
* Mail domain admin:                    postmaster@tungdt.net
* Additional components:                Roundcubemail netdata iRedAdmin Fail2ban

< Question > Continue? [y|N]y

Type y or Y and press Enter to start installation. The script will install and configure all the packaged required automatically.

Accept Firewall configurations.

[ INFO ] Disable SELinux in /etc/selinux/config.
< Question > Would you like to use firewall rules provided by iRedMail?
< Question > File: /etc/firewalld/zones/iredmail.xml, with SSHD ports: 22. [Y|n]y
[ INFO ] Copy firewall sample rules: /etc/firewalld/zones/iredmail.xml.
< Question > Restart firewall now (with ssh ports: 22)? [y|N]y
[ INFO ] Restarting firewall ...
< Question > Would you like to use MySQL configuration file shipped within iRedMail now?
< Question > File: /etc/my.cnf. [Y|n]y
[ INFO ] Copy MySQL sample file: /etc/my.cnf.
[ INFO ] Enable SSL support for MySQL server.
[ INFO ] Updating ClamAV database (freshclam), please wait ...
ClamAV update process started at Thu Oct 24 20:38:51 2019
Downloading main.cvd [100%]
main.cvd updated (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
Downloading daily.cvd [100%]
daily.cvd updated (version: 25612, sigs: 1954294, f-level: 63, builder: raynman)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 331, sigs: 94, f-level: 63, builder: anvilleg)
Database updated (6520637 signatures) from database.clamav.net (IP: 104.16.219.84)

Quá trình cài đặt thành công và xuất ra những thông tin như bên dưới. 

********************************************************************
* URLs of installed web applications:
*
* - Roundcube webmail: https://iredmail.tungdt.net/mail/
* - netdata (monitor): https://iredmail.tungdt.net/netdata/
*
* - Web admin panel (iRedAdmin): https://iredmail.tungdt.net/iredadmin/
*
* You can login to above links with below credential:
*
* - Username: postmaster@tungdt.net
* - Password: password
*
*
********************************************************************
* Congratulations, mail server setup completed successfully. Please
* read below file for more information:
*
*   - /root/iRedMail-1.2/iRedMail.tips
*
* And it's sent to your mail account postmaster@tungdt.net.
*
********************* WARNING **************************************
*
* Please reboot your system to enable all mail services.
*
********************************************************************

Khởi động lại server để enable các dịch vụ.

sudo reboot

Bước 6: Truy cập vào iRedMail

Các thông tin chi tiết để quản lý và truy cập vào hệ thống mail sau khi cài đặt được lưu trữ trong file “/root/iRedMail-1.x/config” nếu script được chạy bởi user root hoặc “./iRedMail-1.x/config” nếu script được chạy bởi user thường.

Những địa chỉ ứng dụng web sau khi cài đặt thành công iRedmail trên CentOS 7 như bên dưới.

Giao diện đăng nhập vào trang quản trị mail.

Đây là giao điện Dashboard quản trị hệ thống mail của iRedMail.

Bước 7: Bảo mật iRedMail với Let’s Encrypt SSL Certificates

Mặc định sau khi cài iRedMail thành công, hệ thống sẽ tự tạo ra “self-signed certificates”, bạn cần phải mua một certificate để thay thế hoặc có thể sử dụng Let’s Encrypt free SSL Certificates.