Upload
cao-huy-loc
View
190
Download
6
Embed Size (px)
Citation preview
1 .CentOS 6 Cài đặt và cấu hình hệ thống
Mail server hoàn chỉnh với iRedMail
Nếu bạn đang tìm kiếm cho mình một hệ thống email hoàn chỉnh trên nền hệ điều hành Linux thì
iRedMail là một giải pháp hoàn hảo có thể đáp ứng được các yêu cầu từ cơ bản đến nâng cao của
hệ thống mail server. Trong bài viết này tôi xin hướng dẫn các bạn cài đặt và cấu hình iRedMail
trên nền CentOS 6 – 64 bit.
1. iRedMail là gì?
iRedMail là một sản phẩm mã nguồn mở cung cấp cho bạn một giải pháp hoàn chỉnh về hệ thống
Email nội bộ hoặc Public Email. Dĩ nhiên iRedMail miễn phí hoàn toàn cho cộng đồng.
iRedMail có thể chạy tốt trên nhiều distro phổ biến hiện nay nên bạn có thể yên tâm xây dựng
iRedMail trên distro mà bạn đã quen sử dụng.
Danh sách các distro được iRedMail hỗ trợ:
2. Lợi ích khi triển khai hệ thống Mail bằng iRedMail?
Miễn phí hoàn toàn, đầy đủ các tính năng của một hệ thống Mail chuyên nghiệp
Thời gian triển khai nhanh, khoảng 10 phút là bạn có thể cài đặt xong iRedMail.
Quản lý toàn bộ dữ liệu người dùng và data mail trên đĩa cứng của bạn. Dễ dàng trong
việc backup dữ liệu.
Các thành phần trong iRedMail đều là phần mềm mã nguồn mở và bạn có thể update các
phiên bản cập nhập cho từng thành phần này mà không phụ thuộc vào phiên bản cập
nhập của iRedMail.
Hoạt động tốt trên các nền tảng phần cứng khác nhau: ảo hóa hoặc không ảo hóa
(VMware, Xen, KVM, OpenVZ, VirtualBox, hỗ trợ cấu trúc i386 và x86_64/amd64 )
Có thể quản lý toàn bộ hệ thống thông qua trang web quản trị iRedAdmin Pro(bản
thương mại) hoặc các hệ thống quản lý khác được phát triển từ bên thứ 3.
3. Các phần mềm được cài đặt khi triển khai iRedMail
Như đã nói ở trên iRedMail kết hợp bởi nhiều phần mềm mã nguồn mở, sau đây là các dịch vụ sẽ
được triển khai theo iRedMail
Postfix: Dịch vụ gửi mail SMTP
Dovecot: Dịch vụ POP3/POP3S, IMAP/IMAPS
Apache: Web server
MySQL: Cơ sở dữ liệu lưu trữ tài khoản và email
OpenLDAP: Lưu trữ thông tin tài khoản
Policyd: Cấu hình các chính sách (policy) cho Postfix
Amavisd: Là scipt quản lý giữa Postfix và SpamAssassin, ClamAV. Dùng để quản lý
Spam và quét virus.
Roundcube: Webmail dùng cho người dùng sử dụng
Awstats: Thống kê và phân tích log của Apache và Postfix
Fail2ban: Phần mềm dùng để quest file log (ví dụ /var/log/maillog) hệ thống sẽ tự động
khóa IP nào cố gắng truy cập nhiều lần vào hòm thư mà không dùng đúng mật khẩu
(chống hack)
4. Cấu hình hệ thống để chuẩn bị cài iRedMail
Để cài đặt iRedMail ta cần chỉnh sửa các thông số như hostname và cấu hình địa chỉ IP cho
server.
4.1 Yêu cầu chung về hệ thống
iRedMail được thiết kế để triển khai lên một hệ thống mới hoàn toàn (chưa cài bất kỳ dịch vụ
nào đã được liệt kê ở mục 3). Nếu có dịch vụ nào được cài đặt sẵn trên hệ thống thì quá trình cài
đặt iRedMail sẽ ghi đè lên các file cấu hình lên dịch vụ bạn đã cài. Điều này có thể gây ra sự cố
đối với hệ thống sẵn có của bạn. Để an toàn bạn nên sao lưu các bản cấu hình này lại trước khi
tiến hành cài đặt.
Ngoài ra hệ thống của bạn cần có Ram ít nhất 1GB để các dịch vụ có thể chạy ổn định.
Chú ý: Chúng tôi sẽ không chịu trách nhiệm đối với bất kỳ lỗi nào sinh ra nếu bạn làm theo
hướng dẫn cài đặt của chúng tôi.
4.2 Cài đặt hostname
Trước khi cài iRedMail bạn cần đặt lại hostname (tên máy) cho hệ thống của mình. Để xem
hostname hiện tại của máy bạn dùng lệnh
hostname -f
1 hostname -f
để sửa hostname ta sửa trong 2 file sau đây:
/etc/sysconfig/network sửa như sau:
HOSTNAME=centos6.infow orld
1 HOSTNAME=centos6.infoworldvn.com
và /etc/hosts sửa thành
127.0.0.1 centos6.infow orldvn.
::1 localhost localhost.localdoma
1
2
127.0.0.1 centos6.infoworldvn.com localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Chú ý: phần hostname ta điền ngay sau 127.0.0.1
Bạn lưu các thay đổi và dùng lệnh hostname -f để kiểm tra xem các cấu hình đã có hiệu lực chưa
[root@centos6 ~]# hostname -f
centos6.infow orldvn.com
1
2
[root@centos6 ~]# hostname -f
centos6.infoworldvn.com
4.3 Cấu hình địa chỉ IP
để kiểm tra thông số địa chỉ IP hiện tại bạn dùng lệnh sau:
[root@centos6 ~]# ifconfig
eth0 Link encap:Ethernet HWad
inet addr:10.0.0.1 Bcast:10.0.0.
inet6 addr: fe80::20c:29ff:fef5:4
1
2
3
4
5
6
7
8
9
[root@centos6 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:F5:44:59
inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fef5:4459/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1609 errors:0 dropped:0 overruns:0 frame:0
TX packets:776 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:147666 (144.2 KiB) TX bytes:122246 (119.3 KiB)
Ở đây card etho của tôi có địa chỉ IP lớp C là 10.0.0.1
Để sửa thông số cấu hình IP ta dùng lệnh Setup (giao diện đồ họa) hoặc sửa file
/etc/sysconfig/network-scripts/cfcfg-etho trong đó cfcfg-etho là tên của interface bạn muốn
chỉnh sửa
vi /etc/sysconfig/netw ork-scrip
1 vi /etc/sysconfig/network-scripts/ifcfg-eth0
Ta sửa các thông số của interface etho theo các thông số như dưới (thông số IP tùy thuộc vào
thiết kế hệ thống mạng của bạn)
TYPE=Ethernet
BOOTPROTO=none
IPADDR=10.0.0.1
PREFIX=24
1
2
3
4
5
6
7
8
9
TYPE=Ethernet
BOOTPROTO=none
IPADDR=10.0.0.1
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="eth0"
UUID=205d8b12-5ccf-4909-a786-c8bcb198fae5
10
11
12
13
14
15
ONBOOT=yes
HWADDR=00:0C:29:F5:44:59
LAST_CONNECT=1366904173
NETMASK=255.255.255.0
DEVICE=eth0
USERCTL=no
4.4 Cấu hình yum repositories
Để tránh việc không tương thích các phiên bản được cài đặt thông qua lệnh yum bạn phải disable
tất cả các repositories cài đặt bổ sung khác không phải là repositories gốc của CentOS. Nếu hệ
thống của bạn mới được cài đặt thì có thể bỏ qua bước này.
Bạn có thể kiểm tra các repositories tại thư mục:
ls -l /etc/yum.repos.d/
1 ls -l /etc/yum.repos.d/
và file cấu hình yum
vi /etc/yum.conf
1 vi /etc/yum.conf
5. Cài đặt iRedMail
Đầu tiên ta download bản mới nhất iRedMail về server và tiến hành cài đặt.
cd /root
w get https://bitbucket.org/zhb/ir
tar xjf iRedMail-0.8.4.tar.bz2
cd iRedMail-0.8.4
1
2
3
4
5
cd /root
wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.8.4.tar.bz2
tar xjf iRedMail-0.8.4.tar.bz2
cd iRedMail-0.8.4
bash iRedMail.sh
Chương trình sẽ tiến hành download các file cần thiết và cài đặt.
Giao diện cài đặt của iRedMail
Cửa sổ chào mừng của iRedMail. Ta nhấn Yes để tiếp tục cài đặt
Cài đặt thư mục lưu trữ mailbox của người dùng. Ta để mặc định và nhấn Next
iRedMail cung cấp cho chúng ta 3 phương pháp lưu trữ dữ liệu người dùng gồm OpenLDAP,
MySQL, PostgreSQL. Ở đây tôi chọn MySQL và nhấn Next.
Bạn nhập vào mật khẩu root của MySQL (mật khẩu root này không phải là mật khẩu của tài
khoản root hệ thống)
Bạn nhập vào tên domain của mail server. Bạn có thể nhập tùy ý (để có thể sử dụng được tên
miền này ta phải cấu hình DNS cho Client)
Hệ thống sẽ tạo một tài khoản postmaster (Administrator), ta nhập mật khẩu cho tài khoản này.
Chọn các chương trình dùng để quản lý iRedMail, bạn nên để mặc định và nhấn Next để hệ
thống tiến hành cài đặt.
Sau khi cài đặt thành công, chương trình yêu cầu bạn lưu trữ file /root/iRedMail-0.8.4/config ở
một nơi cẩn thận vì nó chứa các thông tin quan trọng của hệ thống.
Configuration completed.
**************************************
***************************** WARN
**************************************
1
2
3
4
5
6
7
8
9
10
Configuration completed.
*************************************************************************
***************************** WARNING ***********************************
*************************************************************************
* *
* Below file contains sensitive infomation (username/password), please *
* do remember to *MOVE* it to a safe place after installation. *
* *
* * /root/iRedMail-0.8.4/config
* *
11
12
*************************************************************************
< Question > Continue? [y|N] -->Y
Bạn chọn Y và nhấn Enter. Hệ thống sẽ tiến hành download cái component mà bạn đã chọn lựa
để cài đặt từ internet.
Sau khi cài đặt xong hệ thống yêu cầu ta cấu hình Firewall rule, MySQL, ClamAV. Ta chọn như
hướng dẫn sau:
<INFO > Disable SELinux in /etc/
< Question > Would you like to u
< Question > File: /etc/sysconfig
< INFO > Copy firew all sample r
1
2
3
4
5
6
7
8
9
10
11
12
<INFO > Disable SELinux in /etc/selinux/config.
< Question > Would you like to use firewall rules provided by iRedMail now?
< Question > File: /etc/sysconfig/iptables, with SSHD port: 22. [Y|n] <strong>-->
Y </strong>
< INFO > Copy firewall sample rules: /etc/sysconfig/iptables.
< Question > Restart firewall now (with SSHD port 22)? [y|N] <strong>-->N</strong>
< INFO > Restarting firewall ...
< Question > Would you like to use MySQL configuration file shipped within iRedMail now?
< Question > File: /etc/my.cnf. [Y|n] <strong>-->Y</strong>
< INFO > Copy MySQL sample file: /etc/my.cnf.
< INFO > Enable SSL support for MySQL server.
< INFO > Deliver administration emails to [email protected].
< INFO > Updating ClamAV database (freshclam), please wait ...
Sau khi Update dữ liệu của ClamAV ta hoàn tất việc cài đặt iRedMail.
**************************************
* URLs of installed w eb applicat
*
* - Webmail: httpS://centos6.info
1
2
3
4
5
6
7
8
9
10
********************************************************************
* URLs of installed web applications:
*
* - Webmail: httpS://centos6.infoworldvn.com/mail/
* - Admin Panel (iRedAdmin): httpS://centos6.infoworldvn.com/iredadmin/
* + Username: [email protected], Password: 123456789
*
********************************************************************
* Congratulations, mail server setup completed successfully. Please
11
12
13
14
15
16
17
18
19
* read below file for more information:
*
* - /root/iRedMail-0.8.4/iRedMail.tips
*
* And it's sent to your mail account [email protected].
*
* Please reboot your system to enable mail services.
*
********************************************************************
Ta khởi động lại hệ thống để hoàn tất việc cài đặt.
reboot -n
1 reboot -n
Sau khi khởi động xong bạn có thể truy cập vào Webmail thông qua địa chỉ
https://10.0.0.1/mail hoặc thông qua domain (tùy thuộc vào việc bạn cấu hình trong hệ thống
DNS)
Giao diện đăng nhập Webmail Roundcube
Giao diện của Webmail Roundcube
Để quản lý tài khoản email ta vào địa chỉ
https://10.0.0.1/iredadmin
với tài khoản là [email protected] và mật khẩu đã đặt trong quá trình cài đặt.
Giao diện đăng nhập iRedAdmin
Giao diện quản lý của iRedAdmin
Trong bài này tôi đã hướng dẫn các bạn cài đặt hoàn tất iRedMail trên hệ thống CentOS 6.4 –
64bit. Trong bài viết tiếp theo viết tôi sẽ hướng dẫn cấu hình để cho phép mail server của chúng
ta có thể gửi/nhận email từ ngoài internet, gửi thư tới các hòm thư như Gmail, hotmail mà không
bị chặn và public Webmail để người dùng có thể đăng nhập vào Mailbox từ ngoài internet.
Access webmail and other web applications
Component URL
Webmail https://your_server/mail/
iRedAdmin (admin
panel) httpS://your_server/iredadmin/
phpMyAdmin httpS://your_server/phpmyadmin/
phpLDAPadmin httpS://your_server/phpldapadmin/
Awstats httpS://your_server/awstats/awstats.pl?config=web (or
?config=smtp)
2.Nâng cấp lên phiên bản Pro .
# tar xjf /root/iRedAdmin-Pro-x.y.z.tar.bz2 -C /var/www/ #Giai nén iRedAdmin-Pro-
x.y.z.tar.bz2 vào thu mục /var/www/
# cd /var/www/
# rm -i /var/www/iredadmin # <- this is a symbol link, it will prompt you to type 'y' to confirm.
# ln -s iRedAdmin-Pro-x.y.z iredadmin
# cp -p iRedAdmin-0.1.7/settings.ini iRedAdmin-Pro-x.y.z/ # Tùy theo vesion iRedAdmin-0.1.7
# chown -R iredadmin:iredadmin iRedAdmin-Pro-x.y.z/ # <- Set correct file permission for
iRedAdmin-Pro.
# chmod -R 0555 iRedAdmin-Pro-x.y.z
# chmod -R 0400 iRedAdmin-Pro-x.y.z/settings.ini
# /etc/init.d/httpd restart # <- Restart apache web server
3 .Quản trị mail . Admin of domain abc.com:
* Account: [email protected]
* Password: Huyloc87
Note:
- This account is used for system administrations, not a mail user.
- You can login iRedAdmin with this account, login name
is full email address.
First mail user:
* Username: [email protected]
* Password: Huyloc87
* SMTP/IMAP auth type: login
* Connection security: STARTTLS or SSL/TLS
Note:
- This account is a normal mail user.
- You can login webmail with this account, login name is full email address.
SSL cert keys (size: 2048):
- /etc/pki/tls/certs/iRedMail_CA.pem
- /etc/pki/tls/private/iRedMail.key
Mail Storage:
- Root directory: /var/vmail
- Mailboxes: /var/vmail/vmail1
- Backup scripts and copies: /var/vmail/backup
Apache:
* Configuration files:
- /etc/httpd
- /etc/httpd/conf/httpd.conf
- /etc/httpd/conf.d/*
* Directories:
- /var/www
- /var/www/html
* See also:
- /var/www/html/index.html
PHP:
* Configuration file: /etc/php.ini
* Disabled functions: show_source,system,shell_exec,passthru,exec,phpinfo,proc_open
MySQL:
* Root user: root, Password: Huyloc87
* Bind account (read-only):
- Username: vmail, Password: Njek0ayBDdwcICzdEiuFTlHtztNJRm
* Vmail admin account (read-write):
- Username: vmailadmin, Password: SVdzcCLl2gI6yhqfZSaYMDGV9qCNS4
* RC script: /etc/init.d/mysqld
* See also:
- /root/Mail/iRedMail-0.8.5/conf/mysql_init.sql
Virtual Users:
- /root/Mail/iRedMail-0.8.5/samples/iredmail.mysql
- /root/Mail/iRedMail-0.8.5/conf/mysql_vmail.sql
Postfix (basic):
* Configuration files:
- /etc/postfix
- /etc/postfix/aliases
- /etc/postfix/main.cf
- /etc/postfix/master.cf
Postfix (MySQL):
* Configuration files:
- /etc/postfix/mysql/transport_maps_domain.cf
- /etc/postfix/mysql/transport_maps_user.cf
- /etc/postfix/mysql/virtual_mailbox_domains.cf
- /etc/postfix/mysql/relay_domains.cf
- /etc/postfix/mysql/virtual_mailbox_maps.cf
- /etc/postfix/mysql/virtual_alias_maps.cf
- /etc/postfix/mysql/domain_alias_maps.cf
- /etc/postfix/mysql/catchall_maps.cf
- /etc/postfix/mysql/domain_alias_catchall_maps.cf
- /etc/postfix/mysql/sender_login_maps.cf
- /etc/postfix/mysql/sender_bcc_maps_domain.cf
- /etc/postfix/mysql/sender_bcc_maps_user.cf
- /etc/postfix/mysql/recipient_bcc_maps_domain.cf
- /etc/postfix/mysql/recipient_bcc_maps_user.cf
Policyd:
* Configuration files:
- /etc/policyd.conf
* RC script:
- /etc/init.d/policyd
* Misc:
- /etc/cron.daily/policyd-cleanup
- crontab -l -u policyd
Dovecot:
* Configuration files:
- /etc/dovecot/dovecot.conf
- /etc/dovecot/dovecot-ldap.conf (For OpenLDAP backend)
- /etc/dovecot/dovecot-mysql.conf (For MySQL backend)
- /etc/dovecot/dovecot-pgsql.conf (For PostgreSQL backend)
- /etc/dovecot/dovecot-used-quota.conf (For real-time quota usage)
- /etc/dovecot/dovecot-share-folder.conf (For IMAP sharing folder)
* RC script: /etc/init.d/dovecot
* Log files:
- /var/log/dovecot.log
- /var/log/sieve.log
* See also:
- /var/vmail/sieve/dovecot.sieve
- Logrotate config file: /etc/logrotate.d/dovecot
ClamAV:
* Configuration files:
- /etc/clamd.conf
- /etc/freshclam.conf
- /etc/logrotate.d/clamav
* RC scripts:
+ /etc/init.d/clamd
+ /etc/init.d/freshclamd
* Log files:
- /var/log/clamav/clamd.log
- /var/log/clamav/freshclam.log
DNS record for DKIM support:
; key#1, domain abc.com, /var/lib/dkim/abc.com.pem
dkim._domainkey.abc.com. 3600 TXT (
"v=DKIM1; p="
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnZZhodehk1NmDt17bAW3dlLBG"
"tNcBYB5LwDHYfoI7d1mzuHALHznd7/hXTnpLDddLjeI1Uw5Lqvvo+KwBSU5rauQ+"
"ZHz3Id8sxWuSjiDktxUGG9HftTM3fF+d8nVqDdqG30hx6vHyIbti+jqz8die7K8i"
"Fz5CM2/02OxETmgwAQIDAQAB")
Amavisd-new:
* Configuration files:
- /etc/amavisd/amavisd.conf
- /etc/postfix/master.cf
- /etc/postfix/main.cf
* RC script:
- /etc/init.d/amavisd
* MySQL Database:
- Database name: amavisd
- Database user: amavisd
- Database password: DbyA2uJUVcYfG5aTAXTTYTvIs4pcZj
- SQL template: /root/Mail/iRedMail-0.8.5/samples/amavisd/amavisd.mysql
SpamAssassin:
* Configuration files and rules:
- /etc/mail/spamassassin
- /etc/mail/spamassassin/local.cf
iRedAPD - Postfix Policy Daemon:
* Version: 1.4.1
* Listen address: 127.0.0.1, port: 7777
* Related files:
- /opt/iRedAPD-1.4.1/
- /opt/iredapd/
- /opt/iredapd/etc/settings.py
iRedAdmin - official web-based admin panel:
* Version: 0.2.2
* Configuration files:
- /var/www/iRedAdmin-0.2.2/
- /var/www/iRedAdmin-0.2.2/settings.ini*
* URL:
- https://abc.com/iredadmin/
* Login account:
- Username: [email protected], password: Huyloc87
* SQL database account:
- Database name: iredadmin
- Username: iredadmin
- Password: 6MV0HpN792Y4yTC14ZgPDHX3XmnPml
* Settings:
- /var/www/iRedAdmin-0.2.2/settings.ini
- Addition settings for Policyd & Amavisd integration support in iRedAdmin-Pro:
[policyd]
enabled = True
host = 127.0.0.1
port = 3306
db = policyd
user = policyd
passwd = VTy4akQClyedzvt3jzbIqSuKl6usmv
[amavisd]
quarantine = True
quarantine_port = 9998
logging_into_sql = True
host = 127.0.0.1
port = 3306
db = amavisd
user = amavisd
passwd = DbyA2uJUVcYfG5aTAXTTYTvIs4pcZj
* See also:
- /etc/httpd/conf.d/iredadmin.conf
Awstats:
* Configuration files:
- /etc/awstats
- /etc/awstats/awstats.web.conf
- /etc/awstats/awstats.smtp.conf
- /etc/httpd/conf.d/awstats.conf
* Login account:
- Username: [email protected], password: Huyloc87
* URL:
- https://abc.com/awstats/awstats.pl
- https://abc.com/awstats/awstats.pl?config=web
- https://abc.com/awstats/awstats.pl?config=smtp
* Crontab job:
shell> crontab -l root
Roundcube webmail:
* Configuration files:
- /var/www/roundcubemail-0.9.2/
- /var/www/roundcubemail-0.9.2/config/
* URL:
- http://abc.com/mail/
- https://abc.com/mail/ (Over SSL/TLS)
- http://abc.com/webmail/
- https://abc.com/webmail/ (Over SSL/TLS)
* Login account:
- Username: [email protected], password: Huyloc87
* See also:
- /etc/httpd/conf.d/roundcubemail.conf
phpMyAdmin:
* Configuration files:
- /var/www/phpMyAdmin-4.0.4.1-all-languages
- /var/www/phpMyAdmin-4.0.4.1-all-languages/config.inc.php
* Login account:
- Username: root, password: Huyloc87
- Username: vmailadmin, password: SVdzcCLl2gI6yhqfZSaYMDGV9qCNS4
- Username (read-only): vmail, password: Njek0ayBDdwcICzdEiuFTlHtztNJRm
* URL:
- https://abc.com/phpmyadmin
* See also:
- /etc/httpd/conf.d/phpmyadmin.conf
Backup MySQL database:
* Script: /var/vmail/backup/backup_mysql.sh
* See also:
# crontab -l -u root
4 . Sửa lỗi .
4.1 Để mail chạy nhanh hơn .
iRedMail provides greylisting features with Policyd (v1.8.x), it's a spam killer and recommended
to keep it running.
But if you want to disable greylisting for some reason, please modify policyd config file.
On RHEL/CentOS, config file is # vi /etc/policyd.conf, on Debian/Ubuntu, it's /etc/postfix-
policyd.conf, On FreeBSD, it's /usr/local/etc/postfix-policyd.conf.
File: policyd.conf
# 1=on 0=off
GREYLISTING=1
To disable greylisting, set value to 0.
Restarting policyd is required:
Terminal:
#
# ---- On RHEL/CentOS ----
#
# /etc/init.d/policyd restart
#
# ---- On Debian/Ubuntu ----
#
# /etc/init.d/postfix-policyd restart