W postfiksie, jak wymusić tls + auth ponad 587, pozostawiając tls opcjonalne dla 25

9

Chciałbym hostować usługi pocztowe dla niektórych domen. Udało mi się skonfigurować Postfix, aby skonsultować się z sql dla tych domen wirtualnych. Chciałbym to zrobić:

  • Dla połączeń na 25:

    1. Odmów przekazywania (dostarczaj tylko do odbiorców moich domen wirtualnych)
    2. Pozostaw tls opcjonalne, ale oferuj uwierzytelnianie tylko wtedy, gdy klient je obsługuje
    3. Akceptuj tylko klientów nie znajdujących się na czarnej liście (np. Ogranicz XBL + SBL + PBL ze spamu) lub klientów wykonujących tls i auth („przyjacielskie serwery pocztowe”, które są skonfigurowane do uwierzytelniania się ze mną za pomocą auth i tls)
  • Dla połączeń na 587:

    1. Egzekwuj tls i auth
    2. Zezwól na przekazywanie.
    3. Akceptuj tylko klientów nie znajdujących się na czarnej liście (czarne listy jak wyżej, ale pomiń sprawdzanie PBL)

Moje pytania:

  • Odp .: Znam opcje postfiksów dla powyższego, ale nie mogę znaleźć sposobu ich rozróżnienia na podstawie portu nasłuchującego.

  • B. Czy napotkam powszechnie znane problemy z podobno prawowitymi klientami z powyższą polityką?

Jestem nowy w konfiguracji serwera pocztowego, przepraszam za jakiekolwiek bezsensowne pytanie / założenie (proszę to wskazać). Dzięki.

Paralife
źródło

Odpowiedzi:

15

To łatwe,

  1. W /etc/postfix/main.cfdodasz / zmienisz

    smtpd_tls_security_level=may
    

    tak aby domyślnie TLS był dostępny (ale opcjonalny).

  2. Następnie w swoim /etc/postfix/master.cfzastąpisz go dla portu 587 ( submissionport), zastępując parametr:

    submission inet n       -       n       -       -       smtpd
      -o smtpd_tls_security_level=encrypt
    

    Wymaga to TLS dla wszystkich połączeń przesyłania (port 587).

Jeśli chodzi o odmawianie przekazywania, jest to ustawienie domyślne; przekazywanie jest dozwolone tylko dla uwierzytelnionych użytkowników i adresów IP określonych w mynetworks.

Wreszcie możesz dodać czarne listy main.cf, dołączając do smtpd_recipient_restrictions:

    reject_rbl_client zen.spamhaus.org,

lub dowolne czarne listy. Powinny pojawić się na końcu listy, tuż przed finałem permit.


Ostatnia rzecz. Aby uzyskać więcej pomysłów na zapobieganie spamowi, zobacz Walka ze spamem - Co mogę zrobić jako: Administrator poczty e-mail, właściciel domeny lub użytkownik?

Michael Hampton
źródło
Dzięki, tylko jeden niewyraźny punkt: na porcie 25 chcę bezwarunkowo odmówić przekazywania, bez względu na to, czy klient został uwierzytelniony, czy nie.
Paralife
Uwierzytelnianie na porcie 25 jest domyślnie wyłączone. Ale aby się upewnić, upewnij się, że smtpd_sasl_auth_enableNIE jest ono w twoim, main.cfa także, że NIE jest obecne w smtptwojej master.cf(ale POWINIEN być ustawione yesw submissionsekcji). master.cfPowinien wyglądać podobnie jak ten .
Michael Hampton
Zgadza się, ale chcę włączyć opcjonalne auth + tls na 25. Po prostu nie chcę przekazywać na 25. Zasadniczo chcę być liberalny w kwestii tego, jak ktoś się łączy, ale bardzo rygorystyczny w zakresie przekazywania (odmawiaj wszystkim przekazywania). Przekazywanie nie powinno być dozwolone, chyba że nadejdzie na 587 i klient zostanie uwierzytelniony przez tls. Każda inna kombinacja powinna odrzucić przekazywanie. Prawdopodobnie po prostu usunę perm_sasl_authenticated ze smtpd_relay_restrictions i umieszczę to tylko w zastąpieniach 587 w master.cf. Dzięki.
Paralife
Ludzie nie powinni nawet próbować uwierzytelniać się na 25. Możesz włączyć tę funkcję, jeśli chcesz, ale naprawdę nie powinieneś.
Michael Hampton
3

Nie znam odpowiedzi na pytanie B, ale na A:

w Postfiksie zwykle masz miejsce, w master.cfktórym definiujesz każdy pojedynczy proces, często w /etc/postfix. W tym pliku masz jeden wpis na uruchomioną usługę Postfix, więc są dwa różne dla portu 25i portu 587. Dla każdego z nich możesz również przekazać parametry, aby smtpdmiały inne ustawienia.

Oto przykład z mojego serwera pocztowego:

4.3.2.1:25      inet  n       -       -       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
4.3.2.1:10027   inet  n       -       -       -       -       smtpd
  -o mynetworks=91.190.245.4/32 127.0.0.0/8
  -o smtpd_client_restrictions=permit_mynetworks,reject
powtórna rozgrywka
źródło