Archivi categoria: Avventure informatiche

Casi che mi è capitato di dover affrontare raccontati affrontati come una nuova sfida da vincere.

Zeroshell. Bella, italiana, fantastica !

In qualità di sistemista mi sono trovato qualche anno fa a risolvere una questione della quale non avevo assolutamente idea. Server web basato su windows, connessione istituzionale con ip pubblico nattato sul gateway di frontiera, mi viene chiesto di procedere all’aggiunta di un’altra connessione alla rete (SHDSL) per poter accedere al server tramite due differenti reti per eventuale failover di quella istituzionale. Non potendo chiedere modifiche della connessione gia esistente, configuro la nuova (sempre conn ip pubblico nattato sul gateway del provider) sulla seconda scheda di rete…..ma se accedo dal nuovo ip pubblico la pagina gira a vuoto e non si visualizza. Mi documento e scopro, nella mia massima ignoranza, che un sistema TCP/IP non può avere due gateway;  quando richiedo la pagina con il nuovo ip pubblico il server mi risponde sul gateway dell’altra connessione e la pagina si impalla.  Continuo a studiare e capisco che ho bisogno di uno SNAT + NAT sulla seconda connessione. Eseguendo il NAT anche sulla sorgente (SourceNAT) della richiesta il server pensa che il richiedente sia sulla propria rete locale e risponde direttamente all’ IP del richiedente senza invocare il gateway; a qual punto interviene il NAT che traduce al richiedente sul gateway della nuova connessione. Bello ! Ma come lo implemento? Inserisco un router/gateway che faccia SNAT+NAT fra la seconda scheda del server e il gateway della nuova connessione. Continua la mia ricerca e capisco che SNAT+NAT è una caratteristica avanzata dei router. Quelli che la garantiscono costano un botto e nell’ambito della ricerca scientifica in cui mi muovo spendere soldi per l’hardware spesso significa toglierli ai contratti per chi lavora, e poi ci sono le lungagini amministrative per gli acquisti da superare. Il mio pensiero va subito a Linux (che all’epoca stavo ancora valutando n.d.r.), così mi doto di un vecchio pc di riserva, lo attrezzo di due schede rete e parto con le più blasonate distro per il networking: IPCop, PfSense, Endian, ma anche più recentemente ClearOS e chi più ne ha più ne metta… niente… Un sacco di tempo per installarle, tempo per capire come e dove agire, prove di funzionamento….

Poi arriva lei: Zeroshell ! Parte Live dal CD, dal menu SetUp,Networking: configuro le schede; NAT, aggiungo le due schede di rete come abilitate e… voilà! SNAT+NAT in meno di 5 minuti (su un Pentium Celeron) senza spendere un euro.

Nell’ entusiasmo scopro che Zeroshell è gratuita, creata e mantenuta da Fulvio Ricciardi, che la sua avventura è cominciata in Italia per la ricerca (CERN) e sul networking ha molto da dire. Inoltre il web è pieno di testimonianze, tutorial, lo stesso sito ufficiale http://www.zeroshell.net è essenziale, esplicativo e pieno di ducumentazione.

Oggi la uso un pò per tutto, dai virtual router al NAT+SNAT, dal Transparent proxy al blacklisting dei siti. Insomma, approfondite sistemisti di tutto il mondo, Zeroshell non si può che apprezzare!!

Linux: usare il comando mount all’interno di uno script eseguito dal demone crond. Praticamente impossibile !

Ho passato quasi 2 giorni pieni pieni di lavoro per mettere a punto uno script che all’ occorrenza montasse una condivisione in rete (samba) per usarla come repository di backup. Quando tutto sembrava funzionare bene, schedulo lo script e faccio un test… Si blocca al momento del mount. Il comando da solo sulla linea di comando funziona, sto facendo tutto da root, non mi spiego la cosa. Cerco qua e la sulla rete, modifico il comando di mount una infinità di volte con mille opzioni… niente, la cosa migliore che riesco ad ottenere è una richiesta di password che comunque blocca lo script (utente e password erano già inclusi nel comando n.d.r.). Alla fine capisco che il problema è che crond, anche se esegue task di root, non ha i suoi privilegi, e soprattutto non può usare il comando mount. Trovo però un bel tutorial per rendere mount eseguibile e funzionante con qualsiasi utente (si cambiano i premessi a mount ed umount e si decrive la risorsa da montare nel file fstab); quando tutto contento mi accingo a lanciare lo script mi appare una bella scritta che mi comunica che i programmatori di mount.cifs ( il team Samba n.d.r.) hanno deciso di non farlo funzionare se al comando hanno accesso tutti gli utenti, così.. per sicurezza. Unica soluzione (assolutamente deprecabile !) fare il downgrade di Samba e dei suoi tools ad una versione dove il controllo non era ancora stato inserito. Io invece ho rimesso tutto a posto (i permessi su mount ed umount) ed ho preferito:

  • Inserire le specifiche di mount nel file fstab con l’opzione auto
  • Inserire nello script il controllo che il mount sia effettivamente attivo ed al limite segnalare il problema o procedere con il backup

