Thứ sáu, 25/05/2012 | 00:00 GMT+7

Cách cài đặt Postfix trên CentOS 6


Giới thiệu về Postfix

Postfix là tác nhân chuyển thư open-souce miễn phí hoạt động để định tuyến và gửi email. Cyrus là một server giúp tự tổ chức thư.

Bước một - Cài đặt Postfix và Cyrus

Điều đầu tiên cần làm là cài đặt postfix và Cyrus trên server riêng ảo của bạn và cách dễ nhất để làm điều này là thông qua trình cài đặt yum.

sudo yum install postfix
sudo yum install cyrus-sasl
sudo yum install cyrus-imapd

Nói Có với dấu nhắc mỗi khi nó hỏi. Khi tất cả các thành phần đã được download , bạn sẽ cài đặt postfix và cyrus.

Bước hai - Cấu hình Postfix

Ta sẽ cấu hình cả hai chương trình riêng biệt.

Đầu tiên, hãy mở file cấu hình chính của Postfix.

sudo vi /etc/postfix/main.cf

Tệp cấu hình postfix rất tiện dụng và chi tiết, cung cấp gần như tất cả thông tin cần thiết để chương trình bắt đầu và chạy trên VPS của bạn. Thật không may, điều này cũng tạo ra một file rất dài.

Mã đề xuất bên dưới, nói chung, chỉ đơn giản là một version rút gọn và không có chú thích chính xác của những gì đã có trong file . Để cài đặt nhanh sẽ cung cấp cho bạn tất cả các cấu hình cần thiết để cài đặt postfix, hãy copy paste thông tin bên dưới lên cấu hình hiện tại của Postfix. Hãy cẩn thận sửa các domain dưới myhostname và domain của tôi.

Thay thế example.com trong dòng myhostname bằng một domain được DNS chấp thuận. Đảm bảo rằng cụm từ vẫn là mail.yourdomainname tại đây

Thay thế example.com trong dòng mydomain bằng domain chính xác.

soft_bounce             = no
queue_directory         = /var/spool/postfix
command_directory       = /usr/sbin
daemon_directory        = /usr/libexec/postfix
mail_owner              = postfix

# The default_privs parameter specifies the default rights used by
# the local delivery agent for delivery to external file or command.
# These rights are used in the absence of a recipient user context.
# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
#
#default_privs = nobody

myhostname              = mail.example.com 
mydomain                = example.com

mydestination           = $myhostname, localhost
unknown_local_recipient_reject_code = 550

mynetworks_style        = host
mailbox_transport       = lmtp:unix:/var/lib/imap/socket/lmtp
local_destination_recipient_limit       = 300
local_destination_concurrency_limit     = 5
recipient_delimiter=+

virtual_alias_maps      = hash:/etc/postfix/virtual

header_checks           = regexp:/etc/postfix/header_checks
mime_header_checks      = pcre:/etc/postfix/body_checks
smtpd_banner            = $myhostname

debug_peer_level        = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path           = /usr/sbin/sendmail.postfix
newaliases_path         = /usr/bin/newaliases.postfix
mailq_path              = /usr/bin/mailq.postfix
setgid_group            = postdrop
html_directory          = no
manpage_directory       = /usr/share/man
sample_directory        = /usr/share/doc/postfix-2.3.3/samples
readme_directory        = /usr/share/doc/postfix-2.3.3/README_FILES

smtpd_sasl_auth_enable          = yes
smtpd_sasl_application_name     = smtpd
smtpd_recipient_restrictions    = permit_sasl_authenticated,
                                  permit_mynetworks,
                                  reject_unauth_destination,
                                  reject_invalid_hostname,
                                  reject_non_fqdn_hostname,
                                  reject_non_fqdn_sender,
                                  reject_non_fqdn_recipient,
                                  reject_unknown_sender_domain,
                                  reject_unknown_recipient_domain,
                                  reject_unauth_pipelining,
                                  reject_rbl_client zen.spamhaus.org,
                                  reject_rbl_client bl.spamcop.net,
                                  reject_rbl_client dnsbl.njabl.org,
                                  reject_rbl_client dnsbl.sorbs.net,
                                  permit

smtpd_sasl_security_options     = noanonymous
smtpd_sasl_local_domain         = 
broken_sasl_auth_clients        = yes

