Qmail – Patching (CentOS 7)
ATTENZIONE: gli scripts contenuti in questa pagina modificheranno la struttura di qmail; pertanto NON usarli su sistemi in produzione.
E’ necessario, fondamentale mettere della patch a qmail prima che esso diventi visibile da internet. Un grande e preciso lavoro è stato fatto da Roberto Puzzanghera che ha costruito una mega-patch che racchiude quelle che anche secondo sono le patch necessarie per costruire un sistema di mailing; complimenti davvero per il suo lavoro.
Trovate la patch a questo indirizzo; di seguito alcune delle pacth incluse da Roberto Puzzanghera:
- qmail-authentication
- qmail-tls
- force-tls
- chkuser
- qmail queue custom error
- qmail-SPF
- oversize DNS
- reread concurrency
- big concurrency
- big concurrency fix
- maildir++
- Better qmail-smtpd logging
- SMTP HELO/EHLO Greeting delay
- DKIM
- EXT-TODO
- BIG-TODO
- qmail-inject-null-sender
- doublebounce-trim
- esmtp-size
- qmail-tap
- qmail-remote CRLF
- outgoingip
- qmail-bounce
- qmail-smtpd pid, qp log patch
Per il dettaglio delle patch, rimando al lavoro di Puzzanghera; vediamo come procedere per installare le patch:
Libdomainkeys
# cd /usr/src # wget http://prdownloads.sourceforge.net/domainkeys/libdomainkeys/0.69/libdomainkeys-0.69.tar.gz # tar xvfz libdomainkeys-0.69.tar.gz # ln -s libdomainkeys-0.69 libdomainkeys # cd libdomainkeys # echo -lresolv > dns.lib # make # cd ..
Installazione patch, ricompilazione ed installazione di qmail
Attenzione: procedendo l’installazione di qmail verrà sostituita con la presente installazione.
# # INSTALLIAMO LE LIBRERIE LIBSRS2 # cd /usr/src # wget http://www.libsrs2.org/srs/libsrs2-1.0.18.tar.gz # tar xvfz libsrs2-1.0.18.tar.gz # cd libsrs2-1.0.18 # ./configure # make # make install # #APPLICHIAMO LA PATCH DI PUZZANGHERA E RICOMPILIAMO QMAIL # wget http://notes.sagredo.eu/sites/notes.sagredo.eu/files/qmail/patches/roberto-netqmail-1.06.patch-latest.gz # cd netqmail-1.06 # make clean # gunzip -c ../roberto-netqmail-1.06.patch-latest.gz | patch # qmailctl stop # make setup check
Crezione certificato self-signed per il servizio di SMTP Autenticated
Creiamo il nostro certificato per il nostro server; è fondamentale che il nome del server sia quello che andremo ad inserire nel campo “Common Name” del certificato che generiamo; editiamo il file Makefile-cert.mk e modifichiamo la seguente riga:
# openssl req -new -x509 -nodes -days 366 3650 -out $@ -keyout $@
in maniera tale da rendere il certificato valido per 10 anni. Ora generiamo il certificato:
# make cert Generating a 2048 bit RSA private key .....+++ .....................................+++ writing new private key to '/var/qmail/control/servercert.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:IT State or Province Name (full name) []:Italy Locality Name (eg, city) [Default City]:Florence Organization Name (eg, company) [Default Company Ltd]:Anthesia Ltd Organizational Unit Name (eg, section) []:IT Department Common Name (eg, your name or your server's hostname) []:mailtest.anthesia.lan <=== Nome del mail server Email Address []:dave@anthesia.lan # make tmprsadh # chown vpopmail.vchkpw /var/qmail/control/*.pem
Modifichiamo il cron per aggiornare il certificato temporaneo RSA e i parametri DH; con il comando “crontab -e” inseriamo:
# AGGIORNAMENTO CERTIFICATI QMAIL 03 05 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1
Per sfruttare le patch al meglio modifichiamo alcuni valori nei file di controllo di qmail:
# echo 2 > /var/qmail/control/spfbehavior # echo dave@anthesia.lan > /var/qmail/control/bouncefrom # echo anthesia.lan > /var/qmail/control/doublebouncehost # echo 20000000 > /var/qmail/control/databytes
Creiamo gli script di supervise per il servizio di smtp autenticato; scaricate gli script che trovate all’inizio di questa pagina nella directory /usr/src, scompattatelo, entrate nella directory /usr/src/qmail_adv ed eseguite:
# cd /usr/src # tar xvfz qmail_adv.tar.gz # cd qmail_adv # chmod 755 make_qmail_script_adv.sh # ./make_qmail_script_adv.sh # qmailctl stat /service/qmail-send: up (pid 6710) 77 seconds /service/qmail-send/log: up (pid 6711) 77 seconds /service/qmail-smtpd: up (pid 6714) 77 seconds /service/qmail-smtpd/log: up (pid 6713) 77 seconds /service/qmail-smtpd-auth: up (pid 6721) 77 seconds /service/qmail-smtpd-auth/log: up (pid 6723) 77 seconds messages in queue: 0 messages in queue but not yet preprocessed: 0