Gli "Ospiti" della Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire
Cose' sta' roba???

Qualche tempo fa', un po' annoiato, mi sono messo a scrivere quello che succede nel mio ufficio (rimuovendo i nomi ovviamente) sul gruppo it.comp.os.linux.sys. La cosa pare abbia trovato degli estimatori, cosi' ho pensato di "preservare" questi capolavori per i posteri...

Un po' di tempo dopo qualcuno ha pensato che poteva inviarmi le SUE storie da pubblicare. Percio' eccole qui'.

Nota: i miei commenti (quando ci sono) sono in italico

L'amministrazione di sistema taumaturgia, ovvero la Programmazione Voodoo

Giovedi schifoso, oggi in ufficio, non solo perche' tutti i tapini (tra i quali anch'io) che programmano qui devono studiarsi un nuovo sistema per portare il Megaprogramma attualmente esistente su un'altra piattaforma, ma anche perche' un'amministratore di sistema e' in ferie, l'altro e' da un cliente e resta solo l'apprendista stregone, pardon!, amministratore a far andare avanti la baracca.

Io (normalmente programmatore) vengo reclutato di tanto in tanto, quando gli amministratori titolari non sanno piu' dove sbattere la testa (e capita spesso quando il Server con problemi manca di "Finestre"...) e il povero apprendista non ce la fa da solo a star dietro a tutti...

Ebbene oggi scende giu' nel seminterrato lo Human Resource Manager (la cosa non e' preoccupante in se e per se... Essendo la ditta molto piccola, HRM si occupa di tante altre cose che lo spingono spesso nella "tana dei programmatori", tra le quali, anche la consegna, tutt'altro che sgradita, delle buste paga...) e prende a discutere con lo "Zauberling" (MOLTO intraducibile gioco di parole in tedesco tra Lehrling [apprendista] e zauber [magico]. Cosi' detto perche' riesce a barcamenarsi bene tra le pazzie che circolano in ufficio). Non presto molta attenzione alla cosa in quanto sono occupato a capire come accidenti funziona la nuova applicazione, o meglio, come dovrebbe funzionare...

I ripetuti accenni a LDAP mi fanno pero' capire che c'e' qualcosa che non va sul Server Sun, che e' appunto quello che ha installato il Server LDAP di test per l'applicazione che, oggi, veniva testata, in quel di München (neanche tanto vicino, quindi!), dal Signor Cliente in persona.

Una parola tira l'altra e alla fine, HRM ci lascia soli con la frase "Non mi interessa sapere cosa puo' essere andato a fanciulle di facili costumi. Mi interessa solo che ritorni presto in funzione". Rimaniamo dunque, al capezzale del Server: Lo Zauberling (piu' avanti, semplicemente ZL), un altro programmatore che un po' si intende di Unix (in seguito: P1) e io, che ancora non ho ben capito come ho fatto a venir reclutato...

ZL: Vabbe'! Cerchiamo di capire cosa non funziona... Ho gia' provato la soluzione standard (riavvio del Server), ma non ha funzionato. Che si fa?
P1: Si potrebbe provare a vedere se il demone e' su
ZL: Sarebbe bello, ma non riesco neanche ad aprire un shell
IO: Strano, a me parte regolarmente...

Misteri! Ma neanche poi tanto, una volta scoperto che l'amministratore titolare, spaventato dal fatto che tale server NON ha (orrore degli orrori!) un'interfaccia grafica, non contento del fatto che dispone solo di IP interni e che e' fisicamente sulla rete interna (quindi anche un attacco con spoofing e' impossibile), ha deciso di consentire il login solo tramite SSH (!) e chiudere l'accesso a tutti a parte tre PC (uno e' il mio).

Vabbe'! vi su /etc/hosts.allow e possiamo collegarci dalla stazione di ZL.

IO: Beh, il demone e' su... Proviamo a vedere cosa dice il log...
ZL: Il log dice... Scheiße! (non traduco!) Dov'e' finito il log?!?
P1: Se lo sono mangiato le formiche rosse... Proviamo a riavviare il demone

