Skocz do zawartości
Zaloguj się, aby obserwować  
sbl

[Postfix + Dovecot] - Maile spoza domeny serwera nie dochodzą

Polecane posty

Skonfigurowałem sobie Postfixa i Dovecota z użyciem kont wirtualnych trzymanych w MySQL.

Standardowo wg hwoto, postępowałem krok po kroku.

Autoryzacja za pomocą SASL, maile wysyłane są poprawnie do wszystkich serwerów pocztowych.

Natomiast problem pojawia się gdy chcę otrzymać jakiś email.

Wysłany np, z GMail do mojej skrzynki (w domenie postfixa) nie dochodzi, nie ma go w tmp Maildir, nie odbija do nadawcy z błędem, nie ma nic w logach. Jest to dla mnie bardzo dziwne :)

Jedynie dochodzą maile w domenie, w której skonfigurowałem serwer pocztowy.

Wklejam moją konfigurację i czekam na propozycje pomocy:

 

postconf -n

broken_sasl_auth_clients = yes
config_directory = /etc/postfix
html_directory = /usr/share/doc/postfix/html
message_size_limit = 30720000
mydestination = localhost, localhost.localdomain
myhostname = mail.mojadomena.pl
mynetworks = 127.0.0.0/8
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
readme_directory = /usr/share/doc/postfix
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
virtual_alias_domains = 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_transport = dovecot
virtual_uid_maps = static:5000

 

 

/etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login
saslauthd_path: /var/spool/postfix/var/run/saslauthd/mux
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mail
sql_passwd: mail
sql_database: mail
sql_select: select password from users where email = '%u'

 

dovecot -n

# 1.2.15: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-686-bigmem i686 Debian 6.0.3 ext3
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps pop3 pop3s
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(pop3): /usr/lib/dovecot/pop3-login
mail_location: maildir:/home/vmail/%d/%n/Maildir
mbox_write_locks: fcntl dotlock
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(pop3): /usr/lib/dovecot/pop3
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
namespace:
  type: private
  separator: .
  prefix: INBOX.
  inbox: yes
  list: yes
  subscriptions: yes
lda:
  log_path: /home/vmail/dovecot-deliver.log
  auth_socket_path: /var/run/dovecot/auth-master
  postmaster_address: postmaster@mojadomena.pl
  mail_plugins: sieve
  global_script_path: /home/vmail/globalsieverc
auth default:
  passdb:
    driver: sql
    args: /etc/dovecot/dovecot-sql.conf
  userdb:
    driver: static
    args: uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
  socket:
    type: listen
    client:
      path: /var/spool/postfix/private/auth
      mode: 432
      user: postfix
      group: postfix
    master:
      path: /var/run/dovecot/auth-master
      mode: 384
      user: vmail

 

/etc/dovecot/dovecot-sql.conf

driver = mysql
connect = host=127.0.0.1 dbname=mail user=mail password=mail
default_pass_scheme = CRYPT
password_query = SELECT email as user, password FROM users WHERE email='%u';

 

Po wysłaniu maila z GMail lub innej zewnętrznej poczty, sprawdzam mail.log i nie ma tam nic poza logiem poprawnego logowania do skrzynki.

Feb 28 00:56:50 serwer dovecot: imap-login: Login: user=<hello@mojadomena.pl>, method=PLAIN, rip=78.8.X.X, lip=X.X.56.X, TLS

 

Kolejka, logi czysto.

Użytkownik vmail o UID 5000 i grupie vmail również 5000 ma prawa zapisu do katalogu /home/vmail czego skutkiem jest poprawne tworzenie schematu katalogów przy dodaniu nowego konta pocztowego w MySQL.

Dovecot ma prawa zapisu ponieważ gdy wysyłam mail sam do siebie, lub z innej skrzynki w tej samej domenie to poprawnie zapisuje wiadomości w katalogach.

 

Proszę o pomoc :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

1. Czy nasłuchuje postfix na zewnętrznym IP ?

2. Firewall przepuszcza ruch ?

