다른 Postfix 서버를 통한 Postfix 릴레이

다른 Postfix 서버를 통한 Postfix 릴레이

Virtualmin으로 실행되는 LAN에 postfix 서버가 있습니다. 이 서버에는 총 4개의 도메인이 있으며 이 서버의 도메인과 이메일을 주고받을 수 있어야 합니다.

문제는 내 ISP(Comcast)가 인바운드 및 아웃바운드 포트 25를 차단한다는 것입니다.

따라서 포트 587에서 인바운드 및 아웃바운드 모두 메일을 릴레이하는 데 사용하기를 희망하는 원격 VPS가 있습니다. 이 VPS에는 Virtualmin에 Postfix도 설치되어 있습니다.

그래서 저는 4개의 도메인을 갖게 되었습니다:

domain.com domain2.com domain3.com domain4.com

내가 이메일을 보낸다면[이메일 보호됨]외부 메일 서버(mail.domain.com, VPN 10.1.0.10)를 통해 대상으로 릴레이되기를 원합니다. 그 사이에 누군가가 이메일을 보내면[이메일 보호됨]내 MX 레코드를 사용하면 메일이 mail.domain.com으로 전달된 다음 포트 587과 VPN을 통해 내 네트워크로 전달됩니다.

나는 이와 관련하여 약간의 작업을 완료했습니다. VPS에 접속할 수 있지만 몇 가지 오류 메시지가 나타납니다. 내 VPS 사용자가 SASL 인증을 통과하기 위해 이 Postfix 서버를 통해 메일을 릴레이할 수 있게 만드는 방법을 알아내는 데 문제가 있는 것 같습니다.

내 LAN에 있는 Postfix 서버의 main.cf는 다음과 같습니다.

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated     defer_unauth_destination
myhostname = cactuar.domain.local
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = cactuar.domain.local, localhost.domain.local, , localhost
relayhost = [10.1.0.10]:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
mailbox_size_limit = 0
recipient_delimiter = +
virtual_alias_maps = hash:/etc/postfix/virtual
sender_bcc_maps = hash:/etc/postfix/bcc
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks     permit_sasl_authenticated reject_unauth_destination
allow_percent_hack = no

# enable SASL authentication 
smtp_sasl_auth_enable = yes
# disallow methods that allow anonymous authentication. 
smtp_sasl_security_options = noanonymous
# where to find sasl_passwd
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
# Enable STARTTLS encryption 
smtp_use_tls = yes
# where to find CA certificates
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

이것은 내 원격 mail.domain.com VPS의 main.cf입니다.

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated     defer_unauth_destination
myhostname = mail.domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, localhost.$mydomain $mydomain
relaydomains = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.0.0/8
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
mailbox_size_limit = 0
recipient_delimiter = +
virtual_alias_maps = hash:/etc/postfix/virtual
sender_bcc_maps = hash:/etc/postfix/bcc
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks     permit_sasl_authenticated reject_unauth_destination
allow_percent_hack = no
transport_maps = hash:/etc/postfix/transport

# SASL SUPPORT FOR CLIENTS
#
# The following options set parameters needed by Postfix to enable
# Cyrus-SASL support for authentication of mail clients.
#
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks     permit_sasl_authenticated reject_unauth_destination
smtp_sasl_auth_enable = yes
myorigin = $mydomain

내 홈 서버에서 인터넷으로 이메일을 보내면 다음과 같은 mail.log 결과를 얻습니다.

내 홈 서버에서:

Dec  5 12:41:02 cactuar postfix/qmgr[29509]: DEA6EC1725: from=<[email protected]>, size=655, nrcpt=1 (queue active)
Dec  5 12:41:03 cactuar dovecot: imap(domain): Connection closed in=748 out=2203
Dec  5 12:41:03 cactuar postfix/smtp[32026]: DEA6EC1725: to=<[email protected]>, relay=10.1.0.10[10.1.0.10]:587, delay=0.29, delays=0.08/0.04/0.17/0, dsn=4.7.8, status=deferred (SASL authentication failed; server 10.1.0.10[10.1.0.10] said: 535 5.7.8 Error: authentication failed: generic failure)

내 홈 서버에서 메일이 올 때 내 원격 VPS에서:

Dec  5 13:43:34 kupo postfix/smtpd[29636]: connect from unknown[10.0.0.24]
Dec  5 13:43:34 kupo postfix/smtpd[29636]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
Dec  5 13:43:34 kupo postfix/smtpd[29636]: warning: SASL authentication failure: Password verification failed
Dec  5 13:43:34 kupo postfix/smtpd[29636]: warning: unknown[10.0.0.24]: SASL PLAIN authentication failed: generic failure
Dec  5 13:43:34 kupo postfix/smtpd[29636]: disconnect from unknown[10.0.0.24]

명령을 사용하여 saslauthd에 사용자를 설정하고 saslpasswd2 -c <username>원격 VPS에 연결할 때 내부 서버에 해당 사용자 이름을 가지며 saslauthd가 두 시스템 모두에서 실행 중입니다.

누군가가 이 문제를 해결하도록 안내해 줄 수 있기를 바랍니다.

당신이 제공할 수 있는 도움에 감사드립니다.

관련 정보