Riavvio, con check di tutti i files in /var/log e in /usr/local/var. Nulla cambia...

Vabbe'! OpenLDAP prevede la possibilita' di lanciare il programma in modalita' Debug (non fa un fork e rimane in attesa sulla console, ma intanto logga). Lanciamo LDAP in debug, vediamo tante scrittine a video, tra le quali un rassicurante (1 Servers opened), ma di collegarsi a quel §$%#@ di Server, manco a pregare in aramaico...

Il client dice che non riesce a collegarsi, il programmino ldapsearch, che dovrebbe, da manuale, cercare i vari servers, dice che non c'e' niente. Anche un semplice telnet sulla porta 6666 (assegnata, per chissa' quale ragione, visto che il default e' la 389 ipotizzo: 6666 non ti serve essere root per aprirla) al servizio LDAP fallisce miserrimamente...

Mah! Check della configurazione e tutto sembra a posto. Anche un bel slapd -t (check dei files di configurazione) dice che e' tutto OK. Ma non parte...

OK! E' il momento di fare un po' di Hacking! Cominciamo con un bel netstat -an e vediamo che, almeno, la porta 6666 risulta listata... Peccato che, al posto di un rassicuramente LISTEN, c'e' un BOUND...

IO: ZL, non e' che abbiamo nmap da qualche parte? Giusto per cercare che non gli sia venuto in testa di cambiarsi la porta e noi continuaiamo a sbattere la testa altrove...
ZL: Mmm... Dobbiamo installarlo... Si fa?

Armati di santa pazienza, si compila nmap sul server (hai visto mai! Almeno non mi si puo' incolpare di avere un Firewall tra il server e l'nmap...). Sorvolo sulle bestemmie assortite per capire dove l'amministratore titolare ha installato il compilatore C, il make e varie librerie che servono a nmap. Alla fine e' tutto pronto...

Con LDAP lanciato, con l'opzione di debug piu' "debug" che esista (mi dovrebbe loggare tutti i bit che passano da quella porta, in teoria), lanciamo nmap e speriamo di vedere qualcosa muoversi dall'altra parte. Speranza vana...

Visto che nessuno di noi tre conosce LDAP, decido che e' ora di spedire un'E-Mail alla MailingList, per chiedere aiuto. Dopo numerose E-Mail scambiate con un mio amico iscritto a quella ML che ha gia' installato LDAP, ci troviamo, verso le 15:30, disperati senza sapere piu' cosa fare per cercare di far andare quell'arnese. L'ultima E-Mail dell'amico e' una via di mezzo tra la presa per i fondelli e la disperazione assoluta. Visto che e' importante per capire come sono finite le cose, la riporto in toto:

> Allora prova a fare cosi':
> 1) Spegni il computer
> 2) con la mano destra afferra la caviglia sinistra
> 3) con la mano sinistra prendi un cucchiaio
> 4) sopra al cucchiaio metti una pallina da ping-pong e metti l'altra
> estremita' del cucchiaio in bocca
> 5) ora con la mano sinistra che e' tornata libera prendi una torcia
> accessa e mettiti in posizione "statua della liberta"
> 6) riaccendi il computer
> In bocca al lupo!!!!

La traduco in tedesco a favore di P1 e ZL (ma si uniscono alle risate anche tutti gli altri programmatori presenti) e ci facciamo una bella risata liberatoria, finita la quale siamo di nuovo, come si dice dalle parti dalle quali provengo, al pian dei babi.

Piccola pausa per un meritatissimo Caffe'. Decidiamo di pensare ad altro per qualche momento, chissa' che non ci venga una buona idea. Dopo un'oretta arriva P2 che prova a lanciare la sua idea.

P2: Ma se noi provassimo a debuggare tutto cio' che passa da quella porta, magari capiremmo qualcosa, no?
IO, P1 e ZL: Ma e' tutto il giorno che lo facciamo...
P2: Vabbe'! Facciamolo ancora una volta!

E vai che si riprova. Ovviamente, dopo i messaggi iniziali che dicono che il DB e' stato caricato e che il server e' in ascolto, non succede una mazza di niente.

