Skocz do zawartości
Krisinho

Problem z uwierzytelnieniem SASL - Postfix + Dovecot

Polecane posty

Witam, zainstalowałem na swoim vps'ie Dovecot, Postfix oraz SquirrelMail. Na peirwszy rzut oka używając squirellmail wszysto działa, moge wysyłać wiadomości na zewnątrz (na swoje konto gmailowe) oraz odbierać wiadomości z zewnątrz. Chcę jednak uwierzytelniać połączenie za pomocą SASL i tu pojawia się problem bo mimo chyba odpowiedniej konfiguracji niestety telnet przy próbie logowania zwraca:

 

 

[root@h254 ~]# telnet mail.mydomain.eu 25

Trying 87.119.2.182...
Connected to mail.mydomain.eu.
Escape character is '^]'.
220 mail.mydomain.eu ESMTP Postfix
AUTH PLAIN base64hash
535 5.7.8 Error: authentication failed:
421 4.4.2 mail.mydomain.eu Error: timeout exceeded
Connection closed by foreign host.

 

tail -10 /var/log/maillog

 

 

Jul 12 18:27:22 h254 dovecot: imap(offer): Disconnected: Disconnected in IDLE bytes=375/939

Jul 12 18:27:22 h254 dovecot: imap-login: Login: user=<offer>, method=PLAIN, rip=178.37.102.98, lip=87.119.2.182, mpid=11108
Jul 12 18:27:23 h254 dovecot: imap(offer): Disconnected: Disconnected in IDLE bytes=312/4010
Jul 12 18:27:57 h254 postfix/smtpd[11093]: warning: h254[87.119.2.182]: SASL PLAIN authentication failed:
Jul 12 18:28:49 h254 dovecot: imap-login: Login: user=<offer>, method=PLAIN, rip=::1, lip=::1, mpid=11120, secured
Jul 12 18:28:49 h254 dovecot: imap(offer): Disconnected: Logged out bytes=79/681
Jul 12 18:32:57 h254 postfix/smtpd[11093]: timeout after AUTH from h254[87.119.2.182]
Jul 12 18:32:57 h254 postfix/smtpd[11093]: disconnect from h254[87.119.2.182]
Jul 12 18:33:50 h254 dovecot: imap-login: Login: user=<offer>, method=PLAIN, rip=::1, lip=::1, mpid=11202, secured
Jul 12 18:33:50 h254 dovecot: imap(offer): Disconnected: Logged out bytes=79/681
postconf -a

 

[root@h254 ~]# postconf -a

cyrus
dovecot

ustawienia smptd w main.cf

 

smtpd_sasl_auth_enable = yes

broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated, reject_unauth_destination, permit

 

 

w /etc/dovecot/conf.d/10-auth.conf ustawione

 

disable_plaintext_auth = no

auth_mechanisms = plain login

 

w /etc/dovecot/conf.d/10-master.conf service auth:

 

service auth {

# unix_listener auth-userdb {
#mode = 0600
# user = postfix
# group = postfix
# }
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
# Auth process is run as this user.
#user = $default_internal_user
}

 

System to centos 6.2 kernel 2.6.32-14-pve , dovecot 2.0.9, postfix-2.6.6-2.2.el6_1.i686

 

Nie mogę także wysyłać maili poprzez Outlook Express, dostaje błąd:

 

 

Łączenie z serwerem nie powiodło się. Konto: 'mail.mydomain.eu', Serwer: 'mail.mydomain.eu', Protokół: SMTP, Port: 25, Zabezpieczenie (SSL): Nie, Błąd łączy: 10060, Numer błędu: 0x800CCC0E

 

Pozdrawiam i proszę o pomoc pierwszy raz konfiguruje vpsa z usługami mail

 

Edytowano przez Krisinho (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy posiadasz w katalogu postfixa podkatalog sasl z plikiem smtpd.conf (poniżej zawartość pliku)??

 

 

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN CRAM-MD5
log_level: 3

 

Jeżeli nie masz takiego pliku, to go utwórz, zrestartuj postfixa i zerknij czy pomogło.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

235 2.7.0 Authentication successful

 

Wielkie dzięki mmmm21 :)

Kolejna sprawa jest taka że outlook dalej nie może wysłać wiadomości :x błąd ten sam jak wyżej

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Prawdopodobnie Twój ISP blokuje port 25, z jakiej sieci wysyłasz emaile?? Zaraz zamieszczę konfiguracje portu 587 dla postfixa.

 

W pliku master.cf doklej:

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=
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=reject_sender_login_mismatch,permit
  -o smtpd_sender_restrictions=permit_sasl_authenticated,reject
  -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject

Poza tym, utwórz reverse dns dla ip swojego serwera pocztowego.

Edytowano przez mmmm21 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Po doklejeniu tego na koniec 10-master.cf dostaje bląd


Starting Dovecot Imap: doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-master.conf line 114: Expecting '='

 

 

114 to linia:

 

 

submission inet n - - - - smtpd

 

 

 

