Discussion:
Postfiks nie działa na porcie 587
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
c***@gmail.com
2020-03-31 21:56:14 UTC
Permalink
Skonfigurowałem Postfiksa z uwierzytelnianiem SASL, ale coś nie chce działać wysyłanie maili.
Sprawdzanie telnetem daje taki wynik:

telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
EHLO localhost
Connection closed by foreign host.

I tyle. Natomiast na port 465 jest już inaczej.

telnet localhost 465
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.moja.domena.pl ESMTP
EHLO localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye
Connection closed by foreign host.

Klient skonfigurowany do wysyłki na port 465, wysyła i maile dochodzą.
Niestety, obawiam się, że serwer jest open relay.

Mój wynik postconf -n

--------------------
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin/
compatibility_level = 2
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5
default_destination_concurrency_limit = 20
dovecot_destination_recipient_limit = 1
home_mailbox = Maildir/
inet_protocols = ipv4
local_destination_concurrency_limit = 2
local_recipient_maps = $alias_maps unix:passwd.byname
mail_name = Postfix
mail_spool_directory = /var/mail/%u/
mailbox_command = /usr/libexec/dovecot/deliver
mailbox_size_limit = 204800000
mailq_path = /usr/bin/mailq
manpage_directory = /usr/man
message_size_limit = 128000000
mydestination = $mydomain, $myhostname, localhost
mydomain = moja.domena.pl
myhostname = mail.moja.domena.pl
mynetworks = 192.168.0.0/16, 192.168.0.253, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases
readme_directory = /usr/share/doc/postfix
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
relay_domains = $mydestination
sample_directory = /etc/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP
smtpd_client_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unknown_client
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_unauth_pipelining,reject_invalid_helo_hostname,permit
smtpd_recipient_restrictions = reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,permit_mynetworks,reject
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sender_login_maps = hash:/etc/postfix/login_maps
smtpd_sender_restrictions = permit_sasl_authenticated,permit_mynetworks, reject_unknown_sender_domain,reject_non_fqdn_sender,reject_authenticated_sender_login_mismatch
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_auth_only = no
smtpd_tls_cert_file = /etc/postfix/ssl/smtpcert.pem
smtpd_tls_key_file = /etc/postfix/ssl/smtpkey.pem
smtpd_tls_loglevel = 0
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 450
virtual_transport = dovecot
------------------

W maillog mam taki pojawiający się dość często komunikat:

SSL_accept error from gate[192.168.0.253]: -1
warning: TLS library problem: error:14095126:SSL routines:ssl3_read_n:unexpected eof while reading:ssl/record/rec_layer_s3.c:302:

