|
1 Installation Prerequisites |
|
2 You should already have installed and configured Postfix, Dovecot and |
|
3 PostgreSQL. |
|
4 You have to install Python and pyPgSQL to use the Virtual Mail Manager. |
|
5 |
|
6 |
|
7 Configuring PostgreSQL |
|
8 |
|
9 * /etc/postgresql/8.2/main/pg_hba.conf |
|
10 # IPv4 local connections: |
|
11 host mailsys +mailsys 127.0.0.1/32 md5 |
|
12 |
|
13 # reload configuration |
|
14 /etc/init.d/postgresql-8.2 force-reload |
|
15 |
|
16 * Create a DB user if necessary: |
|
17 DB Superuser: |
|
18 createuser -s -d -r -E -e -P $USERNAME |
|
19 DB User: |
|
20 createuser -d -E -e -P $USERNAME |
|
21 |
|
22 * Create Database and db users for Postfix and Dovecot |
|
23 connecting to PostgreSQL: |
|
24 psql template1 |
|
25 |
|
26 # create database |
|
27 CREATE DATABASE mailsys ENCODING 'UTF8'; |
|
28 # connect to the new database |
|
29 \c mailsys |
|
30 # import db structure |
|
31 \i /path/to/create_tables.pgsql |
|
32 |
|
33 # create users and group |
|
34 CREATE USER postfix ENCRYPTED password 'DB PASSWORD for Postfix'; |
|
35 CREATE USER dovecot ENCRYPTED password 'DB PASSWORD for Dovecot'; |
|
36 CREATE ROLE mailsys WITH USER postfix, dovecot; |
|
37 |
|
38 # set permissions |
|
39 GRANT SELECT ON dovecot_password, dovecot_user TO dovecot; |
|
40 GRANT SELECT ON postfix_alias, postfix_maildir, postfix_relocated, |
|
41 postfix_uid, postfix_gid, postfix_transport TO postfix; |
|
42 |
|
43 # leave psql |
|
44 \q |
|
45 |
|
46 Create directory for your mails |
|
47 mkdir /srv/mail |
|
48 cd /srv/mail/ |
|
49 mkdir 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z |
|
50 chmod 771 /srv/mail |
|
51 chgrp -R mail /srv/mail |
|
52 chmod 751 /srv/mail/* |
|
53 |
|
54 Configuring Dovecot |
|
55 |
|
56 * /etc/dovecot/dovecot.conf |
|
57 # all your other settings |
|
58 mail_location = maildir:~/Maildir |
|
59 mail_extra_groups = mail |
|
60 first_valid_uid = 70000 |
|
61 first_valid_gid = 70000 |
|
62 protocol lda { |
|
63 postmaster_address = postmaster@domain.tld |
|
64 } |
|
65 auth default { |
|
66 mechanisms = cram-md5 |
|
67 passdb sql { |
|
68 args = /etc/dovecot/dovecot-sql.conf |
|
69 } |
|
70 userdb sql { |
|
71 args = /etc/dovecot/dovecot-sql.conf |
|
72 } |
|
73 user = nobody |
|
74 socket listen { |
|
75 master { |
|
76 path = /var/run/dovecot/auth-master |
|
77 mode = 0600 |
|
78 } |
|
79 client { |
|
80 path = /var/spool/postfix/private/auth |
|
81 mode = 0660 |
|
82 user = postfix |
|
83 group = postfix |
|
84 } |
|
85 } |
|
86 } |
|
87 |
|
88 * /etc/dovecot/dovecot-sql.conf |
|
89 driver = pgsql |
|
90 connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS |
|
91 default_pass_scheme = HMAC-MD5 |
|
92 password_query = SELECT "user", password FROM dovecot_password WHERE "user"= '%u' |
|
93 user_query = SELECT home, uid, gid FROM dovecot_user WHERE userid = '%u' |
|
94 |
|
95 Provide a root SETUID copy of Dovecot's deliver agent for Postfix |
|
96 |
|
97 mkdir -p /usr/local/lib/dovecot |
|
98 chmod 700 /usr/local/lib/dovecot |
|
99 chown nobody /usr/local/lib/dovecot |
|
100 cp /usr/lib/dovecot/deliver /usr/local/lib/dovecot/ |
|
101 chmod u+s /usr/local/lib/dovecot/deliver |
|
102 |
|
103 |
|
104 Start or restart Dovecot |
|
105 |
|
106 |
|
107 Configuring Postfix's master.cf |
|
108 |
|
109 # Add Dovecot's deliver agent |
|
110 dovecot unix - n n - - pipe |
|
111 flags=DRhu user=nobody:mail argv=/usr/local/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -n -m ${extension} |
|
112 |
|
113 |
|
114 |
|
115 Configuring Postfix's main.cf |
|
116 |
|
117 # virtual domains |
|
118 virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-transport.cf |
|
119 virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual_alias_maps.cf |
|
120 transport_maps = pgsql:/etc/postfix/pgsql-transport.cf |
|
121 virtual_minimum_uid = 70000 |
|
122 virtual_uid_maps = pgsql:/etc/postfix/pgsql-virtual_uid_maps.cf |
|
123 virtual_gid_maps = pgsql:/etc/postfix/pgsql-virtual_gid_maps.cf |
|
124 virtual_mailbox_base = / |
|
125 virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual_mailbox_maps.cf |
|
126 |
|
127 # dovecot LDA |
|
128 dovecot_destination_recipient_limit = 1 |
|
129 virtual_transport = dovecot: |
|
130 |
|
131 # dovecot SASL |
|
132 smtpd_sasl_type = dovecot |
|
133 smtpd_sasl_path = private/auth |
|
134 smtpd_sasl_auth_enable = yes |
|
135 smtpd_sasl_local_domain = $myhostname |
|
136 smtpd_sasl_security_options = noplaintext, noanonymous |
|
137 |
|
138 |
|
139 |
|
140 Installing the Virtual Mail Manager and configure the rest |
|
141 |
|
142 Installing from SVN |
|
143 after checking out type |
|
144 ./install |
|
145 edit all the pgsql-*.cf files in /etc/postfix |
|
146 |
|
147 reload postfix |
|
148 |
|
149 # configure the Virtual Mail Manager |
|
150 vmm configure |
|
151 |
|
152 # for help type |
|
153 vmm help |
|
154 |