INSTALL
author "martin f. krafft" <madduck@debian.org>
Tue, 07 Aug 2012 21:53:41 +0000
changeset 582 605f8c115711
parent 577 4f9079dd4b65
child 695 42addf4f2434
permissions -rw-r--r--
Due to the UNION query in address_list, the assumption that the list of gids received from the database would be continuous does not hold. To prevent addresses for domains with multiple entry types from being listed, it is necessary to check the list of domain gids for every entry. Signed-off-by: martin f. krafft <madduck@debian.org> --- VirtualMailManager/common.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
     1
Installation Prerequisites
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
     2
You should already have installed and configured Postfix, Dovecot and
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
     3
PostgreSQL.
268
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
     4
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
     5
The Virtual Mail Manager depends on:
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
     6
    - Python (>= 2.4.0)
356
61e732e4cb3e Updated INSTALL and setup.py.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 271
diff changeset
     7
    - Psycopg 2¹ or pyPgSQL²
14
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
     8
268
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
     9
If you are using Python <= 2.5.0:
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    10
    - if you want to store your users' passwords as PLAIN-MD4 digest in
356
61e732e4cb3e Updated INSTALL and setup.py.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 271
diff changeset
    11
      the database, vmm will try to use Crypto.Hash.MD4 from PyCrypto³.
268
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    12
    - if you are using Dovecot >= v1.1.0 and you want to store your users'
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    13
      passwords as SHA256 or SSHA256 hashes, vmm will try to use
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    14
      Crypto.Hash.SHA256 from PyCrypto². For SHA256/SSHA256 you should have
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    15
      at least use PyCrypto in version 2.1.0alpha1.
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    16
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    17
    When the Crypto.Hash module couldn't be imported, vmm will use
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    18
    dovecotpw/doveadm, if the misc.password_scheme setting in the vmm.cfg
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    19
    is set to PLAIN-MD4, SHA256 or SSHA256
beb8f4421f92 VMM: added new modules password and pycompat.hashlib.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 248
diff changeset
    20
356
61e732e4cb3e Updated INSTALL and setup.py.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 271
diff changeset
    21
[1] Psycopg: <http://initd.org/psycopg/> (Debian: python-psycopg2)
61e732e4cb3e Updated INSTALL and setup.py.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 271
diff changeset
    22
[2] pyPgSQL: <http://pypgsql.sourceforge.net/> (Debian: python-pgsql)
61e732e4cb3e Updated INSTALL and setup.py.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 271
diff changeset
    23
[3] PyCrypto: <http://www.pycrypto.org/> (Debian: python-crypto)
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    24
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    25
564
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    26
Create additionally a user and groups for improved security
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    27
  We will create the system user `doveauth'. This user is used in the
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    28
  authentication process. On a Debian GNU/Linux System use this command:
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    29
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    30
	adduser --system --home /nonexistent --no-create-home --group \
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    31
	--disabled-login --gecos "Dovecot IMAP/POP3 authentication user" \
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    32
	doveauth
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    33
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    34
  This will create the doveauth user and group.
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    35
  For Dovecot >= 2.0 we create also the group `dovemail'. Dovecot will assign
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    36
  this group to all Dovecot processes.
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    37
  On a Debian GNU/Linux bases system run:
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    38
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    39
	addgroup --system dovemail
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    40
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    41
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    42
Configuring PostgreSQL
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
    43
