메인 콘텐츠로 이동하기
  1. 서버구축기/

Multi-Domain

·3 분·

도메인 통합 #

8개의 도메인을 통합하면서 기록 해 두었던 내용입니다.
가상계정을 이용하여 구성하였습니다.
로그인 id가 user1@domain2.com형식으로 사용됩니다.
그동안 Ai와 작업하면서 꼼꼼하게 기록한다고 했는데
아마도 빠진 부분이 있을 수 있습니다.
중요한 내용은 대부분 기록되었으니
혹시나 작업하다 막히는 부분은
Ai의 도움을 받으면 쉽게 해결이 되리라 생각합니다.
초보 분들에게 도움이 되었으면 합니다.

vmail 계정 확인 #

 없으면 먼저 생성하세요.  id vmail

Dovecot 핵심 설정 #

 sudo doveconf -n | sed -n ‘/userdb {/,/}/p’
 반드시 아래가 있어야 합니다.
 userdb(없으면 LMTP temp_fail 발생)

 userdb {
   driver = static
   args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
 }

/etc/dovecot/conf.d/10-auth.conf #

 sudo nano /etc/dovecot/conf.d/10-auth.conf
 아래 내용 입력(중복은 삭제 혹은 주석처리, 없는 것은 추가)
 disable_plaintext_auth = no
 auth_username_format = %Lu
 auth_mechanisms = plain login

 passdb {
   driver = passwd-file
   args = scheme=SHA512-CRYPT /etc/dovecot/passwd
 }

 userdb {
   driver = static
   args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
 }

Postfix main.cf 설정 확인 #

 sudo nano /etc/postfix/main.cf
 아래 설정이 반드시 있어야 합니다.
 가상 도메인 목록(8개 도메인 리스트)
 virtual_mailbox_domains = hash:/etc/postfix/virtual_domains
 가상 사용자 목록(user1@domain2.com … 리스트)
 virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
 Dovecot에게 배달을 맡기는 설정(LMTP)
 virtual_transport = lmtp:unix:private/dovecot-lmtp
 메일이 저장되는 최상위 통로
  virtual_mailbox_base = /var/mail/vhosts

main.cf 설정 연결 #

 sudo nano /etc/postfix/main.cf
 아래 내용 순서대로 추가 또는 수정
 sender_login 보호(주소 위조 방지)
 smtpd_sender_login_maps = hash:/etc/postfix/sender_login_maps

 smtpd_client_restrictions =
     permit_mynetworks,
     permit_sasl_authenticated,
     reject_unauth_pipelining,
     reject_unknown_client_hostname,
     reject_rbl_client zen.spamhaus.org(선택사항)

 smtpd_sender_restrictions =
     reject_sender_login_mismatch,
     reject_non_fqdn_sender,
     reject_unknown_sender_domain,
     permit_sasl_authenticated,
     permit_mynetworks

 smtpd_recipient_restrictions =
     permit_mynetworks,
     permit_sasl_authenticated,
     reject_unauth_pipelining,
     reject_non_fqdn_recipient,
     reject_unknown_recipient_domain,
     reject_unknown_client_hostname,
     reject_rbl_client zen.spamhaus.org,(선택사항)
     reject_unauth_destination

sudo nano /etc/dovecot/conf.d/10-master.conf
 아래 내용을 입력하세요.
 service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     mode = 0600
     user = postfix
     group = postfix
   }
 }

submission(587) 포트 설정 #

 sudo nano /etc/postfix/master.cf
 submission inet n - y - - smtpd
   -o syslog_name=postfix/submission
   -o smtpd_tls_security_level=encrypt
   -o smtpd_sasl_auth_enable=yes
   -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

 submissions inet n - y - - smtpd
   -o syslog_name=postfix/submissions
   -o smtpd_tls_wrappermode=yes
   -o smtpd_sasl_auth_enable=yes
   -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

가상 도메인 파일 #

sudo nano /etc/postfix/virtual_domains
 domain1.com OK
 domain2.com OK
sudo postmap /etc/postfix/virtual_domains

가상 사용자 매핑 시킵니다 #

 sudo nano /etc/postfix/virtual_mailbox_maps
 없으면 새로 만들고 추가하고 입력하세요.
 user1@domain1.com domain1.com/user1/  user1@domain2.com domain2.com/user1/  …  저장 후 종료하고 반영
 sudo postmap /etc/postfix/virtual_mailbox_maps

발신자 로그인 가상 사서함 계정 기반 매핑 #

 sudo nano /etc/postfix/sender_login_maps
 user1@domain1.com user1@domain1.com
 user1@domain2.com user1@domain2.com
 …
 저장 후 Postfix가 읽을 수 있도록 바이너리 인덱스 파일을 생성 sudo postmap /etc/postfix/sender_login_maps

메일 저장 폴더 생성 #

 sudo mkdir -p /var/mail/vhosts/domain2.com/user1
 권한 설정
 sudo chown -R vmail:vmail /var/mail/vhosts
 sudo chmod -R 750 /var/mail/vhosts
 아래는 선택(개별 사용자 권한 강조 시)
 sudo chmod 700 /var/mail/vhosts/domain2.com/user1
 sudo chmod g-s /var/mail/vhosts/domain2.com/user1
 확인
 ls -ld /var/mail/vhosts
 drwxr-s— vmail vmail

Dovecot 설정 #

 패스워드 생성
 doveadm pw -s SHA512-CRYPT
 비번 입렵 후 결과 복사
 복사한 해시 = {SHA512-CRYPT}…
 패스워드 파일 열기
 sudo nano /etc/dovecot/passwd
 복사한 비번 추가
 user1@domain1.com:{SHA512-CRYPT}…:1005:1005::/var/mail/vhosts/domain1.com/user1
 user1@domain2.com:{SHA512-CRYPT}…:1005:1005::/var/mail/vhosts/domain2.com/user1
 uid/gid 1005가 실제 vmail 계정과 동일해야 합니다.
 id vmail
 uid=1005(vmail) gid=1005(vmail)
 저장 후 권한 설정
 sudo chown root:dovecot /etc/dovecot/passwd
 sudo chmod 640 /etc/dovecot/passwd

설정 점검 후 재시작 #

 postfix check
 sudo systemctl restart dovecot
 sudo systemctl restart postfix

내부 인증 테스트 #

 doveadm auth test user1@domain2.com 비밀번호
 아래 나오면 성공
 passdb: user1@domain2.com auth succeeded

최종 설정 백업 #

 sudo -i
 postconf -n > /root/postfix_final.conf
 doveconf -n > /root/dovecot_final.conf
 exit

mailtester result
mail-tester.com 10/10 인증샷