Courier - настройка

Материал из support.qbpro.ru

Статья создана ввиду отсутствия внятного описания настройки в Debian системы COURIER-POP3 вместе с POSTFIX

  • перед тем как устанавливать и настраивать Courier рекомендуется прочесть настройку Postfix
  • до начала данной установки уже должны быть установлены пакеты:
postfix mutt 

и так начнем:

  • устанавливаем необходимые пакеты:
# apt-get install courier-authdaemon courier-authlib-userdb courier-base courier-pop courier-authlib
  • в /etc/courier/authdaemonrc - добавляем:
    authmodulelist="authpam authuserdb"
  • создаем папку для базы пользователей:
# mkdir /etc/courier/userdb && chmod 0700 /etc/courier/userdb;
  • перезапускаем службу авторизации:
# /etc/init.d/courier-authdaemon restart;
  • далее с помощью данного скрипта добавляем пользователей в базу почтового сервера:
#!/bin/bash
# имя пользователя переданное скрипту типа: courier-adduser username
usermail=$1
# переменная вашего почтового домена
mailhost="mymailserver.ru"

if [[ "$usermail" = '' ]];
 then 
    echo "не задано имя пользователя..."
    exit 0
fi
mkdir -p /var/mail/$mailhost/$usermail@$mailhost;
maildirmake /var/mail/$mailhost/$usermail@$mailhost/Maildir;
chown -R 5000:5000 /var/mail/$mailhost/$usermail@$mailhost;
userdb $mailhost/$usermail@$mailhost set home=/var/mail/$mailhost/$usermail uid=5000 gid=5000;
userdbpw -md5| userdb $mailhost/$usermail@$mailhost set systempw;
makeuserdb;

authpostgresql или настройка на postgresql

The authpostgresql module integrates with the PostgreSQL database server to support many thousands of virtual mail users.

Note: A fully configured and running PostgreSQL instance is assumed.

Information for valid email addresses, their associated passwords and maildir locations is stored in a database table. First, an os user should be created to seperate the mail user database from other information kept in the db. A directory should be created for the courier schemas files to live.

# groupadd courierdb
# useradd -g courierdb courierdb
# mkdir /var/spool/courierdb
# chown courierdb:courierdb /var/spool/courierdb

Next, set up a database and table in Postgre:

# psql -U postgres template1         ## Configure postgres
= create user courierdb;
= create database courierdb with owner courierdb;
= \c courierdb courierdb
> CREATE TABLE mail_users (
     id serial NOT NULL,
     username character varying(64) NOT NULL,
     vhost character varying(64) NOT NULL,
     passwd character varying(64),
     maildir character varying(256),
     alias character varying(32)
 );
> \q;

Finally set up authentication rights for the courierdb user in Postgre.

# editor pg_hba.conf;             ## Add the following to the users list
     local courierdb courierdb        trust 

Once the postgre user and password have been setup, courier just needs to be configured to use it.

# editor authdaemonrc;            ## Find and change the following
     authmodulelist="authpgsql"
# /etc/init.d/courier-authdaemon restart;
# editor authpgsqlrc
     PGSQL_HOST             localhost
     PGSQL_PORT             5432
     PGSQL_USERNAME         courierdb
     PGSQL_PASSWORD         # trusted
     PGSQL_DATABASE         courierdb
     PGSQL_USER_TABLE       mail_users
     PGSQL_CLEAR_PWFIELD    passwd
     PGSQL_LOGIN_FIELD      username || '@' || vhost