(for more details see:
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
    44
    http://vmm.localdomain.org/installation/postgresql_configuration.html)
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    45
165
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    46
* /etc/postgresql/8.4/main/pg_hba.conf
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    47
  [ if you prefer to connect via TCP/IP ]
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    48
    # IPv4 local connections:
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    49
    host    mailsys     +mailsys    127.0.0.1/32          md5
165
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    50
  [ if you want to connect through a local Unix-domain socket ]
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    51
    # "local" is for Unix domain socket connections only
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    52
    local   mailsys     +mailsys                          md5
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    53
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    54
    # reload configuration
165
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    55
    /etc/init.d/postgresql-8.4 force-reload
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    56
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    57
* Create a database superuser if necessary:
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    58
    # as root run: su - postgres
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    59
    # if you have sudo privileges run: sudo su - postgres
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    60
    # create your superuser, which will be able to create users and databases
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    61
    createuser -s -d -r -E -e -P $USERNAME
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    62
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    63
* As superuser create the database and db users for vmm, Postfix and Dovecot
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    64
    connecting to PostgreSQL:
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    65
    psql template1
128
cf8116625866 Converted VirtualMailManager and Postconf to new-style classes.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 127
diff changeset
    66
165
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    67
    # create users, group and the database
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    68
    CREATE ROLE vmm LOGIN ENCRYPTED PASSWORD 'DB PASSWORD for vmm';
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    69
    CREATE ROLE dovecot LOGIN ENCRYPTED password 'DB PASSWORD for Dovecot';
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    70
    CREATE ROLE postfix LOGIN ENCRYPTED password 'DB PASSWORD for Postfix';
165
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    71
    CREATE ROLE mailsys WITH USER postfix, dovecot, vmm;
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    72
    CREATE DATABASE mailsys WITH OWNER vmm ENCODING 'UTF8';
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    73
    \q
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    74
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    75
    # connect to the new database
165
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    76
    psql mailsys vmm -W -h 127.0.0.1
127
97a9f6dd954b Updated documentation
Pascal Volk <neverseen@users.sourceforge.net>
parents: 100
diff changeset
    77
    # either import the database structure for Dovecot v1.0.x/v1.1.x
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    78
    \i vmm-y.x.z/pgsql/create_tables.pgsql
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    79
    # or import the database structure for Dovecot v1.2.x/v2.x
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    80
    \i vmm-x.y.z/pgsql/create_tables-dovecot-1.2.x.pgsql
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    81
    # leave psql
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    82
    \q
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    83
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    84
    # set permissions for your Dovecot and Postfix users
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    85
    # see python set-permissions.py -h for details
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    86
    python vmm-x.y.z/pgsql/set-permissions.py -a -H 127.0.0.1 -U vmm
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    87
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    88
Create directory for your mails
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    89
  mkdir /srv/mail
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    90
  cd /srv/mail/
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    91
  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
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    92
  chmod 771 /srv/mail
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    93
  chmod 751 /srv/mail/*
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    94
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    95
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    96
For Dovecot >= 2.0 read the file Configure.Dovecot_2
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    97
Configuring Dovecot v1.x
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    98
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    99
* /etc/dovecot/dovecot.conf
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   100
    # all your other settings
75
af813ede1e19 * 'create_optional_types_and_functions.pgsql'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 30
diff changeset
   101
    #disable_plaintext_auth = no
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   102
    mail_location = maildir:~/Maildir
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   103
    first_valid_uid = 70000
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   104
    first_valid_gid = 70000
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   105
    protocol lda {
75
af813ede1e19 * 'create_optional_types_and_functions.pgsql'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 30
diff changeset
   106
      postmaster_address = postmaster@YOUR-DOMAIN.TLD
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   107
    }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   108
    auth default {
91
0e5b2835414d * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 75
diff changeset
   109
      mechanisms = cram-md5 login plain
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   110
      passdb sql {
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   111
        args = /etc/dovecot/dovecot-sql.conf
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   112
      }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   113
      userdb sql {
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   114
        args = /etc/dovecot/dovecot-sql.conf
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   115
      }
564
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
   116
      user = doveauth
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   117
      socket listen {
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   118
        master {
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   119
          path = /var/run/dovecot/auth-master
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   120
          mode = 0600
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   121
        }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   122
        client {
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   123
          path = /var/spool/postfix/private/dovecot-auth
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   124
          mode = 0660
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   125
          user = postfix
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   126
          group = postfix
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   127
        }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   128
      }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   129
    }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   130
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   131
* /etc/dovecot/dovecot-sql.conf
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   132
    driver = pgsql
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   133
    connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   134
    default_pass_scheme = CRAM-MD5
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   135
    password_query = SELECT userid AS "user", password FROM dovecotpassword('%Ln', '%Ld') WHERE %Ls
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   136
    user_query = SELECT home, uid, gid, mail FROM dovecotuser('%Ln', '%Ld')
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   137
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   138
Provide a root SETUID copy of Dovecot's deliver agent for Postfix
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   139
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   140
/!\ Only required with Dovecot v.1.x.
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   141
    With Dovecot >= v2.0 use Dovecot's lmtp!
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   142
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   143
    mkdir -p /usr/local/lib/dovecot
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   144
    chmod 700 /usr/local/lib/dovecot
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   145
    chown nobody /usr/local/lib/dovecot
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   146
    cp /usr/lib/dovecot/deliver /usr/local/lib/dovecot/
247
dbcb29ac89fa INSTALL: simplified the 'SETUID copy of deliver' part
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
   147
    chown root:`id -g nobody` /usr/local/lib/dovecot/deliver
127
97a9f6dd954b Updated documentation
Pascal Volk <neverseen@users.sourceforge.net>
parents: 100
diff changeset
   148
    chmod u+s,o-rwx /usr/local/lib/dovecot/deliver
97a9f6dd954b Updated documentation
Pascal Volk <neverseen@users.sourceforge.net>
parents: 100
diff changeset
   149
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   150
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   151
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   152
Start or restart Dovecot
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   153
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   154
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   155
Configuring Postfix's master.cf
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   156
    
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   157
/!\ Only required with Dovecot v.1.x.
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   158
    # Add Dovecot's deliver agent
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   159
    dovecot   unix  -       n       n       -       -       pipe
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   160
      flags=DORhu user=nobody argv=/usr/local/lib/dovecot/deliver -f ${sender}
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   161
      -d ${user}@${nexthop} -n -m ${extension}
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   162
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   163
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   164
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   165
Configuring Postfix's main.cf
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   166
    sql      = pgsql:${config_directory}/
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   167
    proxysql = proxy:${sql}
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   168
100
b581e747e720 INSTALL, man/*: small enhancement and corrections
Pascal Volk <neverseen@users.sourceforge.net>
parents: 92
diff changeset
   169
    # relocated users from the database
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   170
    #relocated_maps = ${proxysql}pgsql-relocated_maps.cf
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   171
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   172
    # transport settings from our database
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   173
    transport_maps = ${proxysql}pgsql-transport_maps.cf
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   174
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   175
    # virtual domains
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   176
    virtual_mailbox_domains = ${proxysql}pgsql-virtual_mailbox_domains.cf
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   177
    virtual_alias_maps = ${proxysql}pgsql-virtual_alias_maps.cf
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   178
    virtual_minimum_uid = 70000
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   179
    virtual_uid_maps = ${sql}pgsql-virtual_uid_maps.cf
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   180
    virtual_gid_maps = ${sql}pgsql-virtual_gid_maps.cf
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   181
    virtual_mailbox_base = /
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   182
    virtual_mailbox_maps = ${proxysql}pgsql-virtual_mailbox_maps.cf
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   183
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   184
    # dovecot LDA (only recommended with Dovecot v1.x)
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   185
    #dovecot_destination_recipient_limit = 1
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   186
    #virtual_transport = dovecot:
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   187
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   188
    # dovecot lmtp
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   189
    virtual_transport = lmtp:unix:private/dovecot-lmtp
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   190
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   191
    # dovecot SASL
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   192
    smtpd_sasl_type = dovecot
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   193
    smtpd_sasl_path = private/dovecot-auth
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   194
    smtpd_sasl_auth_enable = yes
92
aa741e8657b9 * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 91
diff changeset
   195
    # Keep smtpd_sasl_local_domain identical to Dovecot's auth_default_realm:
aa741e8657b9 * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 91
diff changeset
   196
    # empty. Both are empty by default. Let it commented out.
aa741e8657b9 * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 91
diff changeset
   197
    # Read more at: http://wiki.dovecot.org/Authentication/Mechanisms/DigestMD5
aa741e8657b9 * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 91
diff changeset
   198
    #smtpd_sasl_local_domain =
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   199
    smtpd_sasl_security_options = noplaintext, noanonymous
75
af813ede1e19 * 'create_optional_types_and_functions.pgsql'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 30
diff changeset
   200
    #smtpd_sasl_security_options = noanonymous
af813ede1e19 * 'create_optional_types_and_functions.pgsql'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 30
diff changeset
   201
    #broken_sasl_auth_clients = yes
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   202
14
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
   203
    smtpd_recipient_restrictions =
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
   204
      permit_mynetworks
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
   205
      permit_sasl_authenticated
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
   206
      reject_unauth_destination
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   207
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   208
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   209
Installing the Virtual Mail Manager and configure the rest
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   210
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   211
    Installing from Mercurial or vmm-x.y.z.tar.gz
356
61e732e4cb3e Updated INSTALL and setup.py.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 271
diff changeset
   212
    after cloning from the hg repo or extracting the archive change into the
61e732e4cb3e Updated INSTALL and setup.py.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 271
diff changeset
   213
    new directory and type:
30
24d8baf0cd6b * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 24
diff changeset
   214
        ./install.sh
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   215
    edit all the pgsql-*.cf files in /etc/postfix
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   216
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   217
    reload postfix
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   218
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   219
    # configure the Virtual Mail Manager
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   220
    # vmm.cfg(5) - configuration file for vmm
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   221
    #
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   222
    # For Dovecot v1.x use 'dovecot:' as domain.transport
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   223
    # When using Dovecot v2.x use 'lmtp:unix:private/dovecot-lmtp' as
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   224
    # domain.transport
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   225
    vmm configure
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   226
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   227
    # for help type
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   228
    # vmm(1) - command line tool to manage email domains/accounts/aliases
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   229
    vmm help
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   230