내 로컬 컴퓨터에서 생성된 모든 메일을 SMTP를 통해 mailgun 릴레이로 릴레이하도록 postfix를 설정하려고 합니다. 이전에 우분투 서버에서 메일건 릴레이를 성공적으로 사용한 적이 있지만 FIPS 모드에서 실행되는 Centos 7 서버로 마이그레이션하는 중입니다. 아래에 오류 로그가 있습니다. 조금 정리해주세요. 나는 각 컴퓨터가 mailgun에 개별적으로 연결되도록 선택한 충분히 작은 네트워크를 가지고 있으며(이는 루프백 전용, 127.0.0.0/8 제한임), 컴퓨터에 smtp를 허용하는 포트를 여는 방화벽이 없습니다.
FIPS 모드(및 MD5 비활성화)가 문제의 원인이라고 가정하지만 이를 극복하는 방법을 모르거나 tls_fprint가 sha256 또는 sha512와 같은 일부 지원되는 해시를 사용할 수 있는지 모르겠습니다. 그러나 Relay=none은 릴레이 호스트를 설정했기 때문에 약간 걱정되지만 아마도 smtp 프로세스가 실패하기 때문일까요?
어떤 도움이라도 대단히 감사하겠습니다!
세션 후-n:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = loopback-only
inet_protocols = ipv4
local_recipient_maps =
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination =
mynetworks = 127.0.0.0/8
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
relayhost = [smtp.mailgun.org]:587
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sender_canonical_classes = envelope_sender, header_sender
sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_generic_maps = hash:/etc/postfix/generic
smtp_header_checks = regexp:/etc/postfix/header_check
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_mandatory_ciphers = high
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = encrypt
smtpd_tls_security_level = encrypt
unknown_local_recipient_reject_code = 550
/var/log/메일 로그:
Apr 28 20:04:15 HOSTNAME postfix/pickup[85556]: SOME_ID_NUMBER: uid=0 from=<root>
Apr 28 20:04:15 HOSTNAME postfix/cleanup[85583]: SOME_ID_NUMBER: message-id=<20180429000415.SOME_ID_NUMBER@FQDN>
Apr 28 20:04:15 HOSTNAME postfix/qmgr[85557]: SOME_ID_NUMBER: from=<root@FQDN>, size=2261, nrcpt=1 (queue active)
Apr 28 20:04:16 HOSTNAME postfix/smtp[85585]: fatal: tls_fprint: error computing md5 message digest
Apr 28 20:04:17 HOSTNAME postfix/qmgr[85557]: warning: private/smtp socket: malformed response
Apr 28 20:04:17 HOSTNAME postfix/qmgr[85557]: warning: transport smtp failure -- see a previous warning/fatal/panic logfile record for the problem description
Apr 28 20:04:17 HOSTNAME postfix/master[85555]: warning: process /usr/libexec/postfix/smtp pid 85585 exit status 1
Apr 28 20:04:17 HOSTNAME postfix/master[85555]: warning: /usr/libexec/postfix/smtp: bad command startup -- throttling
Apr 28 20:04:17 HOSTNAME postfix/error[85587]: SOME_ID_NUMBER: to=<[email protected]>, relay=none, delay=1.7, delays=0.05/1.6/0/0.02, dsn=4.3.0, status=deferred (unknown mail transport error)
답변1
master.cf의 smtp 및 tlsmgr 프로세스 디버깅을 포함하여 몇 시간 동안 문제를 파악하려고 노력한 끝에 md5를 비활성화하는 FIPS가 실제로 문제라는 것을 확인할 수 있었습니다. master.cf에 다음을 추가하면 문제가 해결되었습니다.
smtp_tls_fingerprint_digest=sha256
sha1 및 sha512에 대한 설정도 작동합니다. postfix 문서에서는 sha1 또는 md5(md5가 기본값) 이외의 값으로 설정하는 것에 대해 경고합니다. 문서에서:
While additional digest algorithms are often available with OpenSSL's libcrypto, only those used by libssl in SSL cipher suites are available to Postfix. For now this means just md5 or sha1.
그러나 내 필요에 따라 sha256이 제대로 작동하는 것 같습니다.
답변2
릴레이 호스트만 구성하려면 /etc/postfix/postfix.conf의 기본 항목을 원하는 릴레이 호스트로 변경해야 합니다. 이 링크가 당신에게 도움이 되기를 바랍니다
https://serverfault.com/questions/878841/cant-relay-on-postfix-accessing-it-from-external-ip