3. telnet z jakiegkolwiek innego serwera na port smtp ?

4. rekord MX ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

1. Czy nasłuchuje postfix na zewnętrznym IP ?

2. Firewall przepuszcza ruch ?

3. telnet z jakiegkolwiek innego serwera na port smtp ?

4. rekord MX ?

 

Firewall jest wyłączony.

Rekord MX poprawnie ustalony w DNS

Gdzie sprawdzić nasłuchiwanie postfixa?

mojadomena.pl.		21600	IN	MX	10 mail.mojadomena.pl.
applemac:~ sbl$ telnet mail.mojadomena.pl 587
Trying x.x.56.x...
Connected to mail.mojadomena.pl.
Escape character is '^]'.
220 mail.mojadomena.pl ESMTP Postfix
ehlo localhost
250-mail.mojadomena.pl
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
applemac:~ sbl$ telnet mail.mojadomena.pl 143
Trying x.x.56.x...
Connected to mail.mojadomena.pl.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS LOGINDISABLED] Dovecot ready.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy sprawdzałeś to z całkiem zewnętrznego serwera ?

Sprawdź ten port telnet moja.domena.pl 25

 

i wykonaj całą sesję

ehlo wp.pl
mail from: <test@wp.pl>
rcpt to: <twoj_user@twojadomena.pl>
data
Subject: test
test
.


 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

Czy sprawdzałeś to z całkiem zewnętrznego serwera ?

Sprawdź ten port telnet moja.domena.pl 25

 

i wykonaj całą sesję

ehlo wp.pl
mail from: <test@wp.pl>
rcpt to: <twoj_user@twojadomena.pl>
data
Subject: test
test
.


 

 

Tak, wykonuję telnet z zewnętrznego serwera, oraz u mnie SMTP jest na porcie 587 więc na 25 refused.

Tak więc, mail wysłany z telneta doszedł prawidłowo, hmm nie wiem co może być nie tak.

 

telnet mail.mojadomena.pl 587
Trying x.x.56.x...
Connected to mail.mojadomena.pl.
Escape character is '^]'.
220 mail.mojadomena.pl ESMTP Postfix
ehlo wp.pl
250-mail.mojadomena.pl
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from: <test@wp.pl>
250 2.1.0 Ok
rcpt to: <hello@mojadomena.pl>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: test
test
.
250 2.0.0 Ok: queued as 9855E9C0FB
quit
221 2.0.0 Bye
Connection closed by foreign host.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak, wykonuję telnet z zewnętrznego serwera, oraz u mnie SMTP jest na porcie 587 więc na 25 refused.

Skoro masz jedynie klienckie submission, to jak zewnętrzne serwery smtp (które gadają z sobą TYLKO po porcie 25) mają się do ciebie podłączyć?

A poza tym - to na porcie 587 powinna być bezwzględna autoryzacja smtp dla każdego. Więc mail from cos@wp.pl powinien zostać odbity.

Edytowano przez kafi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Skoro masz jedynie klienckie submission, to jak zewnętrzne serwery smtp (które gadają z sobą TYLKO po porcie 25) mają się do ciebie podłączyć?

A poza tym - to na porcie 587 powinna być bezwzględna autoryzacja smtp dla każdego. Więc mail from cos@wp.pl powinien zostać odbity.

 

Dodałem port 25 dla smtpd w master.cf, teraz config wygląda następująco a maile dochodzą bez problemu.

Tylko jak wymusić autoryzację na porcie 587?

pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
	-o smtp_fallback_relay=
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix	-	n	n	-	2	pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}
dovecot  unix   -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
587	inet	n	-	n	-	-	smtpd
25	inet	n	-	n	-	-	smtpd

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok, ustawiłem.

Teraz przy próbie wysłania maila z telnetu przez port 587 zwraca ciągle:

530 5.7.0 Must issue a STARTTLS command first

 

Więc chyba dobrze.

Dziękuję za pomoc i pozdrawiam.

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ę

Zaloguj się, aby obserwować  

×