smtpd_helo_required             = yes 

Bước 3 - Hoàn thiện Postfix

Sau khi dán các cấu hình thích hợp, ta gần như đã hoàn tất việc cài đặt postfix trên server ảo của bạn .

Để ngăn chặn bất kỳ lỗi nào, ta cần thực hiện thêm hai bước nữa

Trong cấu hình, ta đã bao gồm các alias ảo với dòng, virtual_alias_maps = hash: / etc / postfix / virtual; bây giờ ta phải cài đặt database đó.

Mở file đó:

sudo vi /etc/postfix/virtual

Xóa tất cả văn bản trong file và sau đó thêm dòng đơn sau, thay thế tên user thực cho user và domain chính xác cho example.com:

user@example.com   user\@example.com

Lưu và thoát.

Theo dõi bằng lệnh thông tin này vào terminal

postmap /etc/postfix/virtual 

Thao tác này sẽ biến file ảo thành một bảng tra cứu, tạo database cần thiết để postfix hoạt động.

Cuối cùng kết thúc bằng cách sử dụng lệnh này, lệnh này sẽ tạo file mới mà postfix mong đợi trước khi gửi bất kỳ thứ gì đi.

touch /etc/postfix/body_checks 

Sau khi tất cả những gì đã hoàn thành, ta có thể hoàn thành bằng cách cấu hình Cyrus.

Bước 4 - Cấu hình Cyrus

Bước đầu tiên là thêm file smtpd.conf, định nghĩa xác thực cho Postfix / SASL, vào folder SASL:

sudo vi /etc/sasl2/smtpd.conf

Hãy tiếp tục copy paste văn bản sau vào:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 

Lưu và thoát.

Tiếp theo, ta cần cấu hình file Cyrus:

sudo vi /etc/imapd.conf

Xóa những gì hiện có trong file và dán các cấu hình bên dưới vào file , thay đổi domain và tên server mặc định để trùng với domain cá nhân của bạn.

virtdomains:		userid
defaultdomain:		example.com
servername:		example.com
configdirectory:	/var/lib/imap
partition-default:	/var/spool/imap
admins:			cyrus
sievedir:		/var/lib/imap/sieve
sendmail:		/usr/sbin/sendmail.postfix
hashimapspool:		true
allowanonymouslogin:	no
allowplaintext:		yes
sasl_pwcheck_method:	auxprop
sasl_mech_list:		CRAM-MD5 DIGEST-MD5 PLAIN
tls_cert_file:		/etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file:		/etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_ca_file:		/etc/pki/tls/certs/ca-bundle.crt

autocreatequota:		-1
createonpost:			yes
autocreateinboxfolders:		spam
autosubscribeinboxfolders:	spam 

Lưu và thoát.

Bước 5 - Cài đặt ứng dụng thư

Sự thành công! Bạn đã cài đặt Postfix và Cyrus trên VPS của bạn . Tuy nhiên, cả hai chương trình này đều liên quan đến việc xử lý email hơn là gửi nó. Ta có thể nhanh chóng cài đặt một phương thức gửi tin nhắn từ dòng lệnh.

Có nhiều loại ứng dụng client mà ta có thể sử dụng — tại đây, ta sẽ kết nối với MailX

yum install mailx

Sau khi bạn đồng ý với dấu nhắc , mailx sẽ hoàn tất quá trình cài đặt.

Sau đó, để gửi email, hãy nhập lệnh này vào terminal, thay thế bằng email mà bạn đang muốn gửi tin nhắn của bạn .

mail user@example.org

Terminal sẽ yêu cầu một dòng tiêu đề. Nhập một vào, sau đó nhấn enter. Trên các dòng tiếp theo, bạn có thể nhập tin nhắn của bạn . Nó sẽ chỉ được gửi khi bạn nhấn enter và nhập dấu chấm.

Thư của bạn sẽ trông giống như sau:

[root@demoserver ~]# mail user@example.org
Subject: Hello
This is a test message.
Regards,

.
EOT 

Xin chúc mừng — bây giờ bạn đã cài đặt postfix và email đang chạy. Bạn đã sẵn sàng sử dụng server riêng ảo của bạn để gửi email.

Bởi Etel Sverdlov

Tags:

Các tin liên quan

Cách cài đặt Ruby on Rails trên CentOS 6
2012-05-25