zen blog

vendredi 20 octobre 2006

Houston, we have a problem

vuntz@bonaventure ~/>tracepath www.insa-lyon.fr

 [snip réseau grenoblois avant Renater]
 4:  grenoble-g3-2.cssi.renater.fr (193.51.181.94)          0.598ms
 5:  nice-pos2-0.cssi.renater.fr (193.51.180.34)          asymm 18  36.937ms
 6:  marseille-pos4-0.cssi.renater.fr (193.51.179.245)    asymm 17  37.827ms
 7:  montpellier-pos2-0.cssi.renater.fr (193.51.179.242)  asymm 16  37.645ms
 8:  toulouse-pos2-0.cssi.renater.fr (193.51.179.250)     asymm 15  37.000ms
 9:  bordeaux-pos2-0.cssi.renater.fr (193.51.180.13)      asymm 14  36.956ms
10:  poitiers-pos1-0.cssi.renater.fr (193.51.179.253)     asymm 13  36.927ms
11:  no reply
12:  no reply

samedi 23 septembre 2006

Je suis un gentil, je ne spamme pas

Depuis quelques jours, tous les mails que j'envoie à des gens avec une adresse Gmail sont refusés avec ce message très sympathique :

<adresse email>: host gmail-smtp-in.l.google.com[66.249.93.114] said:                                                                                                    
    550-5.7.1 Our system has detected an unusual amount of unsolicited                                                                                                      
    550-5.7.1 mail originating from your IP address. To protect our 550-5.7.1                                                                                               
    users from spam, mail sent from your IP address has been 550-5.7.1                                                                                                      
    rejected. Please visit 550-5.7.1                                                                                                                                        
    http://www.google.com/mail/help/bulk_mail.html to review 550 5.7.1 our Bulk                                                                                             
    Email Senders Guidelines. z40si1290546ugc (in reply to end of DATA command)

Il est vrai que j'ai envoyé 321 mails sur les serveurs SMTP de Google depuis juin, ce qui est vraiment impressionnant...

Il semble que je ne suis pas le seul à rencontrer ce problème. Après avoir contacté le support de Gmail comme l'indique la page donnée dans le message d'erreur, j'ai vite été lassé de recevoir des messages d'erreur en permanence. Je me suis donc attelé à la tâche pour résoudre ce problème autrement, en utilisant le serveur SMTP de mon FAI pour Gmail. Et il s'avère que cela est d'une facilité déconcertante grâce à Postfix.

Dans /etc/postfix/main.cf, il suffit d'ajouter une ligne pour transport_maps :

transport_maps = hash:/etc/postfix/maps/transport

Et de créer le fichier /etc/postfix/maps/transport en suivant la documentation pour la table de transport (et en remplaçant smtp.monfai.fr par le serveur SMTP de son FAI) :

google.com smtp:smtp.monfai.fr
.google.com smtp:smtp.monfai.fr
gmail.com smtp:smtp.monfai.fr
.gmail.com smtp:smtp.monfai.fr

Un petit coup de postmap /etc/postfix/maps/transport && postfix reload et le tour est joué. C'est presque trop facile avec Postfix.

mardi 2 mai 2006

Mangez du spam avec vos trackbacks^Wrétroliens !

Comme énormément d'utilisateurs de DotClear depuis quelques jours ou semaines, j'ai eu l'immense plaisir d'avoir beaucoup de nouveaux amis. Ces amis me parlent souvent de choses très intéressantes, avec des mots compliqués ou à ne pas montrer à des âmes innoncentes. Mais malheureusement, je me suis vite lassé de ces amis. J'ai donc voulu leur fermer la porte, sans pour autant fermer la porte à tout le monde.

Fermer les rétroliens n'est donc pas une option. Certains ont proposé une solution se basant sur une vérification DNS, mais il semble que cela bloque certains rétroliens légitimes. J'ai donc opté pour une petite modification de spamplemousse se basant sur la vérification DNS.

L'idée est toute simple : dans inc/tb.php, après le test spamfilter::is_spam(), on ajoute ceci (c'est la version brutale, avec ipCheck() qui est définie comme ici) :

if ($spam === false && !ipCheck()) {
        $spam = 'DNS verification failure';
}

L'intérêt est que le rétrolien qui ne passe pas le test n'est pas perdu, mais simplement modéré par spamplemousse. On verra bien d'ici quelques jours si cela fonctionne bien...

vendredi 28 avril 2006

Citation du jour

Suite à l'initiative Open Freebox, de longues discussions ont eu lieu sur le canal canal #openfreebox, notamment dues à la présence de Rani Assaf (directeur technique d'Iliad). Petit extrait :

<rani> nico_32: ce que vous voyez pas, c'est que pour faire de l'IPV6, c'est plusieurs millions d'euros à investir dans le réseau. Tous nos routeurs ne le supportent pas et certainement pas les dslams
<florian_> rani: mauvais investissement ?
<nico_32> rani, alors tu met une option support d'un tunnel
<nico_32> rani, et ca s'est 0 investissement
<rani> florian_: non, investissements fait y a 2 ou 3 ans... Et changer un routeur à Grenoble par exemple et claquer 200 ou 300k euros juste pour supporter l'IPV6 sur la ville, je vois pas où est l'intérêt économique
<rani> nico_32: tunnel, oui je suis entrain de creuser... le pb est que vous raisonner tous comme si l'on était chez Nérim avec 10k mecs. Nous, quand on fait un truc, il faut que derrière ça scale sur des centaines de K abonnés

Je me demande si le choix de la ville dans l'exemple donné par Rani est un réel hasard ;-) Reste que je trouve dommage que de tels investissements récents ont été faits sans aucune prise en compte d'IPv6.

lundi 17 avril 2006

Mon ami bogo

J'utilisais depuis plusieurs années spamassassin, tout simplement parce que c'était le meilleur logiciel anti-spam à l'époque où j'ai commencé à en avoir besoin. Il était très efficace jusqu'à il y a quelques mois, où j'ai commencé à souffrir, avec une dizaine de spams par jour (bon, c'est relativement peu, mais quand on n'a plus l'habitude, c'est dur). J'avoue ne pas avoir essayé de chercher si je pouvais améliorer le filtrage, mais il faut dire que je n'avais pas vraiment envie de mettre les mains dans le cambouis.

Je suis donc passé à bogofilter puisque beaucoup de personnes en disent du bien. La grande difficulté de mon cas est que tous mes mails sont sur un serveur IMAP et qu'habituellement, bogofilter est utilisé au niveau du client mail (par exemple avec ce joli plugin pour evolution intégré dans dapper). Après une rapide recherche, je suis tombé sur ces instructions qui répondent presque totalement à mon problème.

Pour résumer :

  • procmail est utilisé pour envoyer le mail à bogofilter, puis le placer dans le bon dossier ;
  • l'utilisateur déplace les faux spams ou les spams non détectés dans des dossiers particuliers ;
  • un script lancé régulièrement par cron visite ces dossiers et permet à bogofilter d'apprendre ces erreurs.

Quelques petites modifications ont été nécessaires, notamment pour traiter le cas où bogofilter n'est pas sûr de savoir si le mail est un spam ou non.

Après un premier essai totalement raté (il détectait tout comme spam, probablement à cause d'une erreur initiale dans le script lancé par cron), j'ai recommencé à zéro. Et depuis, c'est le bonheur. Je parlerais presque de liberté retrouvée ;-)

by Vincent