Generalnie z czego widze to tutaj jest cś z TLS. Ja TLS oraz tych certyfikatów nie konfigurowałem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Faktycznie,,,

Teraz jak próbuje wystartartować dovecota to dostaję

 

Starting Dovecot Imap: doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 12: Unknown setting: ssl_cert

 

 

 

Czyżby znaczyło to że muszę całą procedurę uruchamiania na postfixie szyfrowania tls/ssl przeprowadzić teraz?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Słuchaj nie musisz tls/ssl uruchamiać, ale na dzień dzisiejszy to standard. Ewentualnie w postfixie w pliku master.cf możesz zamienić linie -o smtpd_tls_security_level=encrypt na -o smtpd_tls_security_level=may

 

Na tę chwile nie działa ci odbieranie emaili, czy ich wysyłka??

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A więc posiedziałem, ustawiłem szyfrowanie i wygląda na to że jestem już bardzo blisko ostatecznego sukcesu! aczkolwiek mam problem z wysyłanie maili.

 


.... rozne dane ssl/tls
---
250 DSN
AUTH PLAIN HASH
235 2.7.0 Authentication successful
mail from: domain@domain.pl
250 2.1.0 Ok
rcpt to: example@domain.com
450 4.1.2 <example@domain.com>: Recipient address rejected: Domain not found
oczywiście zamiast example@domain.com jest prawdziwa skrzynka na gmailu.
tutaj skrawek main.cf, próbowałem pokombinować z smtpd_recipient_restrictions ale nie moge sobie poradzic

 

 

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_una uth_destination, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname
smtpd_tls_security_level = encrypt
smtpd_tls_wrappermode = no
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/mail.pem
smtpd_tls_key_file=/etc/ssl/private/mail.key

 

# dig gmail.com +short

173.194.112.53
173.194.112.54

 

 