Disperati, io e P1 decidiamo di provare a riconfigurare da zero il server. Copia di sicurezza dei files originali (hai visto mai che possano ancora servire!), spianamento della directory del DB, configurazione minimale presa da openldap.org. Picche! Pero' almeno dice qualcosa: Syntax error in line 2 (la riga 1 e' un commento...) Rispetto a prima e' quasi incoraggiante. Alla fine, sono quasi le 17:30, decidiamo di provare il suggerimento arrivatomi per E-Mail e ci lanciamo senza paracadute nella programmazione Voodoo.

Nuovamente cancelliamo la directory del DB, con le prove assurde che abbiamo fatte e via che si riparte da zero. O quasi da zero. Visto che da zero non funziona, proviamo ad usare il file di configurazione di prima (quello che faceva si che il server restasse in attesa senza far niente). Lanciamo il server e, sorprendentemente, dopo l'inizializzazione, appare qualche linea in piu'. Di bene in meglio! ldapsearch trova anche un server ad attenderlo, anche se poi fallisce miseramente nella lettura dei dati (e vorrei vedere il contrario! Non ce n'erano!). Proviamo a creare un dato di test, secondo l'esempio fornito da openldap.org: funziona! Proviamo l'applicazione con quel dato di esempio: crasha miserrimamente.

OK! E' arrivato il momento di andare fino in fondo al rituale: Prendiamo tre cucchiai dalla cucina, due torce elettriche (uno di noi fara' senza) in mancanza delle fiaccole, soprassediamo sulle palline da Ping-Pong, e seguiamo fedelmente il rituale, tra gli sguardi un po' stralunati dei colleghi (ma neanche tanto: si vede di peggio li dentro!) e assumiamo la posa di "Statua della Liberta'", con la mano destra che afferra saldamente la caviglia sinistra. A quel punto, con grande senso dell'equilibrio, saltellando su una gamba, mi avvicino alla mia Workstation e procedo a COPIARE I VECCHI DATI SU QUELLI DI PROVA. Riprendiamo la posizione rituale e chiediamo a P2 di lanciare il demone. Piccola parentesi: ho sempre riso di gusto in faccia a tutti quelli che mi propongono la validita' dei cartomanti, medium e ciarlatani vari e non mi aspettavo (non CI aspettavamo) nessun risultato da questa commedia, ma eravamo al punto che non sapevamo proprio piu' se chiamare un'esorcista o provare il rituale. Visto che, sulle pagine gialle di Dresden, non c'e' la voce esorcisti, abbiamo provato il rituale, prima di cercare in altre citta'.

GIURO CHE NON MI STO INVENTANDO NIENTE!! Appena P2 preme invio, il server LDAP si fa tutte le sue inizializzazioni e, dopo le pernacchie di rito, si pone in attesa. P2 (io, ZL e P1 eravamo sempre "in posa"), prova a lanciare ldapsearch che... TROVA IL SERVER E LEGGE I DATI!!!!

A quel punto riassumiamo la posizione normale (o quasi: l'espressione facciale di noi tre era tutto meno che normale) e proviamo a lanciare l'Applicazione che legge tranquillamente tutti i dati dal Server LDAP...

Ci guardiamo e nessuno ha il coraggio di dire niente... I files di configurazione sono gli stessi che c'erano stamattina, quando non funzionava. Lo stesso dicasi del DB che ho provveduto a copiare sui dati fittizi. Non siamo riusciti a trovare nessuna spiegazione logica... Rimane proprio solo quella della programmazione Voodoo...

E con questa nota magica, decidiamo di andarcene a casa a meditare sulle stranezze del nostro lavoro...

Luca Bertoncello


Copyright Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione, cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.

Questo sito e' composto interamente con VIM

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' per nessuna risoluzione particolare ne' impone l'uso di font particolari. Siate liberi di vederlo come vi pare e piace.
Web Interoperability Pleadge is this a valid html document?

Ultimo aggiornamento: 23 Maggio 2003