Vista elenco

ucspi-tcp6

8 Agosto 2026 ore 05:01

ucspi-tcp6 è una derivaziorne del programma di Daniel Bernsteins ucspi-tcp 0.88, che aggiunge, tra le altre cose, le funzionalità ipv6 al programma originale ucspi-tcp. tcpserver e tcpclient sono strumenti di facile utilizzo dalla linea di comando per costruire applicazioni client-server TCP.

A partire dalla versione 1.13.05 è richiesto il pacchetto mandoc sia per ucspi-tcp6 che per ucspi-ssl. Gli utenti Slackware possono trovare il pacchetto su slackbuild.org.

Installare ucspi-tcp6

TCP6_VER=1.13.08
cd /var/qmail/ 
wget https://www.fehcom.de/ipnet/ucspi-tcp6/ucspi-tcp6-${TCP6_VER}.tgz 
tar xzf ucspi-tcp6-${TCP6_VER}.tgz 
cd net/ucspi-tcp6-${TCP6_VER}/ 
./package/install

L'utilizzo di tcpserver, per quanto riguarda l'IPv4, è del tutto simile a quello del programma originale di Bernstein.

Upgrade

In caso di upgrade di ucspi-tcp6 è necessario uccidere i processi tcpserver e riavviare qmail (qmailctl sarà installato dopo):

qmailctl reboot

ucspi-ssl - TLS encryption per comunicazioni Client/Server IPv6/IPv4

8 Agosto 2026 ore 05:01

sslserver, sslclient, e sslhandle sono strumenti da utilizzare dalla linea di comando per costruire applicazioni SSL client-server. 

sslserver ascolta connessioni su IPv6 e/o IPv4, e lancia un programma per ogni connessione accettata. L'ambiente del programma include variabili che mantengono l'host name locale e remoto, l'indirizzo IP, e i numeri di porta.

sslclient richiede una connessione o a tramite IPv6 o IPv4 TCP sockets, e lancia un programma. L'ambiente del programma environment include le stesse variabili di sslserver.

Mediante sslserver è possibile accettare connessioni sicure per spedire la posta attraverso la porta 465 previa autenticazione.

Abbiamo già installato le fehQlibs, che sono delle librerie C supplementari necessarie anche per ucspi-ssl.

A partire dalla versione 1.13.05 è richiesto il pacchetto mandoc sia per ucspi-tcp6 che per ucspi-ssl. Gli utenti Slackware possono trovare il pacchetto su slackbuild.org.

UCSPISSL_VER=0.13.08
cd /var/qmail 
wget https://www.fehcom.de/ipnet/ucspi-ssl/ucspi-ssl-${UCSPISSL_VER}.tgz
tar xzf ucspi-ssl-${UCSPISSL_VER}.tgz 
cd host/superscript.com/net/ucspi-ssl-${UCSPISSL_VER}
./package/install

La configurazione degli script supervise per qmail-smtps è all'interno della pagina riguardante la configurazione.

Gli utenti NetBSD, prima di compilare, dovrebbero fare le seguenti correzioni:

  • rimuovere l'opzione -ldl da compile/ssl.lib
  • aprire conf-man e mettere l'indirizzo del man usr/share/man nella prima riga (è nella seconda riga e così non viene trovato)

Aggiornare ucspi-ssl

In caso di aggiornamento di ucspi-ssl è necessario uccidere i processi sslserver e riavviare qmail. Se si è aggiornato anche ucspi-tcp6, questo comando sarà sufficiente (qmailctl sarà installato dopo):

qmailctl reboot

Configurazione di proftpd con mod_tls o mod_sftp

2 Giugno 2026 ore 18:30

Ecco come ho installato mod_tls (ftpes) e mod_sftp in proftpd. I miei tentativi di farli convivere in due demoni separati sono tutti falliti, giacchè ho registrato errori nel trasferimento che sono spariti solo quando ho provato a caricare mod_tls o mod_sftp a turno.