w swojej domenie mogę wysyłać maile bez przeszkód
Edytowano przez Krisinho (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zwracałem Ci już powyżej uwagę na brak reverse dns dla ip, którego używa Twój serwer pocztowy. Zwróć się do usługodawcy, żeby utworzyli Tobie reverse dns dla posiadanego adresu IP.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dostałem taką odpowiedź:

 

Witam

Nie ma u nas możliwości ustawienia RevDNS.
Dla klientów posiadających u nas hosting możemy zaoferować serwer poczty.

 

CO w takiej sytuacji?

 

Dziwnym jest dla mnie że nie mogę bez tego revDNS wysyłać maili. Wczoraj zanim pokonfigurowałem TLS to mogłem wysyłać maile na o2, onet i gmail bo tam sprawdzałem a teraz nigdzie nie przejdzie..

 

i jest ten denerwujacy blad Recipient address rejected: Domain not found

Edytowano przez Krisinho (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W main.cf zmień smtpd_tls_security_level = encrypt na smtpd_tls_security_level = may.

 

Jeżeli chodzi o revdns, to zgodnie z RFC1912, każdy adres ip powinien posiadać revdns, jak widać część firm nie przestrzega pewnych zasad, w dodatku próbuje na tym zarobić.

 

EDIT: Bez pełnego wglądu w logi i konfiguracje serwera pocztowego, pomoc przypomina trochę wróżenie z fusów.

Edytowano przez mmmm21 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli chcesz mogę zdalnie zerknąć w konfigurację Twojego serwera, w takim przypadku proszę o kontakt na PM.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przepraszam moje niedopatrzenie znowu...



Ja zmieniłem ustawienia w main.cf a zapomniałem o tych ustawieniach konfiguracyjnych dla portu 587 w master.cf



Zmieniłem i teraz działa wszystko jak należy.


Chciałbym się jeszcze zapytać jak będzie wyglądać ta sprawa z revdns. Chcę rozesłać zapytania ofertowe na około 5000 adresów które mam w bazie. są to głównie serwery pocztowe przedsiębiorstw a nie popularne serwery pocztowe typu hotmail gmail itd.


Czy jest sens rozsyłać to bez revdns? ponieważ jeżeli wyśle 5k maili a 3k zostanie odrzucona to jest to bez sensu.


Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wszystko zależy od konfiguracji docelowych serwerów pocztowych, jeżeli serwery te będą weryfikować revdns twojego serwera, to poczta zostanie odrzucona i nie dotrze do adresata. Na dzień dzisiejszy sprawdzenie, czy reverse dns serwera wysyłającego istnieje, powinno być standardem, nie wspominając tutaj o całkowitej zgodności ip->PTR->ip.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Rozumiem będę forsował utworzenie RevDNS dla mnie. Jeżeli się nei uda to będę musiał inny VPS wykupić i konfigurować apache/bind oraz postfixa z dovecotem od nowa.

 

Co do konfiguracji dovecot i postfix. Czy wystarczy jak na nowym vps'ie przekleje tylko wszystkie pliki konfiguracyjne?:) wraz z certyfikatem i kluczem ssl? Czyli biorąc pod uwagę że /etc jest od trzymania plików konfiguracyjnych to usunę na nowym vpsie /etc/postfix oraz /etc/dovecot i wkleje z tego vpsa którego używam teraz? Oczywiście pierwsze będę musiał pliki stref domeny pozmieniać.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

O ile ustawienia będziesz mógł przekleić, o tyle wszystkie certyfikaty musisz wygenerować jeszcze raz.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dobra lecimy dalej. Skonfigurowałem drugiego VPS'a na nowo, postfix + dovecot sasl oraz ssl jest - wszystko powinno być ok tylko że nie działa mi poczta wychodząca. Wiadomości mogę odbierać niestety nie mogę wysyłac i sam już nie wiem o co chodzi. W panelu ovh pokazuje że mam skonfigurowany revdns.

 

Próba połączenia przez openssl:

[root@domain ~]# openssl s_client -connect mail.domain.eu:587 -starttls smtp
CONNECTED(00000003)

 

 

(i tu dalej nic, a powinny być te SSLowe rzeczy)

Log przy próbie połączenia przez openssl z smtp:

Jul 19 12:53:16 domain postfix/master[5549]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
Jul 19 12:54:16 domain postfix/smtpd[5586]: fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of: check_relay_domains, reject_unauth_destination, reject, defer or defer_if_permit
Jul 19 12:54:17 domain postfix/master[5549]: warning: process /usr/libexec/postfix/smtpd pid 5586 exit status 1
Jul 19 12:54:17 domain postfix/master[5549]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
Jul 19 12:55:17 domain postfix/smtpd[5588]: fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of: check_relay_domains, reject_unauth_destination, reject, defer or defer_if_permit

 

 

 

 

 

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = domain.eu
myhostname = mail.domain.eu
mynetworks = 168.100.189.0/28, 127.0.0.0/8, xxx.xxx.xxx.xxx (zew ip vpsa)
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_recipient_restrictions = permit_mynetworks , permit_sasl_authenticated, check_relay_domains, reject_unauth_destination, reject, defer_if_permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/mail.pem
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_tls_security_level = may
smtpd_tls_wrappermode = no
unknown_local_recipient_reject_code = 550

 

 

master.cf port 587:


 

submission inet n - n - - smtpd
-o smtpd_tls_security_level=may
-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 smtpd_sender_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions = permit_mynetworks , permit_sasl_authenticated, check_relay_domains, reject_unauth_destination, defer_if_permit

 

 

Wiem że błąd wskazuje na smtpd_recipient_restrictions ale próbowałem już wielu konfiguracji tej opcji i nic. W konfiguracji tego portu 587 zmieniłem flag chroot na "n" i też nic. Próbowałem z -o smtpd_tls_security_level ustawione i na may i encrypt - i nic. Z outlook expressa dostaje timeouta przy próbie połączenia z smtp.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Poprawne ustawienia dla przykładu w mian.cf:

smtpd_recipient_restrictions =
                        permit_mynetworks,
                        permit_sasl_authenticated,
                        reject_unauth_pipelining,
                        reject_invalid_hostname,
                        reject_non_fqdn_hostname,
                        reject_non_fqdn_sender,
                        reject_non_fqdn_recipient,
                        reject_unknown_sender_domain,
                        reject_unknown_recipient_domain,
                        reject_unauth_destination,

Po drugie z main.cf w zmiennej mynetworks usuń ip zewnętrzne serwera. Po trzecie coś nie tak jest z ceryfikatami ssl, bądź konfiguracją ssl w postfix-ie.

 

EDIT: openssl s_client -connect mail.domena.eu:25 -starttls smtp

Tu wygląda wszystko ok. Powyżej w tym wątku podałem ci poprawną konfiguracje portu 587 dla postfixa, spróbuj jej użyć.

Edytowano przez mmmm21 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

dzięki ta konfiguracja smtpd_recipient_restrictions załatwiła sprawę. Teraz takie pytanie jako że dochodzę w końcu do końca mej drogi - czyli w końcu mam wszystko pokonfigurowane i mogę zacząć rozsyłkę maili - mam bazę 5 tysięcy maili. I teraz jak najlepiej je rozsyłać? Myślałem o rozwiązaniu takim aby execować cronem prosty skrypt php (jakaś pętelka z podpiętą bazą maili) tak żeby np 300 mail na godzine wysyłać żeby moja domena przez przypadek nie trafiła na blacklistę. Przy czym podobno nie można skonfigurować apache'a do korzystania z postfixa, tylko może korzystać z sendmail'a więc w takim wypadku będzie to nie możliwe do osiągnięcia.

 

byłbym wdzięczny za sugestie:)

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przydałoby się jeszcze dodać do definicji strefy dns domeny wpis spf

domena.eu.     IN TXT  "v=spf1 a mx -all"

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie konfigurujesz apache z postfixem tylko php i wszystkie znane mi smtp wspolpracuja z phpem. Ustawiasz sobie w pliku php.ini

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×