Postfix: Verifiquem recipients des del mailgateway
El maig de l’any passat vaig publicar un petit manual de com configurar un Postfix per fer de ‘mailgateway’ d’un altre servidor MTA. Doncs bé, avui hi he afegit una funcionalitat que inicialmen creia impossible. Es tracta de comprobar si el correu que estem rebent des de fora i que va dirigit a un usuari local existeix en el servidor destí on enviarem el correu. Fins ara tots els correus amb destí @dominilocal.tld els agafabem i ja era el MTA intern qui el refusava. El problema d’això és que genera un email de resposta del MTA intern cap al host de ‘relay’ (mailgateway) i aquest correu després s’intenta entregar al remitent orignal. Amb el conseqüènt problema de creixement de la cua de missatges sobretot si el remitent és un email problemàtic.
Doncs bé buscant per la documentació de Postfix he trobat que a través del fitxer /etc/postfix/main.cf podia usar la comanda smtpd_recipient_restrictions per afegir una nova restricció que fos verificar el recipient (reject_unverified_recipient). Però això no és el problema. Sinó que el problema esta en després d’això anar a verificar aquest recipient a l’altre host. Això es fa amb la comanda address_verify_local_transport on li indiquem quin és el host que realment té la base de dades d’usuaris.
smtpd_recipient_restrictions =
...
reject_unverified_recipient
...
address_verify_local_transport=ip_interna_host_MTA
Obviament el MTA intern ha d’estar configurat de forma que no accepti correus per comptes que no existeixin. Per tant, no pot estar configurat amb un cul de sac, o com diuen en castellà amb una direcció de correu ‘recojetodo’. Així doncs, quan un MTA d’internet envii un correu al servidor de relay (mailgateway) aquest obrirà una connexió contra l’MTA intern i verificarà que existeix la compte de correu a través de la comanda RCPT TO, això ens permet no haver d’activar la temuda comanda VERIFY BY, per tal de saber si existeix o no una compte al servidor intern i per tant, refusar en cas de que sigui necessari aquest correu que es preten entregar.
Posta de Sol d’ahir amb un avió en ‘caiguda’
Això és el que es veia ahir des del meu terrat cap a les 21h. Realment preciós el fum condensat de l’avió i il·luminat pel sol que ja no es veia a l’horitzó. Una imatge molt bonica que com sempre a la fotografia no fa justícia al moment.
Realment després de 4 dies de treballar sense parar va ser un regal que a més vaig poder compartir amb el meu germà.
De Bloglines a Google Reader
Des de l’abril del 2004 que uso bloglines per estar al dia de tots els blogs que llegeixo. Doncs bé, resulta que fa un temps ja vaig començar a despotricar d’aquest servei. Doncs bé, fa uns dies va sortir a la llum Google Gears el qual ha servit com a base del nou Google Reader. Així doncs, des de fa més d’una setmana he estat provant d’usar-lo per tal d’abandonar definitivament Bloglines. A part dels problemes del passat de Bloglines, bàsicament estic pensant en canviar-me degut que Google Reader és realment més útil per mi que no pas Bloglines. S’ha de dir també que estava fent un seguiment des de molt aprop de Liferea, ja que volia tenir una eina de lectura de feed offline, doncs bé ara ja no cal pensar més amb Liferea que no m’acaba d’agradar per molts motius. Però el potencial de Google Gears és realment impresionant i ha fet una versió offline de Google Reader realment útil.
Així doncs, Google Reader a més de ser realment una eina web 2.0 visualitza molt millor els feeds dintre del seu entorn, com ja deia, té la funció de treballar en offline. A més m’encanta la funció shared que em permet sindicar de forma automàtica el que vull publicar al meu lifestream. A més, la funció starred espero que no tingiu caducitat com em passava amb el Bloglines. Per tant, per tot això i per algún que altre detallet com el client via mòbil. que ara no em ve al cap ús informo que abandono finalment Bloglines en favor de Google Reader.
Shell Script: backup dels repositoris de subversion
La setmana passada vaig fer un petit shell script per fer backup dels repositoris de software del meu servidor. Bàsicament el que fa és mirar a /var/svn/repos quins directoris hi ha. Llavors llença un svnadmin dump i al mateix temps comprimeix amb bzip2 la sortida cap a un fitxer, després aquest fitxer es guarda a /home/backup/subversion que és una unitat de xarxa montada per fer backups en el servidor. L’últim detall que em fa falta comentar és que després de fer la còpia del fitxer, deixa 3 fitxers de cada repositori al directori de backup i la resta els borra. D’aquesta forma tinc 3 còpies de cada un dels repositoris, una d’ahir, l’altre d’abans d’ahir i finalment una de fa 3 dies. Així si passa algún desastre d’incosistència o algo semblant tinc més marge per recuperar el repositori.
Veureu que el codi és molt simple i si algú el vol adaptar no crec que li costi gaire, tot esta programat amb ordres típiques, sense comandes rares ni res. Finalment l’únic que he hagut de fer és posar-lo al cron a alguna hora de matinada.
#!/bin/sh BASE="/var/svn/repos" DATA=`date "+%Y%m%d"` cd $BASE REPOSS=`find . -maxdepth 1 -mindepth 1 -type d | cut -f 2 -d "/"` BACKUPDIR="/home/backup/subversion" for REPOS in $REPOSS do BACKUPFITXER=backup-repos-$REPOS FITXER=$BACKUPFITXER-$DATA.dump.bz2 echo -n "Starting $REPOS backup..." svnadmin dump -q $BASE/$REPOS | bzip2 > $FITXER 2>/dev/null mv $FITXER $BACKUPDIR cd $BACKUPDIR rm -f `ls -t $BACKUPFITXER* | sed -e 1,3d` 2> /dev/null echo "OK" cd $BASE done
Python: Reiniciem el router si no hi ha internet
Malgrat fa uns dies vaig canviar el meu vell Zyxel per un Cisco 837 a casa, la línia ADSL es continua penjant per motius desconneguts. Ja que quan les dades no circulen ni amunt ni aball les interficies ATM estan aixecades i tot sembla funcionar correctament. Així doncs, no m’ha tocat altre remei que fer-me un petit script amb Python a través del qual cada 5min comprovo si tornen els pings contra un dels servidors de OpenDNS. Si això no és així llavors es connecta contra el router Cisco i el reinicia. Ja que he fet proves baixant i pujant la interficie ATM i no hi ha manera. No se m’ha acudit cap millor idea que llençar un reload.
L’script guarda un fitxer de log a /var/log/online.log i usa el modul pexpect de Python. La resta de coses que usa són moduls que van instal·lats per defecte.
Si a algú li pot fer falta l’script el podeu descarregar: router.py.
gubb ja té suport per RSS, Atom i iCal
Fa un parell de mesos vaig parlar-vos de gubb és una web 2.0 que permet crear-nos llistes de la compra, de pel·lícules que volem veure, etc. Com tot el material a lo web 2.0 la seva principal virtut és la interactivitat i la possibilitat de compartir la informació amb altres usuaris. Doncs bé, quan vaig parlar-vos d’aquesta web ja vaig dir que era molt útil, avui mateix he anat a fer la compra i he usat la llista de la compra enviada per email a la Blackberry per saber que havia de comprar. Però com sempre li trobava a faltar algo, concretament la capacitat d’exportar les llistes via RSS o Atom. Doncs no només ja esta solucionat això sinó que si els ítems d’una llista estan associats a una data podem exportar fins hi tot els elements de llista en format iCal.
Realment ara mateix ja es mereix una molt bona nota aquesta web sota el meu punt de vista. A més, té funcions molt útils com els elements arxivats. Que permeten fer llistes de la compra en un moment en base als elements que has usat en el passat. Realment s’ha de felicitar a l’equip d’aquest servei perquè han fet un producte molt útil, simple i complert.