Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-11-08 00:09:35

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

[SOLVED] qmail+dovecot+deliver jak to ożenić?

Witam

Popełniłem serwer pocztowy - już działa.
Części skladowe - Qmail, Vpopmail i dovecot imap - do tego spamassassin, clam i roundcube.

Serwer, webmail, imap i pop3 już działa ( z szyfrowaniem lub bez), lista wysyłkowa -ezmlm i qmailadmin też.

Na razie poległem na zastosowaniu sieve - przekopałem chyba setkę stron internetowych i blogów - i im więcej czytam - tym mniej wiem.

Pierwsze pytanie: jak uruchomić pysieved - aby mógł autoryzowac userów albo z dovecot-auth - albo - najlepiej z bazy mysql?

Jak podpiąć qmaila (vpopmaila) do programu dovecot-sieve - deliver?

Na razie - w żaden sposób nie da się zalogować do pysieved (z roundcube i thunderbirda).
Pysieved  mam ustawione korzystanie z dovecot-auth (w pysieved.ini)
W dovecocie włączone auth-client

Dovecot pobiera dane z bazy vpopmail takimi zapytaniami: :

Kod:

password_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user, pw_clear_passwd AS password FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'
#
user_query = SELECT pw_dir as home, 64020 AS uid, 64020 AS gid, concat('*:bytes=', pw_shell/1048576,'M') as userdb_quota_rule FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'

Czy da sie jakoś przetworzyć te komedy dla pysieved - i jak powinny wyglądać?
Jak nauczyć program deliver - dovecota - aby akceptował config stworzony przez pysieved?

I jak w pliku defaultdelivery qmaila wsadzić deliver - żeby to działało jak należy - w odniesieniu do każdego użyszkodnika? - (akceptowało konfigi pysieved w skrzynkach pocztowych).

Dzięki i pozdrawiam

Ostatnio edytowany przez Jacekalex (2009-11-20 03:56:57)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#2  2009-11-08 01:06:42

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: [SOLVED] qmail+dovecot+deliver jak to ożenić?

a nie prosciej uzywac sieve z dovecot'a a nie bawic sie w jakies pysieved ...

Kod:

# dovecot na porcie 2000 będzie obsługiwał konfigurowanie filtrów sieve
protocol managesieve {
        listen = *:2000
        sieve=~/.dovecot.sieve
        sieve_storage=~/mail/.sieve
}

# dovecot może pełnić funkcję LDA
protocol lda {
        postmaster_address = postmaster@nasza.domena.
        
        # obsługujemy filtorwanie sieve
        mail_plugins = cmusieve
        
        # logi idą do syslog'a
        log_path = 
        info_log_path = 
}

BTW ja stoje na stanowisku ze jezeli bawimy sie w szyfrowanie to aby ono mialo sens (zabezpieczalo hasla przed przechwyceniem) to powinno byc wymuszane ... czyli polaczen nieszyfrowanych wymagajacych autoryzacji nie wpuszczamy ....


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#3  2009-11-08 02:38:16

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] qmail+dovecot+deliver jak to ożenić?

Dzięki za dobra rade - zastosowałem się do niej - lecz niestety - bez rezultatu.

Nie wiem - czy bląd jest w paczce z dovecotem, - czy w konfigu - ale jest:

Usługa managesieve - nie wstaje (nie działa).

Mój konfig:

:~# cat /etc/dovecot/dovecot.conf
protocols = imap imaps
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_privileged_group = mail
protocol imap {
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
protocol managesieve {
  listen = *:2000
  managesieve_max_line_length = 65536
  sieve=~/.dovecot.sieve
  sieve_storage=~/sieve
}
protocol lda {
  postmaster_address = postmaster@domena.pl
   mail_plugins = cmusieve
  log_path =
  info_log_path =
  mail_plugin_dir = /usr/lib/dovecot/modules/lda
  quota_full_tempfail = no
  deliver_log_format = msgid=%m: %$
  sendmail_path = /usr/sbin/sendmail
}

auth default {
  mechanisms =  plain login cram-md5

  passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }

  userdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }

  user = vpopmail
}
plugin {

  quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95
  quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80

}

a rezultat:

:~# restartx dovecot
* Restarting IMAP/POP3 mail server dovecot                                        [ OK ]
root@localhost:~# :~# p dovecot
root     29586  0.0  0.0   2072   580 ?        Ss   02:36   0:00 /usr/sbin/dovecot
vpopmail 29588  0.0  0.0  10180  2392 ?        S    02:36   0:00 dovecot-auth
vpopmail 29593  0.0  0.0  10312  2708 ?        S    02:36   0:00 dovecot-auth -w
dovecot  29594  0.0  0.0   3672  1576 ?        S    02:36   0:00 imap-login
dovecot  29595  0.0  0.0   3672  1580 ?        S    02:36   0:00 imap-login
dovecot  29596  0.0  0.0   3672  1580 ?        S    02:36   0:00 imap-login


