INSTALL
author Pascal Volk <user@localhost.localdomain.org>
Sat, 15 Feb 2014 18:07:00 +0000
branchv0.7.x
changeset 727 695426b49de0
parent 695 42addf4f2434
permissions -rw-r--r--
VMM/{cli,}/handler: Adjusted Handler.user_password. Use Account.update_password instead of Account.modify.
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
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
     2
You should already have installed and configured Postfix, Dovecot  1.2.0
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
     3
and 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:
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
     6
    - Python ( 3.2)
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
     7
    - Psycopg¹ ( 2.0)
14
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
     8
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
     9
[1] Psycopg: <http://initd.org/psycopg/> (Debian: python3-psycopg2)
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    10
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    11
564
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    12
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
    13
  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
    14
  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
    15
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    16
	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
    17
	--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
    18
	doveauth
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    19
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    20
  This will create the doveauth user and group.
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
    21
  For Dovecot  2.0 we create also the group `dovemail'. Dovecot will assign
564
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    22
  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
    23
  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
    24
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    25
	addgroup --system dovemail
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    26
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
    27
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    28
Configuring PostgreSQL
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
    29
(for more details see:
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
    30
    http://vmm.localdomain.org/installation/postgresql_configuration.html)
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    31
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
    32
* /etc/postgresql/9.1/main/pg_hba.conf
165
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    33
  [ if you prefer to connect via TCP/IP ]
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    34
    # IPv4 local connections:
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    35
    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
    36
  [ 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
    37
    # "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
    38
    local   mailsys     +mailsys                          md5
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    39
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    40
    # reload configuration
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
    41
    /etc/init.d/postgresql force-reload
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    42
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    43
* Create a database superuser if necessary:
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    44
    # as root run: su - postgres
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    45
    # if you have sudo privileges run: sudo su - postgres
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    46
    # 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
    47
    createuser -s -d -r -E -e -P $USERNAME
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    48
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    49
* 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
    50
    connecting to PostgreSQL:
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    51
    psql template1
128
cf8116625866 Converted VirtualMailManager and Postconf to new-style classes.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 127
diff changeset
    52
165
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    53
    # create users, group and the database
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    54
    CREATE ROLE vmm LOGIN ENCRYPTED PASSWORD 'DB PASSWORD for vmm';
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    55
    CREATE ROLE dovecot LOGIN ENCRYPTED password 'DB PASSWORD for Dovecot';
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    56
    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
    57
    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
    58
    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
    59
    \q
7e50e4c49ed7 INSTALL: Adapted pgsql configuration steps to that in the wiki.
Pascal Volk <neverseen@users.sourceforge.net>
parents: 135
diff changeset
    60
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    61
    # 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
    62
    psql mailsys vmm -W -h 127.0.0.1
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
    63
    # import the database structure for Dovecot  1.2.0
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    64
    \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
    65
    # leave psql
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    66
    \q
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    67
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    68
    # set permissions for your Dovecot and Postfix users
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    69
    # see python set-permissions.py -h for details
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    70
    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
    71
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    72
Create directory for your mails
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    73
  mkdir /srv/mail
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    74
  cd /srv/mail/
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    75
  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
    76
  chmod 771 /srv/mail
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    77
  chmod 751 /srv/mail/*
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    78
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
    79
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
    80
For Dovecot  2.0 read the file Configure.Dovecot_2
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
    81
Configuring Dovecot v1.2.x
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    82
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    83
* /etc/dovecot/dovecot.conf
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    84
    # all your other settings
75
af813ede1e19 * 'create_optional_types_and_functions.pgsql'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 30
diff changeset
    85
    #disable_plaintext_auth = no
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    86
    mail_location = maildir:~/Maildir
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    87
    first_valid_uid = 70000
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    88
    first_valid_gid = 70000
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    89
    protocol lda {
75
af813ede1e19 * 'create_optional_types_and_functions.pgsql'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 30
diff changeset
    90
      postmaster_address = postmaster@YOUR-DOMAIN.TLD
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    91
    }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    92
    auth default {
91
0e5b2835414d * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 75
diff changeset
    93
      mechanisms = cram-md5 login plain
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    94
      passdb sql {
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    95
        args = /etc/dovecot/dovecot-sql.conf
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    96
      }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    97
      userdb sql {
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    98
        args = /etc/dovecot/dovecot-sql.conf
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
    99
      }
564
55148bc6348e INSTALL: Added description how to create additional dove* user/group.
Pascal Volk <user@localhost.localdomain.org>
parents: 563
diff changeset
   100
      user = doveauth
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   101
      socket listen {
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   102
        master {
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   103
          path = /var/run/dovecot/auth-master
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   104
          mode = 0600
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   105
        }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   106
        client {
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   107
          path = /var/spool/postfix/private/dovecot-auth
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   108
          mode = 0660
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   109
          user = postfix
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   110
          group = postfix
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   111
        }
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
    }
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   114
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   115
* /etc/dovecot/dovecot-sql.conf
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   116
    driver = pgsql
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   117
    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
   118
    default_pass_scheme = CRAM-MD5
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   119
    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
   120
    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
   121
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   122
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
   123
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
   124
/!\ Only required with Dovecot v.1.2.x.
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
   125
    With Dovecot  v2.0 use Dovecot's lmtp!
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   126
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   127
    mkdir -p /usr/local/lib/dovecot
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   128
    chmod 700 /usr/local/lib/dovecot
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   129
    chown nobody /usr/local/lib/dovecot
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   130
    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
   131
    chown root:`id -g nobody` /usr/local/lib/dovecot/deliver
127
97a9f6dd954b Updated documentation
Pascal Volk <neverseen@users.sourceforge.net>
parents: 100
diff changeset
   132
    chmod u+s,o-rwx /usr/local/lib/dovecot/deliver
97a9f6dd954b Updated documentation
Pascal Volk <neverseen@users.sourceforge.net>
parents: 100
diff changeset
   133
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   134
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   135
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   136
Start or restart Dovecot
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
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   139
Configuring Postfix's master.cf
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   140
    
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
   141
/!\ Only required with Dovecot v.1.2.x.
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   142
    # Add Dovecot's deliver agent
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   143
    dovecot   unix  -       n       n       -       -       pipe
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   144
      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
   145
      -d ${user}@${nexthop} -n -m ${extension}
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   146
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   147
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   148
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   149
Configuring Postfix's main.cf
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   150
    sql      = pgsql:${config_directory}/
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   151
    proxysql = proxy:${sql}
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   152
100
b581e747e720 INSTALL, man/*: small enhancement and corrections
Pascal Volk <neverseen@users.sourceforge.net>
parents: 92
diff changeset
   153
    # relocated users from the database
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   154
    #relocated_maps = ${proxysql}pgsql-relocated_maps.cf
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   155
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   156
    # transport settings from our database
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   157
    transport_maps = ${proxysql}pgsql-transport_maps.cf
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   158
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   159
    # virtual domains
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   160
    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
   161
    virtual_alias_maps = ${proxysql}pgsql-virtual_alias_maps.cf
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   162
    virtual_minimum_uid = 70000
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   163
    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
   164
    virtual_gid_maps = ${sql}pgsql-virtual_gid_maps.cf
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   165
    virtual_mailbox_base = /
577
4f9079dd4b65 INSTALL: Updated PostgreSQL configuration URL.
Pascal Volk <user@localhost.localdomain.org>
parents: 564
diff changeset
   166
    virtual_mailbox_maps = ${proxysql}pgsql-virtual_mailbox_maps.cf
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   167
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
   168
    # dovecot LDA (only recommended with Dovecot v1.2.x)
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   169
    #dovecot_destination_recipient_limit = 1
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   170
    #virtual_transport = dovecot:
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   171
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   172
    # dovecot lmtp
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   173
    virtual_transport = lmtp:unix:private/dovecot-lmtp
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   174
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   175
    # dovecot SASL
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   176
    smtpd_sasl_type = dovecot
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   177
    smtpd_sasl_path = private/dovecot-auth
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   178
    smtpd_sasl_auth_enable = yes
92
aa741e8657b9 * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 91
diff changeset
   179
    # Keep smtpd_sasl_local_domain identical to Dovecot's auth_default_realm:
aa741e8657b9 * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 91
diff changeset
   180
    # empty. Both are empty by default. Let it commented out.
aa741e8657b9 * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 91
diff changeset
   181
    # Read more at: http://wiki.dovecot.org/Authentication/Mechanisms/DigestMD5
aa741e8657b9 * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 91
diff changeset
   182
    #smtpd_sasl_local_domain =
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   183
    smtpd_sasl_security_options = noplaintext, noanonymous
75
af813ede1e19 * 'create_optional_types_and_functions.pgsql'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 30
diff changeset
   184
    #smtpd_sasl_security_options = noanonymous
af813ede1e19 * 'create_optional_types_and_functions.pgsql'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 30
diff changeset
   185
    #broken_sasl_auth_clients = yes
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   186
14
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
   187
    smtpd_recipient_restrictions =
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
   188
      permit_mynetworks
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
   189
      permit_sasl_authenticated
ebc9b864bc9a * 'update_config_0.3.x-0.4.py'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 11
diff changeset
   190
      reject_unauth_destination
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   191
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   192
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   193
Installing the Virtual Mail Manager and configure the rest
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   194
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   195
    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
   196
    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
   197
    new directory and type:
30
24d8baf0cd6b * 'INSTALL'
Pascal Volk <neverseen@users.sourceforge.net>
parents: 24
diff changeset
   198
        ./install.sh
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   199
    edit all the pgsql-*.cf files in /etc/postfix
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   200
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   201
    reload postfix
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   202
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   203
    # configure the Virtual Mail Manager
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   204
    # vmm.cfg(5) - configuration file for vmm
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   205
    #
695
42addf4f2434 {INSTALL,doc}: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 577
diff changeset
   206
    # For Dovecot v1.2.x use 'dovecot:' as domain.transport
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   207
    # 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
   208
    # domain.transport
0
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   209
    vmm configure
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   210
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   211
    # for help type
563
b17a9d7a59ae INSTALL: Updated documentation.
Pascal Volk <user@localhost.localdomain.org>
parents: 378
diff changeset
   212
    # 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
   213
    vmm help
bb0aa2102206 Initial import @sf.net
Pascal Volk <neverseen@users.sourceforge.net>
parents:
diff changeset
   214