Spero presto di inserire gli script nella sezione (ancora in lavorazione) Open Source di BitBlast TecnoMagazine.

Visual Web Developer 2010 express: aggiungere la funzione Publish

E’ sorprendente come Microsoft ti induca ad acquistare i suoi prodotti professionali. Io, ad esempio, mi trovo a manutenere alcune web application sviluppate con VS 2005 Pro; con il passaggio a Win7, il buon vecchio VS2005 comincia ad arrancare, e per ovviare scarico ed installo ( e pure per avere la licenza gratuita ho incontrato qualche problema) Visual Web Developer 2010 Express (VWD2010ex). E’ chiaro che risulta abbastanza sprecato acquistare l’upgrade di VS2005 se si tratta solo di manutenzione, e l’importazione delle vecchie applicazioni funziona benissimo. Ma in VWD2010ex manca una cosa fondamentale: il comando per la compilazione e pubblicazione del sito. Senza fare troppe polemiche cercando, in rete ho trovato una elegante soluzione, cioè quella di creare una voce nel menu “External Tools” che dia il comando di compilazione e pubblicazione direttamente al compilatore su linea di comando; ecco come fare:

  1. Selezionare in menu “Tool”s ed attivare nella voce “Settings” l’opzione “Expert Settings”.
  2. Ora nel menu “Tools” appare la voce “External Tools…”. Selezionamola per accedere all’editor dei tool esterni.
  3. Alla voce “Title” inseriamo qualcosa tipo “Precompila in ver. xx”, dove xx sta per la versione del .net framework che selezioneremo. E’ quello che apparirà nel menu “Tools”.
  4. Alla voce “Command” sfogliamo e scegliamo aspnet_compiler.exe nella cartella Windows\Microsoft.NET\Framework\vxx.xx.xx dove le xx sono la versione che ci interessa.
  5. in “Arguments” inseriamo “-p $(ProjectDir) -v / “$(SolutionDir)\PreCompiledWeb” -f”. Questo comando crea e sovrascrive la cartella “PreCompiledWeb” nella cartella dove risiede il file della solution in questione.
  6. Confermiamo

Ora nel menu “Tools” ci troveremo una voce “Precompila in ver. xx” che eseguirà il comando. Vi consigio comunque di fare sempre un rebuild prima di eseguire il comando, inoltre studiando le opzioni su riga di comando del compilatore si possono creare altri external tools personalizzandoli come si vuole.

Il computer sembra rotto, ma è solo un virus.

Mi è capitato subito prima di Pasqua, di incappare in un pc con poco più di un anno di vita che dopo pochi minuti di funzionamento freezava (si bloccava lo schermo, la tastiera ed il mouse) emettendo uno strano beep quasi bitonale.

La prima cosa a cui ho pensato è stato: polvere!! Problema di surriscaldamento. Aperto verificato e pulito… niente.

Poi ho pensato, consultandomi anche con i miei migliori colleghi, ad un problema hardware tipo memorie ram o video. Fatti i test, niente.

A questo punto ho cominciato ad esplorare la rete pensando ad uno strano malware, anche se sia Symantec antivirus corporate che Avira free non trovavano niente, neanche in modalità provvisoria.

Alla fine l’ho beccato ! E’ un RootKit che si installa nel Master Boot Record del disco fisso, rilevabile, almeno per quanto ho potuto constatare, solo dal software RootRepeal: si chiede la scansione dei file e rileva immediatamente un RootKit nel MBR, si puo interrompere la scansione, cliccare con il tasto destro sul rootkit reovato e chiederne la rimozione con reboot immediato. Et voilà ! il computer ora funziona come prima.

Penso che RootRepeal si possa rivelare utile anche per altre cose, andrebbe approfondito, per il momento mi ha salvato la giornata!

Cominciamo !

Comincio questo blog con una sfrenata voglia di condividere i risultati del mio lavoro con gli altri.

Mi occupo di informatica dal 1998 e negli ultimi anni mi sono concentrato soprattutto su sistemi informativi biomedici.

Ne ho viste e ne vedo un po di tutti i colori ogni giorno, e rimettere le cose in funzione è ogni volta una soddisfazione; più grande quanto più veloce e creativa è la soluzione.

Magari posso semplificare la vita a qualcuno condividendo queste esperienze con gli altri; e magari dal confronto imparo anche qualcosa di nuovo !!

E allora … Cominciamo !