
이메일 제공업체인 Google을 없애고 전용 서버에 완전한 이메일 솔루션을 설치하고 싶습니다. 문제: 설정이 가능한 한 간단하여 문제가 있을 경우 모든 것을 다시 설정하는 것이 고통스럽지 않기를 바랍니다.
전제조건
- 컴퓨터에는 사용자 계정이 하나만 있습니다.
- (이름
diti
; 기본 이메일[email protected]
; 다른 별칭은 리디렉션되지만 이메일 클라이언트는 다른 별칭을 관리하고 그에 따라 반응할 수 있습니다)
- (이름
- MySQL을 사용하지 않는 것이 좋습니다.
- (데이터 백업 및 복원의 경우 및 단순성을 위해 기능적인 이메일 서버를 얻기 전에 MySQL을 설치 및 보호하지 않는 것이 더 좋습니다)
- 이메일은 외부에서 접속(IMAP, SMTP)이 가능합니다.
- IMAP 및 SMTP 인증을 위한 SSL/TLS 암호화(저는CA인증서인증서가 중요합니까?).
저는 단순성, IMAP/SMTP 액세스, 안전한 인증이 Google을 떠나고 싶어하는 모든 사람이 원하는 '기본' 기능이라고 믿습니다. 제가 착각하고 있고 더 간단한 솔루션(예: 모든 것이 포함된 ownCloud와 유사한 솔루션)이 있다면 기꺼이 듣겠습니다.
Postfix와 Dovecot의 조합이 좋은 방법이 될 것 같습니다. 그건 그렇고, 나는 데비안을 실행하고 있습니다.
지금까지 알아본 정보는
- ㅏ프랑스 기사설명매우완벽하고 안전한 이메일 솔루션을 설정하는 방법에 대해 자세히 설명합니다. 길고, 유지 관리가 어렵고, 백업 및 복원이 더 어렵습니다. 게다가 DNS 캐시가 필요한가요?
- Gentoo wiki(
Complete_Virtual_Mail_Server/SSL_Certificates
페이지)에서는 CAcert 인증서 사용에 대해 언급하지만 이에 대해 명확하지 않으며(모든SubjectAltName
하위 도메인이 필요한가요?) Postfix를 사용하지도 않습니다(Courier가 더 어렵다고 읽었습니다). - 자체 호스팅에 대한 다양한 튜토리얼은 모두 다르며 자신이 수행하는 작업을 거의 설명하지 않으며왜(원격 액세스가 가능한 자체 호스팅 이메일은 설정이 복잡해 보이는데 왜 "인형"에 대한 설명 없이 명령 목록만 제공합니까?)
제가 올바른 질문을 하였기를 바라며, 그 질문이 너무 어리석지 않기를 바랍니다.
답변1
아니요. 서버에 DNS 캐시를 설정할 필요는 없습니다. 서버~해야 한다근처 어딘가에 있는 캐싱 DNS 확인자를 사용하지만 대부분의 호스팅 회사는 이미 전체 데이터 센터에 대해 자체 확인자를 실행하고 기본적으로 이를 사용하도록 서버를 구성합니다.
기본적으로 Postfix와 Dovecot은 모두 로컬 계정을 사용합니다. 라는 Linux 계정이 있는 경우
diti
해당 계정으로 Dovecot에 로그인할 수 있으며 Postfix를 다음과 같이 설정할 수 있습니다.Dovecot에 대한 SMTP 로그인 확인.모든 메일을 동일한 계정으로 보내는 데 문제가 없다면 일반 별칭(예: )을 설정하여 메일을 해당 계정 으로
/etc/aliases
리디렉션 할 수 있습니다 .kra@
postmaster@
diti
모든 subjectAltName은 필요하지 않습니다. 필요한 유일한 것은 실제로 사용하려는 도메인 이름입니다.사용, 예를 들어
mail.diti.me
또는glaux.diti.me
. 도메인 자체(예: )를 포함해야 하는지 잘 모르겠습니다diti.me
.
다음에서는 도메인에 이 서버를 가리키도록 구성된 MX 레코드가 이미 있다고 가정합니다. 나는 일반적으로 구성을 합리적으로 명확하게 유지하려고 노력합니다. 왜냐하면 몇 달이 지나면 항상 "이게 도대체 무슨 용도인지" 궁금해지기 때문입니다.
1.먼저 postfix
및 dovecot-imapd
패키지를 설치합니다. Postfix 구성에 대한 메시지가 표시되면 "인터넷 사이트" 옵션을 선택하고 diti.me
메일 이름을 입력합니다. 이 시점에서는 이미 메일을 로 보내고 받을 수 [email protected]
있으며 아마도 IMAP에 연결할 수도 있습니다.
그러나 아직 SSL이 없고 외부에서 SMTP를 통해 메일을 보내는 것을 허용하지 않으며 메일을 저장할 수 있는 정상적인 장소도 없습니다(기본값은 의 mbox 파일로 /var/mail
, 이는 신뢰할 수 없고 특히 IMAP의 경우 성능이 좋지 않습니다).
2.SSL 인증서가 이미 있는 경우 이를 에 입력 /etc/ssl/private/diti.me.pem
하고 개인 키를 에 입력합니다 /etc/ssl/private/diti.me.key
. 정확한 위치는 실제로 중요하지 않지만 /etc/ssl/private
데비안이 위치를 유지하는 곳입니다.
ssl-cert
Postfix와 Dovecot이 해당 파일에 액세스할 수 있도록 두 파일 모두 그룹이 소유하고 읽을 수 있는지 확인하세요 . 또한 를 사용하여 두 데몬의 계정을 해당 그룹에 추가합니다 gpasswd -a
.
삼.데비안의 자동 생성된 Postfix main.cf
도 약간 혼란스럽기 때문에 정리된 최소 버전을 게시하겠습니다.
# 서버정보 내도메인 = diti.me myorigin = $mydomain # 다양한 다른 매개변수는 이 두 변수를 기본값으로 사용합니다. # SMTP 서비스 smtpd_tls_security_level = 5월 smtpd_tls_cert_file = /etc/ssl/private/diti.me-mail.pem smtpd_tls_key_file = /etc/ssl/private/diti.me-mail.key # 이렇게 하면 들어오는 모든 SMTP 연결에서 STARTTLS를 사용할 수 있습니다. # `postfix`를 `ssl-cert` 그룹에 추가해야 합니다. # /etc/ssl/private.conf에 있는 파일에 액세스합니다. # 정책 mynetworks = [::1]/128, 127.0.0.0/8, [::ffff:127.0.0.0]/104 # 이것은 "신뢰할 수 있는" 것으로 간주되고 사용할 수 있는 IP 주소를 나열합니다. # 외부(즉, 다른 도메인)로 메일을 보내기 위한 서버입니다. 에 의해 # 기본적으로 "localhost"만 허용됩니다. 그 외 모든 사람은 다음 주소로만 메일을 보낼 수 있습니다. $mydestination의 #개 도메인이 허용됩니다. mydestination = $mydomain, 로컬호스트 # 모든 IP 주소에서 메일을 수락할 도메인 목록입니다. # 배달 alias_maps = 해시:/etc/aliases # 이는 시스템 전체의 별칭을 유지합니다. 명시적으로 설정하는 것이 좋습니다. # 기본값에는 때때로 NIS가 포함되는데, 이는 말이 되지 않습니다. 수신자_구분자 = + # 첫 번째 '+'에서 주소의 로컬 부분을 분할하도록 접미사에 지시합니다. # 소위 "플러스 주소 지정": diti+foo@으로 보낸 메일이 배달됩니다. # diti@ 메일함으로.
Dovecot의 경우 데비안은 기본 예제 구성을 사용하며 각 옵션이 설명되어 있으면 충분합니다.
구성을 변경할 때마다 postfix reload
및/또는 를 사용하여 데몬을 다시 로드하세요 doveadm reload
.
4.기본적으로 Postfix는 메일을 /var/mail/$USER
다음 주소로 전달합니다.m박스형식은 충분히 간단하지만(텍스트 편집기로 쉽게 볼 수 있음) 메시지를 이동하거나 "읽음" 또는 "읽지 않음"으로 표시할 때마다 전체 파일을 다시 작성해야 하기 때문에 특히 IMAP의 경우 많은 문제가 있습니다. ".
Maildir을 사용하도록 두 데몬을 모두 변경합니다. (다른 형식도 있지만 MTA, MDA, IMAP 서버 등에 특정한 경향이 있습니다. Maildir은 널리 지원됩니다.)
에서 /etc/postfix/main.cf
'배달' 섹션에 다음을 추가합니다.
home_mailbox = 메일/
다음에서 동일한 경로를 사용하도록 Dovecot을 구성합니다 /etc/dovecot/conf.d/10-mail.conf
.
mail_location = maildir:~/메일
5.어떤 시점에서는 Doveco에도 SSL을 사용하도록 지시해야 합니다. 관련 설정은 에 있습니다 /etc/dovecot/conf.d/10-ssl.conf
. 실제로 Dovecot용 데비안 패키지는이미대부분 쓸모가 없는 자체 서명된 인증서를 사용하지만 SSL을 사용합니다. 자체 인증서를 사용하도록 구성합니다.
SSL = 예 ssl_cert = </etc/ssl/private/diti.me-mail.pem ssl_key = </etc/ssl/private/diti.me-mail.key
6.이제 외부로 메일을 보내고 받을 수 있습니다. 보낼 수 있도록 Postfix를 구성하는 것이 여전히 필요합니다.~에서SMTP를 통해 메일 클라이언트와 연결하여 외부에서.
먼저 Postfix에 Dovecot을 사용하여 로그인을 확인하도록 지시하세요. 다음 지침은 대부분 다음에서 가져온 것입니다.Dovecot의 위키.
Dovecot은 /etc/dovecot/conf.d/10-master.conf
Postfix가 액세스할 수 있는 소켓을 수신해야 합니다. 기본 구성에는 이미 주석 처리된 예가 있습니다.
서비스 인증 { ... unix_listener /var/spool/postfix/private/auth { 모드 = 0660 사용자 = 접미사 그룹 = 접미사 } ... }
그리고 Postfix는 그것을 사용해야 합니다 – /etc/postfix/main.cf
다시 한번:
# 인증 smtpd_sasl_type = 비둘기장 smtpd_sasl_path = 개인/인증 # 다른 가능한 유형은 Cyrus SASL 'saslauthd'의 경우 "cyrus"입니다. # 데몬. 여기서는 SASL 서버로 잘 작동하는 Dovecot을 선택했습니다. # 두 데몬 모두에 대한 인증을 처리하도록 하는 것이 더 간단합니다.
7.위의 내용은 어디에도 설정되지 않았습니다 smtpd_sasl_auth_enable
. 현재 협약은~ 아니다SMTP 인증을 전역적으로 활성화하지만 tcp/25를 "서버 간" SMTP 포트로만 유지합니다. 한편, 사용자의 새 메시지는 인증이 필요한 "메일 제출" 포트인 tcp/587의 SMTP를 통해 수락됩니다. 일부 ISP는 스팸 때문에 tcp/25를 차단하기도 하지만 일반적으로 보안이 더 잘 유지되는 tcp/587을 열어 둡니다.
/etc/postfix/master.cf
SASL 인증을 사용하여 에서 "제출" 포트를 활성화합니다 . 기본값에는 master.cf
주석 처리를 취소해야 하는 필수 행이 이미 포함되어 있습니다.일부그중에는 여전히 제외되어야 합니다.
제출 inet n - - - - smtpd -o syslog_name=접미사/제출 -o smtpd_tls_security_level=암호화 # "제출" 포트는 선택 사항이 아닌 TLS를 요구합니다. -o smtpd_sasl_auth_enable=예 # ...또한 사용자가 로그인할 수 있도록 허용합니다. # -o smtpd_reject_unlisted_recipient=아니요 # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # 이 네 가지 옵션은 주석 처리해 둘 수 있습니다. 활성화된 경우 # 'main.cf'에 사용자 정의 제한 규칙을 설정해야 하지만 # 기본 설정은 괜찮습니다. -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # 기본 receive_restrictions는 IP 주소를 확인하고 # $mydestination. "제출" 포트의 경우 모든 것을 허용합니다. # 사용자가 로그인되어 있지만 모든 익명 메일을 거부합니다. -o milter_macro_daemon_name=ORIGINATING # 나중에 DKIM 프록시 등을 설정하기로 결정한 경우 이를 통해 # 사용자가 제출한 메일과 수신된 메일을 구별하기 위해 사용됩니다. # 기본 구성의 일부이므로 여기에도 포함됩니다.
이전 스타일의 "암시적 SSL" 포트(tcp/465)가 필요한 메일 클라이언트가 있는 경우 해당 행 smtps
의 주석 처리를 해제할 수 있습니다 master.cf
. 그렇게 하는 경우 설정을 submission
포트 설정과 유사하게 유지하십시오.
8.마지막으로 을 편집하여 계정의 별칭을 설정합니다 /etc/aliases
. 별칭은 postmaster
기본적으로 필수입니다. 메일 서버에 문제가 있는 경우 연락 지점입니다. 포인팅 root
및 기타 유사한 별칭도 좋습니다.
기본 형식은 aliases(5)에 설명되어 있습니다.
postmaster: root
admin: root
root: diti
kra: diti
이 파일을 편집할 때마다 해시된 데이터베이스를 업데이트하려면 postalias
또는 를 사용하세요 .newaliases
/etc/aliases.db
이제 diti
Postfix와 Dovecot에 관한 한 하나의 계정이 여전히 호출되지만 보낸 메일 kra@...
도 그곳으로 전달됩니다. 일부 메일 클라이언트(예: Thunderbird)는 단일 메일 서버에 대해 여러 "ID" 또는 "페르소나"를 지원하므로 다양한 "보낸 사람:" 주소 중에서 선택할 수 있습니다.
그게 다야. 나중에 procmail, 가상 도메인, SPF 및/또는 DKIM에 대한 지침을 가지고 돌아올 수도 있습니다.