Qmail Ldap

Qmail-Ldap dot info

La risorsa italiana dedicata al server di posta Qmail Ldap
Manuale di installazione, configurazione, funzionamento e amministrazione del mailserver Unix sicuro utilizzato da migliaia di utenti, postmaster e amministratori di sistema.
Qmail ldap
 
Openldap
Configurazione Ldap
 
Installazione Qmail
Configurazione
Servizi
  Qmail-Send
  Smtpd
Account
Maildrop
Autenticazione SMTP
Avvio di Qmail
 
Qmail Suite
 
POP3
IMAP
  Imap Courier
  Imap Dovecot
 
Antivirus
Antispam
Simscan scanner
 
Gestione coda
 
Logging
  QmailMrtg7
  Isoqlog
 
Riepilogo comandi
Risorse

Installazione Qmail-Ldap

Logghiamoci con l'utente root. Se avete Ubuntu, scrivete in una finestra di terminale il comando sudo -i

Impostiamo utenti e gruppi nel sistema, necessari per il funzionamento di Qmail:

mkdir /var/qmail
mkdir /usr/local/src
groupadd nofiles
groupadd qmail
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails

Scegliamo poi l'utente che sarà autorizzato al local delivery, cioè alla consegna locale della posta.

mkdir /home/vmail
groupadd vmail -g 3000
useradd vmail -u 3000 -g vmail -d /home/vmail -s /bin/true
chown -R vmail:vmail /home/vmail

Nel riquadro abbiamo aggiunto l'utente vmail, impostando il valore 3000 sia per l'uid che per il gid.
La directory selezionata è "/home/vmail". Naturalmente potete indicare altri parametri di configurazione, compatibilmente con le vostre esigenze.

Procediamo con il download dei sorgenti di Qmail e della patch Ldap

cd /usr/local/src
wget http://www.qmail.org/netqmail-1.05.tar.gz
wget http://www.nrg4u.com/qmail/qmail-ldap-1.03-20060201.patch.gz

tar zxvf netqmail-1.05.tar.gz
mv netqmail-1.05/qmail-1.03.tar.gz .
tar zxvf qmail-1.03.tar.gz
cd qmail-1.03
zcat ../qmail-ldap-1.03-20060201.patch.gz | patch -p1

E' poi necessario copiare lo schema di qmail-ldap nell'apposita directory di OpenLdap

cp qmail.schema /usr/local/etc/openldap/schema/


e aggiungere la seguente impostazione a
/usr/local/etc/slap.conf

include /usr/local/etc/openldap/schema/qmail.schema




Ora i sorgenti sono pronti. Prima di procedere alla compilazione, però, dobbiamo configurare alcuni parametri secondo le nostre esigenze.
Per farlo, editiamo il file Makefile.

Analizzando il file Makefile, noteremo che la prima riga, che inizializza la variabile LDAPFLAGS è commentata:
#LDAPFLAGS=-DQLDAP_CLUSTER -DEXTERNAL_TODO -DDASH_EXT -DDATA_COMPRESS