Co mogłem zepsuć?
Lemat
2020-04-01 00:32:17 UTC
Permalink
Post by c***@gmail.com
Skonfigurowałem Postfiksa z uwierzytelnianiem SASL, ale coś nie chce działać wysyłanie maili.
telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
EHLO localhost
Connection closed by foreign host.
brak wpisów w master.cf
Post by c***@gmail.com
I tyle. Natomiast na port 465 jest już inaczej.
no bo pewnie jest wpis w master.cf
Post by c***@gmail.com
Niestety, obawiam się, że serwer jest open relay.
mynetworks = 192.168.0.0/16, 192.168.0.253, 127.0.0.0/8
no to nie wrzucaj do mynetworks 64k adresów, o których niewiele wiesz i
pewnie którym nie ufasz
Post by c***@gmail.com
smtpd_client_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unknown_client
smtpd_helo_restrictions = reject_unauth_pipelining,reject_invalid_helo_hostname,permit
smtpd_recipient_restrictions = reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,permit_mynetworks,reject
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sender_restrictions = permit_sasl_authenticated,permit_mynetworks, reject_unknown_sender_domain,reject_non_fqdn_sender,reject_authenticated_sender_login_mismatch
te rulki wyglądają ok
Post by c***@gmail.com
SSL_accept error from gate[192.168.0.253]: -1
klient 192.168.0.253 i serwer nie mogą się dogadać w sprawie
certyfikatów, protokołów szyfrowania lub coś w ten deseń.
--
Pozdrawiam
Lemat
c***@gmail.com
2020-04-01 11:24:44 UTC
Permalink
Post by Lemat
Post by c***@gmail.com
Skonfigurowałem Postfiksa z uwierzytelnianiem SASL, ale coś nie chce działać wysyłanie maili.
telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
EHLO localhost
Connection closed by foreign host.
brak wpisów w master.cf
Fragment master.cf
......
smtp inet n - - - - smtpd
smtps inet n - - - - smtpd
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_client_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unknown_client
-o smtpd_helo_restrictions=yes
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_authenticated_header=yes
.....
jeszcze jakaś regułka z sasl musi być?
Post by Lemat
Post by c***@gmail.com
Niestety, obawiam się, że serwer jest open relay.
mynetworks = 192.168.0.0/16, 192.168.0.253, 127.0.0.0/8
no to nie wrzucaj do mynetworks 64k adresów, o których niewiele wiesz i
pewnie którym nie ufasz
To są adresy mojej sieci lokalnej.
Post by Lemat
klient 192.168.0.253 i serwer nie mogą się dogadać w sprawie
certyfikatów, protokołów szyfrowania lub coś w ten deseń.
Mam trochę nietypowo zrobione to wszystko.
Serwer z postfiksem jest za NATem. Na bramę przekierowane są porty 487 i 465, czyli tylko wysyłanie.
Dodatkowo w sieci wewnętrznej działa do spółki z dovecotem.
Idea jest taka, że ten serwer służy tylko do wysyłki na zewnątrz i ma niczego z zewnątrz nie odbierać.
192.168.0.253 to numer IP bramy.
co do open relay, sprawdzałem telnetem według http://exchange.sembee.info/network/openrelaytest.asp
i niestety po komendzie rcpt to:***@anotherdomain.com
dostaję OK.
Używałem moich adresów w domenach gmalil.com i linux.pl
Lemat
2020-04-01 19:19:37 UTC
Permalink
Post by c***@gmail.com
Post by Lemat
Post by c***@gmail.com
Skonfigurowałem Postfiksa z uwierzytelnianiem SASL, ale coś nie chce działać wysyłanie maili.
telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
EHLO localhost
Connection closed by foreign host.
brak wpisów w master.cf
Fragment master.cf
.......
smtp inet n - - - - smtpd
smtps inet n - - - - smtpd
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_client_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unknown_client
-o smtpd_helo_restrictions=yes
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_authenticated_header=yes
......
jeszcze jakaś regułka z sasl musi być?
wygląda ok
Post by c***@gmail.com
Post by Lemat
Post by c***@gmail.com
Niestety, obawiam się, że serwer jest open relay.
mynetworks = 192.168.0.0/16, 192.168.0.253, 127.0.0.0/8
no to nie wrzucaj do mynetworks 64k adresów, o których niewiele wiesz i
pewnie którym nie ufasz
To są adresy mojej sieci lokalnej.
I? ufasz każdemu z nich?
na moich serwerach user wyśle emaila tylko jak poda login i hasło
Post by c***@gmail.com
Post by Lemat
klient 192.168.0.253 i serwer nie mogą się dogadać w sprawie
certyfikatów, protokołów szyfrowania lub coś w ten deseń.
Mam trochę nietypowo zrobione to wszystko.
Serwer z postfiksem jest za NATem. Na bramę przekierowane są porty 487 i 465, czyli tylko wysyłanie.
Dodatkowo w sieci wewnętrznej działa do spółki z dovecotem.
Idea jest taka, że ten serwer służy tylko do wysyłki na zewnątrz i ma niczego z zewnątrz nie odbierać.
192.168.0.253 to numer IP bramy.
co do open relay, sprawdzałem telnetem według http://exchange.sembee.info/network/openrelaytest.asp
dostaję OK.
192.168.0.253 masz w mynetworks...
--
Pozdrawiam
Lemat
c***@gmail.com
2020-04-01 21:02:05 UTC
Permalink
Post by Lemat
Post by c***@gmail.com
To są adresy mojej sieci lokalnej.
I? ufasz każdemu z nich?
Tak Oczywiście. To mała sieć, niewiele ponad 30 użytkowników
Post by Lemat
Post by c***@gmail.com
dostaję OK.
192.168.0.253 masz w mynetworks...
No dobra, wyciałem to i w mynetworks zostawiłem tylko 127.0.0.0/8.
Dalej bez zmian. na porcie 465 rcpt to:.... OK