root@localhost:~# nmap -p 2000 localhost

Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-08 02:24 CET
Warning: Hostname localhost resolves to 3 IPs. Using 127.0.0.1.
Interesting ports on localhost (127.0.0.1):
PORT     STATE  SERVICE
2000/tcp closed callbook

Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

I co z tym fantem zrobić?

Ostatnio edytowany przez Jacekalex (2009-11-08 02:45:04)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#4  2009-11-08 14:07:27

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: [SOLVED] qmail+dovecot+deliver jak to ożenić?

Kod:

protocols = imap imaps pop3 pop3s managesieve

"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#5  2009-11-08 14:37:39

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] qmail+dovecot+deliver jak to ożenić?

Dzięki - Ja też znalazłem w końcu ten błąd.
Teraz śmiga i jest prawie dobrze.

Pozostał problem z deliverem.

dovecot-deliver - nie działa.

Próbowalem trzech opcji znalezionych w dokumentacji - dotyczących przekierowania na deliver:
tego:

Kod:

|/var/qmail/bin/preline -f /usr/lib/dovecot/deliver
|/var/qmail/bin/preline -f /usr/lib/dovecot/deliver -d $EXT@$USER
# i dodatkowo takiego:
|/var/qmail/bin/preline -f | /usr/lib/dovecot/deliver -c ~/.dovecot.sieve

- oba pochodzą z dokumentacji: plik /usr/share/doc/dovecot-common/wiki/LDA.Qmail.txt

Dodatkowo  znalazlem na jakiejś liście mailingowej - sposób - by użyć vdeliver z pakietu vpopmail:

Kod:

|/usr/sbin/vdelivermail | /usr/lib/dovecot/deliver
|/usr/sbin/vdelivermail | /usr/lib/dovecot/deliver -c ~/.dovecot.sieve
|/usr/sbin/vdelivermail | /usr/lib/dovecot/deliver -d $EXT@$USER

konfiguracja dovecot  wygląda tak:

Kod:

protocols = imap imaps managesieve lda
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_privileged_group = mail
protocol imap {
mail_plugins = quota imap_quota
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
protocol managesieve {
  ssl_listen = *:2000
  managesieve_max_line_length = 65536
  sieve=~/.dovecot.sieve
  sieve_storage=~/sieve
}
protocol lda {
  postmaster_address = postmaster@example.com
   mail_plugins = cmusieve
   mail_plugins = quota
  log_path = /var/log/dovecot-deliver.log
  info_log_path = /var/log/dovecot-deliver.log
  mail_plugin_dir = /usr/lib/dovecot/modules/lda
  quota_full_tempfail = yes
  deliver_log_format = msgid=%m: %$
  sendmail_path = /usr/sbin/sendmail
  auth_socket_path = /var/run/dovecot/auth-master
}

auth default {
  mechanisms =  plain login cram-md5

  passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }

  userdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }

  user = vpopmail

socket listen {
 master {
         path = /var/run/dovecot/auth-master
         mode = 0666
         user = vpopmail
         group = vchkpw
}
}
}
plugin {
  sieve=~/.dovecot.sieve
  sieve_dir=~/sieve
  quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95
  quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80

}

- zrobione.

A wiadomości nie filtruje w żaden sposób.

Rzecz dziwna - przy dostarczaniu maila do skrzynki nie ma żadnego błędu.
Qmail uruchomiony prawidłowo:

Kod:

p qmail | grep deliver
root     20460  0.0  0.0   1688   384 pts/9    S    03:28   0:00 qmail-lspawn |/var/qmail/bin/preline -f /usr/lib/dovecot/deliver -d @root?

-to z 2 wersją przekierowania zawierającą argument -d $EXT@$USER

Dodatkowo - deliver ma logować aktywność do pliku logu /var/log/dovecot-deliver.log - nie zalogował nawet jednej kropki.
Pomimo że istnieje:

Kod:

:~$ /usr/lib/dovecot/deliver --help
Usage: deliver [-c <config file>] [-a <address>] [-d <username>] [-p <path>]
               [-f <envelope sender>] [-m <mailbox>] [-n] [-s] [-e] [-k]
Fatal: Unknown argument: --help

W konfigu usera  są zdefiniowane reguły:

Kod:

