이 시리즈의 이전 기사에서는 phpMyAdmin을 사용하여 메일 서버 데이터베이스를 안전하게 설정하고 관리하는 방법을 설명했습니다.
이제 이메일을 보내고 받을 수 있도록 내부 프로그램을 구성할 차례입니다. 접미사 그리고 비둘기장 (보내는 이메일과 들어오는 이메일을 각각 처리하기 위해).
구성을 시작하기 전에 접미사, 매뉴얼 페이지를 살펴보는 것이 좋습니다. 여기, "라는 제목의 섹션을 특별히 강조합니다.새로운 Postfix 사용자를 위한 정보“. 그렇게 하면 이 튜토리얼을 따라 하기가 더 쉬울 것입니다.
간단히 말해서 두 가지 구성 파일이 있다는 것을 알아야 합니다. 접미사:
입력 /etc/postfix/main.cf
, 다음 행을 찾아(또는 필요한 경우 추가) 아래 표시된 값과 일치하는지 확인하십시오.
메인.cf
append_dot_mydomain = 아니요. 비프 = 아닙니다. config_directory = /etc/postfix.conf dovecot_destination_recipient_limit = 1. message_size_limit = 4194304. readme_directory = 아니요. smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache. smtpd_banner = $myhostname ESMTP $mail_name (CentOS) smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem. smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem. smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache. smtpd_use_tls = 예. virtual_transport = 비둘기장. smtpd_sasl_type = 비둘기장. smtpd_sasl_path = 개인/인증.
다음 세 가지 설정이 특히 중요합니다. 노란색으로 표시된 파일에서 Postfix의 액세스를 구성합니다. Domains_tbl, 사용자_tbl, 그리고 Alias_tbl 테이블:
virtual_mailbox_domains = mysql:/etc/postfix/mariadb-vdomains.cf virtual_mailbox_maps = mysql:/etc/postfix/mariadb-vusers.cf virtual_alias_maps = mysql:/etc/postfix/mariadb-valias.cf
파일을 만들고 다음 내용을 삽입하기만 하면 위에서 다른 파일 이름을 선택할 수 있습니다. 각각의 경우 교체 너의 비밀번호 선택한 비밀번호로 DBA 사용자 1 부, 또는 다음을 사용할 수도 있습니다. 마리아DB 아래 사용자 및 암호에 대한 루트 자격 증명.
또한 이메일 서버 데이터베이스와 에서 생성된 테이블과 정확히 동일한 이름을 사용해야 합니다 1 부.
입력 /etc/postfix/mariadb-vdomains.cf
:
mariadb-vdomains.cf
사용자 = DBA. 비밀번호 = 귀하의 비밀번호. 호스트 = 127.0.0.1. DB이름 = 이메일서버_db. 쿼리 = Domains_tbl WHERE DomainName='%s'에서 1 선택.
입력 /etc/postfix/mariadb-vusers.cf
:
mariadb-vusers.cf
사용자 = DBA. 비밀번호 = 귀하의 비밀번호. 호스트 = 127.0.0.1. DB이름 = 이메일서버_db. 쿼리 = SELECT 1 FROM Users_tbl WHERE 이메일='%s'
입력 /etc/postfix/mariadb-valias.cf
:
mariadb-valias.cf
사용자 = DBA. 비밀번호 = 귀하의 비밀번호. 호스트 = 127.0.0.1. DB이름 = 이메일서버_db. 쿼리 = Alias_tbl WHERE 소스에서 대상 선택 = '%s'
마지막으로 이 파일에 대한 권한을 다음으로 변경하는 것을 잊지 마십시오. 640:
# chmod 640 /etc/postfix/mariadb-vdomains.cf. # chmod 640 /etc/postfix/mariadb-vusers.cf. # chmod 640 /etc/postfix/mariadb-valias.cf.
그리고 사용자에 대한 소유권 뿌리 그리고 그룹 접미사:
# chown 루트: 접미사 /etc/postfix/mariadb-vdomains.cf. # chown 루트: 접미사 /etc/postfix/mariadb-vusers.cf. # chown 루트: 접미사 /etc/postfix/mariadb-valias.cf.
다음으로 보안 연결을 활성화하려면 다음 설정이 주석 처리되지 않았는지(또는 필요한 경우 추가되었는지) 확인해야 합니다. /etc/postfix/master.cf
:
마스터.cf
제출 inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_recipient_restrictions=permit_sasl_authenticated, 거부 -o milter_macro_daemon_name=원본 중. 픽업 유닉스 n - n 60 1 픽업. 정리 유닉스 n - n - 0 정리. qmgr 유닉스 n - n 300 1 qmgr. tlsmgr 유닉스 - n 1000? 1tlsmgr. 유닉스 재작성 -- n -- 사소한 재작성. 바운스 유닉스 - - n - 0 바운스. 유닉스 - n - 0 바운스를 연기합니다. 추적 유닉스 - - n - 0 바운스. 유닉스 검증 - - n - 1 검증. 플러시 유닉스 n - 1000? 0 플러시. 프록시맵 유닉스 - - n - - 프록시맵. proxywrite 유닉스 - - n - 1 프록시맵. smtp 유닉스 -- n -- smtp. 릴레이 유닉스 - - n - - smtp showq 유닉스 n - n - - showq. 오류 유닉스 - - n - - 오류. 유닉스 - - n - - 오류를 다시 시도하십시오. 유닉스 폐기 - - n - - 폐기. 로컬 유닉스 - n n - - 로컬. #가상 유닉스 - n n - - 가상. lmtp 유닉스 -- n -- lmtp. 모루 유닉스 - - n - 1 모루. scache 유닉스 - - n - 1 scache.
메모: 로 시작하는 줄의 들여쓰기 -영형
옵션이 중요합니다. 그렇지 않으면 접미사 검사가 오류를 반환합니다.
변경 사항을 저장하기 전에 파일 맨 아래에 다음 줄을 추가합니다.
마스터.cf
dovecot 유닉스 - n n - - 파이프 플래그=DRhu 사용자=vmail: vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
이 시점에서 Postfix가 데이터베이스 테이블과 우리가 생성한 도메인, 계정 및 별칭에 액세스할 수 있는지 확인하는 것이 중요합니다. 1 부.
이를 위해 우리는 다음을 사용할 것입니다. 우편 지도 명령, Postfix가 작업 중에 조회할 테이블과의 통신을 테스트하는 유틸리티이지만 무엇보다도 먼저 postfix를 다시 시작해야 합니다.
# systemctl 접미사 재시작. # postmap -q linuxnewz.com mysql:/etc/postfix/mariadb-vdomains.cf. # postmap -q someotherdomain.com mysql:/etc/postfix/mariadb-vdomains.cf. # 포스트맵 -q [이메일 보호됨] mysql:/etc/postfix/mariadb-vusers.cf. # 포스트맵 -q [이메일 보호됨] mysql:/etc/postfix/mariadb-vusers.cf. # 포스트맵 -q [이메일 보호됨] mysql:/etc/postfix/mariadb-vusers.cf. # 포스트맵 -q [이메일 보호됨] mysql:/etc/postfix/mariadb-valias.cf.
아래 이미지에서 데이터베이스의 기존 레코드에 대해 1 반환됩니다. 그렇지 않으면 화면에 아무 것도 표시되지 않습니다. 별칭 확인의 경우 별칭이 매핑된 실제 이메일 계정이 반환됩니다.
참고로 우리는 아니다 각 이메일 계정에 대해 설정된 자격 증명에 대해 인증하기 위해 Postfix가 데이터베이스에서 해당 레코드를 감지하는 기능만 테스트하고 있습니다.
따라서 위와 다른 출력이 나오면 유효한 사용자/비밀번호 쌍을 사용하고 있는지 확인하십시오. mariadb-vdomains.cf, mariadb-vusers.cf, 그리고 mariadb-valias.cf (또는 해당 파일을 호출하도록 선택한 항목).
로 IMAP / 팝3 서버에서 Dovecot은 다음을 통해 사용자에게 방법을 제공합니다. 메일 사용자 에이전트 (무아, 또는 클라이언트라고도 함), 천둥새 또는 시야, 메일에 액세스하는 몇 가지 예를 들면 다음과 같습니다.
시작하려면 이메일을 처리할 사용자와 그룹을 만들어 보겠습니다(이메일 계정은 시스템 사용자와 연결되어 있지 않기 때문에 필요합니다). 다른 것을 사용할 수 있습니다. UID 그리고 GID (이외의 5000 아래에서 하는 것처럼) 사용 중이 아니고 높은 숫자인 한:
# groupadd -g 5000 vmail # useradd -g vmail -u 5000 vmail -d /home/vmail -m.
Dovecot에 대한 설정은 여러 구성 파일로 분할됩니다(다음 줄에 주석이 없는지 확인하고/하거나 아래 표시된 설정과 일치하도록 편집).
입력 /etc/dovecot/dovecot.conf
:
비둘기장.cf
!include_try /usr/share/dovecot/protocols.d/*.protocol. 프로토콜 = imap pop3 lmtp. !conf.d/*.conf를 포함합니다. !include_try local.conf.
입력 /etc/dovecot/conf.d/10-auth.conf
(SQL을 통한 인증만 활성화하고 다른 인증 방법은 주석 처리하지 않음):
10-auth.conf
disable_plaintext_auth = 예. auth_mechanisms = 일반 로그인. !auth-sql.conf.ext를 포함합니다.
입력 /etc/dovecot/conf.d/auth-sql.conf.ext
(우리는 이메일을 다음 디렉토리에 저장합니다. yourdomain.com 내부에 /home/vmail, 존재하지 않는 경우 생성해야 합니다. 우리의 경우 우리는 mkdir /home/vmail/linuxnewz.com 해당 도메인의 이메일 관리):
인증-sql.conf.ext
passdb { 드라이버 = SQL 인수 = /etc/dovecot/dovecot-sql.conf.ext. } userdb { 드라이버 = 정적 인수 = uid=vmail gid=vmail 홈=/home/vmail/%d/%n/Maildir. }
사용자 계정에 대한 개별 받은 편지함은 해당 계정에 대한 이메일이 처음 수신될 때 생성됩니다.
입력 /etc/dovecot/conf.d/10-mail.conf
:
10-mail.conf
mail_location = maildir:/home/vmail/%d/%n/Maildir. 네임스페이스 받은 편지함 { 받은 편지함 = 예. } mail_privileged_group = 메일. mbox_write_locks = fcntl.
입력 /etc/dovecot/conf.d/10-master.conf
:
10-마스터.conf
서비스 imap-login { inet_listener imap { 포트 = 143 } inet_listener imaps { } } 서비스 pop3-login { inet_listener pop3 { 포트 = 110 } inet_listener pop3s { } } 서비스 lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { 모드 = 0600 사용자 = 접미사 그룹 = 접미사 } } 서비스 인증 { unix_listener /var/spool/postfix/private/auth { 모드 = 0666 사용자 = 접미사 그룹 = 접미사 } unix_listener auth-userdb { 모드 = 0600 사용자 = vmail } 사용자 = dovecot. } 서비스 인증 작업자 { 사용자 = vmail. } 서비스 사전 { unix_listener 사전 { } }
입력 /etc/dovecot/conf.d/10-ssl.conf
(CA에서 서명한 인증서를 사용하려는 경우 인증서와 키 경로를 교체하십시오):
10-ssl.conf
SSL = 필수입니다. SSL_인증서 =입력
/etc/dovecot/dovecot-sql.conf.ext
데이터베이스 정보와 에서 생성된 관리 사용자의 자격 증명을 입력합니다. 1 부.중요한: 비밀번호에 별표가 포함된 경우
(#)
, 아래 예에 표시된 대로 연결 문자열을 묶어야 합니다.dovecot-sql.conf.ext
드라이버 = mysql. 연결 = "호스트=127.0.0.1 dbname=EmailServer_db 사용자=dba 암호=PassWith#여기" default_pass_scheme = SHA512-CRYPT. password_query = 사용자로 이메일 선택, 비밀번호 FROM Users_tbl WHERE Email='%u';또한 Dovecot에 대한 로깅을 Postfix와 별도로 구성할 수 있습니다.
/etc/dovecot/conf.d/10-logging.conf
:log_path = /var/log/dovecot.log.마지막으로 사용자가 Dovecot 로그에 액세스할 수 있는지 확인합니다. 비둘기장:
# chown vmail: dovecot /var/log/dovecot.log. # chmod 660 /var/log/dovecot.log.Postifix 구성 확인 및 수정 및 방화벽에서 SMTP, POP3 및 IMAP 활성화
Postfix 및/또는 Dovecot을 구성하는 동안 모든 문제를 제출하는 대신 문제가 발생하면 도움을 요청하는 구성 파일 중 구성 요약을 얻을 수 있습니다(주석 없는 행만). 와 함께:
# postconf –n # /etc/postfix/main.cf에 대한 요약. # postconf –M # /etc/postfix/master.cf에 대한 요약. # doveconf –n # Dovecot의 모든 구성 파일 요약.또한 이메일 받은 편지함을 다음에서 읽을 수 있는지 확인하십시오. vmail 뿐:
# chown –R vmail: vmail /home/vmail.구성 파일은 다음에서도 읽을 수 있어야 합니다. vmail 그리고 비둘기장 사용자:
# chown -R vmail: dovecot /etc/dovecot # chmod -R o-rwx /etc/dovecot마지막으로 SMTP, 팝3, 그리고 IMAP 방화벽을 통해:
# 방화벽 cmd --add-port=143/tcp. # 방화벽 cmd --add-port=143/tcp --permanent. # 방화벽 cmd --add-port=110/tcp. # 방화벽 cmd --add-port=110/tcp --permanent. # 방화벽 cmd --add-port=587/tcp. # 방화벽 cmd --add-port=587/tcp --permanent.Thunderbird를 Postfix용 이메일 클라이언트로 구성
이메일 통신에 사용되는 포트에 대해 방화벽을 통해 보안 액세스를 확보했으면 이메일 클라이언트를 구성할 차례입니다. 사용 [이메일 보호됨] 및 해당 비밀번호와 함께 mail.linuxnewz.com IMAP(또는 POP3) 및 SMTP 서버로서 다음과 같은 계정과 이메일을 주고받을 준비가 되었습니다.
신뢰할 수 있는 타사 CA에서 서명하지 않은 인증서를 사용하고 있기 때문에 표시되는 경고 메시지를 무시해도 됩니다.
간단한 테스트 이메일을 작성하고 보내기를 클릭해 보겠습니다.
나가는 서버에 대해 자체 서명된 인증서를 수락하라는 메시지가 표시되면 이전과 같이 이전에 확인합니다.
마지막으로 대상 이메일로 이동하여 방금 보낸 이메일을 받았는지 확인합니다. 그렇다면 답장하고 원본 이메일 받은 편지함으로 다시 배달되는지 확인하십시오(그렇지 않으면 Postfix 로그를 참조하십시오. /var/log/maillog 또는 Dovecot 로그 /var/log/dovecot.log 문제 해결 정보):
이제 Postfix 및 Dovecot 이메일 서버가 작동하고 이메일을 보내고 받을 수 있습니다.
요약
이 기사에서는 Linux 서버에서 이메일 트래픽을 처리하도록 Postfix 및 Dovecot을 구성하는 방법을 설명했습니다. 이 문서에 표시된 대로 작동하지 않는 경우 시간을 내서 확인하십시오. 접미사 그리고 비둘기장 선적 서류 비치.
Postfix 메일 서버를 설정하는 것은 쉬운 일이 아니지만 모든 시스템 관리자에게 보람 있는 경험입니다.
문서를 살펴본 후에도 여전히 어려움을 겪고 있는 경우 접미사 및 / 또는 비둘기장, 아래 의견 양식을 사용하여 메모를 남겨주시면 기꺼이 도와드리겠습니다. 검색된 대로 Postfix 및 Dovecot 구성을 온라인 스토리지 서비스에 업로드하는 것을 잊으십시오. 사용 postconf 그리고 비둘기 이 문서에 설명된 대로).