L’últim llibre que m’he llegit: La Pell Freda – Albert Sánchez Piñol
Ho he de reconeixer sóc un pel lent acabant llibres. Aquest llibre me’l van regalar l’Oriol i la Sara pel meu aniversari, o sigui, el 9 de maig i fins fa una setmana aproximadament no el vaig acabar. Així doncs, com ja és costum ús en faré 5 cèntims del que m’ha semblat. Pel que fa a la història la trobo súper original i diferent. Mai hagués imaginat que es podia escriure un llibre tan profund amb elements tan simples. He de reconeixer que és un llibre molt ben escrit i l’autor realment es mereix els meus respectes, ja que sap enganxar-te i explica els detalls d’una forma amena i realment precisa. Així doncs, diguem que les seves descripcions et saben transportar fins a l’illa on transcorre la història. Tan és així que alguna que altre vegada he arribat a somar amb els ‘granotots’, si no sabeu de què parlo i llegiu el llibre ja m’entendreu.
Així doncs, la meva valoració és molt positiva sobre el llibre malgrat el final m’ha deixat una mica fred i no ho dic pas per jugar amb el títol. Després de l’adicció que m’havia arribat a crear el llibre realment m’ha decebut una mica el final, potser esperava un cop d’efecte que no arriba. Si que el final és ben obert fins a l’última pàgina però no sé perquè esperava algún element que fes girar la història.
Apa doncs, aquí teniu una altre novel·la recomenada per mi… cosa ben poc habitual,eh!? ja que com sabeu no és un genere que em tiri gaire. Per cert, per si algú busca el llibre el seu ISBN-10: 8495616254 / ISBN-13: 978-8495616258.
Clonant una Ubuntu
Disposava d’un servidor en una màquina virtual d’VMWare que esta en producció i per tant, no era bona idea apagar-lo. La idea era montar una altre màquina física igual per posar-la en producció per quan la primera falli. Doncs bé, havia de montar una màquina igual que la de producció amb la mateixa configuració del servidor en producció. La cosa se m’ha allargat una mica malgrat els passos són simples. Bàsicament m’he trobat amb problemes tontos que per no estar habituat a usar Ubuntu m’han portat més temps del previst.
Per començar del host en producció aconseguim un llistat del paquets instal·lats, llencem la següent comanda des del directori i l’usari root:
dpkg --get-selections | grep -v deinstall > llista_paquets
A continuació ja podem fer tots els processos des de la màquina que anem a instal·lar. En la segona màquina he instal·lat una Ubuntu Server 6.06.1 LTS (Long Time Support) igual que en la primera, he fet una configuració de servidor normal (no LAMP) configurant el hardware adequat perquè tot funcioni. Un cop acabada la instal·lació:
# Copiem configuració del APT de producció al nou servidor
rsync -cavz root@ip_produccio:/etc/apt/ /etc/apt/
# Actualitzem repositori
apt-get update
# Actualizem paquets bàsics de la distribució
apt-get dist-upgrade
# Copiem llistat de fitxers de producció
rsync -cvz root@ip_produccio:/root/llista_paquets /root/
# Marquem paquets a instal·lar en local
dpkg --set-selections < llista_paquets
# Entrem al gestor de paquets dselect
dselect
# Ara premem la tecla 'I' i després 'intro' perquè comenci la
# descarrega i instal·lació de paquets
# Finalment premem la tecla 'Q' i 'intro'
En aquest punt ja tenim els mateixos paquets instal·lats en producció que en la nova màquina. Ara s’ha de copiar les configuracions de les aplicacions que tenim en marxa. La idea és copiar tot /etc i tot /var. Tot i que això s’ha de fer molt en compte i s’ha de depurar molt, per poder saber sempre si l’hem liat en algún moment. Ja que per exemple, no cal copiar tots els directoris de logs tot i que si estem en una LAN i no són molts megues tampoc passa res si ho copiem. El més crític, és no sobre-escriure fitxers com /etc/fstab que poden variar segons la arquitectura de les màquines. En el meu cas no calia tenir en compte gran cosa més, però penseu que hi ha aplicacions que tenen fitxers de configuració en llocs poc habituals i això també s’hauria de copiar. A més és vital que no oblideu que no només s’han de copiar els fitxers, sinó també els seus atributs, o sigui, permisos i propietaris.
Una bona idea per copiar el directori /etc és crear un fitxer amb la llista de fitxers i/o directoris que no volem copiar, en el meu cas: (exclude_list.txt)
/etc/fstab
/etc/modprobe.d
/etc/modutils
Després amb la següent comanda sincronitzem els fitxers i els seus permisos del servidor de producció al nou servidor:
rsync -cavz --delete --exclude-from=exclude_list.txt root@ip_publica:/etc/ /etc/
La resta de configuracions es poden copiar amb el mateix procés.
glsof – Arxius usats pels processos
Molts ja coneixereu lsof, bàsicament aquesta eina fa una cosa tan senzilla i potent a la vegada com dir-nos quins fitxers estan sent usats en cada moment per un procés que esta corrent en el sistema. Això és realment útil per moltes situacions, per exemple, quan volem desmontar una unitat del sistema i no hi ha manera de fer-ho perquè algún procés té obert algún fitxer d’aquella unitat, doncs amb aquesta eina podriem saber quin procés és i prendre les mesures oportunes.
Doncs bé, només volia comentar que avui casuament he descobert el glsof que simplement és un entorn gràfic basat en GTK per usar la comanda lsof. Això en entorns d’escriptori ens simplifica moltíssim la feina d’aprenentatge dels molts paràmetres que suporta lsof.
Servidor FTP darrera un NAT (pure-ftpd)
Sovint quan montem un servidor FTP darrera d’un Firewall que fa DNAT per publicar els ports FTP (20, 21, tcp i udp) a internet ens deixa de funcionar l’FTP en mode Passive On. Llavors hem de fer allò tan molest i depenent del client tan difícil; o sigui, fer un Passive Off perquè la transmissió d’arxius, llistats de fitxers, etc. funcioni bé. Doncs avui cansat d’això en un servidor pure-ftpd que tinc montat a la feina i he posat solució ja que sinó tenia als tècnics molt limitats quan es trobaven a casa dels clients.
La cosa ha estat ben senzilla, només he hagut de llençar el pure-ftpd amb el paràmetre -p i especificar un rang de ports per on es faran les connexions passives. Jo he decidit que anessin entre el port 40000 i el 50000. Així doncs, el paràmetre ha quedat així: -p 40000:50000. Després al firewall he redirigit tot aquest rang de ports contra la IP interna del servidor i llestos (fent un DNAT). Ara ja funcionen perfectament els FTP passius.
Si tot això d’FTP passiu i no passiu, ús sona a xinès he trobat una petita web molt bona que explica la diferència entre un sistema i l’altre: Active FTP vs. Passive FTP, a Definitive Explanation (local).
Wikid – Servidor d’autenticació
Abans de començar deixar clar que es tracta d’un producte amb llicència dual amb algunes diferències entre la llicència de pagament i la gratuïta. Això si ambdues modalitats de producte són de codi obert, tot i que la de pagament porta algún component que jo diria que no té el codi font lliberat, com per exemple el servidor Radius programat en Java.
Wikid és un servidor de two-factor authentication (factor doble d’autenticació). Això vol dir que combina dos sistemes d’autenticació. En aquest cas l’autenticació asimètrica basada en clau pública i a més d’una paraula de pas d’un sol ús (OTP). D’aquesta forma s’aconsegueix un nivell de seguretat equivalent al dels tokens basats en hardware, però amb tota la flexibilitat i els beneficis del software. Gràcies a aquest component de software el sistema OTP pot funcionar en tot tipus de clients: Blackberries, telèfons, Palms, PocketPCs, Windows, Linux i Mac.
Si esteu poc familiaritzats amb aquests sistemes d’autenticació podeu donar un cop d’ull al següent gràfic que jo trobo molt explicatiu.
Un gràfic encara més detallat però també més genèric seria aquest. Com es pot veure amb ambdós gràfics l’autenticació es pot considerar que el nivell de seguretat aconseguit és de molt alt nivell i a més molt simple d’usar per l’usuari final. Si fem un resum des del punt de vista de l’usuari del sistema. Quan aquest, per exemple, vol connectar-se a una web segura, VPN, FTP, WebDAV, correu, etc. el primer que ha de fer és obrir el client software del Wikid i demanar la clau OTP. Després connecta de forma completament convencional al servei que volia accedir i aquest com sempre li demana l’autenticació i llavors el client introdueix la seva clau temporal (OTP). Això esta molt bé perquè quan algú ens demana la clau per accedir a algún lloc li podem dir amb tota certesa: no sé la meva clau. Si encara li volem donar la clau la podem generar i li podem facilitar amb la certesa que no la podrà tornar a usar. Sovint el client software que ens donarà la clau OTP ens demana un codi PIN per accedir-hi. Aquesta és la única clau que haurem de recordar.
El sistema bàsicament es composa de tres parts el servidor Wikid, el client Wikid i el servei de xarxa (network service o wikid network client). Aquest últim és el servei que volem que usi com sistema d’autenticació Wikid. Per exemple, PAM, SSH, FTP, OpenVPN, servidor IMAP, una web programada en PHP, Ruby, etc. Així doncs, configurem adequadament el servei perquè quan toqui autenticar-se vagi a buscar l’autenticació al servidor Wikid i el nostre servei de xarxa automàticament ja suporta autenticació via certificats i claus temporals. O sigui, que el sistema d’autenticació ja es considera d’alta seguretat.
Si encomptes d’usar una clau temporal volem usar un sistema biomètric, una SmartCard, un token hardware, etc. també ho podem fer. D’aquesta forma podem fer que el client s’autentiqui de forma completament automàtica sense demanar-nos cap clau. Malgrat això s’acostuma a protegir l’accés al sistema biomètric, SmartCard, etc. amb un codi PIN per tal d’assegurar que l’accés físic al dispositiu és legítim.
La pròpia web del producte té diversos videos d’ajuda i força howtos. Però si volem informació més detallada la meva recomanació és que passeu per HowtoForge i poseu “wikid” al seu buscador i sortiran una bona colla de manuals de com configurar Wikid com a servidor d’autenticació. Per exemple, OpenVPN, SSH, FreeNX, WebDAV, etc.
MaxiVista – treballant amb dos monitors
Si us dediqueu a programar i teniu la sort de poder-ho fer amb dues pantalles segur que sabeu la importància d’aquest fet. Però no sempre el hardware amb el que treballem ens permet fer coses tan interessants. Per treballar amb dues pantalles amb Win no és massa complicat, de fet només cal tenir dos monitors i una targeta amb dues sortides de video o bé dues targetes. Després a través del panell de control podem configurar l’espai d’escriptori com un de sol i això ens permet arrossegar aplicacions d’un escriptori a l’altre. Doncs bé, a vegades no tenim això però si un ordinador que no estem usant per res perquè esta obsolet. La idea és usar aquest segon ordinador amb la seva targeta gràfica com a segona pantalla. Per fer-ho només cal instal·lar MaxiVista en cada un dels PCs i en un moment tenim configurat el segon PC com a segona pantalla del PC principal.
Obviament això té una part dolenta que com ús podeu imaginar és que només funciona amb Windows. Amb linux es poden fer mil invents semblants però no he trobat res tan senzill, potent i ràpid de posar en marxa com això. El millor del tema és que requereix molt pocs recursos de màquina i que qualsevol xarxa ens suporta perfectament el sistema. Com acostuma a passar amb el soft de Win no és gratuït però els que useu aquest S.O. ja hi esteu acostumats.