:#cat /var/lib/vpopmail/domains/example.com/user/.dovecot.sieve 
## Generated by RoundCube Webmail SieveRules Plugin ##

require ["fileinto","copy","vacation","reject"];

# rule:[Rules2]

if anyof (header :contains "X-Spam-Status" "yes")

{

    fileinto "Spam";

}

# rule:[pierwsza]

elsif anyof (true)

{

    redirect :copy "admin@example.com";

}

# rule:[odpow]

elsif anyof (true)

{

    vacation

        :days 0

        :subject "Działa autoresponder"

        "Do cholery!";

}

# rule:[ostatni]

elsif anyof (true)

{

    reject "A może to zadziała do cholery?";

}


}

- ap po progamie deliver ani śladu dzialalności - ani nie filtruje - ani nie loguje - zupełnie - jakby był świeżym powietrzem.

I co z tym fantem zrobić?

Pozdrawiam

Ostatnio edytowany przez Jacekalex (2009-11-09 22:48:38)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2009-11-10 11:40:02

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: [SOLVED] qmail+dovecot+deliver jak to ożenić?

z eximem dziala bardzo ladnie - wpis w sekcji "transports":

Kod:

        dovecot_pipe:
                driver = pipe
                log_output = yes
                command = /usr/lib/dovecot/deliver
                message_prefix =
                message_suffix =
                return_path_add
                delivery_date_add
                envelope_to_add

"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#7  2009-11-10 15:45:45

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] qmail+dovecot+deliver jak to ożenić?

Znalazłem błąd dovecota nareszcie:
Managesieve automatycznie zapisuje wiadomości w folderze sieve zlokalizowanym w przypadku vpopmaila w lokalizacji /var/lib/vpopmail/domains/domena/user/.

Kod:

:~# ls -l /var/lib/vpopmail/domains/example.com/admin/sieve
razem 12
lrwxrwxrwx 1 root     root     65 2009-11-10 19:11 Dowiązanie do roundcube.sieve -> /var/lib/vpopmail/domains/example.com/admin/sieve/roundcube.sieve
-rw------- 1 vpopmail vchkpw  151 2009-11-10 19:11 roundcube.sieve
drwx------ 2 vpopmail vchkpw 4096 2009-11-10 19:05 tmp

tworzy też dowiązanie symboliczne .dovecot.sieve w folderze użytkownika:

Kod:

:~# ls -la /var/lib/vpopmail/domains/example.com/admin/.dovecot.sieve
lrwxrwxrwx 1 vpopmail vchkpw 21 2009-11-10 19:05 /var/lib/vpopmail/domains/example.com/admin/.dovecot.sieve -> sieve/roundcube.sieve

W mailach dochodzących do skrzy nek aniśladu przekierowania, w logach ani śladu.
Ale w mailach odbitych - (powodem odbicia był włączony autoresponder - który alarmował - że wysłał za dużo mail do tego samego użytkownika) - znalazłem dziwny wpis:

Kod:

1257875293.9767.localhost,S=2108:2,:Fatal: open(/var/lib/vpopmail/domains/example.com/.dovecot.sieve) failed: No such file or directory

I tu jest pies pogrzebany:

Skoro magnasieve ( dovecot) wie - gdzie zapisać plik z regułami sieve, skoro dovecot imap - wie - gdzie znaleźć maile i skrzynkę, to dlaczego deliver poszukuje pliku - dowiązania .dovecot.sieve w folderze domeny, a nie folderze usera w domenie - tam - gdzie zapisał go demon magnasieve - też dovecot w końcu.

Nawiasem mowiąc -nie mam nawet informacji - że to deliver - ale jaki inny program zaglądałby do tego pliku?

Jednak - skoro znalazłem przyczyne - to mam pytanie - jak usunąć ta usterkę (dotyczącą lokalizacji pliku) a właściwie 2 usterki - jeśli program ma w konfigu polecenie logowania do pliku - to jak go zmusić - aby zapisywał logi do pliku?

Spróbuję dać w konfigu ścieżki bezwzględne

Kod:

/var/lib/vpopmail/domains/%d/%n/.dovecot.sieve

Ale prosze -w miarę możliwości - o sugestie odnośnie tego problemu.

Dzięki i Pozdrawiam.

Ostatnio edytowany przez Jacekalex (2009-11-10 20:10:32)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#8  2009-11-10 18:29:12

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: [SOLVED] qmail+dovecot+deliver jak to ożenić?

