<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:admin="http://webns.net/mvcb/"
>
<channel>
<title>BestKevin's Weblog</title>
<link>http://blog.bestkevin.com/archives/cat_2/index.html</link>
<description>news, diary, journal, whatever. If you need english translation, feel free to ask.</description>
<dc:language>en-us</dc:language>
<dc:creator>BestKevin</dc:creator>
<dc:date>2008-08-02T14:08:47+02:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />
<item>
<link>http://blog.bestkevin.com/archives/2008/08/02/T14_08_36/index.html</link>
<title>Hacking di un addon firefox</title>
<dc:date>2008-08-02T14:08:36+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
Dovrei scrivere il report dei due week end passati, ma troppo da scrivere e poco tempo...
<br />
Vabbe'...prendo l'occasione per esporre un sistema banale per risolvere il problema del plugin <a href="https://addons.mozilla.org/it/firefox/addon/4336">Snap links</a>: <i>"Snap Links allows users to easily open multiple links in new tabs by drawing a box around them. Links can also be opened in new windows, new tabs on a new window, copied to clipboard, bookmarked or downloaded."</i>
<br />
E' un plugin molto carino ed interessante, immaginate una pagina con tutta una serie di link, ad esempio una ricerca su google, grazie a questo pezzo da aggiungere a <a href="http://www.mozilla.com">firefox</a> potete selezionare con il tasto destro tutti i link ed essi verranno aperti in nuove schede. Ma...c'e' un problema: questo plugin non e' compatibile con la versione 3.x di firefox, ed ecco come ovviare al problema:
<br />
scaricate il plugin da <a href="https://addons.mozilla.org/it/firefox/downloads/file/19122/snap_links-0.0.4-fx.xpi">qui</a>, e' un file .zip nonostante abbia l'estensione .xpi, per cui scompattatelo; dentro trovate il file install.rdf che dovete aprire con un editor di testo: modifica la riga contenente "maxVersion" mettendo al posto del valore (io avevo 3.0a8) con un valore maggiore, ad esempio 3.1. Salvate, comprimete con uno zip il contenuto rinomimandolo .xpi ed importatelo in firefox mediante il menu' file/apri.
<br />
Tutto qui. Una soluzione semplice, per un problema potenzialmente grande :)]]></description>
</item>
<item>
<link>http://blog.bestkevin.com/archives/2008/07/25/T08_39_02/index.html</link>
<title>Auguri SysAdmin</title>
<dc:date>2008-07-25T08:39:02+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
Un caloroso augurio a tutti gli <a href="http://it.wikipedia.org/wiki/Sistemista">amministratori di sistema</a> in occasione del <a href="http://www.sysadminday.com/">9th Annual System Administrator Appreciation Day</a>.
<br />
<i>
"It's you isn't it? THE BASTARD OPERATOR FROM HELL!" "In the flesh, on the phone and in your account..."
<b>
<br />
<a href="http://en.wikiquote.org/wiki/BOFH">Simon Travaglia</a>
</b></i>]]></description>
</item>
<item>
<link>http://blog.bestkevin.com/archives/2008/06/07/T23_03_44/index.html</link>
<title>One time pass su ssh</title>
<dc:date>2008-06-07T23:03:44+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
Lo avevo gia' fatto con sarge, ma da quando ho reinstallato con etch era una delle cose che avevo lasciato al futuro, ovvero ad adesso.
<br />
Sto parlando delle <a href="http://en.wikipedia.org/wiki/OPIE_Authentication_System">OPIE - One Time Password</a>. Lo scopo di questo modulo e' generare una password da richiedere (nel mio caso in ssh) ma che una volta usata viene "bruciata", come avviene con alcuni sistemi usati dalle banche per autorizzare le transazioni. La comodita' e' quella di potersi collegare da macchine considerate non sicure, ad esempio il PC di un cliente o di un amico, che potrebbero avere uno sniffer a bordo, poiche' il sistema non chiedera' piu' quella password, quindi averla non servira' a nulla.
<br />
Si inizia ad installare i pacchetti richiesti:
<br />
<i>
apt-get install libpam-opie opie-server opie-client
</i>
<br />
L'utente (nell'esempio kevin) deve creare una password per OPIE che sara' usata per generare le pass seguenti, attraverso l'apposito comando (notare cheuso il parametro -f per forzare quello che sarebbe un comando da dare esclusivamente da console):
<br />
<br />
<i>
opiepasswd -f -c kevin
</i>
<br />
<br />
Se vi dimenticate la password inserita potete rimuovere la riga relativa in /etc/opiekeys
<br />
Si deve poi configurare pam modificando il file /etc/pam.d/ssh inserendo la riga (la prima e la terza ci sono gia', le ho messe per indicare dove metterla esattamente):
<br />
<br />
<i>
# Standard Un*x authentication.
<br />
auth    sufficient      pam_opie.so
<br />
@include common-auth
</i>
<br />
<br />
In questo modo prima di richiedere la password del passwd (comportamento standard), viene richiesta la OPIE.
<br />
E' necessario pero' modificare anche /etc/ssh/sshd_config nel valore di una variabile, ponendo:
<br />
<br />
<i>
ChallengeResponseAuthentication yes
</i>
<br />
<br />
Riavviamo poi sshd con 
<br />
<br />
<i>
/etc/init.d/ssh restart
</i>
<br />
<br />
Se ora si prova a collegarsi in ssh, dopo il nome utente viene richiesta una pass mostrando due parametri: numero della chiave e seme. Il primo e' decrescente (la prima volta viene chiesto la chiave 499, poi la 498 etc...) mentre il secondo e' fisso ed e' generato e visualizzato quando si da il comando opiepasswd. Questi due valori, insieme alla password inserita sempre con opiepasswd, serve ad ottenere una serie di parole che rappresentano il valore della chiave OPIE da inserire. Come calcolarla ? Ci sono vari sistemi, io uso un programma (free) in java installato sul mio SonyEricsson T630 che si chiama <a href="http://www.google.it/search?hl=it&q=vejotp&btnG=Cerca+con+Google&meta=">VeJOTP</a>: basta inserire il numero di chiave richiesta, il seme e la password per ottenere la frase segreta, il numero di chiave viene poi decrementato automaticamente per cui la volta successiva basta premere il pulsante per ottenere la frase segreta.]]></description>
</item>
<item>
<link>http://blog.bestkevin.com/archives/2008/04/01/T18_05_14/index.html</link>
<title>Aggiornamento statistiche spam</title>
<dc:date>2008-04-01T18:05:14+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
Dopo l'applicazione delle regole per bloccare le email dirette a indirizzi inesistenti (pubblicata <a href="http://blog.bestkevin.com/archives/2008/03/17/T23_22_24/index.html">QUI</a>), ho voluto riprovare a vedere se i server remoti imparano un po', ed in effetti parrebbe di si', vediamo alcune statistiche:
<br /><br />
Mail lecite: <br />
grep "delivered" /var/log/syslog.0 | wc 
<br />
2813   36578  410275
<br />
grep "Illegal user" /var/log/syslog.0 | wc 
<br />
16877  354417 4662719
<br /><br />
Beh, un buon risultato confrontandolo con quello precedente:
<br /><br />
Mail lecite:<br />
grep "delivered" /var/log/syslog.0 | wc<br />
2531 32931 370647<br />
grep "Illegal user" /var/log/syslog.0 | wc<br />
48161 1011383 13132925 <br />
<br /><br />
Circa un terzo delle email illecite ricevute (alle quali si chiude la porta in faccia), e cio' non e' dovuto ad un diminuito traffico in quanto le mail lecite sono invece aumentate. Molto bene.]]></description>
</item>
<item>
<link>http://blog.bestkevin.com/archives/2008/03/21/T20_47_19/index.html</link>
<title>Dimenticavo SPF :)</title>
<dc:date>2008-03-21T20:47:19+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
In <a href="http://blog.bestkevin.com/archives/2008/03/17/T23_22_24/index.html">questo articolo</a> ho accennato ad un sistema per porre fine, o almeno limitare, lo spam che falsifica il mittente apparendo provenire dal mio dominio, ma ho scoperto di non averne in realta' accennato :)
<br />
Oltre a <a href="http://en.wikipedia.org/wiki/DomainKeys">Domain Keys</a> un altro sistema utilizzato da vari provider, tra cui <a href="www.google.com">Google</a>, e' <a href="http://it.wikipedia.org/wiki/Sender_Policy_Framework">SPF - Sender Policy Framework</a>.
<br />
Scopo di questo sistema e' quello di definire quali server sono autorizzati a inviare email per un certo dominio: io mando una mail da kevin @bestkevin.com dal server xxx.xxx.xxx.xxx, il server ricevente verifica se tale server e' autorizzato o meno a mandare email per il dominio bestkevin.com e si comporta secondo quello che viene definito. Ma come fare a dire quali IP sono autorizzati o meno ?
<br />
La cosa e' brillantemente semplice: come in Domain Keys anche qui ci si basa sul campo TXT nella zona definita nel DNS.
<br />
Prendiamo ad esempio proprio bestkevin.com:
<br />
<i>
<br />
kevin@jenny:~$ dig +short TXT bestkevin.com
<br />
"v=spf1 a mx -all"
<br />
</i>
<br />
ovvero, nella zona:
<br />
bestkevin.com.          IN      TXT     "v=spf1 a mx -all"
<br />
Il significato e': accetta email per il dominio bestkevin.com solo da quei server che sono definiti come MX per il dominio stesso. L'elenco delle varie opzioni e possibilita' le trovate <a href="http://www.openspf.org/SPF_Record_Syntax">qui</a>.
Ovvio che ora posso mandare email @bestkevin.com solo dal mio server, ma e' quello che faccio sempre, quindi, per me, non e' una limitazione.]]></description>
</item>
<item>
<link>http://blog.bestkevin.com/archives/2008/03/17/T23_22_24/index.html</link>
<title>Ancora sulla lotta allo spam</title>
<dc:date>2008-03-17T23:22:24+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
Riprendendo il <a href="http://blog.bestkevin.com/archives/2008/03/03/T14_47_20/index.html">discorso gia' iniziato</a> sullo spam che cerca di raggiungere utenti inesistenti, dopo l'uso di <a href="http://dkimproxy.sourceforge.net/">dkimproxy</a>, ho pensato di fare un ulteriore passo in avanti (o indietro...domani vedremo).
<br />
Nella catena di ricezione delle email postfix:25(DNSBL) -> postgrey:60000 ... postfix:25 -> amavis:10024 -> postfix:10025, ho pensato che forse sprecare tutta questa CPU e memoria per gestire un 80% di email destinata a utenti inesistenti e' un grosso peccato, per cui, perche' non creare una lista di destinatari esistenti e relativi alias, direttamente al primo postfix ? Si risponderebbe (o anche no, vedete voi) che l'utente non esiste e fine, senza passare per tutti gli step.
<br />
Visto che gli utenti nel mio caso sono in un db MySQL, ho fatto quindi un paio di modifiche a postfix aggiungendo (anche se in realta' l'opzione era gia' presente ma lo dico per completezza) le seguenti impostazioni nel main.cf:
<br /><br />
<i>
smtpd_recipient_restrictions =<br />
	...<br />
	check_recipient_access hash:/etc/postfix/recipient_access,<br />
	...<br />
</i>
<br />
A questo punto, tramite un banale script, genero il file recipient_access:
<br /><br />
<i>
#!/bin/sh<br />
# Sostiture xxx con la password di accesso a mysql, se necessaria,<br />
<br />
cat /dev/null > /etc/postfix/recipient_access<br />
for user in `mysql -N -pxxx --batch -e "select username from mailbox order by domain" postfix`<br />
do<br />
	echo $user" FILTER    smtp-amavis:[localhost]:10024" >> /etc/postfix/recipient_access<br />
done<br />
<br />
for user in `mysql -N -pxxx --batch -e "select address from alias where address <> goto order by domain" postfix`<br />
do<br />
	echo $user" FILTER    smtp-amavis:[localhost]:10024" >> /etc/postfix/recipient_access<br />
done<br />
<br />
for domain in `mysql -N -pxxx --batch -e "select domain from domain order by domain" postfix`<br />
do<br />
	echo $domain" 550 Illegal user." >> /etc/postfix/recipient_access<br />
done<br />
<br />
cd /etc/postfix<br />
postmap recipient_access > /dev/null 2>&1<br />
postfix reload > /dev/null 2>&1<br />
</i>
<br />
Cosa otteniamo ? Il seguente file recipient_access:
<br /><br />
<i>
esiste1@dominio.tld	FILTER	smtp-amavis:[localhost]:10024<br />
esiste2@dominio.tld	FILTER	smtp-amavis:[localhost]:10024<br />
...<br />
dominio.tld	550	Illegal user.<br />
</i><br />
Con questa piccola modifica, le email per utenti inesistenti saranno bloccate al loro primo contatto e non intaseranno piu' il server nel passaggio dei filtri successivi.
<br />
Funziona ? Non funziona ? Da una prima analisi mi parrebbe di si', vediamo domani cosa succede.
<br />
<b>Update:</b> Ecco alcuni numeri il giorno dopo: <br />
Mail lecite: <br />
grep "delivered" /var/log/syslog.0 | wc <br />
    2531   32931  370647 <br />
grep "Illegal user" /var/log/syslog.0 | wc <br />
  48161 1011383 13132925 <br />
<br />
Mi sembra un buon risultato.]]></description>
</item>
<item>
<link>http://blog.bestkevin.com/archives/2008/03/16/T12_23_49/index.html</link>
<title>20 Things I Learned From Tech Support</title>
<dc:date>2008-03-16T12:23:49+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
Beh, saranno anche vecchie e probabilmente note, ma non posso fare a meno di pubblicarle dopo averne letta una in un fortune nella firma di una mia email (create di volte in volta in automatico). Sono pezzi di verita' :) E quelle in neretto sono piu' vere delle altre.
<br />
<br />
<li>As long as the world turns, users will still have problems
<br />
<li>Substance abusers and computer operators are the only folks called users. This isn't by chance
<br />
<li><b>When in doubt. Reboot</b>
<br />
<li>Sooner or later you will meet a person who types out the words "backslash" or forgets to plug in the power cord. If you haven't yet, just wait, you will
<br />
<li><b>Fear the phone. No one just calls tech support to wish you good morning</b>
<br />
<li><b>No user will tell you the whole truth at the beginning of a call</b>
<br />
<li><b>"I didn't do anything" or "It just happened" Are the users mantra</b>
<br />
<li>As a support tech, it is your job to break down resistance and get the truth
<br />
<li>This is so you can rub the lie in their face, fixing the issue is just a perk
<br />
<li>Some people will never learn
<br />
<li>This means you will always have a job
<br />
<li><b>Maintain a calm voice, even if you're screaming on the inside</b>
<br />
<li>The hold button is your friend
<br />
<li>Whatever you do, don't panic
<br />
<li>The answer to all users questions should be "Trust me, I know what I'm doing" even if this is a bald-faced lie
<br />
<li><b>Users can smell fear. Once you've lost control, all is lost</b>
<br />
<li>A user who is not listening to you anymore, but rather is trying "their own thing" is not worth your time. Simulate a telephone disconnect and hang up. Trust me, you're better off.
<br />
<li>Sometimes fixing a computer is easier than figuring out why it was broken
<br />
<li>Users always want a reason things are fixed. If you're not sure just lie. They won't know anyway. "A stray electron passed through the processor and caused..."
<br />
<li>If possible ask to speak to the youngest person present]]></description>
</item>
<item>
<link>http://blog.bestkevin.com/archives/2008/03/03/T14_47_20/index.html</link>
<title>domainkeys su bestkevin.com</title>
<dc:date>2008-03-03T14:47:20+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
Gia' da un po' sto cercando metodi "alternativi" per limitare la ricezione di spam, ma anche di evitare che altri mi inviino email di avviso che li sto spammando quando, ovviamente, si tratta solo di email camuffate. Ciclicamente mi trovo a dover gestire valanghe di email. Fino ad ora mi sono limitato a inserire nel <i>recipient_address</i> di postfix una riga, ad esempio:
<br />
vodbestkevinmet@bestkevin.com   550     Sender is forged !!! *YOU* are spamming
me. Please read http://www.spamcop.net/fom-serve/cache/329.html
<br />
Questo e' sufficente a non vedersi recapitate piu' email verso quel destinatario e nel giro di qualche ora dai log si vede che non arrivano proprio piu'. Probabilmente, anzi sicuramente, sara' cosi' anche in futuro, ma ho voluto adottare anche altri sistemi.
<br />
Il primo che ho adottato, molto banale, e' stato <a href="http://it.wikipedia.org/wiki/Sender_Policy_Framework">Sender Policy Framework</a>, usato da <a href="https://www.gmail.com">Gmail</a>, che in sostanza consiste nell'aggiungere ai dati della zona del proprio dominio alcune informazioni, in un campo TXT, su quali sono i server autorizzati ad inviare email per quel dominio. Ad esempio per bestkevin.com:
<br />
<i>
bestkevin.com.          IN      TXT     "v=spf1 a mx -all"
</i>
<br />
infatti:
<br />
<i>
kevin@jenny:/etc/spamassassin$ dig +short TXT bestkevin.com
<br />
"v=spf1 a mx -all"
</i>
<br />
In entrata la verifica la faccio fare a spamassassin, collegato ad amavis.
<br />
Volendo aumentare questo genere di "protezione", ho installato anche il sistema <a href="http://en.wikipedia.org/wiki/DomainKeys">DomainKeys</a>, che oltre a funzionare un po' come SPF, aggiunge anche un livello di integrita' del messaggio, in quanto firmato dal server. A me interessa solo la verifica di identita' nell'invio.
<br />
Recupero quindi dal .bash_history un po' di informazioni :) considerando che il sistema e' una Debian GNU/Linux Etch. La base delle informazioni la potete trovare <a href="http://jason.long.name/dkfilter/">qui</a> e <a href="http://dkimproxy.sourceforge.net/">qui</a>.
<br />
Installiamo i pacchetti necessari. Manca una libreria di perl, o meglio quella di etch non e' aggiornata per cui si dovra' installare da CPAN.
<br />
<i>
su -
</i>
Mai lavorare come root...ma tant'e' ;)
<i>
mkdir DomainKey<br />
cd DomainKey/<br />
apt-get install libcrypt-openssl-rsa-perl<br />
apt-get install libdigest-sha-perl libdigest-sha-perl1<br />
apt-get install libdigest-sha-perl libdigest-sha1-perl<br />
apt-get install liberror-perl<br />
apt-get install libemail-address-perl<br />
apt-get install libnet-server-perl<br />
</i>
Preleviamo il programma che si occupera' di effettuare le firme dei messaggi in uscita e la verifica di quelli in entrata (a me interessa solo la prima parte lasciando a spamassassin la seconda):<br />
<i>
wget http://downloads.sourceforge.net/dkimproxy/dkimproxy-1.0.1.tar.gz<br />
tar xvfz dkimproxy-1.0.1.tar.gz<br />
cd dkimproxy-1.0.1<br />
mkdir /usr/local/sbin/dkimproxy<br />
cpan<br />
</i>
Qui, se e' la prima volta che lo lanciate, premete sempre invio tranne all'indicazione del mirror da usare per scaricare le librerie necessarie. Una volta arrivati alla shell di CPAN date il comando:<br />
<i>
install Mail::DKIM<br />
</i>
Proseguiamo...<br />
<i>
./configure --prefix=/usr/local/sbin/dkimproxy/<br />
make install<br />
cd /usr/local/sbin/dkimproxy<br />
adduser dkim<br />
passwd dkim -d<br />
cd etc/<br />
openssl genrsa -out private.key 1024<br />
openssl rsa -in private.key -pubout -out public.key<br />
cd /usr/local/sbin/dkimproxy<br />
chown -R dkim.dkim dkimproxy/<br />
cd dkimproxy/etc/<br />
chmod go-r private.key<br />
mv dkimproxy_out.conf.example dkimproxy_out.conf<br />
mv dkimproxy_in.conf.example dkimproxy_in.conf<br />
cp /root/DomainKey/sample-dkim-init-script.sh /usr/local/sbin/dkimproxy/etc/init.d/dkimproxy.sh<br />
ln -s /usr/local/sbin/dkimproxy/etc/init.d/dkimproxy.sh /etc/rc2.d/S90dkimproxy<br />
/etc/rc2.d/S90dkimproxy start<br />
</i>
Ora dovrebbe essere installato e funzionante. Io ho modificato lo script di avvio commentando nella sezione start) la chiamata a start-in) perche' come detto non mi interessa.<br />
Vediamo cosa mettere nella zona del DNS. Semplicemente:<br />
<i>
selector1._domainkey.bestkevin.com.             IN      TXT     "k=rsa; t=s; p=M<br />
IGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjoawNERYaU5QHfihMhEOLG4VlkM4iG<br />
/QaRXKKJ8Kf2/UQtRrrN4uKPVEq1jvHwlz6et3gpBQCMp31FOMeGxKwKGCQjVPOD5tLs<br />
7AB7Gas/JLBtONbktwy6wL5bsEa7osdxjqPzeIwGfgIVAav6RW17nLEKdnW4M+Roj/3r<br />
sdiKQIDAQAB"<br />
</i>
dove selector1 e' un nome scelto (tutti usano questo, quindi ho proseguito la tradizione), il resto va uguale cambiando il dominio e la parte della chiave pubblica che altro non e' che il contenuto del file public.key che avevamo generato, avendo l'accortezza di concatenare cio' che nel file e' su piu' righe.<br />
Bisogna ora modificare il master.cf di postfix, considerate che io ho cambiato le porte di funzionamento da quelle di default 100XX con le 101XX in quanto ho amavis che gira sulle stesse:<br />
<i>
cat /etc/postfix/master.cf<br />
...<br />
submission  inet  n     -       -       -       -       smtpd<br />
-o smtpd_etrn_restrictions=reject<br />
-o smtpd_sasl_auth_enable=yes<br />
-o content_filter=dksign:[127.0.0.1]:10127<br />
-o receive_override_options=no_address_mappings<br />
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject<br />
<br />
dksign    unix  -       -       -       -       10      smtp<br />
-o smtp_send_xforward_command=yes<br />
-o smtp_discard_ehlo_keywords=8bitmime,starttls<br />
<br />
127.0.0.1:10128 inet  n  -      -       -       10      smtpd<br />
-o content_filter=<br />
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks<br />
-o smtpd_helo_restrictions=<br />
-o smtpd_client_restrictions=<br />
-o smtpd_sender_restrictions=<br />
-o smtpd_recipient_restrictions=permit_mynetworks,reject<br />
-o mynetworks=127.0.0.0/8<br />
-o smtpd_authorized_xforward_hosts=127.0.0.0/8<br />
<br />
</i>
Vorrei farvi notare che a differenza degli howto online, qui postfix lavora in chroot, ed infatti il campo relativo di master.cf e' diverso. Per questo motivo e' necessario spostare tutto quello che abbiamo fatto, nella chroot di postfix:
<br />
<i>
mkdir /var/spool/postfix/usr
mkdir /var/spool/postfix/usr/local/
mkdir /var/spool/postfix/usr/local/sbin
mv /usr/local/sbin/dkimproxy /var/spool/postfix/usr/local/sbin
ln -s /var/spool/postfix/usr/local/sbin/dkimproxy /usr/local/sbin/
</i>
<br />
L'ultima cosa da fare e' modificare spamassassin per dirgli di controllare lui le chiavi delle email in arrivo, ovvero nel file v312.pre togliere il commento alla riga relativa:<br />
<i>
<br />
loadplugin Mail::SpamAssassin::Plugin::DKIM<br />
<br />
</i>
Tutto qui, il sistema dovrebbe essere pronto (guardate magari i file di config di dkimproxy per verificare che si adattino alla vostra config, in particolare il nome del dominio).<br />
<br />
Per fare una prova, mandate una mail a test@dkimtest.jason.long.name con oggetto dkim, e vedete cosa vi risponde, oppure mandatela ad un account su yahoo: dovrebbe dirvi, sotto al campo mittente una volta aperta la mail, che lo stesso e' stato verificato con DomainKeys.<br />
<br />
Spero di non aver dimenticato nulla, se avete domande...mandate una mail :)<br />]]></description>
</item>
<item>
<link>http://blog.bestkevin.com/archives/2008/02/08/T09_25_58/index.html</link>
<title>Backscatter</title>
<dc:date>2008-02-08T09:25:58+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
Gestire un server di posta a volte puo' richiedere di andare a snidare i problemi anche di altri, ad esempio di clienti che usano il tuo come relay host, per cui loro problemi di open relay o backscatter diventano anche i tuoi.
<br />
Uno dei server che gestisco e' nella lista di <a href="http://www.backscatterer.org/">Backscatterer</a> da un po' di tempo e sto cercando di venirne fuori, ma la cosa non e' facile con migliaia di domini e chissa' quanti server che usano quello da me gestito come relay host. Il primo passo e' stato togliere i backup MX, soprattutto su indicazione di altre persone, delegando la questione ad altri ;) nell'ottica di "non rimandare a domani quello che puo' fare oggi qualcun altro".
<br />
Ecco un esempio di quello che ho appena snidato:
<br />
<i>
kevin@kevin:~$ telnet xx.xx.xx.xx 25<br />
Trying xx.xx.xx.xx...<br />
Connected to xx.xx.xx.xx.<br />
Escape character is '^]'.<br />
220 srv.dominio.com Microsoft ESMTP MAIL Service, Version: 5.0.2195.6713 ready at  Fri, 8 Feb 2008 09:08:39 +0100 <br />
ehlo bestkevin.com<br />
250-srv.dominio.com Hello [xx.xx.xx.xx]<br />
mail from: &lt;kevin@bestkevin.com&gt;<br />
250 2.1.0 kevin@bestkevin.com....Sender OK<br />
rcpt to: &lt;nonesiste@dominio.com&gt;<br />
250 2.1.5 nonesiste@dominio.com<br />
data<br />
354 Start mail input; end with &lt;CRLF&gt;.&lt;CRLF&gt;<br />
pippo<br />
.<br />
250 2.6.0 &lt;SRVednHM3SOlb000000d4@srv.dominio.com&gt; Queued mail for delivery<br />
quit<br />
221 2.0.0 srv.dominio.com Service closing transmission channel<br />
Connection closed by foreign host.<br />
</i>
<br />
Dov'e' il problema ? Semplicemente che l'utente cavia (io in questo caso) riceve un report che dice che l'utente non esiste, con anche la mail originale allegata, e se questo fosse spam l'utilizzo del backscatter sarebbe un modo per inviarlo.
<br />
Come si evita ? Bisogna fare in modo che il server neghi la transazione SMTP non appena scopre che l'utente non esiste:
<br />
<i>
kevin@kevin:~$  telnet srv.miodominio.com 25<br />
Trying yy.yy.yy.yy...<br />
Connected to srv.miodominio.com.<br />
Escape character is '^]'.<br />
220 srv.miodominio.com ESMTP Postfix (Debian/GNU)<br />
ehlo bestkevin.com<br />
250-srv.miodominio.com<br />
mail from: &lt;kevin@bestkevin.com&gt;<br />
250 Ok<br />
rcpt to: &lt;nonesiste@miodominio.com&gt;<br />
550 &lt;nonesiste@miodominio.com&gt;: Recipient address rejected: User unknown in virtual mailbox table<br />
quit<br />
221 Bye<br />
Connection closed by foreign host.<br />
</i>
<br />
In questo secondo caso non si e' dato tempo e modo al server di origine di spedirci la mail, accodarla e <b>dopo</b> verificare che non esiste il destinatario.]]></description>
</item>
<item>
<link>http://blog.bestkevin.com/archives/2007/09/18/T10_10_50/index.html</link>
<title>Salviamo OpenCon</title>
<dc:date>2007-09-18T10:10:50+02:00</dc:date>
<dc:creator>BestKevin</dc:creator>
<dc:subject>I miei computer</dc:subject>
<description><![CDATA[
Ricevo un'allarmante email:
<p>
<i>
From: fabioFVZ <fabio at openbeer dot it><br \>
Subject: [openbeer] Probabile cancellazione evento OpenCON<br />
Ciao a tutti,<br />
come potete immaginare, OpenCON e' gratis per i visitatori,
ma ha dei costi non indifferenti.
<p>
Gli anni passati questi sono stati supportati da vari sponsors
e dai corsi OpenBSD fatti da alcuni di noi.
<p>
OpenCON 2007, in questo momento, ha solo 1 sponsor e ha raccolto
circa 1.000 euro fin'ora.
<p>
Il costo previsto della manifestazione e' di circa 10.000 euro.
<p>
Se per Domenica 30 Settembre non avremo raggiunto almento 6.000 euro
l'evento sara' rinviato al 2008.
<p>
Chi vuole fare i corsi se mi inviano i dati di quando e dove che poi
iniziamo la pubblicita'.
<p>
Comunque quest'anno dubito fortemente che si riesca a fare la manifestazione.
<p>
Mancano solo 2 settimane al 30.
</i>
<p>
<a href="http://www.opencon.org/">OpenCon</a> e' una conferenza dedicata ad <a href="http://www.openbsd.org">OpenBSD</a> che si e' tenuta dal 2004 in Italia e che raggruppa gli sviluppatori core del sistema operativo nonche' il fondatore/mentore <a href="http://en.wikipedia.org/wiki/Theo_de_Raadt">Theo de Raadt</a>.
<br />
OpenCon e' importante per vari motivi:
<ul>
<li>hackaton: raggruppa gli sviluppatori in quello che viene definito <b>hackaton</b>, una maratona di coding e bug fixing in previsione del rilascio della versione successiva, ed essendo gli sviluppatori in tutto il mondo non e' facile organizzare un evento che li raggruppi in un unico luogo fisico;
<li>precede o attua il rilascio di nuove release: ogni 6 mesi circa viene rilasciata una nuova release di OpenBSD, uno di questi rilasci coincide o quasi con OpenCon;
<li>stage e talk: la conferenza e' aperta, <b>gratuitamente</b> al pubblico, che puo' seguire direttamente dalla bocca degli sviluppatori, spiegazioni su nuove funzionalita' o sul funzionamento di demoni o parti del kernel;
<li>potete parlare con loro: sembrerebbe una sciocchezza, ma poter parlare direttamente con gli sviluppatori puo' essere una possibilita' enorme per chi usa OpenBSD nella propria azienda, vuole richiedere il supporto di qualche hardware particolare, discuterne con chi mette le mani nel codice;
</ul>
<br />
Il problema, oggi, e' che non ci sono abbastanza sponsor per supportare l'evento: bisogna pagare i locali, aiutare nelle spese di viaggio gli sviluppatori, il vitto e altro ancora, nulla rimane in tasca agli organizzatori. Per cui:
<br />
<b>CFM - CALL FOR MONEY</b>: se hai un'azienda che puo' o vuole sponsorizzare OpenCon fatti avanti, idem se hai conoscenze di OpenBSD e vuoi tenere dei corsi per raccolta fondi presso la tua citta', basta mandare una mail a info at openbeer dot it
<br />
<u><b>Non c'e' molto tempo.</b></u>]]></description>
</item>
</channel>
</rss>
