J’ai enfin un truc qui marche… Récapitulons.
Créer un utilisateur vmail
qui opérera seul sur les fichiers de mail.
adduser vmail
Configurer vmail comme on veut. Noter ses UID/GID (ici 1009
)
Configurer courier-mta normalement.
installer courier-authlib-postgresql :
apt-get install courier-authlib-postgresql
Modifier /etc/courier/authdaemonrc
. Il faut avoir :
authmodulelist="authpam authpgsql"
et pour commencer :
DEBUG_LOGIN=1
Modifier aussi /etc/courier/authpgsqlrc
. Les lignes importantes sont :
PGSQL_HOST 127.0.0.1
PGSQL_PORT 5432
PGSQL_USERNAME postgres
PGSQL_PASSWORD
Créer une base de données (dans postgres) nommée mail par exemple avec la table passwd ayant la structure suivante :
CREATE TABLE passwd (
id varchar(128) DEFAULT '' NOT NULL,
crypt varchar(128) DEFAULT '' NOT NULL,
clear varchar(128) DEFAULT '' NOT NULL,
name varchar(128) DEFAULT '' NOT NULL,
uid int DEFAULT 65534 NOT NULL,
gid int DEFAULT 65534 NOT NULL,
home varchar(255) DEFAULT '' NOT NULL,
maildir varchar(255) DEFAULT '' NOT NULL,
defaultdelivery varchar(255) DEFAULT '' NOT NULL,
quota varchar(255) DEFAULT '' NOT NULL,
CONSTRAINT id PRIMARY KEY (id)
);
Insérer un enregistrement de test dans la base :
INSERT INTO passwd (id,crypt,name,uid,gid,home) VALUES ('taste','$1$CY7vG$bjUINelvcc2niojOcDibQ.','taste account',1009,1009,'/home/mail/taste');
Le champ crypt
est obtenu en utilisant la commande :
authpasswd
Ici, le mot de passe crypté est 123
.
Vérifier que la connexion en socket TCP marche bien -sinon jeter un œil du côté de /etc/postgresql/
et notamment pg_hba.conf
:
psql -h 127.0.0.1 -U postgres mail
À ce stade, on doit pouvoir s’authentifier et voir taste
dans la liste des comptes :
# authenumerate |grep taste
taste 1009 1009 /home/vmail/taste
# authtest taste
Authentication succeeded.
Authenticated: taste (uid 1009, gid 1009)
Home Directory: /home/vmail/taste
Maildir: (none)
Quota: (none)
Encrypted Password: $1$CY7vG$bjUINelvcc2niojOcDibQ.
Cleartext Password: (none)
Options: (none)
Créer /home/vmail/taste :
mkdir -p /home/vmail/taste
Créer le .courier-default
de ce compte. Par exemple :
echo './Maildir' >/home/vmail/taste/.courier-default
Créer ensuite un alias qui pointe vers notre taste
:
echo '@gitenville.com: taste' >/etc/aliases/gitenville
makealiases