Togliete il commento iniziale (il carattere #) e selezionate le funzionalità da installare per il vostro server di posta, eliminando quelle indesiderate.
Le funzionalità da selezionare sono:
-DALTQUEUE queue alternativa: obbligatorio se vogliamo utilizzare uno scanner per virus e spam
-DEXTERNAL_TODO vivamente consigliato, rimpiazza il sistema di TODO di Qmail con un altro più efficiente.
-DDASH_EXT abilita il supporto pe rle email estese
-DDATA_COMPRESS per comprimere i dati nella sessione smtp e risparmiare banda
-DBIGBROTHER permette di spiare silenziosamente uno o più utenti, utile per le indagini di polizia
-DCLEARTEXTPASSWD accetta le password in chiaro - puo' generare problemi di sicurezza
-DIGNOREVERISIGN per disabilitare la wildcard DNS, utile per Verisign
-DBIND_8_COMPAT da selezionare su MacOsX per problemi di compilazione
-DQUOTATRASH per includere le mail eliminate nel conteggio totale dello spazio
-DSMTPEXECCHECK per abilitare il check di eseguibili DOS-Windows
-DQLDAP_CLUSTER selezionatelo se il vostro server appartiene a un cluster
-DQMQP_COMPRESS per comprimere i dati tra cluster, migliorando il carico di rete.

Un esempio:
LDAPFLAGS=-DALTQUEUE -DEXTERNAL_TODO -DDASH_EXT -DQUOTATRASH
abiliterà il TODO alternativo, la queue alternativa e il supporto pe rle email estese.

Controllate path e librerie di Openldap (LDAPLIBS e LDAPINCLUDE) corrispondano all'installazione nel proprio sistema.

Proseguendo nella configurazione di Makefile, abilitare
MDIRMAKE=-DAUTOMAILDIRMAKE
e
HDIRMAKE=-DAUTOHOMEDIRMAKE
per la creazione automatica delle directory nella quali verranno consegnate le email.

Configurate inoltre le librerie di autenticazione per il vostro sistema
ZLIB=-lz
SHADOWLIBS= -lshadow

e abilitate, se volete, il TLS per le connessioni protette
TLS=-DTLS_REMOTE -DTLS_SMTPD
TLSINCLUDES=-I/usr/local/include
TLSLIBS=-L/usr/local/lib -lssl -lcrypto
OPENSSLBIN=/usr/local/bin/openssl
OPENSSLBIN=openssl



Se tutto è andato bene, compiliamo il server qmail-ldap

make setup check


se volete abilitare la connessione protetta generate il certificato .pem

make cert


Inizializziamo il server configurando il primo dominio da immettere. Ipotizziamo si chiami miodominio.org

./config-fast miodominio.org


e installiamo il sendmail di Qmail sostituendo il vecchio (se ce n'era uno):

mv /usr/local/bin/sendmail /usr/local/bin/old.sendmail
mv /usr/local/sbin/sendmail /usr/local/sbin/old.sendmail
rm -f /usr/local/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/local/bin/sendmail
ln -s /var/qmail/bin/sendmail /usr/local/sbin/sendmail



Installazione tools di sistema

Torniamo nella directory dei sorgenti e scarichiamo il software necessario per far funzionare al meglio Qmail-Ldap

Tcpserver + SSL patch

tcpserver è un "superserver", un tcp wrapper che sovrintende l'erogazione di un servizio attivando il demone corrispondente, selezionato in base alla porta interessata.
Il suo funzionamento è simile a quello di inetd e xinetd: una volta sopraggiunta una connessione al sistema, tcpserver attiva il servizio relativo, leggendo alcuni parametri di configurazione per ciascuna istanza.
Scarichiamo il server e la patch per TLS e compiliamo il tutto:
cd /usr/local/src
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://www.nrg4u.com/qmail/ucspi-tcp-ssl-20050405.patch.gz
tar zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
zcat ../ucspi-tcp-ssl-20050405.patch.gz | patch -p0

make
make setup check


Daemontools

I daemontools sono strumenti nati per attivare servizi e verificarne costantemente l'operatività. In caso di crash di un servizio (es.: qmail-send), il demone supervise provvederà a farlo ripartire, fornendo continuità al servizio. Utilizzando il comando svc sarà possibile avviare i servizi, visualizzarne lo status, bloccarne l'esecuzione o riavviarli.
Supervise necessita di una directory fisica di riferimento, che conterrà alcuni file e directory specifici nonché gli script che faranno partire i diversi servizi. La struttura di tale directory viene creata da un apposito tool, che installeremo in seguito.

cd /usr/local/src
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
tar zxvf daemontools-0.76.tar.gz
cd admin/daemontools-0.76/src
cat ../../../daemontools-0.76.errno.patch | patch
cd ../
package/install

L'installer aggiunge al file /etc/inittab l'impostazione:
SV:123456:respawn:/command/svscanboot
per cui supervise si avvierà immediatamente.
Potete commentare o eliminare l'impostazione che avvia /command/svcanboot, poiché utilizzeremo uno script apposito per avviare i servizi da boot.
Non preoccupatevi, dunque, se tra i processi scorgerete un minaccioso:
readproctitle service errors: ...............

Qmail-conf

Installiamo ora Qmail-conf, il tool che ci permetterà di creare le directory di lavoro strutturate per supervise e di configurare con semplicità gli script di avvio e di logging dei servizi, nonché alcune variabili di ambiente predefinite per ogni servizio.
Per la sua compilazione, Qmail-conf richiede i sorgenti del server dns sviluppato da Dan Bernstein, djbdns: questo pacchetto non richiede pertanto alcuna compilazione nè successiva installazione. Naturalmente, nulla vi vieta di installarlo e di utilizzarlo come alternativa al classico named.

cd /usr/local/src/
wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
wget http://www.din.or.jp/~ushijima/qmail-conf/qmail-conf-0.60.tar.gz
tar zxvf djbdns-1.05.tar.gz
tar zxvf qmail-conf-0.60.tar.gz
cd qmail-conf-0.60
make -f Makefile.ini djbdns=../djbdns-1.05/
make
make setup check

in caso di errore di compilazione (il solito errno.h), tentare la seguente soluzione:

echo gcc -O2 -include /usr/include/errno.h > conf-cc
make
make setup check