Ảo hóa tài khoản người dùng và tên miền

Trong bài viết sau, Ban Quản Trị sẽ hướng dẫn, giải thích với các bạn

cách cài đặt hệ thống mail server dựa trên Postfix – được xây dựng trên

tài khoản user và domain ảo (ví dụ 2 giá trị này được lưu trữ trong cơ

sở dữ liệu MySQL).

Đồng thời chúng tôi cũng xây dựng lại toàn bộ quá trình cài đặt và thiết lập

của Courier (Courier-POP3, Courier-IMAP), qua đó Courier có thể nhận

dạng được luồng thông tin dữ liệu tương tự như MySQL.

Kết quả của Postfix server là khả năng hỗ trợ cơ chế xác thực SMTP-AUTH,

TLS và quota (quota không được tích hợp cùng với Postfix ở chế độ mặc

định), trong đó mật khẩu sẽ được lưu trữ dưới mẫu encrypted trong cơ sở dữ

liệu. Bên cạnh đó, bài viết cũng sẽ chỉ ra cách cài đặt Amavisd,

pdf49 trang | Chuyên mục: MySQL | Chia sẻ: dkS00TYs | Lượt xem: 1928 | Lượt tải: 4download
Tóm tắt nội dung Ảo hóa tài khoản người dùng và tên miền, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
tfix/master.cf: 
vi /etc/postfix/master.cf 
[...] 
amavis unix - - - - 2 smtp 
-o smtp_data_done_timeout=1200 
-o smtp_send_xforward_command=yes 
127.0.0.1:10025 inet n - - - - smtpd 
-o content_filter= 
-o local_recipient_maps= 
-o relay_recipient_maps= 
-o smtpd_restriction_classes= 
-o smtpd_client_restrictions= 
-o smtpd_helo_restrictions= 
-o smtpd_sender_restrictions= 
-o smtpd_recipient_restrictions=permit_mynetworks,reject 
-o mynetworks=127.0.0.0/8 
-o strict_rfc821_envelopes=yes 
-o 
receive_override_options=no_unknown_recipient_checks,no_header_body_
checks 
-o smtpd_bind_address=127.0.0.1 
Khởi động lại Postfix để áp dụng các sự thay đổi: 
/etc/init.d/postfix restart 
Cài đặt Razor, Pyzor và DCC đồng thời cấu hình SpamAssassin 
Razor, Pyzor và DCC là các bộ lọc email với tính năng tương tác lẫn nhau. 
Để cài đặt Razor và Pyzor, gõ lệnh sau: 
yum install perl-Razor-Agent pyzor 
Khởi tạo cả 2 dịch vụ: 
chmod -R a+rX /usr/share/doc/pyzor-0.5.0 /usr/bin/pyzor /usr/bin/pyzord 
chmod -R a+rX /usr/lib/python2.6/site-packages/pyzor 
su -m amavis -c 'pyzor --homedir /var/spool/amavisd discover' 
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -create' 
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -register' 
Và cài đặt DCC theo cách sau: 
cd /tmp 
wget  
tar xzvf dcc-dccproc.tar.Z 
cd dcc-dccproc-1.3.126 
./configure --with-uid=amavis 
make 
make install 
chown -R amavis:amavis /var/dcc 
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifd 
Bước tiếp theo, chúng ta cần “thông báo” cho SpamAssassin để sử dụng 3 
chương trình này. Chỉnh sửa file /etc/mail/spamassassin/local.cf như sau: 
vi /etc/mail/spamassassin/local.cf 
# These values can be overridden by editing ~/.spamassassin/user_prefs.cf 
# (see spamassassin(1) for details) 
# These should be safe assumptions and allow for simple visual sifting 
# without risking lost emails. 
#required_hits 5 
#report_safe 0 
#rewrite_header Subject [SPAM] 
# dcc 
use_dcc 1 
dcc_path /usr/local/bin/dccproc 
 #pyzor 
