Filtrare le “ricevute di ritorno” con Postfix e Procmail (magari utilizzando Maildir …)


Chi non ha odiato le “ricevute di ritorno” delle mail ?
Di sicuro hanno una affidabilità parziale perchè l’utente deve cliccare su “invia la ricevuta”. Ma questo non ci fornisce la certezza che il destinatario effettivamente abbia letto la nostra mail.
Se, poi, spediamo massivamente mail con ricevuta di ritorno ci ritroveremo inondati di mail …
Linux con i suoi potenti mezzi ci mette a disposizione gli strumenti.
Partiamo da una configurazione “complessa”: abbiamo un server mail con Postfix ed abbiamo “approfittato” delle sue grazie utilizzando Maildir (ovvero ogni singola mail è identificata da un singolo file di testo – situazione comodissima per bypassare la limitazione ed i rischi dati dall’utilizzo dello standard Mailbox).

Iniziamo con la configurazione di Postfix editando il file /etc/postfix/main.cf

vi /etc/postfix/main.cf

ed andiamo a cercare il parametro “mailbox_command” andandolo a modificare in questo modo:

mailbox_command = /usr/bin/procmail -a “$EXTENSION” DEFAULT=/home/$USER/Maildir/ MAILDIR=/home/$USER/Maildir/

Successivamente entriamo nell’utente che ci ha richiesto il filtraggio ed andiamo a creare il file “.procmailrc”

vi .procmailrc

Mettiamo ora all’interno del file le nostre regolette 😀

#directory
MAILDIR = $HOME/Maildir/ # Le email finiranno qui

# sposta le ricevute di lettura in
# /home/utente/Maildir/.Notifiche\ lettura/

:0
* ^Subject.*Letto:*
#/dev/null
/home/utente/Maildir/.Notifiche\ lettura/

:0
* ^Subject.*Read -*
#/dev/null
/home/utente/Maildir/.Notifiche\ lettura/

:0
* ^Subject.*Notification for*
#/dev/null
/home/utente/Maildir/.Notifiche\ lettura/

:0
* ^Subject.*Recapitato:*
#/dev/null
/home/utente/Maildir/.Notifiche\ lettura/

Et voila ! Il filtraggio è servito !!!

Annunci

Ailurus


Ailurus è un’applicazione specifica per gestire meglio Ubuntu. Simile a Ubuntu Tweak, ma a mio avviso migliore. Visualizza anche informazioni relative al BIOS del sistema, la scheda madre, la CPU e la batteria.

L’interfaccia è pulita, intuitiva e permette anche di installare o rimuovere alcune applicazioni che non sono contenute nei repository ufficiali di Ubuntu apt. Sto contribuendo alla traduzione in italiano.