Ale jest pewien postęp. Na porcie 587 EHLO odpowiada
ehlo localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING

dalej nie widać AUTH (na 25 widać), ale można wysyłać ustawiając klienta na port 587.
Tak w ogóle to dzieje się coś dziwnego (albo mnie się wydaje).
Chodzi o następującą linię w main.cf

#smtpd_sasl_exceptions_networks = 192.168.0.0/24, 127.0.0.0/8

Jak jest zakomentowana, to klient może wysyłać przy następujących ustawieniach
port: 587
Bezpieczeństwo połączenia "STARTTLS" ("Bez szyfrowania" nie idzie)
Metoda uwierzytelniania: Normalne hasło ("Bez uwierzytelniania" i "Szyfrowane hasło" nie idzie).

port: 465
Bezpieczeństwo połączenia "STARTTLS" i "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i "Bez uwierzytelniania"
Maile dochodzą. Na ust. "Szyfrowane hasło" - nie.

Jak tę linię odkomentuję, to na porcie 587 nie wysyła w ogóle.
Na 465 wysyła w każdym ustawieniu.

Przejrzałem pół Internetu i wymiękłem.
Piotr Lechowicz
2020-04-02 09:35:12 UTC
Permalink
W dniu 2020-04-01 o 23:02, ***@gmail.com pisze:

Wybacz, ale odnoszę wrażenie, że działasz trochę po omacku i nie wiesz co/jak chcesz osiągnąć.
Więc dla uporządkowania - przyjęła się taka konfiguracja serwera SMTP pod kątem agentów przyjmujących wiadomości od klientów:
-port 587 - agent MSA z obowiązkowym uwierzytelnieniem i z zalecanym (ale nieobowiązkowym) szyfrowaniem StartTLS (RFC2476)
-port 465 - agent SMTPS (SMTP over TLS) z obowiązkowym uwierzytelnieniem i szyfrowaniem SSL/TLS (RFC 8314)
Post by c***@gmail.com
Post by Lemat
192.168.0.253 masz w mynetworks...
No dobra, wyciałem to i w mynetworks zostawiłem tylko 127.0.0.0/8.
Dalej bez zmian. na porcie 465 rcpt to:.... OK
Ale jest pewien postęp. Na porcie 587 EHLO odpowiada
ehlo localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
dalej nie widać AUTH (na 25 widać), ale można wysyłać ustawiając klienta na port 587> Tak w ogóle to dzieje się coś dziwnego (albo mnie się wydaje).
Chodzi o następującą linię w main.cf
#smtpd_sasl_exceptions_networks = 192.168.0.0/24, 127.0.0.0/8
Z góry uprzedzam, że się na Postfixie wogóle się nie znam, ale nazwy opcji są tak oczywiste, że nie powinno być wątpliwości.
Jeżeli ta opcja wyłącza uwierzytelnianie dla podanych zakresów IP, to masz dokładnie objaw który opisałeś - dla klientów z LAN serwer nie oferuje mechanizmu AUTH.
Post by c***@gmail.com
Jak jest zakomentowana, to klient może wysyłać przy następujących ustawieniach
port: 587
Bezpieczeństwo połączenia "STARTTLS" ("Bez szyfrowania" nie idzie)
Metoda uwierzytelniania: Normalne hasło ("Bez uwierzytelniania" i "Szyfrowane hasło" nie idzie).
Dla portu 587 właśnie tak powinno być ustawione po stronie klienta.
Ja nie puszczam żadnego klienta bez uwierzytelnienia, jeżeli nie ma takiej potrzeby.
Wyjątkami są na ogół jakieś stare maszyny MFC (drukarka/skaner/kopiarka) lub automatyka (np. ETHMy od alarmów).
Post by c***@gmail.com
port: 465
Bezpieczeństwo połączenia "STARTTLS" i "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i "Bez uwierzytelniania"
Maile dochodzą. Na ust. "Szyfrowane hasło" - nie.
A jak skonfigurowałeś dostępne dla klienta metody uwierzytelniania?
Poza tym to nie samo hasło ma być szyfrowane, tylko całe połączenie.
Dla portu 465 ustaw w kliencie:
Bezpieczeństwo połączenia "SSL/TLS"
Metoda uwierzytelniania: "Normalne hasło"
Post by c***@gmail.com
Jak tę linię odkomentuję, to na porcie 587 nie wysyła w ogóle.
Na 465 wysyła w każdym ustawieniu.
Przejrzałem pół Internetu i wymiękłem.
To sprawdź drugie pół, a szczególnie:
http://www.postfix.org/SASL_README.html
http://www.postfix.org/TLS_README.html

