Courier-0.47

Introduzione a Courier

Il pacchetto Courier contiene un Mail Transport Agent (MTA). Esso serve per inviare email ad altri utenti della propria macchina host. Esso può anche essere configurato per essere un server di posta centrale per il proprio dominio o un mail relay agent. I pacchetti Courier includono anche un'interfaccia email web-based, IMAP, IMAP-SSL, POP3, e POP3-SSL.

Informazioni sul pacchetto

Installazione di Courier

[Nota]

Nota

Il tarball di Courier deve venire estratto come utente senza privilegi o lo script di configurazione fallirà.

Prima di compilare il programma è necessario creare l'utente e il gruppo courier, che devono esistere quando lo script di installazione viene eseguito. Come utente root aggiungere utente e gruppo courier con il seguente comando:

groupadd courier &&
useradd -c 'Courier Mail Server' -d /dev/null \
        -g courier -s /bin/false courier

Lo script di installazione si aspetta anche un utente bin. Se si ha già un utente chiamato bin questo passo può venire tranquillamente ignorato.

useradd -c 'bin' -d /dev/null -g bin -u 1 bin

Courierfilter richiede la directory /var/run/courier per archiviare tutti i pid e i file lock di Courier. Deve anche esistere /var/lock/subsys per il file lock principale di Courier. Digitare i seguenti comandi per creare queste directory:

install -d /var/run/courier -o courier -g courier -m755 &&
install -d /var/lock/subsys -o root -g root -m755

Costruire Courier come utente senza privilegi con i seguenti comandi:

./configure --prefix=/usr --libexecdir=/usr/lib/courier \
    --datadir=/usr/share/courier --sysconfdir=/etc/courier \
    --localstatedir=/var/lib/courier --with-piddir=/var/run/courier \
    --with-paranoid-smtpext --disable-autorenamesent \
    --enable-workarounds-for-imap-client-bugs --with-db=gdbm &&
make

Ancora una volta accedere come utente root e installare Courier con i seguenti comandi:

make install &&
make install-configure

Spiegazioni dei comandi

--libexecdir=/usr/lib/courier: specifica la directory che contiene programmi e librerie che non possono essere direttamente eseguiti dalla linea di comando.

--datadir=/usr/share/courier: specifica la directory dove i vari script shell, script Perl, e file dati verranno installati.

--localstatedir=/var/spool/courier: specifica la directory che conterrà la coda della posta e altri dati temporanei.

--with-piddir=/var/run/courier: specifica la directory dove i file PID di Courier vengono archiviati quando Courier è attivo.

--with-paranoid-smtpext: è bene essere paranoici quando si negoziano estensioni specifiche di Courier ESMTP con server remoti. Il server di posta Courier definisce e implementa certe estensioni sperimentali ESMTP: XVERP e XEXDATA. Potrebbero esserci problemi nel caso in cui qualcun altro usi lo stesso nome per implementare qualche altra estensione. Se è specificata questa opzione il server ESMTP di Courier pubblicizzerà anche la capacità di un ESMTP dummy chiamata XCOURIEREXTENSIONS, e non riconoscerà nessuna estensione specifica di Courier a meno che il server di posta remoto a sua volta non pubblicizzi questa capacità di un ESMTP dummy.

--disable-autorenamesent: non rinomina la cartella Sent ogni mese. Questa opzione può anche essere controllata dalla variabile d'ambiente SQWEBMAIL_AUTORENAMESENT.

--enable-workarounds-for-imap-client-bugs: ci sono numerosi bug confermati in alcuni client IMAP che non implementano correttamente il protocollo IMAP4rev1. Questa opzione abilita alcuni aggiramenti di questi client IMAP errati. NOTA: make check fallirà se viene usata questa opzione. Bisognerebbe prima configurare senza questa opzione, e se tutti i test post configurazione hanno successo riavviare configure con questa opzione e ricompilare.

--with-db=gdbm: Courier richiede in alternativa le librerie database GDBM o DB. GDBM è usata se sono entrambe presenti. Questa opzione forza la selezione di GDBM, poiché courier attualmente non funzione quando usato con DB.

--with-ispell=/usr/bin/aspell: Il server webmail diCourier può usare il controllo ortografico se configure trova ispell o se viene impostata esplicitamente la locazione di aspell.

--enable-mimetypes=[locazione del file mime.types] : usare questo switch se si riceve un errore che dice che il file mime.types non può essere trovato.

Configurazione di Courier

File di configurazione

