INSTALL
changeset 760 b678a1c43027
parent 748 659c4476c57c
child 761 e4e656f19771
--- a/INSTALL	Mon Mar 24 19:22:04 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-Installation Prerequisites
-You should already have installed and configured Postfix, Dovecot and
-PostgreSQL.
-
-The Virtual Mail Manager depends on:
-    - Python (>= 2.4.0)
-    - Psycopg 2¹ or pyPgSQL²
-
-If you are using Python <= 2.5.0:
-    - if you want to store your users' passwords as PLAIN-MD4 digest in
-      the database, vmm will try to use Crypto.Hash.MD4 from PyCrypto³.
-    - if you are using Dovecot >= v1.1.0 and you want to store your users'
-      passwords as SHA256 or SSHA256 hashes, vmm will try to use
-      Crypto.Hash.SHA256 from PyCrypto². For SHA256/SSHA256 you should have
-      at least use PyCrypto in version 2.1.0alpha1.
-
-    When the Crypto.Hash module couldn't be imported, vmm will use
-    dovecotpw/doveadm, if the misc.password_scheme setting in the vmm.cfg
-    is set to PLAIN-MD4, SHA256 or SSHA256
-
-[1] Psycopg: <http://initd.org/psycopg/> (Debian: python-psycopg2)
-[2] pyPgSQL: <http://pypgsql.sourceforge.net/> (Debian: python-pgsql)
-[3] PyCrypto: <http://www.pycrypto.org/> (Debian: python-crypto)
-
-
-Create additionally a user and groups for improved security
-  We will create the system user `doveauth'. This user is used in the
-  authentication process. On a Debian GNU/Linux System use this command:
-
-	adduser --system --home /nonexistent --no-create-home --group \
-	--disabled-login --gecos "Dovecot IMAP/POP3 authentication user" \
-	doveauth
-
-  This will create the doveauth user and group.
-  For Dovecot >= 2.0 we create also the group `dovemail'. Dovecot will assign
-  this group to all Dovecot processes.
-  On a Debian GNU/Linux bases system run:
-
-	addgroup --system dovemail
-
-
-Configuring PostgreSQL
-(for more details see:
-    http://vmm.localdomain.org/installation/postgresql_configuration.html)
-
-* /etc/postgresql/8.4/main/pg_hba.conf
-  [ if you prefer to connect via TCP/IP ]
-    # IPv4 local connections:
-    host    mailsys     +mailsys    127.0.0.1/32          md5
-  [ if you want to connect through a local Unix-domain socket ]
-    # "local" is for Unix domain socket connections only
-    local   mailsys     +mailsys                          md5
-
-    # reload configuration
-    /etc/init.d/postgresql-8.4 force-reload
-
-* Create a database superuser if necessary:
-    # as root run: su - postgres
-    # if you have sudo privileges run: sudo su - postgres
-    # create your superuser, which will be able to create users and databases
-    createuser -s -d -r -E -e -P $USERNAME
-
-* As superuser create the database and db users for vmm, Postfix and Dovecot
-    connecting to PostgreSQL:
-    psql template1
-
-    # create users, group and the database
-    CREATE ROLE vmm LOGIN ENCRYPTED PASSWORD 'DB PASSWORD for vmm';
-    CREATE ROLE dovecot LOGIN ENCRYPTED password 'DB PASSWORD for Dovecot';
-    CREATE ROLE postfix LOGIN ENCRYPTED password 'DB PASSWORD for Postfix';
-    CREATE ROLE mailsys WITH USER postfix, dovecot, vmm;
-    CREATE DATABASE mailsys WITH OWNER vmm ENCODING 'UTF8';
-    \q
-
-    # connect to the new database
-    psql mailsys vmm -W -h 127.0.0.1
-    # either import the database structure for Dovecot v1.0.x/v1.1.x
-    \i vmm-y.x.z/pgsql/create_tables.pgsql
-    # or import the database structure for Dovecot v1.2.x/v2.x
-    \i vmm-x.y.z/pgsql/create_tables-dovecot-1.2.x.pgsql
-    # leave psql
-    \q
-
-    # set permissions for your Dovecot and Postfix users
-    # see python set-permissions.py -h for details
-    python vmm-x.y.z/pgsql/set-permissions.py -a -H 127.0.0.1 -U vmm
-
-Create directory for your mails
-  mkdir /srv/mail
-  cd /srv/mail/
-  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
-  chmod 771 /srv/mail
-  chmod 751 /srv/mail/*
-
-
-For Dovecot >= 2.0 read the file Configure.Dovecot_2
-Configuring Dovecot v1.x
-
-* /etc/dovecot/dovecot.conf
-    # all your other settings
-    #disable_plaintext_auth = no
-    mail_location = maildir:~/Maildir
-    first_valid_uid = 70000
-    first_valid_gid = 70000
-    protocol lda {
-      postmaster_address = postmaster@YOUR-DOMAIN.TLD
-    }
-    auth default {
-      mechanisms = cram-md5 login plain
-      passdb sql {
-        args = /etc/dovecot/dovecot-sql.conf
-      }
-      userdb sql {
-        args = /etc/dovecot/dovecot-sql.conf
-      }
-      user = doveauth
-      socket listen {
-        master {
-          path = /var/run/dovecot/auth-master
-          mode = 0600
-        }
-        client {
-          path = /var/spool/postfix/private/dovecot-auth
-          mode = 0660
-          user = postfix
-          group = postfix
-        }
-      }
-    }
-
-* /etc/dovecot/dovecot-sql.conf
-    driver = pgsql
-    connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS
-    default_pass_scheme = CRAM-MD5
-    password_query = SELECT userid AS "user", password FROM dovecotpassword('%Ln', '%Ld') WHERE %Ls
-    user_query = SELECT home, uid, gid, mail FROM dovecotuser('%Ln', '%Ld')
-
-Provide a root SETUID copy of Dovecot's deliver agent for Postfix
-
-/!\ Only required with Dovecot v.1.x.
-    With Dovecot >= v2.0 use Dovecot's lmtp!
-
-    mkdir -p /usr/local/lib/dovecot
-    chmod 700 /usr/local/lib/dovecot
-    chown nobody /usr/local/lib/dovecot
-    cp /usr/lib/dovecot/deliver /usr/local/lib/dovecot/
-    chown root:`id -g nobody` /usr/local/lib/dovecot/deliver
-    chmod u+s,o-rwx /usr/local/lib/dovecot/deliver
-
-
-
-Start or restart Dovecot
-
-
-Configuring Postfix's master.cf
-    
-/!\ Only required with Dovecot v.1.x.
-    # Add Dovecot's deliver agent
-    dovecot   unix  -       n       n       -       -       pipe
-      flags=DORhu user=nobody argv=/usr/local/lib/dovecot/deliver -f ${sender}
-      -d ${user}@${nexthop} -n -m ${extension}
-
-
-
-Configuring Postfix's main.cf
-    sql      = pgsql:${config_directory}/
-    proxysql = proxy:${sql}
-
-    # relocated users from the database
-    #relocated_maps = ${proxysql}pgsql-relocated_maps.cf
-
-    # transport settings from our database
-    transport_maps = ${proxysql}pgsql-transport_maps.cf
-
-    # virtual domains
-    virtual_mailbox_domains = ${proxysql}pgsql-virtual_mailbox_domains.cf
-    virtual_alias_maps = ${proxysql}pgsql-virtual_alias_maps.cf
-    virtual_minimum_uid = 70000
-    virtual_uid_maps = ${sql}pgsql-virtual_uid_maps.cf
-    virtual_gid_maps = ${sql}pgsql-virtual_gid_maps.cf
-    virtual_mailbox_base = /
-    virtual_mailbox_maps = ${proxysql}pgsql-virtual_mailbox_maps.cf
-
-    # dovecot LDA (only recommended with Dovecot v1.x)
-    #dovecot_destination_recipient_limit = 1
-    #virtual_transport = dovecot:
-
-    # dovecot lmtp
-    virtual_transport = lmtp:unix:private/dovecot-lmtp
-
-    # dovecot SASL
-    smtpd_sasl_type = dovecot
-    smtpd_sasl_path = private/dovecot-auth
-    smtpd_sasl_auth_enable = yes
-    # Keep smtpd_sasl_local_domain identical to Dovecot's auth_default_realm:
-    # empty. Both are empty by default. Let it commented out.
-    # Read more at: http://wiki.dovecot.org/Authentication/Mechanisms/DigestMD5
-    #smtpd_sasl_local_domain =
-    smtpd_sasl_security_options = noplaintext, noanonymous
-    #smtpd_sasl_security_options = noanonymous
-    #broken_sasl_auth_clients = yes
-
-    smtpd_recipient_restrictions =
-      permit_mynetworks
-      permit_sasl_authenticated
-      reject_unauth_destination
-
-
-Installing the Virtual Mail Manager and configure the rest
-
-    Installing from Mercurial or vmm-x.y.z.tar.gz
-    after cloning from the hg repo or extracting the archive change into the
-    new directory and type:
-        ./install.sh
-    edit all the pgsql-*.cf files in /etc/postfix
-
-    reload postfix
-
-    # configure the Virtual Mail Manager
-    # vmm.cfg(5) - configuration file for vmm
-    #
-    # For Dovecot v1.x use 'dovecot:' as domain.transport
-    # When using Dovecot v2.x use 'lmtp:unix:private/dovecot-lmtp' as
-    # domain.transport
-    vmm configure
-
-    # for help type
-    # vmm(1) - command line tool to manage email domains/accounts/aliases
-    vmm help
-