Postfix가 특정 클라이언트의 연결 시도를 거부하지 않는 이유는 무엇입니까?

Postfix가 특정 클라이언트의 연결 시도를 거부하지 않는 이유는 무엇입니까?

내 SMTP 서버가 조사되고 있습니다. 비밀번호 사전을 확인하는 SASL에 무차별 대입 추가처럼 보입니다.

로그 파일에서 이와 같은 줄을 수천 개 보았습니다.

Sep 18 14:09:52 xxx postfix/smtpd[7412]: connect from ca255.calcit.fastwebserver.de[146.0.42.124]
Sep 18 14:09:55 xxx postfix/smtpd[7412]: warning: ca255.calcit.fastwebserver.de[146.0.42.124]: SASL LOGIN authentication failed: authentication failure
Sep 18 14:09:55 xxx postfix/smtpd[7412]: lost connection after AUTH from ca255.calcit.fastwebserver.de[146.0.42.124]
Sep 18 14:09:55 xxx postfix/smtpd[7412]: disconnect from ca255.calcit.fastwebserver.de[146.0.42.124]

main.cf를 다음과 같이 수정했습니다.

inet_interfaces = all
smtpd_sasl_auth_enable=yes
smtpd_helo_required = yes
smtpd_sender_restrictions = reject_unknown_address

smtpd_client_restrictions =  check_client_access hash:/etc/postfix/maps/access_client,
                             permit_mynetworks,
                             reject

smtpd_recipient_restrictions = check_client_access hash:/etc/postfix/maps/access_client,
                               permit_mynetworks,
                               reject_non_fqdn_sender,
                               reject_non_fqdn_recipient,
                               reject_unknown_sender_domain,
                               reject_unknown_recipient_domain,
                               permit_sasl_authenticated,
                               reject_unauth_pipelining,
                               reject_unauth_destination,
                               reject_rbl_client zen.spamhaus.org,
                               reject_rbl_client list.dsbl.org
                               permit

broken_sasl_auth_clients = yes

내 /etc/postfix/maps/access_client에는 다음 줄만 있습니다.

146.0.42.124 REJECT

그러나 postfix를 다시 시작한 후에도 여전히 동작에 변화가 없으며 여전히 동일한 오류가 표시되므로 SASL이 계속 확인 중입니다. 이러한 설정으로 생각했지만 클라이언트는 SASL이 시작되기 전에 IP 주소를 기반으로 거부됩니다. 놀다?

두 번째 문제는 내부 네트워크의 한 시스템에서 다른 시스템으로 나가는 메일 트래픽을 릴레이하고 있다는 것입니다. - 릴레이 전용 시스템의 "relayhost" 설정을 제외하고 나머지 접미사 설정을 동일하게 유지할 수 있습니까?

답변1

특정 IP 또는 IP 범위에 대해 SASL AUTH를 비활성화하려는 경우아니요부작용 smtpd_delay_reject = no, 확인해 보세요smtpd_discard_ehlo_keyword_address_maps핵심 단어. 구성 예 및 지침:


구성

먼저 다음에서 키워드를 설정합니다 /etc/postfix/main.cf.

smtpd_discard_ehlo_keyword_address_maps = cidr:/etc/postfix/esmtp_cidr

/etc/postfix/esmtp_cidr이제 (방금 지정한 파일)에 블랙리스트를 정의합니다.

# /etc/postfix/esmtp_cidr
91.200.12.0/24  auth
155.133.82.77   auth
146.0.42.124    auth

목록 파일 이므로 실행할 cidr:필요가 없습니다 . postmap하지만 Postfix에 구성을 다시 로드하도록 지시해야 합니다.

service postfix reload

설명하다

무슨 뜻이에요? 지정된 주소(이 경우 전체 IP 또는 IP 범위)에 대해 Postfix에 특정 ESMTP 기능을 비활성화하도록 지시합니다 AUTH. 이는 해당 호스트가 더 이상 SASL을 사용할 수 없음을 의미합니다. 로그를 확인해 보겠습니다.

Aug 11 22:37:39 xxx postfix/smtpd[32630]: connect from unknown[91.200.12.98]
Aug 11 22:37:39 xxx postfix/smtpd[32630]: discarding EHLO keywords: AUTH
Aug 11 22:37:39 xxx postfix/smtpd[32630]: lost connection after AUTH from unknown[91.200.12.98]
Aug 11 22:37:39 xxx postfix/smtpd[32630]: disconnect from unknown[91.200.12.98]

따라서 우리는 사용하지 않고도 원하는 것을 얻을 수 smtpd_delay_reject = no있으므로 후자의 부작용에 대해 걱정할 필요가 없습니다.

참고: 동일한 방식으로 클라이언트가 파이프 또는 starttls와 같은 다른 ESMTP 기능을 사용하지 못하도록 비활성화할 수 있습니다. 예를 들어 사용 가능한 키워드 목록을 찾을 수 있습니다.이 위키피디아 기사에서. 제외하고smtpd_sasl_Exceptions_networks, 이러한 키워드는 게시되지 않을 뿐만 아니라 로그에 표시된 대로 전혀 허용되지 않습니다.

답변2

Postfix는 명령 을 보내기 전에 명령을 평가하지 않습니다 smtpd_client_restrictions.RCPT TOETRN

http://www.postfix.org/SMTPD_ACCESS_README.html#timing

현재 Postfix 버전은 RCPT TO 또는 ETRN 명령이 나올 때까지 클라이언트, helo 및 발신자 제한 목록의 평가를 연기합니다. 이 동작은 smtpd_delay_reject 매개변수에 의해 제어됩니다. 제한 목록은 여전히 ​​(클라이언트, helo, etrn) 또는 (클라이언트, helo, 발신자, 릴레이, 수신자, 데이터 또는 데이터 끝) 제한의 올바른 순서로 평가됩니다. 제한 목록(예: 클라이언트)이 REJECT 또는 DEFER로 평가되면 후속 제한 목록(예: helo, sender 등)을 건너뜁니다.

따라서 다음을 설정하여 이 문제를 해결할 수 있습니다 main.cf.

smtpd_delay_reject = no

 

두 번째 질문의 경우 postfix에는 많은 제어 기능이 있으며 네트워크, postfix 구성 및 클라이언트 구성에 대한 완전한 세부 정보 없이는 답변하는 것이 거의 불가능합니다. 가장 좋은 방법은 시도해 보는 것입니다.

관련 정보