Nelle settimane scorse, come i pochi utenti dei miei servizi hanno certamente notato, ci sono stati notevoli problemi tecnici che hanno causato il totale isolamento di tutti i servizi del network.
Il tutto è successo in concomitanza con le mie ferie al mare, anzi è iniziato proprio la sera del mio primo giorno di ferie 🙁 Questo mi ha impedito di poter risolvere la cosa in tempi brevi, dovendo rimandarla alle mie occasionali visite a casa durante le vacanze.
Fortunatamente da venerdì scorso ho trovato un rimedio stabile che ha permesso lo sblocco di tutti i servizi, tra i quali il più importante era senz’altro la posta, senza nuove interruzioni fino ad adesso.
Dalla settimana prossima sarò nuovamente a casa in pianta stabile – a parte i fine settimana -, e quindi non ci dovrebbero più essere disservizi di questo tipo.
E’ da diverso tempo che non scrivo articoli sul blog. Semplice pausa creativa di qualche mese, mi capita spesso!
Ho fatto un po’ di aggiornamenti al software di base del sistema su cui girano i servizi, dovuti principalmente agli updates della Slackware current.
Apache è adesso alla versione 2.4.2, e soprattutto il PHP è alla versione 5.4.3. Ci sono alcuni cambiamenti significativi nel PHP rispetto alle precedenti versioni 5.x, tra cui la definitiva eliminazione di direttive che erano in stato deprecated da tempo (“register_globals“), cosa questa che ha impatto sui vari software PHP-based che forniscono alcuni servizi del network.
Mi sono accorto solo ieri, qualche giorno dopo l’aggiornamento, che i due software di webmail – SquirrelMail e Roundcube – avevano smesso di funzionare. Ieri quindi mi sono dedicato a qualche aggiornamento, e ho installato SquirrelMail 1.4.23-Svn e RoundCube 0.8-rc1, entrambi aggiornati per la compatibilità al PHP 5.4. A prima vista mi sembra che sia tutto risolto, ma se dovessero esserci ulteriori problemi gli interessati possono segnalarmelo.
Rimane invece il problema per quanto riguarda oMail-Admin, l’interfaccia web di gestione dei domini di posta virtuale su qMail. E’ un software molto vecchio, scritto ai tempi delle prime uscite di PHP5, e che richiede il parametro register_globals=on. Il software non è più sviluppato da moltissimo tempo, e non credo esistano aggiornamenti di compatibilità con le nuove caratteristiche del PHP. D’altro canto non sono a conoscenza di altri software ugualmente semplici e efficaci per la gestione dei domini virtuali su qMail+vmailMgr.
Tutto lo stack qMail-VmailMgr-oMail è in stato di “abbandono” ormai da diversi anni, ma grazie alla sua intrinseca solidità e assenza di bug significativi, rimane a mio avviso una scelta di primo livello. Le uniche difficoltà sono poste, appunto, dai cambiamenti a livello di compilatori e stack LAMP che impongono cambiamenti di configurazione e di funzioni per i quali tali software richiedono patch e modifiche. Inoltre, ho sempre avuto una innata antipatia per Postfix.. 🙂
Vedremo cosa riesco a risolvere prossimamente in merito….
Esiste una differenza d’approccio fondamentale tra un programmatore e un sistemista per quanto riguarda la scrittura di uno script necessario al funzionamento di un qualche meccanismo di sistema.
Un programmatore in genere scrive un software utilizzando il linguaggio di programmazione che conosce, integra librerie, scrive funzioni, ecc. Un sistemista scrive uno script. I più bravi usano il perl, ma in quel caso diventano uguali ai programmatori, mentre quelli “normali” scrivono uno script in Bash language.
Ecco, io sono un sistemista “normale” 🙂 Ho passato il fine settimana – con i dovuti intervalli, per carità – a scrivere uno script che mi consentisse di usare il Local Delivery Agent (LDA) di Dovecot nel mio sistema che utilizza qmail+VMailMgr. Leggendo la documentazione di Dovecot si ha l’impressione che sia una cosa piuttosto semplice, e che basta chiamare deliver-lda al posto del normale LDA, ma nel caso di VMailMgr non è così. L’LDA di Dovecot si aspetta di poter interrogare un userdb, un database degli utenti, per determinare all’atto della consegna del messaggio se esiste l’utente e dove si trova la sua mailbox. Ma VMailMgr non ha questo database. Il suo LDA vdeliver è in grado di leggere i file di configurazione e ricavare l’informazione, ma non fornisce un comando che dia questa informazione per poterla passare ad altri programmi.
Qui un programmatore probabilmente avrebbe letto i sorgenti di vdeliver, capito come funzionano, e scritto un software analogo che leggesse le informazioni dai file di VMailMgr per poi darle in pasto a deliver-lda.
Io invece mi sono lanciato in una sequela di:
echo $USER | cut -d@ -f1 | grep ....
if [ -d /home/$USER ]; then .. fi
sudo -u $USER /usr/local/bin/listvdomain ...
cazz! ci vuole l’utente in /etc/sudoers..
cazz! il grep può restituire più di una riga…mettiamo un -m1..
uhmm.. e se non è un utente ma un alias?..altra serie di if e grep..
ecc.ecc.
Insomma, alla fine funziona, ma non prevede tutti i possibili casi e quindi ho dovuto restringerne l’uso a singoli utenti invece che applicarlo system-wide.
Ah, la ragione di tutto ciò era usare il delivery agent di Dovecot in quanto supporta Sieve e quindi mi consente di usare filtri email server-side per avere lo spam direttamente spostato nella cartella spam invece di doverlo far fare a Thunderbird quando è aperto, in questo modo quando non ho aperto Thunderbird e guardo la posta sul cellulare non mi trovo l’inbox piena di cose da spostare a mano 🙂
Ho eseguito oggi la migrazione del server IMAP di LoneStar.it dal precedente Courier-IMAP v3.0.8 a Dovecot v2.0.16.
Questo perchè Courier IMAP 3 non è più sviluppato da molto tempo, ormai esiste la versione 4. Tuttavia non ho mai effettuato la migrazione dalla 3 alla 4 per via dei moltissimi cambiamenti che ci sono nell’architettura del sistema e che rendevano difficile renderlo compatibile con VMailMgr, il gestore dei domini virtuali di posta.
Dovecot prevede la compatibilità con VMailMgr, ed è considerato molto veloce e ottimizzato, specie per cartelle IMAP di grandi dimensioni, con un miglior uso della cache e della memoria rispetto a Courier-IMAP.
Dal punto di vista funzionale non dovrebbero notarsi cambiamenti per gli utenti. L’unica cosa che eventualmente potrà succedere è la necessità di rivedere la sottoscrizione delle cartelle IMAP, dato che cambia la nomenclatura da INBOX.<Cartella> a <Cartella> senza prefisso. Niente di grave comunque, basta appunto rimuovere la sottoscrizione alle vecchie cartelle e confermare le nuove.
Rimane ovviamente disponibile il servizio di IMAP IDLE (Push), comodo per i cellulari.