INSTALL
branchv0.6.x
changeset 563 b17a9d7a59ae
parent 378 af56cee51e67
child 564 55148bc6348e
equal deleted inserted replaced
562:b5bb7b34e831 563:b17a9d7a59ae
    35     local   mailsys     +mailsys                          md5
    35     local   mailsys     +mailsys                          md5
    36 
    36 
    37     # reload configuration
    37     # reload configuration
    38     /etc/init.d/postgresql-8.4 force-reload
    38     /etc/init.d/postgresql-8.4 force-reload
    39 
    39 
    40 * Create a DB user if necessary:
    40 * Create a database superuser if necessary:
    41     DB Superuser:
    41     # as root run: su - postgres
       
    42     # if you have sudo privileges run: sudo su - postgres
       
    43     # create your superuser, which will be able to create users and databases
    42     createuser -s -d -r -E -e -P $USERNAME
    44     createuser -s -d -r -E -e -P $USERNAME
    43     DB User:
    45 
    44     createuser -d -E -e -P $USERNAME
    46 * As superuser create the database and db users for vmm, Postfix and Dovecot
    45 
       
    46 * Create Database and db users for vmm, Postfix and Dovecot
       
    47     connecting to PostgreSQL:
    47     connecting to PostgreSQL:
    48     psql template1
    48     psql template1
    49 
    49 
    50     # create users, group and the database
    50     # create users, group and the database
    51     CREATE USER vmm ENCRYPTED PASSWORD 'DB PASSWORD for vmm';
    51     CREATE ROLE vmm LOGIN ENCRYPTED PASSWORD 'DB PASSWORD for vmm';
    52     CREATE USER dovecot ENCRYPTED password 'DB PASSWORD for Dovecot';
    52     CREATE ROLE dovecot LOGIN ENCRYPTED password 'DB PASSWORD for Dovecot';
    53     CREATE USER postfix ENCRYPTED password 'DB PASSWORD for Postfix';
    53     CREATE ROLE postfix LOGIN ENCRYPTED password 'DB PASSWORD for Postfix';
    54     CREATE ROLE mailsys WITH USER postfix, dovecot, vmm;
    54     CREATE ROLE mailsys WITH USER postfix, dovecot, vmm;
    55     CREATE DATABASE mailsys WITH OWNER vmm ENCODING 'UTF8';
    55     CREATE DATABASE mailsys WITH OWNER vmm ENCODING 'UTF8';
    56     \q
    56     \q
    57 
    57 
    58     # connect to the new database
    58     # connect to the new database
    59     psql mailsys vmm -W -h 127.0.0.1
    59     psql mailsys vmm -W -h 127.0.0.1
    60     # either import the database structure for Dovecot v1.0.x/v1.1.x
    60     # either import the database structure for Dovecot v1.0.x/v1.1.x
    61     \i /path/to/create_tables.pgsql
    61     \i vmm-y.x.z/pgsql/create_tables.pgsql
    62     # or import the database structure for Dovecot v1.2.x
    62     # or import the database structure for Dovecot v1.2.x/v2.x
    63     \i /path/to/create_tables-dovecot-1.2.x.pgsql
    63     \i vmm-x.y.z/pgsql/create_tables-dovecot-1.2.x.pgsql
    64 
       
    65     # set permissions
       
    66     GRANT SELECT ON dovecot_password, dovecot_user TO dovecot;
       
    67     GRANT SELECT ON postfix_alias, postfix_gid, postfix_maildir,
       
    68     postfix_relocated, postfix_transport, postfix_uid TO postfix;
       
    69 
       
    70     # leave psql
    64     # leave psql
    71     \q
    65     \q
       
    66 
       
    67     # set permissions for your Dovecot and Postfix users
       
    68     # see python set-permissions.py -h for details
       
    69     python vmm-x.y.z/pgsql/set-permissions.py -a -H 127.0.0.1 -U vmm
    72 
    70 
    73 Create directory for your mails
    71 Create directory for your mails
    74   mkdir /srv/mail
    72   mkdir /srv/mail
    75   cd /srv/mail/
    73   cd /srv/mail/
    76   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
    74   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
    77   chmod 771 /srv/mail
    75   chmod 771 /srv/mail
    78   chmod 751 /srv/mail/*
    76   chmod 751 /srv/mail/*
    79 
    77 
    80 Configuring Dovecot
    78 
       
    79 For Dovecot >= 2.0 read the file Configure.Dovecot_2
       
    80 Configuring Dovecot v1.x
    81 
    81 
    82 * /etc/dovecot/dovecot.conf
    82 * /etc/dovecot/dovecot.conf
    83     # all your other settings
    83     # all your other settings
    84     #disable_plaintext_auth = no
    84     #disable_plaintext_auth = no
    85     mail_location = maildir:~/Maildir
    85     mail_location = maildir:~/Maildir
   101         master {
   101         master {
   102           path = /var/run/dovecot/auth-master
   102           path = /var/run/dovecot/auth-master
   103           mode = 0600
   103           mode = 0600
   104         }
   104         }
   105         client {
   105         client {
   106           path = /var/spool/postfix/private/auth
   106           path = /var/spool/postfix/private/dovecot-auth
   107           mode = 0660
   107           mode = 0660
   108           user = postfix
   108           user = postfix
   109           group = postfix
   109           group = postfix
   110         }
   110         }
   111       }
   111       }
   112     }
   112     }
   113 
   113 
   114 * /etc/dovecot/dovecot-sql.conf
   114 * /etc/dovecot/dovecot-sql.conf
   115     driver = pgsql
   115     driver = pgsql
   116     connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS
   116     connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS
   117     default_pass_scheme = PLAIN
   117     default_pass_scheme = CRAM-MD5
   118     password_query = SELECT "user", password FROM dovecot_password WHERE "user"='%Lu' AND %Ls
   118     password_query = SELECT userid AS "user", password FROM dovecotpassword('%Ln', '%Ld') WHERE %Ls
   119     user_query = SELECT home, uid, gid, mail FROM dovecot_user WHERE userid = '%Lu'
   119     user_query = SELECT home, uid, gid, mail FROM dovecotuser('%Ln', '%Ld')
   120 
   120 
   121 Provide a root SETUID copy of Dovecot's deliver agent for Postfix
   121 Provide a root SETUID copy of Dovecot's deliver agent for Postfix
       
   122 
       
   123 /!\ Only required with Dovecot v.1.x.
       
   124     With Dovecot >= v2.0 use Dovecot's lmtp!
   122 
   125 
   123     mkdir -p /usr/local/lib/dovecot
   126     mkdir -p /usr/local/lib/dovecot
   124     chmod 700 /usr/local/lib/dovecot
   127     chmod 700 /usr/local/lib/dovecot
   125     chown nobody /usr/local/lib/dovecot
   128     chown nobody /usr/local/lib/dovecot
   126     cp /usr/lib/dovecot/deliver /usr/local/lib/dovecot/
   129     cp /usr/lib/dovecot/deliver /usr/local/lib/dovecot/
   131 
   134 
   132 Start or restart Dovecot
   135 Start or restart Dovecot
   133 
   136 
   134 
   137 
   135 Configuring Postfix's master.cf
   138 Configuring Postfix's master.cf
   136 
   139     
       
   140 /!\ Only required with Dovecot v.1.x.
   137     # Add Dovecot's deliver agent
   141     # Add Dovecot's deliver agent
   138     dovecot   unix  -       n       n       -       -       pipe
   142     dovecot   unix  -       n       n       -       -       pipe
   139       flags=DORhu user=nobody argv=/usr/local/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -n -m ${extension}
   143       flags=DORhu user=nobody argv=/usr/local/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -n -m ${extension}
   140 
   144 
   141 
   145 
   142 
   146 
   143 Configuring Postfix's main.cf
   147 Configuring Postfix's main.cf
   144     # relocated users from the database
   148     # relocated users from the database
   145     #relocated_maps = pgsql:/etc/postfix/pgsql-relocated_maps.cf
   149     #relocated_maps = pgsql:/etc/postfix/pgsql-relocated_maps.cf
   146 
   150 
       
   151     # transport settings from our database
       
   152     transport_maps = pgsql:/etc/postfix/pgsql-transport_maps.cf
       
   153 
   147     # virtual domains
   154     # virtual domains
   148     virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-virtual_mailbox_domains.cf
   155     virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-virtual_mailbox_domains.cf
   149     virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual_alias_maps.cf
   156     virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual_alias_maps.cf
   150     transport_maps = pgsql:/etc/postfix/pgsql-transport.cf
       
   151     virtual_minimum_uid = 70000
   157     virtual_minimum_uid = 70000
   152     virtual_uid_maps = pgsql:/etc/postfix/pgsql-virtual_uid_maps.cf
   158     virtual_uid_maps = pgsql:/etc/postfix/pgsql-virtual_uid_maps.cf
   153     virtual_gid_maps = pgsql:/etc/postfix/pgsql-virtual_gid_maps.cf
   159     virtual_gid_maps = pgsql:/etc/postfix/pgsql-virtual_gid_maps.cf
   154     virtual_mailbox_base = /
   160     virtual_mailbox_base = /
   155     virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual_mailbox_maps.cf
   161     virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual_mailbox_maps.cf
   156 
   162 
   157     # dovecot LDA
   163     # dovecot LDA (only recommended with Dovecot v1.x)
   158     dovecot_destination_recipient_limit = 1
   164     #dovecot_destination_recipient_limit = 1
   159     virtual_transport = dovecot:
   165     #virtual_transport = dovecot:
       
   166 
       
   167     # dovecot lmtp
       
   168     virtual_transport = lmtp:unix:private/dovecot-lmtp
   160 
   169 
   161     # dovecot SASL
   170     # dovecot SASL
   162     smtpd_sasl_type = dovecot
   171     smtpd_sasl_type = dovecot
   163     smtpd_sasl_path = private/auth
   172     smtpd_sasl_path = private/dovecot-auth
   164     smtpd_sasl_auth_enable = yes
   173     smtpd_sasl_auth_enable = yes
   165     # Keep smtpd_sasl_local_domain identical to Dovecot's auth_default_realm:
   174     # Keep smtpd_sasl_local_domain identical to Dovecot's auth_default_realm:
   166     # empty. Both are empty by default. Let it commented out.
   175     # empty. Both are empty by default. Let it commented out.
   167     # Read more at: http://wiki.dovecot.org/Authentication/Mechanisms/DigestMD5
   176     # Read more at: http://wiki.dovecot.org/Authentication/Mechanisms/DigestMD5
   168     #smtpd_sasl_local_domain =
   177     #smtpd_sasl_local_domain =
   176       reject_unauth_destination
   185       reject_unauth_destination
   177 
   186 
   178 
   187 
   179 Installing the Virtual Mail Manager and configure the rest
   188 Installing the Virtual Mail Manager and configure the rest
   180 
   189 
   181     Installing from Mercurial or vmm-x.y.z.tar.bz2
   190     Installing from Mercurial or vmm-x.y.z.tar.gz
   182     after cloning from the hg repo or extracting the archive change into the
   191     after cloning from the hg repo or extracting the archive change into the
   183     new directory and type:
   192     new directory and type:
   184         ./install.sh
   193         ./install.sh
   185     edit all the pgsql-*.cf files in /etc/postfix
   194     edit all the pgsql-*.cf files in /etc/postfix
   186 
   195 
   187     reload postfix
   196     reload postfix
   188 
   197 
   189     # configure the Virtual Mail Manager
   198     # configure the Virtual Mail Manager
       
   199     # vmm.cfg(5) - configuration file for vmm
       
   200     #
       
   201     # For Dovecot v1.x use 'dovecot:' as domain.transport
       
   202     # When using Dovecot v2.x use 'lmtp:unix:private/dovecot-lmtp' as
       
   203     # domain.transport
   190     vmm configure
   204     vmm configure
   191 
   205 
   192     # for help type
   206     # for help type
       
   207     # vmm(1) - command line tool to manage email domains/accounts/aliases
   193     vmm help
   208     vmm help
   194 
   209