Powodzenia
c***@gmail.com
2020-04-02 16:16:11 UTC
Permalink
Post by Piotr Lechowicz
Wybacz, ale odnoszę wrażenie, że działasz trochę po omacku i nie wiesz co/jak chcesz osiągnąć.
Tak to może wyglądać, ale ja wiem co chcę osiągnąć. Obowiązkowe uwierzytelnianie po stronie klienta i taką konfigurację postfiksa, aby MTA nie był open relay.
Post by Piotr Lechowicz
Post by c***@gmail.com
Jak jest zakomentowana, to klient może wysyłać przy następujących ustawieniach
port: 587
Bezpieczeństwo połączenia "STARTTLS" ("Bez szyfrowania" nie idzie)
Metoda uwierzytelniania: Normalne hasło ("Bez uwierzytelniania" i "Szyfrowane hasło" nie idzie).
Dla portu 587 właśnie tak powinno być ustawione po stronie klienta.
I w zasadzie na tym można byłoby poprzestać, gdyby nie pewne wątpliwości.
Tak jak pisałem wcześniej EHLO nie pokazuje, że uwierzytelnianie na porcie 587 działa. Oto listingi z włączonym uwierzytelnianiem dla sieci wewnętrznej:
Dla portu 25
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.moja.domena.pl ESMTP
EHLO localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye

Dla portu 587
telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.moja.domena.pl ESMTP
EHLO localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye

I teraz nie wiem, czy na porcie 587 działa uwierzytelnianie, czy nie.
Post by Piotr Lechowicz
Post by c***@gmail.com
port: 465
Bezpieczeństwo połączenia "STARTTLS" i "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i "Bez uwierzytelniania"
Maile dochodzą. Na ust. "Szyfrowane hasło" - nie.
A jak skonfigurowałeś dostępne dla klienta metody uwierzytelniania?
Wcześniej napisałem nieprawdę... zatem jeszcze raz.
1. Bezpieczeństwo połączenia "STARTTLS"
Metoda uwierzytelniania: "Normalne hasło"
Działa

2. Bezpieczeństwo połączenia "STARTTLS"
Metoda uwierzytelniania: "Szyfrowane hasło"
Nie działa

3. Bezpieczeństwo połączenia "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i każda inna
Nie działa
Post by Piotr Lechowicz
Poza tym to nie samo hasło ma być szyfrowane, tylko całe połączenie.
Bezpieczeństwo połączenia "SSL/TLS"
Metoda uwierzytelniania: "Normalne hasło"
Nie działa i żadnych komunikatów w logach. Klient mówi, że nie mógł się połączyć z serwerem.

Ale zostawmy port 465. Wydaje się, że port 587 działa, tylko dlaczego tego nie pokazuje przy telnetowaniu?

Pozostaje jeszcze kwestia open relay przez port 465.