use_pyzor 1 
pyzor_path /usr/bin/pyzor 
#razor 
use_razor2 1 
razor_config /var/spool/amavisd/razor-agent.conf 
#bayes 
use_bayes 1 
use_bayes_rules 1 
bayes_auto_learn 1 
Tiếp theo, kích hoạt plugin DCC trong SpamAssassin. Mở 
/etc/mail/spamassassin/v310.pre và bỏ ghi chú của dòng loadplugin 
Mail::SpamAssassin::Plugin::DCC: 
vi /etc/mail/spamassassin/v310.pre 
[...] 
# DCC - perform DCC message checks. 
# 
# DCC is disabled here because it is not open source. See the DCC 
# license for more details. 
# 
loadplugin Mail::SpamAssassin::Plugin::DCC 
[...] 
Kiểm tra lại toàn bộ thiết lập của SpamAssassin bằng lệnh sau: 
spamassassin --lint 
Nếu thành công, thì chương trình sẽ không thông báo gì cả. Sau đó, chạy 
lệnh: 
/etc/init.d/amavisd restart 
Tiến hành cập nhật các quy luật của SpamAssassin như sau: 
sa-update --no-gpg 
Tạo tham số cron để bộ quy luật này cập nhật thường xuyên và có trình tự. 
Chạy lệnh sau: 
crontab -e 
để mở thẻ chỉnh sửa cron. Tạo tham số sau: 
23 4 */2 * * /usr/bin/sa-update --no-gpg &> /dev/null 
Có nghĩa là việc cập nhật sẽ được tiến hành hàng ngày vào lúc 4.23h. 
Cảnh báo về Quota Exceedance 
Để thiết lập nhận thông tin cảnh báo đối với những tài khoản sử dụng email 
vượt quá mức quota cho phép, tạo file /usr/local/sbin/quota_notify: 
[xem lệnh] 
Hãy chắc chắn rằng bạn đã điều chỉnh các biến phù hợp ở trên đầu (đặc biệt 
là địa chỉ postmaster@domain.tld) 
Và tiếp đó, tạo file thực thi đoạn mã này: 
chmod 755 quota_notify 
Và gõ lệnh: 
crontab -e 
để tạo tham số cron cho đoạn mã đó: 
0 0 * * * /usr/local/sbin/quota_notify &> /dev/null 
Kiểm tra Postfix 
Để kiểm tra chắc chắn Postfix có hoạt động với SMTP-AUTH và TLS, chạy 
lệnh sau: 
telnet localhost 25 
Sau khi bạn thiết lập 1 kết nối bất kỳ đến Postfix mail server, gõ lệnh: 
ehlo localhost 
Và sẽ thấy những dòng thông báo sau: 
250-STARTTLS 
và 
250-AUTH LOGIN PLAIN 
Nghĩa là mọi thứ đều ổn. 
[root@server1 sbin]# telnet localhost 25 
Trying ::1... 
Connected to localhost. 
Escape character is '^]'. 
220 server1.example.com ESMTP Postfix 
ehlo localhost 
250-server1.example.com 
250-PIPELINING 
250-SIZE 10240000 
250-VRFY 
250-ETRN 
250-STARTTLS 
250-AUTH LOGIN PLAIN 
250-AUTH=LOGIN PLAIN 
250-ENHANCEDSTATUSCODES 
250-8BITMIME 
250 DSN 
quit 
221 2.0.0 Bye 
Connection closed by foreign host. 
[root@server1 sbin]# 
Gõ: 
quit 
để quay trở lại hệ thống. 
Đồng bộ hóa các cơ sở dữ liệu và kiểm tra 
Để thực hiện bước này, gõ câu lệnh sau: 
mysql -u root -p 
USE mail; 
Và tối thiểu, bạn phải tạo những thành phần sau trong bảng domains và 
users: 
INSERT INTO `domains` (`domain`) VALUES ('example.com'); 
INSERT INTO `users` (`email`, `password`, `quota`) VALUES 
('sales@example.com', ENCRYPT('secret'), 10485760); 
Hãy cẩn thận khi dùng cú pháp ENCRYPT trong lệnh INSERT thứ 2 để mã 
hóa mật khẩu. 
Nếu muốn tiếp tục thêm dữ liệu vào các bảng khác, thì hãy làm theo cách 
sau: 
INSERT INTO `forwardings` (`source`, `destination`) VALUES 
('info@example.com', 'sales@example.com'); 
INSERT INTO `transport` (`domain`, `transport`) VALUES ('example.com', 
'smtp:mail.example.com'); 
Thoát khỏi MySQL shell, gõ lệnh: 
quit; 
Đối với nhiều người, sẽ dễ dàng và đơn giản hơn rất nhiều nếu quản lý và 
điều khiển MySQL bằng giao diện, qua đó, có thể sử dụng thêm 
phpMyAdmin (ở bài viết này là  hoặc 
 để quản lý cơ sở dữ liệu mail. 
Bên cạnh đó, mỗi khi tạo mới tài khoản, hãy nhớ sử dụng chức năng 
ENCRYPT để mã hóa password: 
Và tương tự, bảng dữ liệu forwardings sẽ trông như thế này: 
Bảng transport: 
Gõ lệnh: 
man transport 
để biết thêm thông tin chi tiết cụ thể. 
Gửi email Welcome để tạo Maildir 
Khi bạn tạo 1 tài khoản email mới, và thử lấy email từ đó (với chuẩn 
POP3/IMAP), thông thường sẽ nhận được thông báo lỗi rằng Maildir không 
tồn tại. Maildir sẽ tự động được tạo ra khi email đầu tiên được tạo đối với tài 
khoản đầu tiên tương ứng. Trước tiên, cài đặt gói mailx: 
yum install mailx 
Để gửi email welcome tới địa chỉ sales@example.com, làm như sau: 
mailx sales@example.com 
Bạn sẽ nhận được thông báo của tiêu đề, gõ bất kỳ nội dung nào (ví dụ 
Welcome), sau đó nhấn Enter. Trong dòng tiếp theo, gõ nội dung thông báo. 
Khi hoàn tất phần nội dung, nhấn Enter để bắt đầu 1 dòng mới, tại đây nhấn 
CTRL+D: 
[root@server1 ~]# mailx sales@example.com 
Subject: Welcome <-- ENTER 
Welcome! Have fun with your new mail account. <-- ENTER 
<-- CTRL+D 
EOT 
[root@server1 ~]# 
Cài đặt SquirrelMail 
SquirrelMail là hệ thống quản lý webmail có giao diện, cho phép người sử 
dụng gửi và nhận email thông qua trình duyệt. Để cài đặt SquirrelMail, gõ 
lệnh sau: 
yum install squirrelmail php-pear-DB 
Sau đó, khởi động lại Apache: 
/etc/init.d/httpd restart 
SquirrelMail có đi kèm với 1 số plugin có sẵn, nhưng thật không may, không 
có plugin nào hỗ trợ người dùng thay đổi mật khẩu email trong cơ sở dữ liệu 
MySQL. Nhưng thay vào đó, các bạn có thể sử dụng plugin thay thế sau: 
cd /usr/share/squirrelmail/plugins 
wget 
uirrelmail.org%2Fplugins%2Fchange_sqlpass-3.3-1.2.tar.gz 
tar xvfz change_sqlpass-3.3-1.2.tar.gz 
cd change_sqlpass 
cp config.php.sample config.php 
Tiếp theo, chúng ta phải điều chỉnh config.php, thay đổi các biến sau: 
$csp_dsn, $lookup_password_query, $password_update_queries, 
$password_encryption, $csp_salt_static, và $csp_delimiter như sau và chú 
thích bên ngoài $csp_salt_query: 
vi config.php 
[...] 
$csp_dsn = 'mysql://mail_admin:mail_admin_password@localhost/mail'; 
[...] 
$lookup_password_query = 'SELECT count(*) FROM users WHERE email 
= "%1" AND password = %4'; 
[...] 
$password_update_queries = array('UPDATE users SET password = %4 
WHERE email = "%1"'); 
[...] 
$password_encryption = 'MYSQLENCRYPT'; 
[...] 
$csp_salt_static = 'LEFT(password, 2)'; 
[...] 
//$csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"'; 
[...] 
$csp_delimiter = '@'; 
[...] 
File sau khi chỉnh sửa sẽ trông giống thế này: 
[xem lệnh] 
Mặt khác, plugin Change SQL Password cũng phụ thuộc phần lớn vào khả 
năng tương thích của các hệ thống plugin như sau: 
cd /usr/share/squirrelmail/plugins 
wget 
uirrelmail.org%2Fplugins%2Fcompatibility-2.0.16-1.0.tar.gz 
tar xvfz compatibility-2.0.16-1.0.tar.gz 
Bước tiếp theo, di chuyển tới mục điều chỉnh SquirrelMail và “thông báo” 
tới SquirrelMail rằng chúng ta sẽ sử dụng Courier như chuẩn POP3 và 
IMAP server, đồng thời kích hoạt 2 plugin Change SQL Password và 
Compatibility: 
/usr/share/squirrelmail/config/conf.pl 
Menu điều khiển sẽ hiển thị: 
[xem lệnh] 
Điều cuối cùng cần thực hiện là chỉnh sửa file 
/etc/squirrelmail/config_local.php và chú thích bên ngoài biến 
$default_folder_prefix – nếu không thực hiện bước này, bạn sẽ nhận được 
thông báo lỗi trong SquirrelMail sau khi đăng nhập: Query: CREATE "Sent" 
Reason Given: Invalid mailbox name. 
vi /etc/squirrelmail/config_local.php 
<?php 
/** 
* Local config overrides. 
* 
* You can override the config.php settings here. 
* Don't do it unless you know what you're doing. 
* Use standard PHP syntax, see config.php for examples. 
* 
* @copyright © 2002-2006 The SquirrelMail Project Team 
* @license  GNU Public 
License 
* @version $Id: config_local.php,v 1.2 2006/07/11 03:33:47 wtogami Exp $ 
* @package squirrelmail 
* @subpackage config 
*/ 
//$default_folder_prefix = ''; 
?> 
Mở trình duyệt và gõ địa chỉ sau:  hoặc 
 để truy cập SquirrelMail, sử dụng tài khoản 
email (ở đây là sales@example.com) và mật khẩu khai báo bên trên: 
Bạn sẽ thấy email welcome trong mục inbox: 
Để thay đổi mật khẩu, chọn Options > Change Password: 
Gõ mật khẩu hiện tại và mật khẩu mới 2 lần: 
 Ngay sau khi đổi mật khẩu, bạn sẽ bị “văng” ra khỏi cửa sổ làm việc hiện tại 
và phải tiến hành đăng nhập lại: 
 Chúc các bạn thành công! 

File đính kèm:

  • pdfẢo hóa tài khoản người dùng và tên miền.pdf
Tài liệu liên quan