Postfix: wyłącz uwierzytelnianie przez port 25

12

Podczas używania Postfixi IMAPna serwerze pocztowym zwykle otwarte są co najmniej 3 porty

25 smtp   : incoming emails from anybody (whole internet)
465 smtps : outgoing emails from authorized users (to the whole intenet)
993 imap  : imap for authorized users

Chciałbym skonfigurować Postfix, aby autoryzowani użytkownicy mogli wysyłać wiadomości e-mail tylko za pośrednictwem 465. Domyślnie tak nie jest. Użytkownicy mogą również używać STARTTLS przez port 25. Chciałbym to wyłączyć.

Mój plan polega na użyciu portu 25 do publicznego wysyłania mi wiadomości e-mail

użyj portu 465 dla moich użytkowników (mogę użyć zapory ogniowej, aby zezwolić na określone zakresy adresów IP lub użyć niestandardowego portu)

Zapobiegnie to wykorzystaniu portu 25 przed atakami siłowymi, w których hakerzy próbują odgadnąć użytkownika / hasło. Port 25 po prostu nie akceptuje użytkownika / hasła, nawet jeśli jest prawidłowe. A ponieważ port 465 jest ograniczony zaporą ogniową, hakerzy nie mogą również wykorzystać 465.

Czy jest to możliwe w Postfix?

Używam Postfix 2.9.6-2 na Debian Wheezy

Martin Vegter
źródło
1
Wiem, że jest stary, ale zawsze należy zezwolić na port 587 (przesyłanie), ponieważ jest to właściwy port.
lbutlr

Odpowiedzi:

14

OSTRZEŻENIE:
Żądanie nie jest zgodne z najlepszymi praktykami bezpieczeństwa, ponieważ wyłączasz TLS (szyfrowanie) na głównym porcie przekazywania poczty, ujawniając dane wysyłane przez ten port do zewnętrznych słuchaczy i / lub modyfikacji podczas lotu. Poniższa odpowiedź spełnia wymagania, ale najlepsza praktyka wymaga również STARTTLS dla połączenia z portem 25.

master.cfPlik (zazwyczaj /etc/postfix/master.cf) kontroluje uruchamianie i konfigurację poszczególnych usług Postfix. Taka konfiguracja w tym pliku, zgodnie z dokumentacją, zrobi to, co chcesz:

smtp  inet  n  -  -  -  -  smtpd
  -o smtpd_tls_security_level=none
  -o smtpd_sasl_auth_enable=no

smtps inet  n  -  -  -  -  smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Ta konfiguracja wyłącza uwierzytelnianie i opcję STARTTLS na porcie 25. Włącza opcję STARTTLS na porcie 465, wymaga użycia STARTTLS, włącza uwierzytelnianie i zezwala klientom na łączenie się tylko w przypadku uwierzytelnienia.

Możesz także rozważyć smtpd_tls_wrappermodeopcję wymuszenia prawdziwych połączeń TLS (a nie połączeń STARTTLS).

Zauważ, że tego rodzaju konfiguracja może nieco utrudniać konfigurację Postfix (opcje można ustawić, main.cfa następnie zastąpić master.cf). Inną opcją jest uruchomienie wielu instancji Postfix, każdy z własnymi main.cfplikami konfiguracyjnymi, które określają te opcje.

polowanie
źródło
1
gdyby ustawiono sprzeczne opcje main.cf, które z nich byłyby preferowane? Z tego, co mówisz, wydaje się, że to master.cfzastępuje main.cf. Czy to jest poprawne?
Martin Vegter,
1
Te -oopcje zastąpią te w plikach konfiguracyjnych. master.cfPlik koordynuje uruchomienie procesów, a jeśli były do uruchamiania procesów ręcznie używając -oopcji, będą one zastąpić cokolwiek określony plik konfiguracyjny.
polowanie
Czy nie -o smtpd_tls_security_level=nonezabije TLS / nie zrobi wszystkiego zwykłym tekstem na wypadek, gdyby jakiś serwer próbował przekazać e-mail lub inne połączenie SMTP między serwerami na port 25?
TCB13,
-o smtpd_tls_security_level=noneRzeczywiście zapobiega STARTTLS z pracy na porcie 25, a tym samym uczynić całą komunikację w postaci zwykłego tekstu. Właśnie tego wymagało pytanie.
polowanie
Nadal głosuję z powyższego powodu. Spełnienie żądania OP jest w porządku, ale powinieneś dodać ostrzeżenie z dużej litery, co jest bardzo złym pomysłem. (Proszę, pozwólcie mi teraz głosować, dodając to. ;-))
ntninja,