Per installare Ailurus in Ubuntu, è possibile aggiungere un repository alle sorgenti dei pacchetti (la procedura d’installazione sia per Ubuntu sia per Fedora è disponibile nel sito ufficiale

http://tdt.sjtu.edu.cn/ailurus/

oppure scaricando i pacchetti precompilati in formato .deb (Ubuntu/Debian) o .rpm (Fedora) da quest’altro indirizzo

http://code.google.com/p/ailurus/downloads/list

Su launchpad il progetto si trova a questo indirizzo:

https://launchpad.net/ailurus

La prima scelta (consigliata) consente di ricevere notifica degli aggiornamenti; al termine dell’installazione, il programma comparira poi all’interno del menu Applicazioni > Strumenti di sistema.

Una delle caratteristiche di questo programma è proprio la rapidità da parte degli sviluppatori nell’introdurre strumenti per gestire le funzionalità introdotte in Ubuntu (specialmente da Canonical) oltre che gli aggiornamenti di GNOME.

Ad esempio tramite un comodo menu è possibile scegliere l’aspetto dei pulsanti sulla barra del titolo delle finestre oppure impazzire e trasformare la Ubuntu box in un “clone” di OS X.

Ad ogni avvio inoltre viene visualizzato un popup che mostra il consiglio del giorno per ottimizzare il desktop oppure agire sulla shell Bash o altri parametri del sistema operativo.

Come bloccare la chat web di GMAIL con Dansguardian


La webmail di Gmail offre, al suo interno, la possibilità di “chattare” con altri utenti Gmail.
In pratica ha all’interno un piccolo client Google Talk.
DansGuardian permette di bloccare la chat di Gmail in modo semplice. Basta aggiungere al file “bannedsitelist” (la path completa è: /etc/dansguardian/bannedsitelist) le seguenti URL:

# Blocca la chat di google
chatenabled.mail.google.com
talkgadget.google.com
talk.google.com
talkx.l.google.com

Riferimento: http://www.google.com/support/chat/bin/answer.py?hl=it&answer=161980

Sincronizzare l’orario tra più server


Il problema da risolvere era quello di sincronizzare l’orario tra un gruppo di server presso la Presidenza della Regione Siciliana, per regolarizzare le procedure di backup dei dati. I server stanno dietro una serie di protezioni perimetrali, pertanto non era possibile utilizzare il classico ntpdate accedendo direttamente ad Internet. Ho risolto utilizzando questo comando, lanciato verso il server “orologiaio”…

sudo date -s "$(ssh orologiaio@ora.ti.pago.local "date -u")"

Installare Oracle XE su Ubuntu


Installiamo Apache

sudo apt-get install apache2

e successivamente il supporto a PHP5

sudo apt-get install php5 libapache2-mod-php5

sudo apt-get install build-essential php5-dev php-pear

Apriamo il file /etc/apt/source.list e alla fine aggiungiamo

## Oracle

deb http://oss.oracle.com/debian unstable main non-free

aggiungiamo la chiave per il repository appena inserito eseguendo

wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -

Aggiorniamo la lista del software disponibile dai repository con

sudo apt-get update && sudo apt-get upgrade

Installiamo Oracle XE con

sudo apt-get install oracle-xe oracle-xe-client

Lanciare XE

sudo /etc/init.d/oracle-xe configure

Impostiamo le variabile d’ambiente per l’utente Oracle con

sudo su - oracle

Editiamo il file .bash_profile ed aggiungiamo le seguenti righe

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

export PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_SID=XE

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

Per avviare l’interfaccia di amministrazione di Oracle XE (web)

sudo su – oracle sqlplus / as sysdba

inseriamo la password e continuiamo

EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

quit;

logout

Richiamare da browser

http://%5Bip della macchina]:8080/apex

Per la configurazione di PHP5 per Oracle procedere come segue

cd /usr/src

sudo pecl download oci8

sudo tar xzvf oci8-1.3.4.tgz

cd oci8-1.3.4

sudo -s

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

export PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_SID=XE

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

phpize

./configure –with-oci8=shared,$ORACLE_HOME

make

make install

logout

sudo -s

echo "extension=oci8.so" >> /etc/php5/apache2/php.ini

echo "extension=oci8.so" >> /etc/php5/cli/php.ini

logout

Impostiamo le variabili di ambiente modificando il file /etc/apache2/envvars

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

export PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_SID=XE

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

Riavviare Apache e richiare l’indirizzo http://%5Bip della macchina]/phpinfo.php dovremmo vedere le informazioni relative ad Oracle.

Data e ora su Linux


Sincronizzare l’orologio di sistema

Il Network Time Protocol, in sigla NTP, è un protocollo per sincronizzare gli orologi dei computer all’interno di una rete a commutazione di pacchetto, quindi con tempi di latenza variabili ed inaffidabili.

L’NTP è un protocollo client-server appartenente al livello applicativo. Per sincronizzare manualmente l’orologio di sistema con quello di un server, da console, in modalità root, si dia il comando

ntpdate ntp1.ien.it

oppure

ntpdate ntp.ubuntu.com pool.ntp.org

crontab

Per avviare il programma occorre digitare in una finestra terminale:

crontab -e

Ora è possibile inserire i comandi di cui si vuole pianificare l’azione

00 05 04 12 01 "comando"

Cosa significa?

  • 00 sono i minuti
  • 05 è l’ora di esecuzione (quindi avremo l’esecuzione (programmata per le 05.00 del mattino)
  • 04 è il giorno
  • 12 è il mese
  • 01 è il giorno della settimana (i valori sono 0,1,2,3,4,5 e 6 con lo 0 che si riferisce alla Domenica)
  • e poi viene indicato il comando da eseguire

Quindi in questo esempio, quindi, si sta dicendo a crontab di eseguire il lunedì 4 dicembre alle ore 05.00 (di ogni anno), un certo comando.

Se si vuole impartire l’esecuzione del comando ogni mese oppure ogni giorno è sufficiente sostituire ai numeri un asterisco

00 08 * * 01 "comando

È utile ricordare alcune opzioni del crontab

  • crontab -l visualizzerà i crontab in funzione (utile per vedere se un comando è stato registrato correttamente)
  • crontab -r rimuove tutti i crontab registrati
  • crontab -d da non fare mai perché questo comando cancella i job programmati (anche del sistema)
  • crontab -e permette di editare (scrivere o modificare) un crontab

cron si può configurare tramite il file crontab, come abbiamo visto ne esiste uno per ogni utente, con il quale può eseguire comandi su file di sua proprietà nel proprio user-space, ed è situato solitamente in /var/spool/cron/crontabs/nomeutente.

Per completezza, sappiate che esiste poi il file /etc/crontab nel quale sono presenti solitamente operazioni periodiche che riguardano globalmente il sistema. Di solito molte distribuzioni includono le directory /etc/cron.daily, /etc/cron.monthly, /etc/cron.weekly, /etc/cron.hourly che contegono gli script che si avvieranno rispettivamente ogni giorno, ogni mese, ogni settimana e ogni ora.

Quindi basta posizionare i propri script dentro queste directory per programmarne l’esecuzione.

Process accounting


acct ( http://www.gnu.org/software/acct/ ) è un programma che permette di conteggiare il tempo di “logon” degli utenti. Molto utile agli amministratori di sistema. Su Ubuntu si installa impartendo

sudo apt-get install acct

Successivamente occorre creare un apposito file di log

sudo touch /var/log/utentecosastaifacendo_acct

e lanciare il programma

sudo accton /var/log/utentecosastaifacendo_acct

è ammessa anche la sintassi canonica

/etc/init.d/acct start

Funzioni:

  • ac per visualizzare i dettagli sul tempo di connessione degli utenti
  • ac -dp per visualizzare il totale giornaliero delle connessioni per ciascun utente
  • sudo lastcomm jt per visualizzare i comandi eseguiti dall’utente “jt”
  • sudo lastcomm rm per cercare nel log chi ha impartito il comando rm
  • sudo lastcomm pts/1 cerca e visualizza il log relativo alle attività svolte dal terminale pts/1.

Sempre nell’ambito delle statistiche sulle attività degli utenti è utile conoscere anche il funzionamento del comando sa1

  • sudo sa elenco generale
  • sudo sa -u elenco per uno specifico utente
  • sudo sa -m numero di processi e numero dei minuti-cpu per utente
  • re è il “real time” della CPU (in secondi)
  • avio è la media di operazioni I/O
  • mentre tio è il numero totale di operazioni.