Pozdrawiam
Cysorz
c***@gmail.com
2020-04-06 11:55:13 UTC
Permalink
Post by c***@gmail.com
Post by Piotr Lechowicz
Wybacz, ale odnoszę wrażenie, że działasz trochę po omacku i nie wiesz co/jak chcesz osiągnąć.
Tak to może wyglądać, ale ja wiem co chcę osiągnąć. Obowiązkowe uwierzytelnianie po stronie klienta i taką konfigurację postfiksa, aby MTA nie był open relay.
Post by Piotr Lechowicz
Post by c***@gmail.com
Jak jest zakomentowana, to klient może wysyłać przy następujących ustawieniach
port: 587
Bezpieczeństwo połączenia "STARTTLS" ("Bez szyfrowania" nie idzie)
Metoda uwierzytelniania: Normalne hasło ("Bez uwierzytelniania" i "Szyfrowane hasło" nie idzie).
Dla portu 587 właśnie tak powinno być ustawione po stronie klienta.
I w zasadzie na tym można byłoby poprzestać, gdyby nie pewne wątpliwości.
Dla portu 25
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.moja.domena.pl ESMTP
EHLO localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye
Dla portu 587
telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.moja.domena.pl ESMTP
EHLO localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye
I teraz nie wiem, czy na porcie 587 działa uwierzytelnianie, czy nie.
Post by Piotr Lechowicz
Post by c***@gmail.com
port: 465
Bezpieczeństwo połączenia "STARTTLS" i "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i "Bez uwierzytelniania"
Maile dochodzą. Na ust. "Szyfrowane hasło" - nie.
A jak skonfigurowałeś dostępne dla klienta metody uwierzytelniania?
Wcześniej napisałem nieprawdę... zatem jeszcze raz.
1. Bezpieczeństwo połączenia "STARTTLS"
Metoda uwierzytelniania: "Normalne hasło"
Działa
2. Bezpieczeństwo połączenia "STARTTLS"
Metoda uwierzytelniania: "Szyfrowane hasło"
Nie działa
3. Bezpieczeństwo połączenia "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i każda inna
Nie działa
Post by Piotr Lechowicz
Poza tym to nie samo hasło ma być szyfrowane, tylko całe połączenie.
Bezpieczeństwo połączenia "SSL/TLS"
Metoda uwierzytelniania: "Normalne hasło"
Nie działa i żadnych komunikatów w logach. Klient mówi, że nie mógł się połączyć z serwerem.
Ale zostawmy port 465. Wydaje się, że port 587 działa, tylko dlaczego tego nie pokazuje przy telnetowaniu?
Pozostaje jeszcze kwestia open relay przez port 465.
Pozdrawiam
Cysorz
Wracam do tematu, sytuacja jest dziwna.
Skonfigurowałem Postfiksa tylko dla portu 587.
Wydaje się działać poprawnie. maillog poniżej:

---------------
Apr 6 13:37:14 mail postfix/smtpd[24174]: BCE862A60701: client=gate[192.168.0.253], sasl_method=PLAIN, sasl_username=***@mail.moja.domena.pl
Apr 6 13:37:14 mail postfix/cleanup[24176]: BCE862A60701: message-id=<d47cbfee-4cd9-9787-3110-***@moja.domena.pl>
Apr 6 13:37:14 mail postfix/qmgr[11100]: BCE862A60701: from=<***@moja.domena.pl>, size=701, nrcpt=1 (queue active)
Apr 6 13:37:14 mail postfix/smtpd[24174]: disconnect from gate[192.168.0.253] ehlo=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=6
Apr 6 13:37:15 mail postfix/smtp[24177]: BCE862A60701: to=<***@linux.pl>, relay=mail.linux.pl[88.99.142.38]:25, delay=0.59, delays=0.1/0/0.14/0.35, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 1D8A663801BD)
-----------
Niestety, okazało się, że jeżeli klient jest skonfigurowany "Bez uwierzytelniania", to poczta również jest dostarczana.
Zaklęcia stosowane przez innych z podobnym problemem, u mnie nie działają.

