Postfix 서비스 구성 파일을 사용하면 설정을 세부적으로 조정하고 자체 수단을 사용하여 서비스 자체 수준에서 스팸의 양을 줄일 수 있습니다. 이 가이드에서는 PTR 레코드가 없고 잘못된 인사말이 있으며 DNSBL 목록을 사용하는 보낸 사람의 메일을 차단합니다.
1. 이러한 설정을 구성 파일에 추가해 보겠습니다(라인 주석 처리):
nano /etc/postfix/main.cf
#smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
다음 구성을 추가해 보겠습니다:
nano /etc/postfix/main.cf
smtpd_client_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_pipelining
permit
smtpd_helo_restrictions =
permit
smtpd_sender_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_non_fqdn_sender
reject_unknown_sender_domain
permit
smtpd_relay_restrictions =
permit_mynetworks
permit_sasl_authenticated
defer_unauth_destination
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_non_fqdn_recipient
reject_unauth_destination
reject_unknown_recipient_domain
reject_unverified_recipient
reject_unknown_client_hostname
reject_invalid_helo_hostname
reject_non_fqdn_helo_hostname
reject_unknown_helo_hostname
reject_rbl_client b.barracudacentral.org
reject_rbl_client dnsbl.abuse.ch
reject_rbl_client bl.spamcop.net
reject_rbl_client dul.ru
permit
smtpd_data_restrictions =
permit
smtpd_end_of_data_restrictions =
permit
설정을 적용하려면 postfix를 다시 시작하세요:
systemctl restart postfix
규칙을 제거하거나 추가함으로써 발신자에 대한 요구 수준을 조절할 수 있습니다. 예를 들어 대부분의 인기 메일 서비스는 잘못된 서버 인사말이 있고 PTR 레코드를 MX와 일치시키지 않은 메일을 허용합니다. 아래는 설정에 대한 설명입니다:
- permit_mynetworks — mynetworks 설정에 나열된 모든 주소를 확인합니다.
- allow_sasl_authenticated - 성공적으로 인증된 모든 클라이언트의 요청을 허용합니다.
- reject_unauth_pipelining — 현재 전송된 이메일을 거부합니다(올바른 SMTP 세션 체인 우회).
- reject_non_fqdn_sender — 보낸 사람 주소가 올바르지 않으면 연결을 거부합니다.
- reject_unknown_sender_domain — MAIL FROM 헤더에 DNS MX 레코드와 DNS A 레코드가 없고 Postfix가 보낸 사람 주소의 최종 대상이 아닌 경우 요청을 거부합니다.
- reject_non_fqdn_recipient — 수신자의 주소가 잘못된 경우 연결을 거부합니다.
- reject_unauth_destination — 승인 없이 서비스에 접속하는 것을 금지합니다.
- reject_unknown_recipient_domain — 보낸 사람의 도메인에 MX 및 A DNS 레코드가 없으면 요청을 거부합니다.
- reject_unverified_recipient — RCPT TO 주소로 전송된 메일이 거부된 것으로 알려졌거나 수신자의 주소를 사용할 수 없는 경우 요청을 거부합니다.
- reject_unknown_client_hostname — 보낸 사람의 PRT 레코드가 있는지, PTR에 따라 작업 중인 A 레코드가 있는지 확인합니다.
- reject_invalid_helo_hostname — HELO 인사말 구문을 확인합니다.
- reject_non_fqdn_helo_hostname — HELO 인사말 중에 올바른 FQDN이 필요합니다.
- reject_unknown_helo_hostname — A 레코드나 MX 레코드가 없는 이름을 도입하는 것을 금지합니다.
- reject_rbl_client — 보낸 사람이 블랙리스트에 있는지 확인합니다.
- permit - 연결을 허용합니다. 각 블록의 끝에 표시됩니다(서신이 둘 이상의 금지 규칙에 해당하지 않는 경우 이를 전달합니다).