u mnie to byl Lenny ... ja bym sugerowal diagnozowac gdzie ginie ten lit idacy przez dovecot/deliver ... przydatne moze tez byc glosne logowanie w dovecot mail_debug=yes i tym podobne opcje w konfigu ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#9  2009-11-10 20:55:45

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [SOLVED] qmail+dovecot+deliver jak to ożenić?

SPróbuję - dowcip polega na tym - ze mam dwa dovecoty i dwa delivery - nawet nie wiem - który zostawił wpis.

Bo plik .qmail w foderze .../example.com/admin wyglądał przy testach tak:

Kod:

/var/lib/vpopmail/domains/example.com/admin/Maildir/
| /usr/bin/autorespond 86400 3 /var/lib/vpopmail/domains/example.com/admin/vacation/message /var/lib/vpopmail/domains/example.com/admin/vacation
#|/usr/sbin/vdelivermail | nc localhost 2629
#| nc localhost 2589
#| >> ~/mail-test.txt

|/usr/bin/preline -f /usr/lib/dovecot/deliver
|/usr/bin/preline -f /usr/lib/dovecot/deliver -d $EXT@$USER
|/usr/bin/preline -f /usr/lib/dovecot/deliver -c ~/.dovecot.sieve
|/usr/bin/preline -f /usr/local/libexec/dovecot/deliver
|/usr/bin/preline -f /usr/local/libexec/dovecot/deliver -c ~/.dovecot.sieve
|/usr/bin/preline -f /usr/local/libexec/dovecot/deliver -d $EXT@$USER
|/usr/bin/preline -f /usr/lib/dovecot/deliver >> ~/preline-deliver-deb.txt
|/usr/bin/preline -f /usr/local/libexec/dovecot/deliver >> ~/preline-deliver-source.txt
|/usr/bin/preline -f /usr/lib/dovecot/deliver | nc localhost 2589
|/usr/bin/preline -f /usr/local/libexec/dovecot/deliver | nc localhost 2599

Gdyby nie odrzucenia z powodu autorespondera

Kod:

AUTORESPOND: This message is looping...it has my Delivered-To header

- to i za 5 lat bym rozwiązania nie znalazł.

Bo tylko w tych odrzuceniach są wpisy pochodzące z któregoś delivera.

No cóż powalczę jeszcze z tym, ale muszę sie speiszyc - do poniedizalku-wtorku musze mieć naprawione 2 blędy w roundcube (php/java), ten problem i konfiguracja spamdyke - wstępną mam - ale trzeba ją jeszcze poprawić i quota-maildir-mysql - znalazlem chyba z 30 sposobow - żaden nie działa a ja za slabo znam dovecota - żeby wiedzieć o kazdym sposobie - czego w nim nie napisali (kiedyś przez takie studiowanie 1000 pewnych sposobów na kompilację kernela -swoje pierwsze jajo popełniłem po dwóch miesiącach kombinacji - dziś sam się dziwię - dlaczego tak długo.

Dziękuję  i Pozdrawiam.

EDiT:
Deliver jest upartty:

Kod:

deliver(example.com): 2009-11-10 20:57:03 Info: maildir: access(/var/lib/vpopmail/domains/example.com/Maildir, rwx): failed: No such file or directory
deliver(example.com): 2009-11-10 20:57:03 Info: maildir: couldn't find root dir
deliver(example.com): 2009-11-10 20:57:03 Info: maildir: Couldn't create mail storage : Root mail directory not given

nie widze w logach - braku dostępu do pliku .dvecot.sieve - ale za to skrzynki pocztowej szuka piętro wyzej - niż powinien.

Co ciekawsze - rozwiązanie problemu delivera mam 15 cm od nosa .

Kod:

sieve=/var/lib/vpopmail/domains/%d/%n/.dovecot.sieve
  sieve_dir=/var/lib/vpopmail/domains/%d/%n/sieve

- te wpisy zakończyły komunikaty o braku pliku filtrów sieve.
Jeśli istnieje jakieś polecenie w stylu maildirpatch = które pozwala zdefiniować ścieżkę bezwzględną - to mogloby pomóc.
Tutaj jest log: http://www.wklej.org/id/201416/
Nie wiem tylko jednego - dlaczego deliver dokunuje przekierownia w obrębie domeny ,i w folderze domeny szuka skrzynki - której tam być nie może.

Pozdr.

Ostatnio edytowany przez Jacekalex (2009-11-10 21:41:56)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#10  2009-11-10 22:34:56

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: [SOLVED] qmail+dovecot+deliver jak to ożenić?

polozenie skrzynki mozesz mu wskazac np. za pomoca:

Kod:

default_mail_env = mbox:%h/mail/:INBOX=%h/mail/INBOX

"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)