Wersja Postfiksa: 3.4.7 x64 instalowana z paczki Slackware.
postconf -n
-----------------
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin/
compatibility_level = 2
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5
default_destination_concurrency_limit = 20
dovecot_destination_recipient_limit = 1
home_mailbox = Maildir/
inet_protocols = ipv4
local_destination_concurrency_limit = 2
local_recipient_maps = $alias_maps unix:passwd.byname
mail_name = Postfix
mail_spool_directory = /var/mail/%u/
mailbox_command = /usr/libexec/dovecot/deliver
mailbox_size_limit = 204800000
mailq_path = /usr/bin/mailq
manpage_directory = /usr/man
message_size_limit = 128000000
mydestination = $mydomain, $myhostname, localhost
mydomain = moja.domena.pl
myhostname = mail.moja.domena.pl
mynetworks = 192.168.0.0/16, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases
readme_directory = /usr/share/doc/postfix
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
relay_domains = $mydestination
sample_directory = /etc/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP
smtpd_client_restrictions = reject_unknown_client,permit_sasl_authenticated
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_unauth_pipelining,reject_invalid_helo_hostname,permit
smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination,reject
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sender_login_maps = hash:/etc/postfix/login_maps
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender,reject_authenticated_sender_login_mismatch,permit_sasl_authenticated,permit_mynetworks
unknown_local_recipient_reject_code = 450
virtual_alias_domains = inna_domena.pl
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_base = /var/mail/virtual
virtual_transport = dovecot

-----------------
Co może być nie tak? Czy to możliwe, że ta wersja Postfiksa jest wadliwa?
c***@gmail.com
2020-04-06 12:53:55 UTC
Permalink
Post by c***@gmail.com
Post by c***@gmail.com
Post by Piotr Lechowicz
Wybacz, ale odnoszę wrażenie, że działasz trochę po omacku i nie wiesz co/jak chcesz osiągnąć.
Tak to może wyglądać, ale ja wiem co chcę osiągnąć. Obowiązkowe uwierzytelnianie po stronie klienta i taką konfigurację postfiksa, aby MTA nie był open relay.
Post by Piotr Lechowicz
Post by c***@gmail.com
Jak jest zakomentowana, to klient może wysyłać przy następujących ustawieniach
port: 587
Bezpieczeństwo połączenia "STARTTLS" ("Bez szyfrowania" nie idzie)
Metoda uwierzytelniania: Normalne hasło ("Bez uwierzytelniania" i "Szyfrowane hasło" nie idzie).
Dla portu 587 właśnie tak powinno być ustawione po stronie klienta.
I w zasadzie na tym można byłoby poprzestać, gdyby nie pewne wątpliwości.
Dla portu 25
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.moja.domena.pl ESMTP
EHLO localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye
Dla portu 587
telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.moja.domena.pl ESMTP
EHLO localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye
I teraz nie wiem, czy na porcie 587 działa uwierzytelnianie, czy nie.
Post by Piotr Lechowicz
Post by c***@gmail.com
port: 465
Bezpieczeństwo połączenia "STARTTLS" i "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i "Bez uwierzytelniania"
Maile dochodzą. Na ust. "Szyfrowane hasło" - nie.
A jak skonfigurowałeś dostępne dla klienta metody uwierzytelniania?
Wcześniej napisałem nieprawdę... zatem jeszcze raz.
1. Bezpieczeństwo połączenia "STARTTLS"
Metoda uwierzytelniania: "Normalne hasło"
Działa
2. Bezpieczeństwo połączenia "STARTTLS"
Metoda uwierzytelniania: "Szyfrowane hasło"
Nie działa
3. Bezpieczeństwo połączenia "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i każda inna
Nie działa
Post by Piotr Lechowicz
Poza tym to nie samo hasło ma być szyfrowane, tylko całe połączenie.
Bezpieczeństwo połączenia "SSL/TLS"
Metoda uwierzytelniania: "Normalne hasło"
Nie działa i żadnych komunikatów w logach. Klient mówi, że nie mógł się połączyć z serwerem.
Ale zostawmy port 465. Wydaje się, że port 587 działa, tylko dlaczego tego nie pokazuje przy telnetowaniu?
Pozostaje jeszcze kwestia open relay przez port 465.
Pozdrawiam
Cysorz
Wracam do tematu, sytuacja jest dziwna.
Skonfigurowałem Postfiksa tylko dla portu 587.
---------------
Apr 6 13:37:14 mail postfix/smtpd[24174]: disconnect from gate[192.168.0.253] ehlo=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=6
-----------
Niestety, okazało się, że jeżeli klient jest skonfigurowany "Bez uwierzytelniania", to poczta również jest dostarczana.
Zaklęcia stosowane przez innych z podobnym problemem, u mnie nie działają.
Wersja Postfiksa: 3.4.7 x64 instalowana z paczki Slackware.
postconf -n
-----------------
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin/
compatibility_level = 2
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5
default_destination_concurrency_limit = 20
dovecot_destination_recipient_limit = 1
home_mailbox = Maildir/
inet_protocols = ipv4
local_destination_concurrency_limit = 2
local_recipient_maps = $alias_maps unix:passwd.byname
mail_name = Postfix
mail_spool_directory = /var/mail/%u/
mailbox_command = /usr/libexec/dovecot/deliver
mailbox_size_limit = 204800000
mailq_path = /usr/bin/mailq
manpage_directory = /usr/man
message_size_limit = 128000000
mydestination = $mydomain, $myhostname, localhost
mydomain = moja.domena.pl
myhostname = mail.moja.domena.pl
mynetworks = 192.168.0.0/16, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases
readme_directory = /usr/share/doc/postfix
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
relay_domains = $mydestination
sample_directory = /etc/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP
smtpd_client_restrictions = reject_unknown_client,permit_sasl_authenticated
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_unauth_pipelining,reject_invalid_helo_hostname,permit
smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination,reject
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sender_login_maps = hash:/etc/postfix/login_maps
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender,reject_authenticated_sender_login_mismatch,permit_sasl_authenticated,permit_mynetworks
unknown_local_recipient_reject_code = 450
virtual_alias_domains = inna_domena.pl
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_base = /var/mail/virtual
virtual_transport = dovecot
-----------------
Co może być nie tak? Czy to możliwe, że ta wersja Postfiksa jest wadliwa?
Edit. nareszcie działa.

