Usare gmail per inviare email da postfix

Per la prima volta mi è capitato di impostare un server su AWS per inviare le email di management non avendo un server smtp di appoggio. (I server su EC2 sono spesso blacklistati)

La soluzione è stata quella di utilizzare l’smtp autenticato di gmail. La configurazione di postfix è molto semplice:

in main.cf
relayhost = [smtp.googlemail.com]:submission
smtp_cname_overrides_servername = no
smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_client_auth
smtp_sasl_security_options =

in smtp_client_auth
[smtp.googlemail.com]:submission username@gmail.com:password

Unico problema è il fatto che google sovrascrive il “From:” con l’indirizzo email dell’account. Probabilmente è possibile fargli accettare anche altri indirizzi a patto di aggiungerli e verificarli nelle preferenze di gmail. In ogni caso se lo scopo è solo quello di ricevere una alert dal cron o dai vari servizi che girano sul server ovviamente questo non è un grosso problema.

Winexe

tempo fa cercavo qualcosa del genere e non lo avevo trovato… un tool veramente utile!

fabio@gnu64:~$ winexe --user utente123 //host345 cmd
Password for [WORKGROUPutente123]:
Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:WINDOWSsystem32>

Imap admin login con mutt

il protocollo imap permette di specificare per l’autenticazione un utente diverso da quello proprietario dall’account. Questo è utile ad esempio per un amministratore per dare assistenza ai propri utenti senza conoscerne le credenziali.

io ho trovato molto utile questa funzioanlità nel migrare alcune mailbox da dovecot a zimbra con imapsync:
imapsync --host1 source.server.com --user1 username --authuser1 adminusername --password1 adminpassword --ssl1 --port1 993 --host2 destination.server.com --user2 username --password2 password --authmech2 PLAIN --ssl2 --port2 993 --syncinternaldates --subscribe --nosyncacls

per sfruttare questa funzionalità com mutt:
mutt -e "set imap_login=imapadmin@server.com" -f imap://mail.server.com
e specificare come utente il proprietario della mailbox ma come password la password dell’amministratore.

Linux Maggiorenne

urca… ne è passato di tempo…


From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID: 
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki


Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones.  This has been brewing
since april, and is starting to get ready.  I'd like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
This implies that I'll get something practical within a few months, and
I'd like to know what features most people would want.  Any suggestions
are welcome, but I won't promise I'll implement them :-)

               Linus (torvalds@kruuna.helsinki.fi)

PS.  Yes - it's free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that's all I have :-(.

(su groups)

Barcode 2D

Inzigato da dei marchettari ho dato un’occhiata al mondo dei codici a barre in 2D, in particolare alle possibili applicazioni di community che sembra vadano per la maggiore in giappone.

fabulus-qr

La prima cosa che ho scoperto è che esistono veramente una marea di codifiche ma le più usate sono Datamatrix e, soprattutto, QRcode. Da li a buttar giù due righe in perl il passo è stato breve.
(Il modulo perl è fatto bene ma non ho capito come mai durante l’init se il parametro di “versione” non è definito viene impostato ad 1 mentre più avanti viene invocata la procedura di calcolo automatico della versione solo se lo stesso non è definito… nel dubbio ho risolto togliendo un “|| 1” dall’init del modulo.)

A questo punto generare QRcode è banale, ad esempio con un cgi:


#!/usr/bin/perl 

use CGI;
use GD::Barcode;

my $q = new CGI;

my $str = 'Hello World!';

if ($q->param()) { $str = $q->param('s'); }

my $oGdBar = GD::Barcode->new('QRcode', "$str" , { Ecc => 'M', ModuleSize => 6 });

print "Content-type: image/pngnn";
binmode STDOUT;
print $oGdBar->plot()->png;

Per chi volesse approfondire sicuramente le pagine più interessanti che ho trovato wikipedia e la pagina di descrizione dei contenuti dei barcode dell’implementazione di google nelle sue Chart API. Molto interessanti anche le pagine descrittive di denso-wave detentore del marchio.

Nerd Test

Dear fabulus!

Your nerd index is 39 out of 100.
We’re sorry, but you are not a nerd, you are a hacker.

Social:
You probably attend a lot of Star Trek conventions.
Health:
The surgeon general warns that high cholesterol may promote arteriosclerosis.
Aptitude:
Putting on a tie is probably a major challenge.
Career:
You could exhibit yourself as a domesticated «hacker» on the talk-show circuit.

Visto sul blog del Tannoiser. Il test è qui.

Vmware e TSO

Oggi ho finalmente scoperto che il responsabile di un fastidioso problema che avevo con vmware server è imputabile al TCP segmentation offload (TSO).

In particolare succede che con il TSO abilitato il sistema di bridging di vmware di fatto blocca i pacchetti che hanno bisogno di essere frammentati inviati tra host e guest. In effetti non capita quasi mai di dover aprire connessioni tra host e guest ma la cosa mi sembrava strana soprattutto perché vedevo passare tra le due macchine senza problemi pacchetti icmp e i pacchetti SYN di apertura della connessione. Avevo ipotizzato un problema legato alla frammentazione ma anche con pacchetti ping molto grossi non avevo problemi.

Il TSO spiega tutto soprattutto perché la frammentazione offload di default é abilitata solo per il TCP.

sudo ethtool -K eth0 tso off

E il problema è risolto.

(immagino che non mi debba aspettare un aumento di carico significativo sulla cpu…)