Questi i miei test sulla velocità (per la verità un po' frettolosi). ftpes sembra un pochino più veloce in modalità upload:

ftpes
upload: circa 22.4 K/s
download: più di 800 K/s

sftp
upload circa 18.2 K/s
download: più di 800 K/s

Le mie opzioni di configurazione:

./configure \
        --prefix=/usr/local \
        --without-pam --disable-auth-pam \
        --enable-openssl \
        --with-modules=mod_ratio:mod_readme:mod_sftp:mod_tls

file ftpes.conf

# common stuff goes here
Include /usr/local/etc/proftpd/proftpd.conf

<IfModule mod_tls.c>
TLSEngine on
PassivePorts 49152 65535
#MasqueradeAddress 012.345.678.901 # se il server e' dietro un firewall
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
# Require protection on the control channel, but reject protection of the data channel
TLSRequired ctrl+!data
TLSRSACertificateFile /usr/local/etc/ssl/certs/proftpd.pem
TLSRSACertificateKeyFile /usr/local/etc/ssl/certs/proftpd.pem
TLSVerifyClient off
TLSRenegotiate none
</IfModule>

file sftp.conf

# common stuff
Include /usr/local/etc/proftpd/proftpd.conf

<IfModule mod_sftp.c>
SFTPEngine on
SFTPLog /var/log/proftpd/sftp.log
Port 22
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPCompression delayed
MaxLoginAttempts 6
</IfModule>

Infine avviare il demone richiamando il file di configurazione desiderato:

/usr/local/sbin/proftpd -c /usr/local/etc/proftpd/ftpes.conf # se si vuole ftpes
/usr/local/sbin/proftpd -c /usr/local/etc/proftpd/sftp.conf  # se si preferisce sftp

Non avviarli mai insieme.

file proftpd.conf

ServerType standalone
UseReverseDNS off
DeferWelcome off

Port 21
Umask 022
MaxInstances 30

User ftp
Group ftp

SystemLog /var/log/proftpd/proftpd.log
TransferLog /var/log/proftpd/xferlog

<Global>

<Directory /*>
AllowOverwrite on
</Directory>

</Global>

<VirtualHost 123.456.789.123>

ServerName "ProFTPD"
DefaultRoot ~/www
DefaultServer on

</VirtualHost>

Startup script

#!/bin/sh
#
# /etc/rc.d/rc.proftpd
#

start() {
        /usr/local/sbin/proftpd -c /usr/local/etc/proftpd/ftpes.conf
#-n -d 20 for backup
#        /usr/local/sbin/proftpd -c /usr/local/etc/proftpd/sftp.conf
        echo "Server started."
}

stop() {
        /bin/killall proftpd
        echo "Server stopped."
}

restart() {
        stop
sleep 3
        start
#/bin/killall -HUP proftpd
        echo "Server restarted."
}

case "$1" in
'start')
  start
  ;;
'stop')
  stop
  ;;
'restart')
  restart
  ;;
*)
  echo "usage $0 start|stop|restart"
esac

 

fehQlibs

8 Agosto 2026 ore 05:01
  • Maggiori informazioni qui
  • Versione: fehQlibs-31

Le fehQlibs sono librerie C aggiuntive sviluppate da Erwin Hoffmann. Sono un prerequisito di ucspi-tcp6 e di ucspi-ssl.

Installare come segue in /usr/local:

FEQLIBS_VER=31
cd /usr/local
wget https://www.fehcom.de/ipnet/fehQlibs/fehQlibs-${FEQLIBS_VER}.tgz
tar xzf fehQlibs-${FEQLIBS_VER}.tgz 
chown -R root:root fehQlibs-${FEQLIBS_VER}
cd fehQlibs-${FEQLIBS_VER}

Cambiare la cartella di installazione modificando il file conf-build come segue

LIBDIR=/usr/local/lib 
HDRDIR=/usr/local/include 

Compilare e installare

make -C src
make -C src shared
make -C src install 

cd ..
rm qlibs
ln -s fehQlibs-${FEQLIBS_VER} qlibs

Le qlibs dovranno essere trovate al momento della compilazione di ucspi-tcp6, quindi dobbiamo aggiungerle al file /etc/ld.so.conf:

echo "/usr/local/qlibs" >> /etc/ld.so.conf
ldconfig

In genere nei sistemi Unix si può lanciare questo comando per ottenere lo stesso risultato e linkare le librerie qlib:

ldconfig -m /usr/local/qlibs

Su NetBSD ho messo questo nel .profile

export LD_LIBRARY_PATH=/usr/local/qlibs${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

Aggiornare qmail

8 Luglio 2026 ore 05:01

Call for testers

Ho appena tirato su una modifica a tutto il codice di base, mirata a rendere il codice di qmail compatibile con le specifiche C23 e i gli ultimi compilatori GCC e Clang. Sul mio server di produzione funziona senza alcun problema da alcune settimane. La compilazione è stata testatta su linux, freebsd, openbsd, netbsd e con i compilatori GCC fino alla versione 15.2 e Clang fino alla versione 19.1.7. Trattandosi di una modifica importante, prima del rilascio definitivo, chiederei a chi ne avesse la possibilità di collaborare al testing scaicando l'ultima versione come segue

git clone https://github.com/sagredo-dev/qmail.git

Changelog

  • Apr 7, 2026
    - (security) Remote Code Execution via Shell Injection in qmail-remote TLS Error Handler in #42 (tx Diep Pham)
  • Apr 2, 2026
    - qmail-remote auth improvements by pierluigi in #39
    - Fixed DKIM ed25519-sha256 signing and verification to conform to RFC8463 by @agerstla in #40
    - Updated qmail-qfilter to support filters defined in control/qfilters by @agerstla in #41
  • Feb 25, 2026
    - Improved DKIM status handling by @agerstla in #35
    - Ported over DKIM_BAD_IDENTITY support from Indimail (tx Manvendra Bhangui and Andreas Gerstlauer 1299b55)
    - SNI support for qmail-smtpd by @agerstla in #37
    - Added qmail-qfilter by @agerstla in #38
  • Feb 3, 2026
    - Bug fix for verifying multiple DKIM signatures (second one always failed due to a DNS lookup bug). tx Andreas Gerstlaurer #31
    - config-all.sh upgrade #33
    * config-all.sh: moreipme is now populated with IPs in separate lines
    * config-all.sh: rsa dh keys can be created even if the certificate creation is skipped
    * config-all requires to accept overwriting with y/N/a=all options
  • Jan 8, 2026
    - bug fixed in helodnscheck: it allowed domains with only one dot #30
  • Jan 5, 2026
    - helodnscheck.cpp
    : PCRE dependency avoided, to make happy Debian 13 d987ec4
    - config-all now grabs the correct network interface c60d3fa
    - config-all will now prompt for 1024/2048 key length for DKIM c842cea
    - Fixed typo in qmailctl 3f1ea75
    - Makefile: Fixed incorrect rule syntax for 'make cert' 80222cc
  • Sep 8, 2025
    - Fixes in SPP handling and support for [pass] plugins after RCPT accept. Support for RBLRESULT environment variable and RBL ignore ('=') option. (tx Andreas Gerstlauer)
    - Added -std=gnu17 to conf-cc, fixed some other issues and now it compiles on gcc-15.2 in #28
    - scripts/qmail-pop3d and qmail/pop3sd: ports changed to 110 and 995
    - Received: email header now hides the sender's hostname when the sender is RELAYCLIENT or is authenticated. 785e84b
  • Apr 30, 2025
    qmailctl
    , qmHandle, queue_repair and all scripts installed in QMAIL/bin and not in /usr/local/bin by config-all.sh
  • Apr 25, 2025
    - added a configuration script config-all, which configure and installs the control files (as per the original config-fast script), aliases, SRS (uses control/me as the srs_domain), log dirs in /var/log/qmail, tcprules (basic, just to make initial tests), supervise scripts, qmailctl script, DKIM control/filterargs and control/domainkeys dir, SURBL, smtpplugins, helodnscheck spp plugin, svtools, qmHandle, queue-repair, SSL key file (optional).
    Consider this feature as "testing"
  • Feb 11, 2025
    - Several adjustments to get freeBSD and netBSD compatibility. More info in the commit history. Hints/comments are welcome.
    - freeBSD users have to erase the very 1st line of the file "conf-lib", as libresolv.so in not needed on freeBSD.
    - Dropped files install-big.c, idedit.c and BIN.* files.
    - Dropped files byte_diff.c, str_cpy.c, str_diff.c, str_diffn.c and str_len.c, which break compilation on clang and can be replaced by the functions shipped by the compiler (tx notqmail).
    - Old documentation moved to the "doc" dir. install.c and hier.c modified accordingly
    - conf-cc and conf-ld now have -L/usr/local/lib and -I/usr/local/include to look for srs2 library
    - conf-cc and conf-ld now have -L/usr/pkg/lib and -I/usr/pkg/include to satisfy netBSD
    - vpopmail-dir.sh: minor correction to vpopmail dir existence check
    - srs.c: #include <srs2.h> now without path

❌