Postfix - Virtual Domains

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
Linia 139: Linia 139:
 
  mysql> flush privileges;
 
  mysql> flush privileges;
 
  mysql> exit
 
  mysql> exit
 +
 +
== Dovecot ==
 +
 +
Konfiguracja pakietu '''Dovecot'''
 +
Tworzymy folder w którym będziemy przechowywać foldery użytkowników poczty, oczywiście może to być dowolna lokalizacja
 +
 +
mkdir -p /var/vmail
 +
chmod 770 /var/vmail
 +
 +
Tworzymy użytkownika '''vmail''' i nadajemy odpowiednie uprawnienia do katalogu ''/var/vmail''
 +
 +
useradd -r -u 101 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual mailbox" vmail
 +
chown vmail.mail /var/vmail
 +
 +
 +
Edytujemy plik ''/etc/dovecot.conf'' tak aby wyglądał następująco
 +
 +
ssl_cert_file = /etc/pki/dovecot/certs/myserver.example.com.crt
 +
ssl_key_file = /etc/pki/dovecot/private/myserver.example.com.key
 +
ssl_ca_file = /etc/pki/dovecot/certs/ca-bundle.crt
 +
mail_location = maildir:/var/vmail/%d/%u
 +
first_valid_uid = 101
 +
last_valid_uid = 101
 +
maildir_copy_with_hardlinks = yes
 +
protocol imap {
 +
  mail_plugins = quota imap_quota
 +
  imap_client_workarounds = outlook-idle delay-newmail
 +
}
 +
  protocol pop3 {
 +
  mail_plugins = quota
 +
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
 +
}
 +
protocol lda {
 +
  postmaster_address =
 +
  postmaster@example.com
 +
  mail_plugins = quota
 +
  log_path = /var/log/dovecot-deliver.log
 +
  info_log_path = /var/log/dovecot-deliver.log
 +
}
 +
auth default {
 +
# Having "login" also as a mechanism make sure outlook can use the auth smtpd as well
 +
# http://wiki.dovecot.org/Authentication/Mechanisms
 +
  mechanisms = plain login
 +
  passdb sql {
 +
  args = /etc/dovecot/sql.conf
 +
  }
 +
  userdb sql {
 +
  args = /etc/dovecot/sql.conf
 +
  }
 +
  userdb prefetch {
 +
  }
 +
  user = nobody
 +
  socket listen {
 +
  master {
 +
  path = /var/run/dovecot/auth-master
 +
  mode = 0660
 +
  user = vmail
 +
  group = mail
 +
  }
 +
  client {
 +
  path = /var/spool/postfix/private/auth
 +
  mode = 0660
 +
  user = postfix
 +
  group = mail
 +
  }
 +
  }
 +
}
 +
dict {
 +
}
 +
plugin {
 +
  quota = maildir:storage=10240:messages=1000
 +
  acl = vfile:/etc/dovecot/acls
 +
  trash = /etc/dovecot/trash.conf
 +
}
 +
 +
 +
 +
 +
Oczywiście w niektórych miejscach powinniśmy dostosować go do własnych potrzeb.
 +
 +
 +
Tworzymy certyfikaty dla dovecot
 +
Jak to zrobić opisane jest tutaj
 +
 +
Przenosząc certyfikaty w odpowiednie miejsca
 +
 +
ssl_cert_file = /etc/pki/dovecot/certs/myserver.example.com.crt
 +
ssl_key_file = /etc/pki/dovecot/private/myserver.example.com.key
 +
ssl_ca_file = /etc/pki/dovecot/certs/ca-bundle.crt
 +
 +
 +
Tworzymy plik /etc/dovecot/sql.conf i edytujemy go, aby wyglądał w następujący sposób:
 +
 +
driver = mysql
 +
default_pass_scheme = md5
 +
connect = host=localhost dbname=postfix user=dovecot password=dovecot
 +
user_query = SELECT concat('/var/vmail/', maildir) as home, concat('maildir:/var/vmail/', maildir) as mail, 101 AS uid, 12 AS gid,  /
 +
concat('maildir:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
 +
# fast but now so nice:-)
 +
#user_query = SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, 101 AS uid, 12 AS gid,  /
 +
concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
 +
# Just in case you are using postfix the delimiter char "+", the above query will probably fail for the username  /
 +
'%n' or '%u' and result in a "5.5.1 user unknown" error
 +
#in this case, you will probalby want to use a separate user and domain part, whilst searching only  /
 +
for the destination user part (user_query only):
 +
# SELECT ... WHERE username = substring_index('%n','+',1) AND userrealm = '%d'
 +
password_query = SELECT username as user, password, concat('/var/vmail/', maildir) as userdb_home,  /
 +
concat('maildir:/var/vmail/', maildir) as userdb_mail, 101 as userdb_uid, 12 as userdb_gid FROM mailbox  /
 +
WHERE username = '%u' AND active = '1'
 +
# fast but now so nice:-)
 +
#password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, /
 +
'maildir:/var/vmail/%d/%n' as userdb_mail, 101 as userdb_uid, 12 as userdb_gid FROM mailbox  /
 +
WHERE username = '%u' AND active = '1'
 +
 +
UWAGA !! linie ze znakiem / są przełamane jeśli będziesz robił kopiuj wklej pamiętaj o połączeniu tych lini
 +
 +
Jeśli zachodzi potrzeba to dostrajamy go do swoich potrzeb.
 +
 +
Kolejny plik który tworzymy to /etc/dovecot/trash.conf i dodajemy do niego
 +
 +
1 Spam
 +
2 Trash

Wersja z 10:39, 17 kwi 2012

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych