Pe serverele de mail pe care le administrez folosesc Xmail. Suportă out of the box 90% din toate funcțiile pe care mi le doresc și poate fi extins relativ ușor cu filtre. Are o singură mare problemă: nu are un server IMAP/IMAPS. Și cum dacă vrei să accesezi mailurile fără probleme din web, de pe telefon și cu un client desktop, cam ai nevoie de IMAP, a trebuit să găsesc o variantă de a combina Xmail cu serverul IMAP/IMAPS Dovecot.
O să sar peste configurarea Xmail, voi presupune că este instalat și rulează bine (adică mailurile ajung fizic pe disc prin /var/spool/xmail), iar Dovecot este abia instalat, în configurarea default și vrem să-l integrăm cu Xmail. Practic, pentru ca Dovecot să poată servi mailurile așa cum le salvează Xmail, are nevoie de două lucruri:
- să poată autentifica userii, folosind aceleași parole ca Xmail.
- să poată accesa fizic mailbox-urile.
Prima parte am rezolvat-o deja în postul anterior, printr-un mic script care ia userii din fișierele Xmail, decodează parolele și salvează lista într-un format pe care îl înțelege Dovecot. Este varianta cea mai simplă, cu autentificare plain. Se poate modifica ușor și pentru MD5 sau alte metode. Personal, folosesc doar IMAPS, pentru că doar folosirea parolelor criptate nu asigură securitate reală.
Pentru login, Dovecot are nevoie de un user special, eu folosesc dovecotlogin, și să i se indice în fișierul de configurare de unde să-și citească userii (eu folosesc /etc/dovecot/passwd). Userul dovecotlogin nu există implicit, trebuie creat pe sistem:
# adduser test
Mai rămâne a doua parte, accesul fizic la mailbox-uri. În primul rând trebuie să-i indicăm lui Dovecot pe unde se găsesc fișierele și în ce format, folosind opțiunea mail_location. Apoi, să-i spunem cu ce user trebuie să ruleze când accesează mailurile (userul dovecot este deja pe sistem, se crează la instalarea Dovecot) și să-i dăm drepturi să acceseze fișierele, folosind funcționalitatea de ACL-uri din sistemul de fișiere.
1. Aflăm uid și gid pentru userul dovecot:
# id dovecot
uid=102(dovecot) gid=104(dovecot) groups=104(dovecot),8(mail)
2. Ne asigurăm că filesystemul are suport de ACL-uri, în fișierul /etc/fstab
/dev/sda1 / ext3 errors=remount-ro,noatime,acl 0 1
Dacă în al patrulea câmp nu există acl, adăugați-l și apoi remontați sistemul de fișiere cu comanda:
# mount / -o remount
3. Dăm drepturi userului dovecot să acceseze mailurile:
# setfacl -R -m d:u:dovecot:rwx,d:g:dovecot:rwx,d:o:—,d:m:rwx /var/spool/xmail/domains
# setfacl -R -m u:dovecot:rwx,g:dovecot:rwx,o:—,m:rwx /var/spool/xmail/domains
4. Edităm fișierul de configurare dovecot (/etc/dovecot/dovecot.conf) cu următoarele opțiuni:
protocols = imap imaps
login_user = dovecotlogin # un user creat special pentru asta
mail_location = maildir:/var/spool/xmail/domains/%d/%n/Maildir
first_valid_uid = 100 # un interval în care să intre argumentele
last_valid_uid = 110 # de la userdb de mai jos.
auth default {
mechanisms = plain
passdb passwd-file {
args = /etc/dovecot/passwd
}
userdb static {
args = uid=102 gid=104 # uid și gid de la userul dovecot
}
}
Un /etc/init.d/dovecot restart ar trebui să fie tot ce mai trebuie. De acum înainte, după ce adăugați useri noi în Xmail, trebuie rulat scriptul de conversie pentru a-l informa și pe Dovecot despre ei:
# ./xmail2dovecot.py > /etc/dovecot/passwd
Related posts:
- Convert Xmail to Dovecot users This post is in English because it might interest other...
- Xmail password decrypter This post is in English because it might interest other...
- IMAP Cheat Sheet Iată și un mic cheat sheet pentru protocolul IMAP și...
- Instalare de pachete care sunt în conflict pe Debian Am avut de curând nevoie să instalez două pachete care...
- Server colocat sau on-site? Fie că ești o persoană privată care dorește o prezență...



Home




