Qmail – Patching (CentOS 7)

Published by Lello on

>> Script avanzati

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

← QMail – VPopMail (CentOS 7)                                           QMail – Test (CentOS 7) →