NOQUEUE : 거부 : freebsd 및 postfix에서 RCPT


12

이 구성을 사용하여 서버를 구축하고 있습니다-> http://www.purplehat.org/?page_id=4 기본 이메일 기능을 테스트하려고 할 때-> NOQUEUE : 거부 : 테스트 이메일을 보내려고 할 때 RCPT를 얻습니다.

아래는 내 관련 구성입니다

이메일을 보내려면 postfix를 어떻게 받습니까?

로그 출력 :

Feb 13 18:37:43 r2d2 dovecot: pop3-login: Login: user=<bra@telecomm.com>, method=PLAIN, rip=67.85.57.155, lip=107.191.60.48, mpid=13390, TLS, session=<QA0yiPwOiwBDVTmb>
Feb 13 18:37:43 r2d2 dovecot: pop3(bra@telecomm.com): Disconnected: Logged out top=0/0, retr=0/0, del=0/4, size=68813
Feb 13 18:37:44 r2d2 postfix/smtpd[13391]: connect from ool-4355399b.dyn.optonline.net[67.85.57.155]
Feb 13 18:37:46 r2d2 postfix/smtpd[13391]: NOQUEUE: reject: RCPT from ool-4355399b.dyn.optonline.net[67.85.57.155]: 454 4.7.1 <bcddd214@yahoo.com>: Relay access denied; from=<bra@telecomm.com> to=<bcddd@yahoo.com> proto=ESMTP helo=<Bramini>
Feb 13 18:37:49 r2d2 postfix/smtpd[13391]: disconnect from ool-4355399b.dyn.optonline.net[67.85.57.155]

postconf -n

broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
debug_peer_list = 127.0.0.1
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = /usr/local/share/doc/postfix
inet_protocols = ipv4
mail_owner = postfix
mailman_destination_recipient_limit = 1
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = ex-mailer.com
myhostname = r2d2.ex-mailer.com
mynetworks_style = host
newaliases_path = /usr/local/bin/newaliases
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
queue_directory = /var/spool/postfix
readme_directory = /usr/local/share/doc/postfix
relay_domains = proxy:mysql:/usr/local/etc/postfix/mysql_relay_domains_maps.cf list.ex-mailer.com
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client list.dsbl.org, reject_rbl_client bl.spamcop.net, reject_rbl_client sbl-xbl.spamhaus.org
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks
smtpd_tls_CAfile = /etc/ssl/postfix/smtpd.pem
smtpd_tls_cert_file = /etc/ssl/postfix/smtpd.pem
smtpd_tls_key_file = /etc/ssl/postfix/smtpd.pem
smtpd_tls_loglevel = 0
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
soft_bounce = no
tls_random_source = dev:/dev/urandom
transport_maps = hash:/usr/local/etc/postfix/transport
unknown_local_recipient_reject_code = 550
vacation_destination_recipient_limit = 1
virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:125
virtual_mailbox_base = /usr/local/virtual
virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_limit_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_maildir_limit_message = Sorry, this user has overdrawn their diskspace quota. Please try again later.
virtual_minimum_uid = 125
virtual_overquota_bounce = yes
virtual_transport = virtual
virtual_uid_maps = static:125
postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: contencontent_filter=smtp-amavis:[127.0.0.1]:10024
postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes
postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes

도메인 telecomm.comrelay_domains매개 변수 로 정의되었습니다 . 여기에 내용/usr/local/etc/postfix/mysql_relay_domains_maps.cf

 user = doughnuts
 password = [redacted]
 hosts = localhost
 dbname = postfix
 query = SELECT domain FROM domain WHERE domain="%s" and backupmx ="0" and active ="1"

