Postfix 빈 클라이언트 설정

Postfix 빈 클라이언트 설정

Ubuntu 20.04 시스템에서 이메일을 보내지만 받지 않는 메일 서버인 Postfix null 클라이언트를 설정하고 싶습니다. 저는 며칠 동안 튜토리얼, Postfix 문서, 포럼 토론 등의 제안을 시도해 보았습니다. 그 중 다수는 완전한 그림을 제공하지 못하거나 심지어 서로 모순되기도 합니다. 즉, 시스템이 예상대로 작동하지 않고 어떤 설정이 올바른지 알 수 없습니다.

현재 설정과 제가 겪고 있는 보다 정확한 문제에 대해 좀 더 구체적으로 설명하겠습니다. 보안상의 이유로 example.com도메인 이름과 일부 IP 주소를 익명화합니다. 나는 /etc/postfix/main.cf다음 설정을 사용합니다.

# TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_tls_security_level=may
smtp_use_tls=yes
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.example.com
mydomain = mail.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.$mydomain, localhost, $myhostname
mynetworks = 127.0.0.0/8 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = ipv4
local_transport = error: local delivery disabled

행 으로 /etc/aliases나열되고 포함 됩니다 .[email protected]postmaster/etc/mailnamemail.example.com

Postfix 구성을 수정한 후 다시 시작 절차를 사용합니다 sudo systemctl restart postfix.

외부 DNS 서버는 다음 설정을 사용합니다.

@                  IN A 123.456.789.01
mail               IN A 123.456.789.01
www                IN A 123.456.789.01
autoconfig         IN CNAME mail.your-server.com.
@                  IN TXT "v=spf1 +a +mx ?all"
@                  IN MX 0 mail
_autodiscover._tcp IN SRV 0 100 443 mail.your-server.com.
_imaps._tcp        IN SRV 0 100 993 mail.your-server.com.
_pop3s._tcp        IN SRV 0 100 995 mail.your-server.com.
_submission._tcp   IN SRV 0 100 587 mail.your-server.com.

Postfix가 설치된 클라우드 서버에는 PTR 레코드가 있습니다.

다음을 통해 이메일을 보내려고 할 때

sudo echo "Test" | mail -s "Test" [email protected]

current-user@hostname시스템은 대신에 john@abc에서 전송을 시도합니다 [email protected]. 로그에는 다음 오류 메시지와 함께 이를 반영합니다 Sender address rejected: need fully-qualified address (in reply to RCPT TO command). masquerade_domains = example.commail옵션을 사용하여 보낸 사람 주소를 변경해 보았습니다 r. 그러나 이것은 작동하지 않습니다. 다음을 통해 전체 컴퓨터의 호스트 이름을 변경하면

sudo hostnamectl set-hostname mail.example.com

하지만 Postfix에서 사용하는 호스트 이름을 변경하고 싶습니다. 또한 이라는 noreply새 사용자 계정을 설정하지 않고도 보내는 주소의 사용자 이름을 바꾸고 싶습니다 noreply. 즉, 이메일은 에서 전송되어야 합니다 [email protected].

호스팅 공급자는 포트 25를 잠금 해제했습니다. 따라서 이것은 문제가 되지 않습니다.

Nginx 웹 서버( example.com) 및 Postfix 메일 서버( )에 대해 mail.example.com별도의 Let's Encrypt 인증서를 다운로드했습니다 .

내 생각에는 myhostname(일부 예에서는 이 설정을 비워 둡니다), (일부 예에서는 다른 주소를 사용합니다) 또는 (수신 이메일을 수락하고 싶지 않으므로 호스트가 릴레이 설정이 필요하지 않다고 생각합니까 mydomain?) 입니다. Postfix 구성 또는 DNS 구성의 일부가 올바르게 정의되지 않았습니다. 내 A 레코드가 정확하다고 확신하지만 다른 DNS 항목에 대해서는 전혀 확신할 수 없습니다. 일부 튜토리얼에서는 MX 레코드 설정을 권장하지만 다른 튜토리얼에서는 권장하지 않습니다. 셸에서 직접 이메일을 사용하는 경우 SRV 레코드가 필요합니까?alias_mapsalias_databasemyoriginmydestinationmynetworksrelayhostmail

앞서 말했듯이 저는 며칠 동안 구성 작업을 하면서 문서, 튜토리얼 및 수많은 포럼 토론을 살펴보았습니다. 예상한 결과가 나오지 않았습니다. 작업은 단순히 수신 이메일을 허용하지 않고 명령줄에서 이메일을 보내는 보안 메일 서버를 설정하는 것입니다. 위 설정 중 이 애플리케이션에 올바르지 않거나 부적합한 설정은 무엇입니까?

저는 메일 서버를 처음 사용하며 "문서 읽기"(내가 이 작업을 수행함) 또는 "관련 게시물 읽기"(이 작업도 수행함) 이외의 유용한 의견과 답변을 받기를 기대합니다.

답변1

듣기 및 보내기 설정 방법은 에 나와 있습니다 /etc/postfix/master.cf.

수신을 비활성화하려면 다음과 유사한 줄을 찾으십시오.

<hostname>:smtp inet n - n - - smtpd -o smtpd_sasl_auth_enable=no -o syslog_name=smtpd -o smtp_helo_name=<hostname> -o myhostname=<hostname> -o smtpd_banner=$smtpd_banner_bgcomp

그리고 댓글을 달아보세요. 이렇게 하면 smtp 포트에서 수신 대기하는 것을 방지할 수 있습니다. 이것은 smtpd중요한 포인트입니다.

다음 줄 중 하나 또는 둘 다 있어야 합니다.

<socket relative pathname under in private queue directory> unix - - n - - smtpd -o smtpd_sasl_auth_enable=no -o syslog_name=smtp -o smtp_helo_name=<hostname> -o smtp_bind_address=<ip address> -o smtp_bind_address6=<ipv6 address>

<hostname>:submission inet n - n - - smtpd -o smtpd_sasl_auth_enable=no

이를 통해 Unix 도메인 소켓이나 전달을 위한 제출 포트를 통해 로컬로 이메일을 주입할 수 있습니다. 이 모든 내용은man 5 master

호스트가 존재하지 않으면 많은 시스템이 이메일을 거부하므로 소스 IP 주소를 가리키는 DNS에 mx 호스트를 설정하는 것이 좋습니다.

평소와 마찬가지로 나에게 뭔가 문제가 있다고 확신했습니다.

이는 내 시스템에만 적용되는 것이므로 귀하의 시스템은 약간 다를 수 있습니다.

관련 정보