postfix i port 587
W związku z wprowadzeniem przez TPSA blokady portu 25 tcp dla użytkowników neostrady (podkreślam - dla użytkowników neostrady) ci użytkownicy będą mieli problemy z wysyłaniem poczty (podkreślam - z wysyłaniem). Wszystkie portale darmowych konta rozsyłają informację jak przestawić czytniki typu Outlook, Thunderbird a ja przedstawię poniżej jak przestawić postfixa:Na tapetę weźmy master.cf. Są tam wpisy, które mówią postfixowi gdzie i czego ma słuchać. Dla przykładu standardowy port 25 wygląda tak:
smtp inet n - n - - smtpdTeoretycznie więc, gdyby skopiować tą linię zamieniając tylko "smtp" na "submission" to by zadziałało, ale rola portu 587 jest inna i powinno być coś takiego:
-o receive_override_options=no_address_mappings
submission inet n - n - - smtpd
# -o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=reject_sender_login_mismatch,permit
-o receive_override_options=no_header_body_checks,no_address_mappings
-o smtpd_sender_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
Jak widać dodałem mnóstwo -o, które przesłaniają standardowe opcja z main.cf, zwłaszcza nowe smtpd_*_restrictions. Już tłumaczę:
- smtpd_sasl_auth_enable=yes
to na wypadek, jakby ktoś nie miał - milter_macro_daemon_name
to jest standardowa opcja - smtpd_client_restrictions i smtpd_helo_restrictions
tu wyczyściliśmy wszelkie filtry antyspamowe, które nie będą nam potrzebne - smtpd_sender_restrictions=reject_sender_login_mismatch,permit
czyścimy filtry antyspamowe, zostawiając tylko filtr na podszywanie się userów pod siebie - receive_override_options=no_header_body_checks,no_address_mappings
ta opcja występuje u mnie przy zwykłym "smtp" więc rozszerzam ją o no_header_body_checks, ci którzy nie mają przy "smtp" powinni ją dodać przy "submission" z tą jedną opcją. - smtpd_sender_restrictions i smtpd_recipient_restrictions
te łańcuchy dają OK tylko i wyłącznie zalogowanym klientom - i to jest najważniejsze w całej tej szopce. - smtpd_tls_security_level
w powyższym przykładzie zakomentowane - warto wygenerować sobie certyfikaty aby połączenie było szyfrowane - ale nie jest to konieczne. Nie mniej jednak zalecam. - jeżeli ktoś nie stosuje no_address_mappings to nadal nie powinien stosować
Update 2009-12-01
I nagle dzisiaj się wszyscy obudzili z ręką w nocniku. A tepsa trąbiła o włączeniu blokady od lipca 2009. Jeżeli jacyś ladmini nadal nie przestawili serwerów pocztowych to sami są sobie winni i świadczy to o ich poziomie zainteresowania stabilnością usługi, którą świadczą przecież za jakieś pieniądze.Pojawiają się także złote pomysły w stylu redirectu na iptables portu 25 na port 587. Da się, powinno nawet działać, ale pomysł jest moim zdaniem kretyński.
Tak sobie oglądam też różne fora, na których są dyskutowane rozwiązania techniczne tego problemu i stwierdzam, że ... niektórzy admini się nie nadają do tej roboty...
To ja może w punktach:
- nie "zmienić" a "dodać" obsługę portu 587. Jak "zmienicie" to wam normalna poczta przestanie działać.
- TLS nie jest wymagany - patrz powyższy opis smtpd_tls_security_level
- jak czytnik krzyczy, że certyfikat nie jest zaufany to albo jest problem z samym certyfikatem - np. jego czas minął albo certyfikat nie jest podpisany przez zaufany urząd certyfikacji i trzeba wtedy dodać certyfikat na stałe do czytnika - i nie ma to nic wspólnego z 587.
- oprócz portu 587 istnieje coś takiego jak smtps - 465tcp, 587 jest opisany w RFC 2476 od 11 lat i powtórzony w RFC 4409 3 lata temu.
- wyłączenie SASLa powinno być nominowane do nagrody Darwina
Update 2010-05-05
Powyższy tekst jest przepisem umożliwiającym użytkownikom na neostradzie połączenie do serwera. Jeżeli ktoś ma serwer na neostradzie - co jest głupie ale technicznie możliwe - to powinien skorzystać ze smarthosta.Powyższy tekst oczywiście nie obejmuje problemu przestawienia czytnika (typu Outlook, Thunderbird) z portu 25 na port 587. Nie uwzględnia też istnienia firewalli i innych wynalazków po drodze.
Data utworzenia : 2009-11-20, data aktualizacji :2010-07-06
Komentarze:
chrees
2014-01-20 07:45:33
przetwarzanie konfiguracji w main.cf
Przy tej konfiguracji niemal w 100% jest pomijana konfiguracja main.cf. Przykładowo u mnie pomijany był łańcuch smtpd_recipient_restrictions, w którym zawarłem dość specyficzne ustawienia serwera. Wobec tego client, który łączył się za pomocą portu 587, mógł zdziałać dużo więcej, niż ten z 25.
Z tym sobie poradziłem komentując -o z tym łańcuchem. Natomiast pozostał jeszcze jeden problem. Jeśli z serwerem łączy się client po tym porcie i wysyła maila na adres, który u mnie jest aliasem zdefiniowanym w bazie danych, to serwer uparcie dostarcza go na konto o takim samym adresie, a nie na alias. Jeśli komunikacja odbywa się po porcie 25, to jest wszystko ok.
Jak zrobić, by tak samo było dla portu 587?
Z tym sobie poradziłem komentując -o z tym łańcuchem. Natomiast pozostał jeszcze jeden problem. Jeśli z serwerem łączy się client po tym porcie i wysyła maila na adres, który u mnie jest aliasem zdefiniowanym w bazie danych, to serwer uparcie dostarcza go na konto o takim samym adresie, a nie na alias. Jeśli komunikacja odbywa się po porcie 25, to jest wszystko ok.
Jak zrobić, by tak samo było dla portu 587?
Odpowiedź Lemata:
1) i dokładnie tak ma być, że klient na porcie 587 ma mieć inne restrykcje niż klient na porcie 25
2) no address mappings
2) no address mappings
Sethiel
2012-11-12 15:12:47
podwójny smtpd_sender_restrictions
Nie lepiej dać to w jednej linii?
-o smtpd_sender_restrictions=reject_sender_login_mismatch,permit_sasl_authenticated,reject
-o smtpd_sender_restrictions=reject_sender_login_mismatch,permit_sasl_authenticated,reject
Odpowiedź Lemata:
jak zawsze trąbię: wszystko co się dotyczy recipienta powinno być skonfigurowane dopiero w smtpd_recipient_restrictions
Ładowny
2011-04-08 03:33:20
firma StartCOM
Dzięki Lemat, w parę minut dodałem w swoim postfixie obsługę portu 587. Do tej pory nie potrzebowałem, ale mój nowy internet przez komórkę ma zablokowany port 25. Natomiast w komentarzach wyczytałem o darmowych certyfikatach i się tym zainteresowałem. Poniżej moje spostrzeżenia. Może warto podpiąć pod posta zachęcającego do skorzystania z usług.
Do jbw - piszesz "odkryłem firmę StartCOM, która wydaje nieodpłatnie proste certyfikaty, w zupełności wystarczające dla amatorskiego serwera. Od niedawna aktualizacje certyfikatów głównych dla Windows zawierają ten urząd na liście zaufanych wystawców."
No cóż, sprawdziłem. I tak.
Do Windows (IE) tak, ale np. windows mail już tych certyfikatów nie akceptuje i się pluje ( z certyfikatami z np. Digicert czy Equifax nie ma problemu - mam ich ze 20 dla róznych klientów ). Tak samo Firefox. Google Chrome akceptuje, ale mam to na tej samej wirtualce z której się rejestrowałem, więc nie jestem pewien.
Oni robią prosty trick - rejestrują swój certyfikat w komputerze jako zaufany podczas procesu rejestracji u nich, więc na tym komputerze wszystkie odwołania będą ok. Gorzej z komputerami innych użytkowników. Zainstalowałem ich certyfikat i wszedłem na stronę Firefoxem z innego komputera ( wirtualki ). I dostałem standardowe ostrzeżenie o niezaufanym certyfikacie. IE faktycznie ten certyfikat łyka. Ale co z użytkownikami MAC'ów, Linux'a i przeglądarek innych niż IE ?
Natmiast samo "za darmo" wygląda lekko podejrzanie, niby za darmo ale "Even though StartSSL™ provides certificates generally free of charge, revocations thereof may carry a handling fee." Czyli jak zgubimy klucz prywatny lub co gorzej dostanie się w niepowołane ręce, to trzeba bulić. Nie doszukałem się ile.
Na ich plus zaliczam to, że pozwalają wrzucić samodzielnie wygenerowany CSR, na minus to, że domyślnie próbują wygenerować wszystko za nas, w tym klucz prywatny. Czyli jak ktoś skorzysta z tej opcji ( ja nie skorzystałem, klucze prywatne wolę generować sam ) i klucz zgubi albo co gorsza ktoś go przejmie, to problem gotowy.
Generalnie, rozwiązanie do domowych serwerków. Nie polecałbym stosować w firmowych zastosowaniach, bo można się nieźle przejechać. Tylko do domowych serwerków wystarczy samodzielnie wygenerowany certyfikat. Nie trzeba się nigdzie rejestrować, podawać danych itp. Wystarczy poprosić użytkowników serwerka o dodanie klucza do zaufanych urzędów certyfikacji.
Do jbw - piszesz "odkryłem firmę StartCOM, która wydaje nieodpłatnie proste certyfikaty, w zupełności wystarczające dla amatorskiego serwera. Od niedawna aktualizacje certyfikatów głównych dla Windows zawierają ten urząd na liście zaufanych wystawców."
No cóż, sprawdziłem. I tak.
Do Windows (IE) tak, ale np. windows mail już tych certyfikatów nie akceptuje i się pluje ( z certyfikatami z np. Digicert czy Equifax nie ma problemu - mam ich ze 20 dla róznych klientów ). Tak samo Firefox. Google Chrome akceptuje, ale mam to na tej samej wirtualce z której się rejestrowałem, więc nie jestem pewien.
Oni robią prosty trick - rejestrują swój certyfikat w komputerze jako zaufany podczas procesu rejestracji u nich, więc na tym komputerze wszystkie odwołania będą ok. Gorzej z komputerami innych użytkowników. Zainstalowałem ich certyfikat i wszedłem na stronę Firefoxem z innego komputera ( wirtualki ). I dostałem standardowe ostrzeżenie o niezaufanym certyfikacie. IE faktycznie ten certyfikat łyka. Ale co z użytkownikami MAC'ów, Linux'a i przeglądarek innych niż IE ?
Natmiast samo "za darmo" wygląda lekko podejrzanie, niby za darmo ale "Even though StartSSL™ provides certificates generally free of charge, revocations thereof may carry a handling fee." Czyli jak zgubimy klucz prywatny lub co gorzej dostanie się w niepowołane ręce, to trzeba bulić. Nie doszukałem się ile.
Na ich plus zaliczam to, że pozwalają wrzucić samodzielnie wygenerowany CSR, na minus to, że domyślnie próbują wygenerować wszystko za nas, w tym klucz prywatny. Czyli jak ktoś skorzysta z tej opcji ( ja nie skorzystałem, klucze prywatne wolę generować sam ) i klucz zgubi albo co gorsza ktoś go przejmie, to problem gotowy.
Generalnie, rozwiązanie do domowych serwerków. Nie polecałbym stosować w firmowych zastosowaniach, bo można się nieźle przejechać. Tylko do domowych serwerków wystarczy samodzielnie wygenerowany certyfikat. Nie trzeba się nigdzie rejestrować, podawać danych itp. Wystarczy poprosić użytkowników serwerka o dodanie klucza do zaufanych urzędów certyfikacji.
jbw
2010-06-10 13:11:19
z mojej praktyki
Wykorzystałem "szum medialny" wokół blokady portu 25 aby przepędzić wszystkich swoich userów na port 587, z obowiązkowym SASL+TLS, bez względu na to, za pośrednictwem czego się łączą.
Pragnę podkreślić, co nie było tu wystarczająco mocno zaakcentowane, że wprowadzenie tylko uwierzytelnienia bez ochrony szyfrowaniem oddaje hasło na pastwę snifferów. A ponieważ powszechną praktyką jest używanie jednego hasła do wysyłania i odbierania poczty, skutki tego mogą być opłakane.
Napisałem skrypt analizujący logi pocztowe w połączeniu z prostym interfejsem www, gdzie widzę jaką metodą userzy się ostatnio łączyli. Dzięki temu mogłem pogonić pojedynczych maruderów do zmiany - i przed "godziną zero" wszyscy byli gotowi.
Wysyp pytań w komentarzach, czemu przekierowanie portu jest niedobre, potwierdza złą opinię o poziomie wiedzy adminów. Dla mnie rozdzielenie poczty od użytkowników i od serwerów stało się okazją do drastycznej radykalizacji reguł filtrowania na porcie 25, np. całkowicie odrzucam teraz non-fqdn HELO.
Skutek jest taki, że praktycznie zapomniałem co to jest spam. W ciągu minionego kwartału dostałem 2 lub 3 takie listy. Inni użytkownicy (jest ich około setki) też nie narzekają. Tymczasem zatrzymanych zostało, chwileczkę, zerknę... 17244 prób dostarczenia poczty, z samych tylko względów formalnych. Do tego trzeba doliczyć 876 odrzuconych nadawców z czarnych list oraz nieokreśloną ich liczbę, którzy nie przeszli szarolistnej procedury.
Z drugiej strony, zwiększył się komfort użytkowników, którzy teraz ślą pocztę skąd chcą, bez żadnych obstrukcji.
Warto też zauważyć dodatkową, uboczną korzyść z uwierzytelnienia, jaką jest pewność autorstwa. Opcja postfix-a
smtpd_sasl_authenticated_header = yes
umieszcza w liście wzmiankę, kto odpowiada za nadanie go.
Jedyny problem jaki pojawił się w całym tym przedsięwzięciu, to certyfikat serwera. Do tej pory używałem, jak większość linuksowców-amatorów, "samopodpisanego" certyfikatu i wymuszałem na użytkownikach zaakceptowanie go u siebie. Choć jest to nieprofesjonalna praktyka, trudno ode mnie wymagać zakupu "prawdziwego" certyfikatu na potrzeby usługi świadczonej nieodpłatnie. Nieoczekiwanie i ku wielkiej mej radości, odkryłem firmę StartCOM, która wydaje nieodpłatnie proste certyfikaty, w zupełności wystarczające dla amatorskiego serwera. Od niedawna aktualizacje certyfikatów głównych dla Windows zawierają ten urząd na liście zaufanych wystawców. Nie podaję adresu, szukajcie a znajdziecie.
I jeszcze drobne wyjaśnienie: mówiąc "amatorski" mam na myśli sposób finansowania, a nie poziom świadczonych usług ;-)
Pragnę podkreślić, co nie było tu wystarczająco mocno zaakcentowane, że wprowadzenie tylko uwierzytelnienia bez ochrony szyfrowaniem oddaje hasło na pastwę snifferów. A ponieważ powszechną praktyką jest używanie jednego hasła do wysyłania i odbierania poczty, skutki tego mogą być opłakane.
Napisałem skrypt analizujący logi pocztowe w połączeniu z prostym interfejsem www, gdzie widzę jaką metodą userzy się ostatnio łączyli. Dzięki temu mogłem pogonić pojedynczych maruderów do zmiany - i przed "godziną zero" wszyscy byli gotowi.
Wysyp pytań w komentarzach, czemu przekierowanie portu jest niedobre, potwierdza złą opinię o poziomie wiedzy adminów. Dla mnie rozdzielenie poczty od użytkowników i od serwerów stało się okazją do drastycznej radykalizacji reguł filtrowania na porcie 25, np. całkowicie odrzucam teraz non-fqdn HELO.
Skutek jest taki, że praktycznie zapomniałem co to jest spam. W ciągu minionego kwartału dostałem 2 lub 3 takie listy. Inni użytkownicy (jest ich około setki) też nie narzekają. Tymczasem zatrzymanych zostało, chwileczkę, zerknę... 17244 prób dostarczenia poczty, z samych tylko względów formalnych. Do tego trzeba doliczyć 876 odrzuconych nadawców z czarnych list oraz nieokreśloną ich liczbę, którzy nie przeszli szarolistnej procedury.
Z drugiej strony, zwiększył się komfort użytkowników, którzy teraz ślą pocztę skąd chcą, bez żadnych obstrukcji.
Warto też zauważyć dodatkową, uboczną korzyść z uwierzytelnienia, jaką jest pewność autorstwa. Opcja postfix-a
smtpd_sasl_authenticated_header = yes
umieszcza w liście wzmiankę, kto odpowiada za nadanie go.
Jedyny problem jaki pojawił się w całym tym przedsięwzięciu, to certyfikat serwera. Do tej pory używałem, jak większość linuksowców-amatorów, "samopodpisanego" certyfikatu i wymuszałem na użytkownikach zaakceptowanie go u siebie. Choć jest to nieprofesjonalna praktyka, trudno ode mnie wymagać zakupu "prawdziwego" certyfikatu na potrzeby usługi świadczonej nieodpłatnie. Nieoczekiwanie i ku wielkiej mej radości, odkryłem firmę StartCOM, która wydaje nieodpłatnie proste certyfikaty, w zupełności wystarczające dla amatorskiego serwera. Od niedawna aktualizacje certyfikatów głównych dla Windows zawierają ten urząd na liście zaufanych wystawców. Nie podaję adresu, szukajcie a znajdziecie.
I jeszcze drobne wyjaśnienie: mówiąc "amatorski" mam na myśli sposób finansowania, a nie poziom świadczonych usług ;-)
thomsonik
2010-05-27 11:04:02
odbieranie maili
witam, udało się z dialogiem załatwić, że odblokowali mi port 25, maile wychodzą już w świat mam jednak problem, gdyż nie mogę odbierać maili, na moim routerze za którym stoi maszyna z postfixem widać logi, że coś z serwera czy to wp czy onetu łączy się i dobija na ip postfixa na port 25, ale w mail.log na postfixie nie ma nic o tym zdarzeniu, ale raz na kilka godzin maile nagle wydaje się, że wszystkie nagle dochodzą na serwer do tego w kolejności innej niż zostały wysłane i nie mam pojęcia jak zdiagnozować problem, jeżeli widać na routerze że coś dobija się na serwer pocztowy eliminuje to dialog i blokadę portu 25, router też przekazuje, serwer jednak jak nie ma nic w mail.log to nic nie dochodzi, czyli jakby blokowane było przez np. firewall na linuxie(ale wyłączyłem) i raz na jakis czas dochodzą maile, mam zainstalowanego postfixa, docvecota, spamassasina+razor i clamav + amavis'ta na debianie stable, czy mogę prosić o jakieś sugestie jak taki problem zdiagnozować ?
Odpowiedź Lemata:
sugestia: przetłumacz na polski od piątego do ósmego przecinka.