netstat -an | less

Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        (state)
tcp4       0      0 *.587                  *.*                    LISTEN
tcp4       0      0 127.0.0.1.10025        *.*                    LISTEN
tcp4       0      0 *.465                  *.*                    LISTEN
tcp4       0      0 *.25                   *.*                    LISTEN
tcp4       0    128 107.191.60.48.2222     67.85.57.155.51823     ESTABLISHED
tcp4       0      0 127.0.0.1.953          *.*                    LISTEN
tcp4       0      0 127.0.0.1.53           *.*                    LISTEN
tcp6       0      0 ::1.53                 *.*                    LISTEN
tcp4       0      0 107.191.60.48.53       *.*                    LISTEN
tcp6       0      0 2001:19f0:7000:8.53    *.*                    LISTEN
tcp4       0      0 *.8282                 *.*                    LISTEN
tcp6       0      0 *.8282                 *.*                    LISTEN
tcp4       0      0 *.8181                 *.*                    LISTEN
tcp6       0      0 *.8181                 *.*                    LISTEN
tcp4       0      0 107.191.60.48.2222     67.85.57.155.57964     ESTABLISHED
tcp46      0      0 *.3306                 *.*                    LISTEN
tcp4       0      0 127.0.0.1.10024        *.*                    LISTEN
tcp6       0      0 *.993                  *.*                    LISTEN
tcp4       0      0 *.993                  *.*                    LISTEN
tcp6       0      0 *.143                  *.*                    LISTEN
tcp4       0      0 *.143                  *.*                    LISTEN

업데이트 2/14/2015 1430 EST

자세한 로깅 출력 :

https://bpaste.net/show/6a2a70cb2ab5

테스트 컴퓨터 IP를 mynetworks = IP로 설정하면 시스템을 통해 메일이 더 많이 전달되는 것을 볼 수 있지만 일치하는 클래스를 질식시킵니다. Postfix가 0.0.0.0의 IP 소스 및 대상 도메인과 일치하도록하려면 어떻게해야합니까?

고양이 /usr/local/etc/postfix/master.cf

# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
smtps     inet  n       -       n       -       -       smtpd
pickup    unix  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache

vacation  unix  -       n       n       -       -       pipe
  flags=DRhu user=vacation argv=/var/spool/vacation/vacation.pl

smtp-amavis unix - - n - 2 smtp
  -o smtp_data_done_timeout=2400
  -o smtp_send_xforward_command=yes
  -o disable_dns_lookups=yes
  -o max_use=20
127.0.0.1:10025 inet n - n - - smtpd
  -o content_filter=
  -o local_recipient_maps=
  -o relay_recipient_maps=
  -o smtpd_restriction_classes=
  -o smtpd_delay_reject=no
  -o smtpd_client_restrictions=permit_mynetworks,reject
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o mynetworks_style=host
  -o mynetworks=127.0.0.0/8
  -o strict_rfc821_envelopes=yes
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1000
  -o smtpd_client_connection_count_limit=0
  -o smtpd_client_connection_rate_limit=0
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings

mailman unix - n n - - pipe
  flags=FR user=mailman:nobody
  argv=/usr/local/mailman/postfix-to-mailman.py ${nexthop} ${user}

submission inet n       -       n       -       -       smtpd
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_delay_reject=yes
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o smtpd_data_restrictions=
  -o smtpd_sasl_authenticated_header=yes
  -o receive_override_options=no_address_mappings
  -o syslog_name=postfix/submission

도메인에서 또는 도메인으로 로컬 또는 릴레이 도메인으로 구성되어 있지 않으므로 릴레이 거부 오류가 발생합니다
Dan

@Dan MySQL에서 해당 정보를 매핑해야합니다. mysql_relay_domains_maps.cf o.0

@ Dan

nyctelecomm.com (db에서와 같이)과 telecomm.com (로그에서와 같이)이 동일한 도메인이 아닙니다
Dan

bpaste가 14 일 후에 자체를 삭제하기 때문에 @Dan. 나는 내 데이터가 영원히 www에 남아 있기를 원하지 않습니다. 하나는 편집 : 하나는 :)

답변:


9

참고로, defer_unauth_destination454 4.7.1 <someemail@example.com: Relay access denied; 의 결과입니다 . reject_unauth_destination 과는 약간 다릅니다. 거부는 코드 550의 영구적 인 오류를 의미하고 지연은 코드 450의 일시적인 오류를 의미합니다.

하지만 기다려 ..., defer_unauth_destination을 사용하는 매개 변수가 없습니다. 이상한 제한은 어디에서 오는가?

실제로 postfix에는 이라는 숨겨진 제한 매개 변수가 smtpd_relay_restriction있습니다. 새로운 기능이므로 이전 튜토리얼에서는 다루지 않을 수 있습니다. 기본적으로 smtpd_relay_restriction 에는 값이 있습니다.

# postconf smtpd_relay_restriction
permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination

그래서 그것은 defer_unauth_destination이 어디에 있는지 설명합니다

그러나 그것은 내 고객이 거부 당했다는 것에 대한 내 질문에 대답하지 않았습니다.

(defer | reject) _unauth_destination의 동작은 접미사 매뉴얼 페이지 에 문서화되어 있습니다 .

reject_unauth_destination

다음 중 하나에 해당하지 않으면 요청을 거부하십시오.

  • Postfix는 메일 전달자입니다. 해결 된 RCPT TO 도메인은 $ relay_domains 또는 그 하위 도메인과 일치하며 발신자 지정 라우팅 (user @ elsewhere @ domain)을 포함하지 않습니다.
  • Postfix는 최종 목적지입니다. 해결 된 RCPT TO 도메인은 $ mydestination, $ inet_interfaces, $ proxy_interfaces, $ virtual_alias_domains 또는 $ virtual_mailbox_domains와 일치하며 발신자 지정 라우팅이 없습니다 (user @ elsewhere @ domain).

간단히 말해서 postfix는 수신자 주소를 확인 합니다 . 도메인 부분이 relay_domains$ mydestination, $ inet_interfaces, $ proxy_interfaces, $ virtual_alias_domains 또는 $ virtual_mailbox_domains에 정의되지 않은 경우 postfix는이를 거부합니다 .

위의 로그에서 수신자는 someone@yahoo.com이므로 postfix가 거부 한 이유는 분명합니다.


솔직히 네가 못 박았다고 생각 했어 얼마 전에 비슷한 문제가 발생했습니다. 변경 작업을 수행하고 mynetworks를 0.0.0.0으로 설정하려고 시도했으며 조명에 대한 정확한 문제를 해결하는 구성도 복사했습니다. 같은 오류 :( bpaste.net/show/a26076c941b4 bpaste.net/show/6def40226cea

mynetworks를 0.0.0.0/0으로 설정하지 마십시오. 서버는 openrelay로 바뀝니다
masegaloeh

아직도, 나는 당신이 무엇을하려고하는지 모르겠습니다 ... '기본 이메일 기능 테스트'에 대한 귀하의 진술은 여전히 ​​모호했습니다. 이 답변은 왜 오류가 발생했는지 설명합니다. 아직 해결책이 없습니다 ...
masegaloeh

공용 IP의 표준 메일 서버입니다. 모든 클라이언트는 동적이고 라우팅 가능합니다. 나는 '모두 보내기'버튼 (열린 릴레이가 아님)을 찾아야합니다. 즉, SSL 인증. 데이터베이스에 문제가 있습니다.
mine

1
좋은. 이제 SASL 인증이 서버와 클라이언트 모두에 올바르게 구성되었는지 확인해야합니다. [this docs] (www.postfix.org/SASL_README.html#server_test)에 따라 확인할 수 있습니까?
masegaloeh

1

THUNDERBIRD를 MUA로 사용하고 있으며 동일한 문제가 있습니다. main.cf의 mynetworks 매개 변수에 홈 PC의 IP 주소를 추가하는 것을 해결했습니다.

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 MyIpAddress

추신 : 나는 가정용 PC에 고정 IP를 가지고 있지 않으므로 ISP가 변경할 때마다 매번 조정해야합니다.


0

FWIW 아래를 추가하면 나를 위해 일했습니다. check_policy_service가 필요한 spf 검사기를 사용하고 있습니다. 내 클라이언트는 squirrelmail과 내 서버 접미사입니다.

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_policy_service unix:private/policyd-spf

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.