웹사이트 검색

CentOS 6에 Postfix를 설치하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 CentOS 버전에 대해 설명합니다. 현재 CentOS 6을 실행하는 서버를 운영 중인 경우 지원되는 CentOS 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

이유:

대신 참조:

포스트픽스 소개

Postfix는 이메일을 라우팅하고 전달하는 무료 오픈 소스 메일 전송 에이전트입니다. Cyrus는 메일 자체를 정리하는 데 도움을 주는 서버입니다.

1단계 — Postfix 및 Cyrus 설치

가장 먼저 해야 할 일은 가상 사설 서버에 postfix와 Cyrus를 설치하는 것입니다. 가장 쉬운 방법은 yum 설치 프로그램을 이용하는 것입니다.

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

물어볼 때마다 프롬프트에 예라고 대답합니다. 모든 구성 요소가 다운로드되면 postfix와 cyrus가 설치됩니다.

2단계 — Postfix 구성

두 프로그램을 별도로 구성할 예정입니다.

먼저 Postfix의 기본 구성 파일을 엽니다.

sudo vi /etc/postfix/main.cf

postfix 구성 파일은 매우 편리하고 상세하며 VPS에서 프로그램을 시작하고 실행하는 데 필요한 거의 모든 정보를 제공합니다. 불행히도 이것은 또한 매우 긴 파일을 만듭니다.

아래에 제안된 코드는 대부분의 경우 이미 파일에 있는 것의 단축되고 올바르게 주석이 제거된 버전입니다. Postfix를 설정하는 데 필요한 모든 구성을 제공하는 빠른 설정을 위해 Postfix의 현재 구성에 아래 정보를 복사하여 붙여넣으십시오. myhostname 및 my domain 아래의 도메인 이름을 수정하도록 주의하십시오.

myhostname 줄의 example.com을 DNS 승인 도메인 이름으로 바꿉니다. 구문이 여전히 mail.yourdomainnamehere인지 확인하십시오.

mydomain 줄의 example.com을 올바른 도메인 이름으로 바꿉니다.

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 

3단계 — Postfix 마무리

적절한 구성을 붙여넣고 나면 가상 서버에서 postfix 설정이 거의 완료됩니다.

오류를 방지하려면 두 단계를 더 실행해야 합니다.

구성에서 가상 별칭을 virtual_alias_maps = hash:/etc/postfix/virtual; 줄과 함께 포함했습니다. 이제 해당 데이터베이스를 설정해야 합니다.

해당 파일을 엽니다.

sudo vi /etc/postfix/virtual

파일 내의 모든 텍스트를 삭제한 후 다음 한 줄을 추가하여 user를 실제 사용자 이름으로, example.com을 올바른 도메인으로 대체합니다.

user@example.com   user\@example.com

저장 및 종료.

이것을 터미널에 입력하여 후속 조치를 취하십시오.

postmap /etc/postfix/virtual 

이렇게 하면 가상 파일이 조회 테이블로 바뀌고 postfix가 작동하는 데 필요한 데이터베이스가 생성됩니다.

마지막으로 이 명령을 사용하여 결론을 내립니다. 이 명령은 postfix가 무언가를 보내기 전에 예상하는 새 파일을 생성합니다.

touch /etc/postfix/body_checks 

모든 작업이 완료되면 Cyrus를 구성하여 마무리할 수 있습니다.

4단계 - Cyrus 구성

첫 번째 단계는 Postfix/SASL에 대한 인증을 정의하는 smtpd.conf 파일을 SASL 디렉터리에 추가하는 것입니다.

sudo vi /etc/sasl2/smtpd.conf

계속해서 다음 텍스트를 복사하여 붙여넣으십시오.

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

저장 및 종료.

다음으로 Cyrus 파일을 구성해야 합니다.

sudo vi /etc/imapd.conf

현재 파일에 있는 내용을 삭제하고 아래 구성을 파일에 붙여넣어 개인 도메인 이름과 일치하도록 기본 도메인 및 서버 이름을 변경합니다.

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 

저장 및 종료.

5단계 - 메일 클라이언트 설치

성공! VPS에 Postfix와 Cyrus를 설치했습니다. 그러나 이 두 프로그램 모두 이메일을 보내는 것이 아니라 처리하는 것과 관련이 있습니다. 명령줄에서 메시지를 보내는 방법을 빠르게 설치할 수 있습니다.

우리가 사용할 수 있는 다양한 클라이언트가 있습니다. 여기에서 MailX와 연결하겠습니다.

yum install mailx

프롬프트에 동의하면 mailx가 설치를 완료합니다.

그런 다음 이메일을 보내려면 이 명령을 터미널에 입력하고 메시지를 보내려는 이메일로 대체합니다.

mail user@example.org

터미널에서 제목을 묻습니다. 하나를 입력한 다음 Enter 키를 누릅니다. 다음 줄에 메시지를 입력할 수 있습니다. 엔터를 누르고 마침표를 입력한 경우에만 전송됩니다.

귀하의 편지는 다음과 같이 보일 것입니다.

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

.
EOT 

축하합니다. 이제 postfix가 설치되었고 이메일이 실행되었습니다. 이제 가상 사설 서버를 사용하여 이메일을 보내도록 설정되었습니다.