/etc/courier/*

Informazioni di configurazione

Mentre si è ancora root bisognerà creare i seguenti file con i contenuti specificati.

/etc/courier/defaultdomain

cat > /etc/courier/defaultdomain << "EOF"
[propriodominio]
EOF

/etc/courier/me

cat > /etc/courier/me << "EOF"
[nomeserver.propriodominio]
EOF

/etc/courier/locals

cat > /etc/courier/locals << "EOF"
localhost
[propriodominio]
EOF

/etc/courier/esmtpacceptmailfor.dir/system

cat > /etc/courier/esmtpacceptmailfor.dir/system << "EOF"
localhost
[propriodominio]
EOF

Sarà anche necessario editare il file /etc/courier/aliases/system e cambiare i seguenti campi.

postmaster: [email del proprio amministratore]

Se si vuole negare l'accesso da alcuni host per l'invio di email bisognerà editare il file /etc/courier/smtpaccess/default.

Se si vuole ospitare posta per domini non locali inclusi i domini virtuali bisogna aggiungerli a /etc/courier/hosteddomains. Questo file deve esistere che si abbia bisogno o meno di un elenco di domini ospitati:

touch /etc/courier/hosteddomains

Dopo che i precedenti passi sono stati completati sarà necessario eseguire i seguenti comandi:

makesmtpaccess &&
makehosteddomains &&
makealiases

Per ciascun utente bisognerà creare una directory Maildir:

cd /home/[nomeutente] &&
maildirmake Maildir &&
chown [nomeutente].[nomeutente] Maildir -R

Se si desidera usare SSL con Courier bisogna ottenere i certificati e archiviarli in /usr/share/courier. Opzionalmente si possono creare certificati di test auto-firmati con i seguenti comandi:

mkesmtpdcert &&
mkimapdcert &&
mkpop3dcert

Tutti i file di configurazione di Courier risiedono nella directory /etc/courier/. Per ogni servizio SMTP, POP3 e IMAP, si avrà un file di configurazione standard, e un file di configurazione SSL. Per ciascun servizio che si desidera utilizzare bisognerà editare il file di configurazione, e cambiare la variabile [DAEMON]START da 'NO' a 'YES'. Per esempio per usare SMTP con SSL bisognerà editare /etc/courier/esmtpd-ssl e cambiare il valore di 'ESMTPDSSLSTART' in 'YES'. Fare lo stesso cambiamento per ciascuna configurazione di servizi che si vogliono usare con Courier.

Se si vuole usare LDAP deve essere creato un file di configurazione LDAP:

echo "LDAPALIASDSTART=YES" > /etc/courier/ldapaliasd

Similarmente se si vuole usare webmail bisogna creare il file di configurazione di webmail:

echo "WEBMAILDSTART=YES" > /etc/courier/webmaild

Bisognerà anche copiare il file webmail da /usr/lib/courier/courier/webmail alla directory cgi-bin del proprio server Apache.

cp -a /usr/lib/courier/courier/webmail/webmail /srv/www/cgi-bin

Bisognerà quindi copiare le immagini in una directory sotto la propria directory htdocs del proprio server Apache. La directory deve essere nominata webmail o è necessario specificarla durante la fase di configurazione con --enable-imageurl=[URL].

cp -a /usr/share/courier/sqwebmail/images /srv/www/htdocs/webmail

Se si vuole usare l'utilità webadmin sarà necessario copiare il file webadmin da /usr/lib/courier/courier/webmail alla propria directory cgi-bin del proprio server Apache.

cp -a /usr/lib/courier/courier/webmail/webadmin /srv/www/cgi-bin

E' anche necessario mettere la password nel file /etc/courier/webadmin/password:

cat > /etc/courier/webadmin/password << "EOF"
[password]
EOF

Se non si usa SSL sul proprio server Apache bisognerà anche aggiungere /etc/courier/webadmin/unsecureok, così da poter utilizzare il proprio tool di amministrazione su web.

touch /etc/courier/webadmin/unsecureok

Se si usa Linux-PAM sul proprio sistema bisognerà creare i file di configurazione di PAM:

cat > /etc/pam.d/esmtp << "EOF"
# Begin /etc/pam.d/esmtp

auth            required                pam_unix.so try_first_pass
account         required                pam_unix.so
session         required                pam_unix.so

# End /etc/pam.d/esmtp
EOF
cat > /etc/pam.d/pop3 << "EOF"
# Begin /etc/pam.d/pop3

auth            required                pam_unix.so try_first_pass
account         required                pam_unix.so
session         required                pam_unix.so

# End /etc/pam.d/pop3
EOF
cat > /etc/pam.d/imap << "EOF"
# Begin /etc/pam.d/imap

auth            required                pam_unix.so try_first_pass
account         required                pam_unix.so
session         required                pam_unix.so

# End /etc/pam.d/imap
EOF
cat > /etc/pam.d/webmail << "EOF"
# Begin /etc/pam.d/webmail

auth            required                pam_unix.so try_first_pass
account         required                pam_unix.so
session         required                pam_unix.so

# End /etc/pam.d/webmail
EOF

Infine se si vuole avviare il server Courier all'accensione installare il bootscript /etc/rc.d/init.d/courier incluso nel pacchetto blfs-bootscripts-6.0.

make install-courier

Configurazione degli utenti virtuali

Queste istruzioni configureranno Courier per fargli cercare utenti virtuali in un database MySQL. Iniziare apportando i seguenti cambiamenti a /etc/courier/authmysqlrc:

MYSQL_SERVER            localhost
MYSQL_USERNAME          courier
MYSQL_PASSWORD          [your choice]
MYSQL_SOCKET            /var/run/mysql/mysql.sock
MYSQL_PORT              3306
MYSQL_DATABASE          courier_mail
MYSQL_USER_TABLE        users
MYSQL_CLEAR_PWFIELD     clear
DEFAULT DOMAIN          [your domain]
MYSQL_QUOTA_FIELD       quota

Connettersi a MySQL:

mysql -p

Creare il database courier_mail e impostare la tabella utenti:

CREATE DATABASE courier_mail;
USE courier_mail
CREATE TABLE users (
id                    char(128) DEFAULT '' NOT NULL,
crypt                 char(128) DEFAULT '' NOT NULL,
clear                 char(128) DEFAULT '' NOT NULL,
name                  char(128) DEFAULT '' NOT NULL,
uid                   int(10) unsigned DEFAULT '65534' NOT NULL,
gid                   int(10) unsigned DEFAULT '65534' NOT NULL,
home                  char(255) DEFAULT '' NOT NULL,
quota                 char(255) DEFAULT '' NOT NULL,
KEY id (id(128))
);

Assicurare tutti i privilegi all'utente courier creato in precedenza:

GRANT ALL PRIVILEGES ON *.* TO courier@localhost \
    IDENTIFIED BY '[password]' WITH GRANT OPTION;
QUIT

Creare un utente e un gruppo mailman virtuali:

groupadd -g 9000 vmailman &&
useradd -c 'Virtual Mailman' -g vmailman -m -k /dev/null -u 9000 vmailman

Creare una directory mail per un nuovo utente virtuale:

cd /home/vmailman &&
mkdir [utente_virtuale] &&
cd [utente_virtuale] &&
maildirmake Maildir &&
chown vmailman.vmailman Maildir -R

Ora connettersi al database MySQL come utente courier:

mysql -u courier -p

Per aggiungere l'utente virtuale bisogna inserire almeno una versione della password o in testo in chiaro o cifrata.

Aggiungere il primo utente virtuale con i seguenti comandi:

USE courier_mail
INSERT INTO users VALUES (
'[utenti_virtuali]@[domain.com],
'[password cifrata o nulla]',
'[password in testo in chiaro o nulla]',
'[Nome utente]',
9000,
9000,
'[locazione di Maildir]',
'[Quota in Bytes]
);
QUIT

Per esempio:

INSERT INTO users VALUES (
'blfsuser@linuxfromscratch.org',
'',
'password',
'BLFS User',
9000,
9000,
'/home/vmailman/blfsuser',
''
);

Contenuti

Programmi installati: addcr, authenumerate, cancelmsg, courier, courier-config, courieresmtpd, courierfilter, courierlogger, couriermlm, couriertcpd, couriertls, deliverquota, dotforward, esmtpd, esmtpd-msa, esmtpd-ssl, filterctl, imapd, imapd-ssl, lockmail, mailbot, maildiracl, maildirkw, maildirmake, maildrop, mailq, makeacceptmailfor, makealiases, makedat, makehosteddomains, makemime, makepercentrelay, makesmtpaccess, makesmtpaccess-msa, makeuserdb, makeuucpneighbors, mimegpg, mkesmtpdcert, mkimapdcert, mkpop3dcert, pop3d, pop3d-ssl, preline, pw2userdb, reformail, reformime, rmail, sendmail, sharedindexinstall, sharedindexsplit, showconfig, showmodules, testmxlookup, userdb, userdbpw, vchkpw2userdb, webgpg, webmaild
Directory installate: /etc/courier, /usr/lib/courier, /usr/share/courier, /var/lib/courier, /var/lock/subsys, /var/run/courier e /var/spool/courier

Brevi descrizioni

cancelmsg

rimuove un messaggo dalla coda di posta.

courier

è un comando amministrativo usato per controllare il motore di scheduling di Courier.

courierfax

invia messagi email via fax.

courierfilter

avvia e arresta tutti i filtri email installati da filterctl.

courierldapaliasd

supporta l'aliasing degli indirizzi email usando una directory LDAP.

courierlogger

cattura i messaggi di errore da altre applicazioni Courier e li inoltra al logger di sistema.

couriermlm

imposta, mantiene, e gestisce mailing list.

courierperlfilter

è un filtro di esempio scritto in Perl.

courierpop3d

è un server POP3 di Courier.

courierpop3login

legge userid e password POP3 e le passa ai moduli di autenticazione.

couriertcpd

accetta connessioni di rete in entrata, e esegue altri programmi Courier dopo aver stabilito ciascuna connessione di rete.

couriertls

è usato dalle applicazioni per cifrare una connessione di rete usando SSL/TLS.

dotforward

è un modulo di compatibilità che legge istruzioni di inoltro in $HOME/.forward.

dupfilter

è un filtro threaded che prova a bloccare E-mail spazzatura tentando di individuare copie multiple dello stesso messaggio, che vengono rifiutate.

esmtpd

è uno script di controllo per courieresmtpd.

esmtpd-msa

è uno script di controllo per courieresmtpd, ma aggiunge la porta di sottomissione messaggi 587 per il protocollo MSA.

filterctl

installa o disinstalla filtri di posta globali.

imapd

is the server Courier-IMAP.

lockmail

è una utilità helper per il blocco dei file mailbox.

mailbot

è un'utilità di risposta automatica MIME-aware.

maildiracl

gestisce le liste di controllo accessi.

maildirkw

modifica parole chiave dei messaggi compatibili con la maildir Courier-IMAP compatible maildir.

maildirmake

crea maildir, e cartelle maildir.

maildrop

è un agente sostitutivo di recapito posta locale che include un linguaggio di filtraggio posta.

mailq

visualizza un elenco di tutti i messaggi che non sono ancora stati recapitati.

makeacceptmailfor

costruisce un elenco di tutti i domini da cui accettare posta, dalla directory /etc/courier/esmtpacceptmailfor.dir.

makealiases

costruisce un database di alias da uno o più file sorgenti di testo.

makedat

è un'utilità per creare file GDBM o DB da file di testo.

makehosteddomains

ricostruisce i contenuti del database hosteddomains dai contenuti di /tools/etc/courier/hosteddomains.

makemime

crea messaggi formattati MIME da uno o più file.

makepercentrelay

costruisce un elenco di domini %-relayed dalla directory percentrelay.dir.

makesmtpaccess

costruisce dei file di accesso al server ESMTP dalla directory /etc/courier/smtpaccess.

makesmtpaccess-msa

costruisce dei file di accesso al server ESMTP dalla directory /etc/courier/smtpaccess. Questo elenco esmtp è per il protocollo MSA.

makeuserdb

costruisce un db user/password dai contenuti di /tools/etc/courier/userdb.

mimegpg

firma, cifra, o decifra messaggi di posta formattati MIME usando GnuPG.

mkesmtpdcert

crea un certificato SMTP sicuro di test.

mkimapdcert

crea un certificato IMAP sicuro di test.

mkpop3dcert

crea un certificato POP3 sicuro di test.

pop3d

è uno script wrapper per couriertcpd per avviare e arrestare il servizio POP3.

pop3d-ssl

è uno script wrapper per couriertcpd per avviare e arrestare POP3 su SSL service.

preline

prepende intestazioni legacy mbox ai messaggi di posta.

reformail

legge un messaggio dallo standard input, lo riformatta in qualche modo e scrive il messaggio sullo standard output.

reformime

è un'utilità per riformattare messaggi MIME.

sendmail

legge un messaggio di posta e recapita il messaggio ai suoi destinatari.

submit

sottomette i messaggi a Courier per il loro processo.

testmxlookup

elenca nomi e indirizzi IP di mail relay che ricevono posta dal dominio.

userdb

è uno script per manipolare individualmente campi in /tools/etc/courier/userdb.

userdbpw

legge una singola linea di testo sullo standard input, la cifra e stampa il risultato cifrato sullo standard output.

Last updated on