Kluczowe linie w master.cf
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_path=smtpd
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_authenticated_header=yes
-o receive_override_options=no_header_body_checks,no_address_mappings
-o smtpd_sender_restrictions=reject_sender_login_mismatch,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_authenticated_sender_login_mismatch,permit_sasl_authenticated,permit_mynetworks,rejec
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject_unauth_destination
-o smtpd_relay_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
-o smtpd_helo_restrictions=reject_unauth_pipelining,reject_invalid_helo_hostname,permit
c***@gmail.com
2020-04-06 12:56:13 UTC
Permalink
Post by c***@gmail.com
Post by c***@gmail.com
Post by c***@gmail.com
Post by Piotr Lechowicz
Wybacz, ale odnoszę wrażenie, że działasz trochę po omacku i nie wiesz co/jak chcesz osiągnąć.
Tak to może wyglądać, ale ja wiem co chcę osiągnąć. Obowiązkowe uwierzytelnianie po stronie klienta i taką konfigurację postfiksa, aby MTA nie był open relay.
Post by Piotr Lechowicz
Post by c***@gmail.com
Jak jest zakomentowana, to klient może wysyłać przy następujących ustawieniach
port: 587
Bezpieczeństwo połączenia "STARTTLS" ("Bez szyfrowania" nie idzie)
Metoda uwierzytelniania: Normalne hasło ("Bez uwierzytelniania" i "Szyfrowane hasło" nie idzie).
Dla portu 587 właśnie tak powinno być ustawione po stronie klienta.
I w zasadzie na tym można byłoby poprzestać, gdyby nie pewne wątpliwości.
Dla portu 25
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.moja.domena.pl ESMTP
EHLO localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye
Dla portu 587
telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.moja.domena.pl ESMTP
EHLO localhost
250-mail.moja.domena.pl
250-PIPELINING
250-SIZE 128000000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
quit
221 2.0.0 Bye
I teraz nie wiem, czy na porcie 587 działa uwierzytelnianie, czy nie.
Post by Piotr Lechowicz
Post by c***@gmail.com
port: 465
Bezpieczeństwo połączenia "STARTTLS" i "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i "Bez uwierzytelniania"
Maile dochodzą. Na ust. "Szyfrowane hasło" - nie.
A jak skonfigurowałeś dostępne dla klienta metody uwierzytelniania?
Wcześniej napisałem nieprawdę... zatem jeszcze raz.
1. Bezpieczeństwo połączenia "STARTTLS"
Metoda uwierzytelniania: "Normalne hasło"
Działa
2. Bezpieczeństwo połączenia "STARTTLS"
Metoda uwierzytelniania: "Szyfrowane hasło"
Nie działa
3. Bezpieczeństwo połączenia "Bez szyfrowania"
Metoda uwierzytelniania: "Normalne hasło" i każda inna
Nie działa
Post by Piotr Lechowicz
Poza tym to nie samo hasło ma być szyfrowane, tylko całe połączenie.
Bezpieczeństwo połączenia "SSL/TLS"
Metoda uwierzytelniania: "Normalne hasło"
Nie działa i żadnych komunikatów w logach. Klient mówi, że nie mógł się połączyć z serwerem.
Ale zostawmy port 465. Wydaje się, że port 587 działa, tylko dlaczego tego nie pokazuje przy telnetowaniu?
Pozostaje jeszcze kwestia open relay przez port 465.
Pozdrawiam
Cysorz
Wracam do tematu, sytuacja jest dziwna.
Skonfigurowałem Postfiksa tylko dla portu 587.
---------------
Apr 6 13:37:14 mail postfix/smtpd[24174]: disconnect from gate[192.168.0.253] ehlo=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=6
-----------
Niestety, okazało się, że jeżeli klient jest skonfigurowany "Bez uwierzytelniania", to poczta również jest dostarczana.
Zaklęcia stosowane przez innych z podobnym problemem, u mnie nie działają.
Wersja Postfiksa: 3.4.7 x64 instalowana z paczki Slackware.
postconf -n
-----------------
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
broken_sasl_auth_clients = yes
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin/
compatibility_level = 2
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5
default_destination_concurrency_limit = 20
dovecot_destination_recipient_limit = 1
home_mailbox = Maildir/
inet_protocols = ipv4
local_destination_concurrency_limit = 2
local_recipient_maps = $alias_maps unix:passwd.byname
mail_name = Postfix
mail_spool_directory = /var/mail/%u/
mailbox_command = /usr/libexec/dovecot/deliver
mailbox_size_limit = 204800000
mailq_path = /usr/bin/mailq
manpage_directory = /usr/man
message_size_limit = 128000000
mydestination = $mydomain, $myhostname, localhost
mydomain = moja.domena.pl
myhostname = mail.moja.domena.pl
mynetworks = 192.168.0.0/16, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases
readme_directory = /usr/share/doc/postfix
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
relay_domains = $mydestination
sample_directory = /etc/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP
smtpd_client_restrictions = reject_unknown_client,permit_sasl_authenticated
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_unauth_pipelining,reject_invalid_helo_hostname,permit
smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination,reject
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sender_login_maps = hash:/etc/postfix/login_maps
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender,reject_authenticated_sender_login_mismatch,permit_sasl_authenticated,permit_mynetworks
unknown_local_recipient_reject_code = 450
virtual_alias_domains = inna_domena.pl
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_base = /var/mail/virtual
virtual_transport = dovecot
-----------------
Co może być nie tak? Czy to możliwe, że ta wersja Postfiksa jest wadliwa?
Edit. nareszcie działa.
Kluczowe linie w master.cf
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_path=smtpd
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_authenticated_header=yes
-o receive_override_options=no_header_body_checks,no_address_mappings
-o smtpd_sender_restrictions=reject_sender_login_mismatch,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_authenticated_sender_login_mismatch,permit_sasl_authenticated,permit_mynetworks,rejec
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject_unauth_destination
-o smtpd_relay_restrictions=permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
-o smtpd_helo_restrictions=reject_unauth_pipelining,reject_invalid_helo_hostname,permit
Edit:
Obcięło mi literkę w tej linii:
-------------
-o smtpd_sender_restrictions=reject_sender_login_mismatch,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_authenticated_sender_login_mismatch,permit_sasl_authenticated,permit_mynetworks,reject
--------------

Kontynuuj czytanie narkive:
Loading...