OpenSMTPd: "수신" 도메인을 기반으로 발신자 차단

OpenSMTPd: "수신" 도메인을 기반으로 발신자 차단

OpenSMTPd의 경우 서버가 해당 서버의 도메인 이름을 기반으로 메일을 보내지 못하도록 차단하고 싶습니다. 곳곳에 많은 수의 IP 주소가 있으며 각 개별 주소를 차단하는 것은 특히 대량의 스팸을 보내는 경우 너무 많은 작업입니다. 서버를 완전히 차단하고 싶습니다. 예를 들어 "example.com"("Received"에 이 내용이 포함됨)의 메일 서버에서 들어오는 모든 메일을 자동으로 거부할 수 있는 방법이 있습니까?

감사합니다!

답변1

헤더 Received는 쉽게 스푸핑될 수 있으므로 이메일의 출처를 확인하는 데 사용해서는 안 됩니다. 대신 소스 주소, HELO호스트 이름 및 MAIL FROM발신자 도메인의 SPF 레코드에 대해 테스트된 정보와 같이 메일 서버가 자체적으로 얻을 수 있는 정보만 신뢰해야 합니다 . 마지막 즉, 최상위 Received:헤더는 서버에 의해 추가되며 이 정보는 HELOSMTP 명령(IP 주소 및 역방향과 결합 PTR)에서 가져옵니다.

예를 들어 Postfix를 사용하여 헤더 내용 검사가 가능합니다.header_checks(action REJECT), 그러나 OpenSMTPd는 유사한 것을 구현하지 않은 것 같습니다. 또한 OpenSMTPd는 메일을 외부 필터로만 릴레이할 수 있습니다.연결 단계 거부실패한 SFP의 경우 또는DNS 기반 차단 목록(DNSBL) 불가능합니다.

OpenSMTPd가 도움이 될 수 있는 작업은 에 설명되어 있습니다 smtpd.conf(5).match 옵션 reject:

  • 당신은 있다고 말합니다여기저기에 있는 수많은 IP 주소, 그러나 실제로는 모두 동일한 네트워크 블록에 있을 수 있습니다. whois IP.ADD.RE.SS예를 들어 OpenSMTPd는 CIDR 표기법으로 표현된 서브넷을 읽을 수 있으므로 서브넷을 CIDR 표기법으로 결정하는 데 사용합니다 192.0.2.0/24. 예를 들어 다음을 사용하는 블록입니다.

    match from src 192.0.2.0/24 reject
    
  • 당신이 원한다면메일 서버에서 들어오는 모든 메일을 거부합니다.example.com이 도메인은 실제로 호스트 이름에 사용되므로 HELO해당 정보를 거부에 사용할 수 있습니다. 마찬가지로 에는 match이에 대한 옵션이 있으며 목록을 사용할 수 있습니다table(5)파일:

    match helo <rejectHeloDomains> reject
    table rejectHeloDomains file:/etc/mail/rejectHeloDomains
    

    도메인, 와일드카드가 포함된 목록 파일:

    example.com
    *.example.com
    

조용히 하지마버리다확실히 스팸이지만연결 단계 거부, 이러한 예가 그렇듯이.

관련 정보