Una panoramica sul mondo della Sicurezza Informatica, del Networking, della Virtualizzazione e non solo. Blog particolarmente indicato per i reparti IT che comunque alterna articoli scritti per specialisti con articoli formulati con linguaggio semplice e comprensibile a tutti.

Ogni articolo di questo blog è stato integralmente scritto dall'autore. Il contenuto è completamente originale e la riproduzione, anche parziale, è vietata salvo autorizzazione.

mercoledì 12 agosto 2015

Windows 10: Prime impressioni

In questi giorni, complici i temporali e le ferie, ho avuto modo di installare e provare Windows 10. Intendiamoci, ho alle spalle una decina di ore di utilizzo e non sono sufficienti a dare un parere completo. Ma al tempo stesso mi ha meravigliato la frequenza dei bug in cui mi sono imbattuto in così poche ore.


Installazione


Un'odissea. Il popup rassicurante fa ben sperare. Nella realtà ho installato Windows 10 su 3 macchine e nella migliore delle ipotesi ha scaricato per ben due volte i file di installazione (non capisco perchè cestinare, in seguito ad un problema nell'installazione, 2,5Gb per poi riscaricarli nuovamente...). Rassegnato sono stato costretto a scaricare la ISO offline per poi procedere ad un'installazione classica (che va fatta dal sistema operativo precedente, e non partendo dalla ISO al boot).

Dei 3 PC, solo 2 hanno completato l'installazione (dopo molte ore). Il mio consiglio è di non perdere tempo e aggiornare direttamente dalla ISO offline. E buona fortuna.



Interfaccia


Molto gradevole il nuovo menu start. Anche se non trovo comodo lo spazio che toglie la nuova barra di ricerca. Decisamente troppo. Oltretutto la ricerca al suo interno è lenta e scoraggia l'utilizzatore. Non aspettatevi Spotlight, insomma. Cortana, il nuovo sistema di ricerca assistita, sembra essere stata una manovra dell'ultim'ora per non perdere terreno rispetto ai concorrenti.




Convergenza


Sembra essere la parola d'ordine di tutti i maggiori player. Un tablet, un telefono ed un computer non devono avere differenze sostanziali. A qualcuno può piacere, ad altri no. Personalmente utilizzo un computer perchè mi aspetto qualcosa di diverso da un tablet (altrimenti utilizzerei quest'ultimo), e mi innervosisce vedere questa grafica essenziale da touchscreen. Va a finire che ogni device prende i difetti del sistema che non è riuscito a coprire con il suo hardware.



Non lo apprezzai a suo tempo su MAC, non lo apprezzo ora su Windows 8 e 10. E lo trovo del tutto ridicolo su sistemi operativi server come il 2012 ed il 2012R2.




Wireless


Pare che Microsoft abbia deciso di imitare Apple proprio su tutto (non solo sul "10", sullo store, sull'assistente vocale, sui sistemi unificati, su time machine su supporti usb, ...), anche sui problemi del wireless. Per Yosemite il wireless è stato un vero e proprio massacro, al terzo aggiornamento ancora non si trova la quadra. Microsoft poteva essere da meno? Il wifi funzionava perfettamente, sarebbe stato inopportuno lasciare le cose invariate.


Ed ecco che tutti lamentano la necessità di riavviare continuamente per far funzionare la propria scheda wifi.



Sicurezza

Francamente mi aspettavo di più. Ok il menu Start superattraente, ok Cortana, ok lo store... si ma queste, a mio avviso non sono prioritarie. Cryptolocker è una priorità, il controllo remoto e non autorizzato della macchina è una priorità.

Francamente non mi sembra si sia mosso granchè in ambito security, anzi. Con le nuove funzioni di integrazione con Active Directory, un account potrà salvare le sue password ed i suoi account all'interno del Dominio AD. Comodo... e se il DC server viene compromesso? Addio dati di tutti. E se un PC viene compromesso? Addio a tutti gli account dell'utente, non solo quelli memorizzati su quella macchina. E poi vai a scoprire che macchina ha la backdoor se tutte vedono tutto... a me non convince. Spero di ricredermi...

Ma sarebbe stato così complesso inserire dei limiti nell'eliminazione delle shadow copy o nell'alterazione massiva dei file da parte di un processo? O nell'acquisizione di audio ambientale o delle schermate?



Conclusioni


Ho apprezzato molto la possibilità di impostare la priorità dei processi su windows 8, non capisco perchè questa splendida funzione non sia stata riportata su 10. Questa ed altre innumerevoli micro "angherie" di cui non capisco la motivazione, unite ad altrettanti innumerevoli micro bug, mi portano a pensare che Windows 10:
  1.  sia stato rilasciato in maniera estremamente prematura;
  2. non apporti quella ventata di innovazioni che ci si aspettava, soprattutto da un punto di vista di sicurezza, dove Microsoft dovrebbe francamente fare di più;
  3. non sia ancora adatto ad utilizzi aziendali (non oso immaginare cosa possa accadere con le nuove funzioni AD);
Windows 10 ha delle potenzialità, ma si è pensato troppo alla grafica e poco al debugging e alla sostanza. Ma c'era tutta questa fretta di rilasciarlo, oltretutto a fine luglio... ??

Continuo a dire, magari contro corrente, che Windows 7 era ed è il miglior sistema sfornato da Microsoft. Magari mi ricrederò intorno alla soglia dei 5Gb di aggiornamenti...



Edit 2015/09/16

Windows 10 sembra essere particolarmente sensibile nei collegamenti ai FileServer. Se si possiede un classico FS e questo rimane inservibile anche per un breve periodo di tempo, è necessario riavviare il Client con Windows 10, altrimenti le cartelle di rete non saranno assolutamente più visibili (anche se, ovviamente, il FileServer è risalito).

venerdì 7 agosto 2015

2015Q1Q2 Considerazioni in ambito sicurezza informatica

Gli ultimi avvenimenti stanno condizionando pesantemente il mondo informatico. Modalità criminali sempre più spietate e sempre meno "didattiche", ma finalizzate alla monetizzazione, stanno trasformando il panorama informatico in una vera e propria giungla (oltre quanto non lo fosse già).

La sensazione, alla luce degli ultimi accadimenti, è quella di una totale impotenza dinnanzi all'insicurezza delle apparecchiature che quotidianamente fanno muovere il pianeta. Proviamo a fare il punto di questo primo semestre del 2015.


CryptoLocker, CryptoWall et simila

Un tempo il mondo della sicurezza informatica, nella sua accezione più variegata, aveva comunque delle regole. Chi attaccava, spesso, si poneva degli interrogativi etici, ragionava in virtù di un tornaconto, ma che comunque non inficiasse gravemente la propria vittima. Adesso le cose sono cambiate, ed era solo questione di tempo perchè l'adolescente freschezza lasciasse spazio ad una incurante spietatezza. Ed arrivò CryptoLocker, l'estorsore.
CryptoLocker è un malware a km 0. Dal produttore al consumatore. Per monetizzare l'inventore lo vende all'attaccante che incassa dalla vittima direttamente. Non deve più rivendere qualcosa nel deep web, con innumerevoli passaggi attraverso un non ben meglio noto black market. I tuoi dati vengono crittografati, tu paghi per riaverli. Fine. Spietato, pragmatico, immediato. CryptoLocker traccia una linea e separa due epoche informatiche, definisce permanentemente la fine dell' "adolescenza" degli attaccanti. Di cryptolocker mi affascina non la modalità, nè la tecnica (banale, quanto il suo metodo infettivo da ABC del piccolo hacker) nè l'idea (tutto sommato semplice), ma la socialità. Mi stupisce la fine di un'etica che, comunque e per quanto spesso irrisoria, stava tutto sommato alla base di questo mondo.
Le sue varianti CryptoWall sono in grado di cancellare backup, shadow copy, dischi di rete... e sono così tante che molte non vengono nemmeno identificate.
Se pensate che questo sia il peggio, sappiate che non abbiamo nemmeno iniziato.


HackingTeam e lo spionaggio governativo

Qui si apre un altro scenario, grazie alla ben nota vicenda HackingTeam. Senza soffermarci troppo sul caso in se, la vicenda ha mostrato in tutta la sia semplicità 
  1. quanto sia banale compromettere macchine ed assumerne completamente il controllo (e persino far lasciare al software "forense" prove di reato... ma questa è un'altra storia e la magistratura si occuperà di valutarne la veridicità);
  2. quanto l'NSA sia potente e possa controllare sostanzialmente ogni informazione (in alcuni passaggi è emerso che, nonostante HackingTeam sia una multinazionale di tutto rilievo, non sia praticamente nulla in confronto all'NSA che sistematicamente è presente praticamente ovunque con una "potenza di fuoco" illimitata);
  3. quanto possa essere conveniente creare un software gratuito ad alta diffusione e che contenga delle backdoor rivendibili a chi le deve usare di mestiere (uh.. il responsabile della Security di Facebook ha bandito Flash... la verità è che ci siamo un pò tutti stancati di questo colabrodo);
C'è anche un aspetto positivo, ora sappiamo che Karspersky Labs braccava dal 2013 HT e forse (si vocifera) avrebbe cercato di corrompere alcuni sviluppatori interni con mezzo milione di euro per la creazione di un antidoto. Quindi è emersa la vera potenza di sistemi antivirus come Karsperky, seguito da Sophos, e quanto siano in grado di investire nei loro prodotti.

Una chicca: era in progetto di sviluppare dei micro-droni a ricarica solare in grado di atterrare autonomamente nei pressi di una rete wifi specifica compromettendone la sicurezza e, quindi, infettandone le macchine. Fantascienza? No, tutta la tecnologia è ampiamente disponibile, tutto sommato serviva solo avere l'idea. Ed ora l'idea è pubblica.


Firmware Injection

Un interessante articolo di Repubblica (qui) spiega un nuovo scenario, fin'ora sempre toccato in maniera più o meno collaterale, ovvero che un'infezione possa avvenire direttamente dal firmware delle periferiche che colleghiamo alla nostra macchina. Bene, ora è realtà ed è stato dimostrato che PC e MAC possono essere resi inutilizzabili definitivamente (formattare non risolve) semplicemente collegando una periferica o una scheda con firmware infetto.
Che scenari si aprono? Un mondo.

A breve, quindi:
  1. in perfetto stile CryptoLocker potremmo ritrovarci con una macchina davvero inutilizzabile (a partire dal bios) salvo corrispondere un pagamento;
  2. dovremo far attenzione ad acquistare hardware su internet, poichè al costo basso di una periferica potrebbe corrispondere un illecito guadagno derivato da un'attività successiva e correlata;
  3. infezioni inattive ed azionate a comando potrebbero partire tutte insieme, mettendo in ginocchio intere aziende
Anche qui... fantascienza? Mannò, è noto che l'NSA alteri sistematicamente i firmware di alcune macchine destinate a paesi "caldi". Ci sono innumerevoli articoli tecnici di come l'alterazione di un firmware di un hard disk possa compromettere la stabilità della macchina o dei dati in esso contenuti, ed è tristemente noto che l'acquisto di hard disk usati possa essere passibile di queste problematiche ("controllate che non vi siano saldature strane sul circuito sotto al disco", recitava un promemoria qualche tempo fa).


ShellShock, HeartBleed e chi più ne ha più ne metta

In ambito Linux non siamo messi meglio, i recenti ShellShock e HeartBleed, rispettivamente su bash (software più stabile penso non esista...) e openssl (su cui gira praticamente tutto) nascondevano incredibili vulnerabilità, classificate per la prima volta come 10/10/10 (potenzialmente e realmente di una pericolosità fuori dal mondo). Non c'è più riparo... salvo diventare "eremiti informatici" come Stallman...


Insicurezza informatica

Come dire... ClamAV ha dichiarato di recente di non riuscire a classificare oltre il 30% dei nuovi virus che vengono creati quotidianamente. Dropbox ha visto compromessi 7 milioni di account, intere Certification Authority hanno fallito perchè compromesse e persino chi fa "attacco informatico" si è visto 400Gb di dati e email spiattellati su Wikileaks... che considerazioni possiamo fare?

Riporto un aneddoto. Quasi 10 anni fa mi chiamarono per fare un'analisi su un server. Era evidente che fosse stato compromesso, ma era un server su cui non c'erano dati importanti... si trovava in DMZ e tutto sommato gli attaccanti stavano usando anche poca banda. Il server era difficile da migrare o da ripristinare, quindi il cliente mi confessò che avrebbe lasciato il mondo come stava e, seppur tenendo sotto controllo la situazione, non sarebbe comunque intervenuto. Come per un sistema vivente, il parassita non creava problemi e andava bene così. Oggi tutto questo sarebbe impensabile, gli attacchi si sono incattiviti, non c'è più scrupolo e dove ieri si scippava, oggi si spara a bruciapelo.

E' convenuto avere tutta questa libertà? Io non sono nessuno per giudicare, ma temo che il motto "sul web siamo tutti liberi" possa lasciare troppo spazio ad anarchie ed attività illegali assolutamente fuori controllo.

Stiamo vivendo in piena insicurezza, le armi difensive sono assolutamente inefficaci.

Immaginate cosa accadrebbe se lo sviluppo Microsoft fosse compromesso. Nel giro di un aggiornamento avremmo l'apocalisse. Aeroporti fermi, mercati finanziari fermi, compagnie elettriche, aziende chiuse (dalla S.p.A. al tabaccaio). I computer sono alla base dell'umanità per come la conosciamo oggi, senza riusciremmo a far funzionare tutto? E se una nuova vulnerabilità in grado di infettare le macchine intaccasse Microsoft? O Google? O Facebook? Non mi sembra uno scenario poi così irrealizzabile... nonostante osservatori e sforzi governativi...

martedì 21 luglio 2015

Hard Disk, una breve panoramica nel mondo NAS/SAN oriented

Premessa a tutti gli articoli riguardanti l'argomento storage

Ormai è più di un mese che approfondisco la questione storage e, grazie anche all'aiuto di colleghi particolarmente esperti nel settore (e che gentilmente hanno deciso di condividere le proprie esperienze all'interno di gruppi di discussione) ed a specifici ed importanti investimenti, sia in corsi di formazione (multivendor) sia in hardware, ho scoperto che alle spalle dell'argomento Storage c'è un mondo molto più ampio e molto meno banale di quanto si possa normalmente immaginare. Normalmente si tende a pensare che sì, sia un settore importante ed articolato, ma comunque entro certi limiti. Invece più vado avanti e più lo scenario di arricchisce di variabili, opzioni, riflessioni e nodi da comprendere. Anche perchè, diciamocelo, sbagliare lo storage in una virtualizzazione è un attimo, le cui conseguenze sono spesso anche irrimediabili.

Nel mio piccolo, ho deciso di condividere i miei studi ed i miei approfondimenti trattando l'argomento in vari articoli così suddivisi:

- Gli Hard Disk
- La SAN (cache, RAID, performance)
- Il collegamento tra SAN e Infrastruttura Virtuale (performance e riflessioni sull'hardware, iSCSI, NFS, SAS, FC)

Con l'occasione, metterò anche ordine alle mie idee.

Questo primo articolo riguarderà, appunto, le dita della mano, ovvero i Dischi. Argomento indubbiamente più semplice di tutti, ma non meno importante, anzi.


Tipologie

Tanto per iniziare, i dischi si dividono in 4 macro categorie:
  1. SATA, 7.200 rpm, 70 IOPS medi, capienti e molto economici
  2. SAS 10.000 rpm, 140 IOPS medi, meno economici ma più performanti dei SATA
  3. SAS 15.000 rpm, 200 IOPS medi, molto veloci ma abbastanza costosi
  4. SSD, 100.000 IOPS medi (chi più chi meno), velocissimi (un altro pianeta, soprattutto in R/W random), ma costosissimi
I primi tre dischi sono di tipo magnetico, il quarto è a memoria a stato solido. Ovviamente, all'aumentare delle prestazioni aumenta esponenzialmente il costo per GB. Un elenco ben dettagliato è disponibile qui.


Fin qui nulla di nuovo, nel dimensionare uno storage i dischi saranno spesso il punto più importante, sia per costi, sia per prestazioni. La scelta dei dischi condizionerà pesantemente ogni altra riflessione (che comunque vedremo negli articoli successivi). Già in uno storage a 24 o 48 baie, è facile comprendere che spendere 110 euro a disco di 3Tb/cad è diverso da spenderne 650 per 120Gb/cad. A prescindere dalla ridondanza, dal numero di controller e dall'espandibilità, salta subito all'occhio che il dimensionamento di uno storage è il frutto di un compromesso tra performance, costi e capienza. Sempre.


Dischi economici e dischi enterprise: panoramica


Perchè, ad apparente parità di tecnologia e performance, un Hard Disk di fascia alta può costare anche quattro volte rispetto ad uno di fascia bassa?

Sono sincero, ci ho messo giorni a scremare le inutili informazioni commerciali dalle ben più importanti motivazioni tecniche. Alla fine un disco deve essere veloce (per la sua tecnologia), capiente (quanto ci basta) e non rompersi. Ma questi tre elementi sono tutt'altro che banali.

Per comodità (ma appena posso farò lo stesso per Hitachi e Segate), proviamo a prendere un semplicissimo disco da 2Tb SATA Western Digital.

Ecco cosa possiamo prendere oggi da WD:
  • WD Blue 2Tb SATA a 75 euro circa (se esistesse il taglio da 2Tb)
  • WD Green 2Tb SATA a 95 euro circa
  • WD Black 2Tb SATA a 143 euro circa
  • WD VelociRaptor 2Tb SATA (10krpm) a 300 euro circa
  • WD Purple 2Tb SATA a 99 euro circa
  • WD Purple NV 2Tb SATA a 115 euro circa
  • WD Red 2Tb SATA a 119 euro circa
  • WD Red Pro 2Tb SATA a 148 euro circa
  • WD Re 2Tb SATA a 183 euro circa
  • WD Re+ 2Tb SATA a 200 euro circa (se esistesse il taglio da 2Tb)
  • WD Se 2Tb SATA a 153 euro circa
  • WD Ae 2Tb SATA a 120 euro circa (se esistesse il taglio da 2Tb)



Ok... sono tutti 2Tb SATA (ipoteticamente)... ci sarà qualche differenza? Alla fine, che vuoi che cambi?
Tanto per iniziare, quelli che ho evidenziato in verde sono ad uso desktop, quelli in viola ad uso intensivo (videosorveglianza e nas) e quelli in blu ad uso datacenter. Scartiamo dalla nostra lista (l'articolo parla di SAN e NAS), quindi, tutti i dischi per desktop (che hanno caratteristiche non compatibili con le alte affidabilità e le basse vibrazioni prodotte che vengono chieste su sistemi di array) e gli hard disk specifici (i purple per la videosorveglianza, anche se si avvicinano molto ai red per caratteristiche). Scartiamo anche i dischi per archiviazione massiva (grandi dimensioni specifici per archivi), quindi via i Re+ e gli Ae. Ci rimandono, quindi, questi tre dischi:


WD Red
La serie Red è la prima serie per NAS. Un disco "onesto", che fa bene il suo lavoro. Affidabile e con tecnologie specifiche, sostanzialmente l'entry level di un array da 2 a 8 dischi. Anche la garanzia viene estesa rispetto a prodotti desktop.



WD Red Pro
La serie Red Pro è studiata per lavorare in array di maggiori dimensioni (8-16), quindi ha delle tecnologie particolarmente rivolte a non produrre vibrazioni (dannosi per i dischi adiacenti) e a proteggersi dalle vibrazioni. Tralasciando le specifiche squisitamente commerciali, questo disco è il primo ad avere un doppio attuatore e l'albero motore ancorato ad entrambe le estremità. Tecnologie particolari si occupano di bilanciare attivamente i piatti per evitare le vibrazioni.
Da qui i dischi, inoltre, subiscono dei test approfonditi prima della vendita.



WD Re
Questo disco è l'enterprise di WD. Oltre alle tecnologie precedenti, i dischi subiscono ancora più controlli prima della vendita (con anche cicli termici) ed hanno un doppio processore di gestione (vedi immagine di confronto tra la piastra di un RED e quella di un RE). La testina, inoltre, sfrutta una particolare tecnologia anti usura che ne aumenta la longevità, insieme ad altre tecnologie specifiche per aumentarne l'affidabilità generale. Questo disco, inoltre, ha un sensore multiassiale, in grado di compensare gli urti affinchè i dati siano protetti.





Perdonatemi se ho trattato solo WD, ma ha una delle gamme più chiare e complete del panorama e mi è tornato estremamente utile per meglio mettere a fuoco le differenze tra dischi apparentemente simili.

Lo scopo di questo articolo era comprendere cosa rende architetturalmente un disco costoso, performance e MTBF a parte.


Discaimer: Ogni articolo di questo blog è stato integralmente scritto dall'autore. Il contenuto è completamente originale e la riproduzione, anche parziale, è vietata salvo autorizzazione.

sabato 13 giugno 2015

Cosa sono e come si utilizzano le VLAN

Non è inusuale che l'utilizzo delle VLAN 802.11q sfugga anche agli addetti ai lavori o ai responsabili IT. Proviamo a semplificare i concetti in maniera banale ma immediata.



Cos'è una VLAN?


Uno degli errori più comuni consiste nel pensare che la suddivisione del traffico possa essere effettuata semplicemente agendo sulle classi IP delle macchine.


Questo scenario, se lo switch non viene opportunamente istruito ad utilizzare le vlan, è errato per vari motivi:
  • A livello di sicurezza, una macchina in grado di variare il proprio indirizzo IP si può ritrovare facilmente sull'altra rete
  • Il traffico di broadcast non è stato limitato (con 6 macchine, questo non è un problema, ma dalle 5-600 in su è tangibile una riduzione delle performance di rete e un carico eccessivo sulle macchine impegnate a scartare frame e pacchetti non a loro destinati)
  • Un eventuale server DHCP non è facilmente utilizzabile, perchè non ha elementi per assegnare indirizzi a macchine sconosciute (e comunque effettuare una reservation per ogni macchina non è affatto banale in reti voluminose)
  • Svariati altri motivi

La VLAN nasce per suddividere il traffico. Nel nostro scenario, creare due VLAN, significa aver creato due "compartimenti stagno" in grado di non entrare in contatto l'uno con l'altro (salvo realizzare eccezioni e punti di routing, ma lo vedremo più avanti).


Possiamo dire, quindi, che l'aver creato due VLAN ha trasformato il nostro switch in "due switch distinti". Al pari di averne utilizzati due. E' una terribile banalizzazione, intendiamoci, ma necessaria a spiegare in maniera basilare il meccanismo. Non me ne vogliano i puristi.


A questo punto dell'architettura, la situazione di cui sopra è, tutto sommato, simile a questa:


Abbiamo ottenuto una suddivisione "reale" del traffico delle due sottoreti. Due host appartenenti a due vlan diverse, in questo scenario, non si potranno mai parlare. Non solo sono due domini di broadcast distinti, ma il traffico realmente non arriva nelle reti adiacenti.



Tag, Untag, (cisco) Trunk e Uplink


Partiamo con il dire che le VLAN si gestiscono a livello di porte o generando interfacce virtuali. Le due modalità primarie delle vlan sono "untagged" e "tagged".

Una porta classificata come vlan untagged è una porta su cui è collegata una NIC che non conosce lo stato delle vlan, semplicemente vi si ritrova dentro. Per capirci, tutti gli switch non configurati hanno le porte untagged nella vlan1. Tipicamente si tratta di  host e server a servizio di una singola rete.

Una porta classificata come vlan tagged, trasferisce tutto il traffico di tutte le vlan taggate sulla porta (pur mantenendole separate, ovviamente). Si tratta di porte dedicate al collegamento tra apparati di rete (switch to switch, switch to firewall, access point to switch, etc.) oppure tra lo switch ed un server che eroga servizi a più vlan (reti).


Nel nostro caso, presupponendo si tratti di uno switch HP, la configurazione sarebbe stata semplicemente la seguente:

vlan 10 untagged 1-12
vlan 20 untagged 13-24


Adesso abbiamo un problema... immaginiamo di avere due switch su cui propagare le due vlan create, ma abbiamo a disposizione un solo link (di qualsiasi natura, fibra ottica, rame, radio, etc..).



A questo servono le porte tagged, ovvero a trasferire il traffico di più vlan utilizzando uno stesso mezzo trasmissivo. Il traffico rimarrà diviso ed entrambi gli apparati saranno in grado di ripropagare alle porte untagged il relativo traffico di appartenenza.

La configurazione, in questo secondo scenario e presupponendo sempre di trovarci su switch HP in cli, è questa:

vlan 10 untagged 1-12
vlan 10 tagged 25,26
vlan 20 untagged 13-24
vlan 20 tagged 25,26




Si noti come siano state taggate entrambe le porte di uplink. Non è obbligatorio nè necessario, ma in uno scenario simile è la norma.

In caso di LACP, la porta trk va trattata come una porta fisica e non è necessario agire sulle porte singole.

Le porte "trunk" (cisco) o uplink (allied telesis), non sono altro che porte che trasferiscono tutte le vlan automaticamente, senza preoccuparsi di specificare i tag. Personalmente uso solo untag e tag gestendo manualmente le propagazioni, ma è una scelta personale e che per alcuni può apparire meno comoda.

NB: Quando utilizzo una porta per trasferire il traffico di due o più VLAN, a differenza di quanto indicato nell'esempio di cui sopra, alcuni apparati non consentono l'utilizzo di una modalità "full tag", ma necessitano comunque di avere almeno una VLAN che sia untagged.


VID


Il VLAN ID è il numero identificativo, da 1 a 4096, della VLAN. Tutti gli apparati 802.11q compliant comunicano con il VID. Il nome della vlan è solo una convenzione e non ha alcuna valenza nel trasferimento delle informazioni.

Nella progettazione di un'infrastruttura di rete con le vlan è opportuno, inoltre, stabilire un VID di management, ovvero una vlan diversa da tutte le altre dove si trovano nativamente tutti gli apparati. Sarebbe inopportuno settorializzare ma consentire l'accesso agli switch da una vlan tradizionale. In caso di problemi, operazioni di manomissione degli switch vanificano, in un attimo, il lavoro di suddivisione.

Per convenzione (anche qui, non obbligatoria), quando possibile è opportuno associare il VID all'indirizzo di rete. Ad esempio: 192.168.45.0/24 avrà il VID 45. 172.16.99.0/24 avrà il 99, e così via.



Punti di routing ed eccezioni, gli switch di livello 2 e 3


Non sempre mantenere tutte le vlan divise è un bene, a volte uno stesso server deve essere consultato da più vlan pur trovandosi all'interno di una sola, e così via per una serie di altri servizi che possiamo considerare "intravlan". Immaginiamo un Comune con vlan divise tra Ufficio Tributi, Ufficio Anagrafica, Ufficio Personale... ma con l'esigenza di accedere ad uno stesso server interno per consultare un database unico. 

Ricordando che le vlan devono avere subnet diverse, un punto di routing (il gateway della vlan) può opportunamente gestire queste eccezioni (oppure semplicemente far ruotare le vlan verso un router di connettività internet). Ci sono diverse scuole di pensiero, c'è chi adopera switch di livello 3 (il cui unico scopo è quello di gestire il routing L3 del traffico delle vlan) e chi preferisce demandare il routing ad un firewall, in grado di "maneggiare" meglio e con più semplicità il traffico proveniente da tutte le sottoreti create.

Ad ogni modo, se non volete far gestire allo switch di centro stella il routing delle vlan, gli switch di livello 3 sono del tutto inutili (la funzionalità rimane spenta) ed in alcuni casi persino pericolosi.

Ho visto, inoltre, tantissimi progetti con tutti gli switch di livello 3. Nel 99,999% dei casi (sono generoso) sono del tutto inutili perchè, al massimo, il routing delle vlan si demanda al Centro Stella. E' del tutto inutile, quindi, che uno switch di distribuzione orizzontale possa fare Layer 3. Salvo non trovarsi in un campus di 10.000 host, ovviamente (ma in questo caso parleremmo di altre dinamiche e delle funzioni avanzate di routing degli switch, delle licenze OSPF e RIP ...e così via... insomma, non staremmo qui a leggere questo articolo).

Una nota sul forward va fatta: attenzione a tutti gli apparati che consentono la gestione dei tag vlan. E' frequentissimo che server con NIC multivlan abbiano erroneamente attivato il forward (personalmente trovo questa casistica persino superiore a quella "tradizionale"). In questo caso per un client sarà sufficiente cambiare il proprio gateway (inserendo l'ip del server erroneamente configurato) per attraversare le vlan (seppur con alcuni limiti dovuti al percorso di risposta).



Le vlan sul wireless


Con lo stesso principio, possiamo avere un access point che propaga 4 reti diverse, e sulla porta LAN comunica allo switch che il traffico delle rete wireless 1 appartiene alla vlan 1, il traffico della rete wireless 2 alla vlan 2 e così via. A voi intuirne le potenzialità.


Maggiori dettagli

Maggiori dettagli sono reperibili sul mio libro in cui vengono approfonditi argomenti riguardanti gli switch nel primo capitolo: CyberSecurity Creativa.

Il libro è reperibile su amazon a questo link anche in formato kindle:  >> qui <<.

Mentre l'elenco degli argomenti del primo capitolo è il seguente:

Capitolo 1 – Lo switch è tuo amico!

Cosa sono e come si utilizzano le VLAN 802.1q?

Tag, Untag, Trunk e Uplink e Private VLAN

Le vlan sul wireless (come suddividere correttamente le reti)

La compartimentazione e la DMZ

Chi deve fare routing?

Forwarding abusivi

SNMP: suvvia... Ma c’è qualcuno che se ne preoccupa?

Non buttate quegli hub! L’antenato del mirroring

Spanning Tree manipulation attack (e un caso concreto)

Port Security, MAC LockOUT e learning

DHCP Snooping: evitare il rilascio non autorizzato di IP





Discaimer: Ogni articolo di questo blog è stato integralmente scritto dall'autore. Il contenuto è completamente originale e la riproduzione è vietata salvo autorizzazione.

giovedì 4 giugno 2015

Come proteggersi dai CallCenter invadenti

Accade, purtroppo sempre più spesso, che CallCenter in totale non ottemperanza delle norme vigenti, contattino ripetutamente numeri telefonici senza alcuna autorizzazione e nonostante l'interlocutore abbia esplicitamente espresso la volontà di essere rimosso dalle liste.



Ho dato l'autorizzazione oppure no?


Iniziamo con il dire che è opportuno evitare di rilasciare l'autorizzazione al trattamento dei dati per finalità commerciali se non si vuole essere contattati. E' semplice buonsenso, se si mettono crocette ovunque senza leggere, il minimo che possa accadere è questo. Ad ogni modo è diritto di ognuno revocare, in ogni momento, la propria scelta. Questo vale sia per il numero di telefono, sia per gli SMS, sia per le email.

Particolare attenzione è necessario prestarla al consenso verso soggetti terzi che, sostanzialmente, autorizza il richiedente a trasmettere e condividere liste di nominativi con soggetti esterni. Probabilmente è proprio questa la parte più importante, non è inusuale assistere ad aziende che aprono, inviano comunicazioni commerciali e chiudono nel giro di poco, trasferendo il diritto ad utilizzare i nominativi a nuove aziende, in un circolo vizioso del tutto incontrollato.



Non sempre è tutto nella legalità


Purtroppo lo spam che io chiamo "semi autorizzato" (ovvero quello spam proveniente da marketing aggressivo ai limiti della legalità e che si trova in una zona grigia) è spesso complesso da combattere, però possiamo tentarci.

Fortunatamente non lavorano tutti così e, anzi, conosco personalmente CallCenter che gestiscono l'outbound in piena legalità e nel rispetto delle norme dettate dal garante della privacy.



Tuteliamoci


Ho ricevuto una telefonata sgradita, quali sono gli step da seguire?




Fase Uno: risolviamola pacificamente


  1. Veniamo a conoscenza dell'azienda che gestisce il CallCenter, quindi comunichiamo all'operatore la volontà di essere rimossi dalle liste. "Vodafone", "Wind", "Tre", "Tim" o "Enel", "Edison" e così via, non è una risposta che accetteremo, perchè i marchi sopra citati non fanno outbound (chiamate in uscita) ma ricevono solo inbound (chiamate in ingresso). Chi chiama sono le agenzie, e a noi interessa sapere il nome dell'agenzia. Esiste anche la "diretta" dell'operatore di turno, certo, ma cura clienti enterprise e non effettuerà chiamate alla "signora Maria", questo è poco, ma sicuro.
  2. Chiediamo quando abbiamo prestato il consenso. Se ci stanno chiamando, hanno trovato il numero da qualche parte oppure abbiamo esplicitamente prestato il consenso nei confronti di qualcuno. E' nel nostro diritto conoscere quando e a chi il consenso è stato dato.

Siate rispettosi del lavoro altrui, spesso l'operatore è solo un subordinato e non ha alcuna colpa della politica aziendale con cui avvengono le telefonate.



Fase Due: è arrivato il momento di segnalare al Garante


Quando la Fase Uno non basta ed i contatti continuano (da parte della stessa agenzia), è necessario segnalare il problema al garante.


  1. Innanzitutto dobbiamo inserire il nostro numero nel "Registro Pubblico delle Opposizioni" mediante l'apposita area gratuita http://www.registrodelleopposizioni.it/it/abbonati/home-abbonato - Maggiori informazioni si trovano navigando all'interno del sito, potrà iscriversi chi compare in registri pubblici ma non desidera essere contattato per motivazioni commerciali
  2. Passati 15 giorni, dopo esserci iscritti al registro pubblico delle opposizioni, possiamo compilare questo modulo Segnalazione telefonate pubblicitarie su utenza iscritta al registro delle opposizioni ed inviarlo all'indirizzo urp@gpdp.it oppure mediante PEC all'indirizzo urp@pec.gpdp.it


A questo punto il Garante verifica l'abuso e, in caso di accertata violazione, commissiona una multa da 10.000 a 120.000 euro.

Solo le persone fisiche possono utilizzare questa modalità gratuita, tutti gli altri soggetti sono tenuti ad avviare un'istruttoria che, normalmente, ha un costo iniziale di euro 150,00.



Fase Tre: "la guerra è guerra"


Nulla ci vieta di utilizzare sui nostri telefoni software in grado di BlackListare numeri di telefono e chiamate anonime. Esistono persino molti telefoni fissi con Android e che, quindi, possono ospitare facilmente questi software.

Per Android si trovano tonnellate di software e funzionano quasi tutti abbastanza bene in ambito chiamate ed SMS. Per Apple c'è qualcosa a pagamento e per BlackBerry, quando controllai, ebbi delle difficoltà nel reperire un'app realmente valida (ma non è escluso che abbia formulato male le mie ricerche o abbia dedicato troppo poco tempo al problema).



Mail Unsubscribe


Per le email il discorso è molto più ampio e verrà trattato in un articolo futuro. Per ora ci basta sapere che, a volte, i link "unsubscribe" non solo non annullano la sottoscrizione, ma comunicano agli spammer che l'email è realmente presidiata e la pubblicità è arrivata a destinazione, sortendo esattamente l'effetto opposto di quanto sperato. 

giovedì 28 maggio 2015

Nuova normativa europea sui cookie, in breve

Da qualche tempo ed in quasi ogni sito si vede spuntare la fatidica domanda "questo sito utilizza i cookie, acconsenti?". Proviamo a riepilogare, banalmente e con un linguaggio comprensibile a tutti (questo blog viene seguito da addetti ai lavori, ma anche da utenti comuni), di cosa si tratta.


Cosa sono i cookies in due parole?


I cookies sono delle informazioni che un sito memorizza all'interno del browser per ricordarsi di impostazioni e preferenze, ma non solo. Quando, ad esempio, accediamo a facebook cliccando su "ricorda login", le volte successive non inseriamo alcuna password. Questo perchè un cookie viene memorizzato nel nostro browser e, all'accesso successivo, viene richiamato dal sito per ricordarsi di noi.
Sto banalizzando, intendiamoci, ma indicativamente il cookie contiene informazioni che ci rendono riconoscibili.






Quindi? Perchè non dovrei accettarne l'utilizzo?


Perchè non tutti i cookie sono di natura tecnica. Alcuni cookie "traccianti" memorizzano informazioni che poi altri siti consultano per scopi pubblicitari. Se ora vado su un grande negozio online e cerco uno smartphone, mi ritroverò probabilmente per almeno una settimana la pubblicità mirata sempre su quello  stesso oggetto. Questo perchè il sito ha salvato un cookie contenente le mie preferenze (categorie ed oggetti consultati) ed altri siti nello stesso circuito pubblicitario vengono informati. Di conseguenza subirò una tartassante pubblicità riguardante quell'oggetto o quella categoria di oggetti. E' capitato a tutti.


Cosa è cambiato?


Una legge europea, cambiata svariate volte nel corso dell'ultimo quinquennio, stabilisce che l'utilizzatore venga esplicitamente informato sulle modalità con cui il sito stesso utilizza i dati raccolti. Tutto questo richiamando la Privacy Policy chiaramente visibile all'interno del sito e contenente anche le modalità di utilizzo dei cookie.
L'ultima variazione di questa legge prevede che l'utente debba accettare esplicitamente i cookie. Pena, multe da 6.000 fino a 120.000 euro per i rappresentati legali del sito web (in caso di omessa informativa e/o installazione dei cookie senza consenso).
Entro il 2 Giugno 2015, quindi, ogni sito deve chiedere esplicitamente l'autorizzazione all'utilizzo dei cookie. 

"Individuazione delle modalità semplificate per l'informativa e l'acquisizione del consenso per l'uso dei cookie” (Gazzetta Ufficiale n. 126 del 3 giugno 2014)


Solo pochi grandi brand hanno potuto strutturare una politica di accettazione davvero pienamente aderente alla normativa, in grado di consentire una scelta granulare.


E' una legge giusta?


A mio modesto avviso: no. Innanzitutto perchè i cookie sono fondamentali per la navigazione, quindi la maggior parte dei siti pone l'utente dinnanzi ad un out-out "se non accetti, esci". 
In secondo luogo perchè ogni messaggio ripetuto diventa inesorabilmente inutile, se ogni sito chiede di utilizzare i cookie e ti fa cliccare su "ok", alla fine diventa solo un'operazione in più, senza alcuna riflessione da parte dell'utente. Un pò come le escalation di permessi di Windows, quando ne chiedi troppi, l'utente tipico cliccherà sempre su OK, senza leggere di cosa si tratta ma solo per effetto della familiarità che genera il messaggio.
Terzo, non vi è grande distinzione tra i cookie lesivi della privacy e quelli tecnici, la legge (pur cercando di discernere) ha fatto, in realtà, di tutta un'erba un fascio. Ci sono cookies innocui e cookies estremamente lesivi della propria privacy, ma la difficoltà nel capire il sottile limite che li differenzia, ha spinto quasi tutti i gestori di siti web a generalizzare ed adottare una formula di tipo "o tutto o niente".
Quarto: da sempre i browser consentono di bloccare i cookies, un utente smaliziato poteva già intervenire in tal senso. E per l'utente medio non cambierà comunque nulla e cliccherà sempre su "accetta".
Sarebbe stato molto meglio che la richiesta esplicita fosse stata obbligatoria solo per i cookie traccianti e lesivi della privacy, escludendo completamente i cookie tecnici, ma anche quelli statistici senza profilazione. Solo allora un utente poteva giudizievolmente accettare o meno. Invece ora è costretto a cliccare sempre sull'autorizzazione, altrimenti i servizi sono negati, trasformando questa legge in un'inutile mossa con l'unico effetto di essere stata in grado di molestare centinaia e centianaia di milioni di utenti.


Plugin


Ci sono innumerevoli plugin per Joomla, WP e quant'altro. Io ne ho provati diversi ed ho deciso di utilizzare questo (per Joomla, gratuito). Non bisogna, tuttavia, dimenticarsi di inserire una Privacy Policy perfettamente compliant all'interno del proprio sito. Fatevi consigliare sempre da professionisti del settore. Se vi serve, ne conosco un paio davvero in gamba su questi argomenti.

martedì 12 maggio 2015

Raspberry PI, w1 Linux Raspian Kernel bug & Process Priority

Scenario

In alcune particolari condizioni, abbiamo avuto modo di verificare, io ed il mio collaboratore Senior Luca, dei Kernel Panic sollecitati dalla lettura del modulo 1wire.

Il kernel panic si verifica:

  • su kernel 3.18.9+, Raspian armv6l (non ho informazioni circa versioni differenti, più o meno recenti rispetto a questa)
  • solo su CPU mono core (quindi RaspBerry Pi 1 e non RaspBerry Pi 2)
  • quando istruzioni pygame sono in esecuzione
  • quando si verifica un overload della CPU (tuttavia questo non è estremamente rilevante)
  • quando il numero di processi python aumenta
  • a prescindere dalle sonde (ne abbiamo cambiate 10 e abbiamo cambiato 5 raspberry, riproducendo il problema anche con hardware completamente differente)

Cosa Accade

Inizialmente una serie di letture delle sonde w1 danno errori di CRC:


May 11 20:11:16 AS15C3101B kernel: [  392.757953] w1_slave_driver 28-000005a01d7f: Read failed CRC check
May 11 20:11:43 AS15C3101B kernel: [  419.917527] w1_slave_driver 28-00000696eb99: Read failed CRC check
May 11 20:12:30 AS15C3101B kernel: [  466.413438] w1_slave_driver 28-00000696eb99: Read failed CRC check
May 11 20:12:44 AS15C3101B kernel: [  480.799177] w1_slave_driver 28-0000054ebd49: Read failed CRC check
May 11 20:12:50 AS15C3101B kernel: [  486.936962] w1_slave_driver 28-000005a01d7f: Read failed CRC check
May 11 20:13:06 AS15C3101B kernel: [  502.939939] w1_slave_driver 28-0000054ebd49: Read failed CRC check
May 11 20:13:14 AS15C3101B kernel: [  510.917800] w1_slave_driver 28-000005a01d7f: Read failed CRC check
May 11 20:13:28 AS15C3101B kernel: [  524.425806] w1_slave_driver 28-0000054ebd49: Read failed CRC check
May 11 20:13:36 AS15C3101B kernel: [  532.149026] w1_slave_driver 28-000005a01d7f: Read failed CRC check
May 11 20:13:51 AS15C3101B kernel: [  547.247455] w1_slave_driver 28-0000054ebd49: Read failed CRC check
May 11 20:22:55 AS15C3101B kernel: [  394.467714] w1_slave_driver 28-0000054e5d76: Read failed CRC check
May 11 20:23:35 AS15C3101B kernel: [  433.749331] w1_slave_driver 28-00000696eb99: Read failed CRC check
May 11 20:23:49 AS15C3101B kernel: [  448.129373] w1_slave_driver 28-0000054e5d76: Read failed CRC check
May 11 20:23:59 AS15C3101B kernel: [  457.658434] w1_slave_driver 28-00000696eb99: Read failed CRC check
May 11 20:24:55 AS15C3101B kernel: [  513.698751] w1_slave_driver 28-000005a137c6: Read failed CRC check
May 11 20:27:48 AS15C3101B kernel: [  687.187439] w1_slave_driver 28-000005a137c6: Read failed CRC check
May 11 20:28:02 AS15C3101B kernel: [  701.376795] w1_slave_driver 28-000005a137c6: Read failed CRC check
May 11 20:33:18 AS15C3101B kernel: [ 1017.072088] w1_slave_driver 28-00000696eb99: Read failed CRC check



Successivamente tendono persino a scomparire per poi ricomparire a breve e, per finire, il kernel va in panic dando messaggi di errore anche in broadcast. 

Message from syslogd@AS15C1302B at May 11 20:39:56  ...
 kernel:[ 2614.966264] 5f00: 5550f5f9 37b02fc0 00001a62 dcef5f78 dcef5f3c dba05320 01825000 dcef4000
Message from syslogd@AS15C1302B at May 11 20:39:56 ...
 kernel:[ 2614.966286] 5f20: dcef5f78 00008000 01825000 00000000 dcef5f74 dcef5f40 c0137e6c c01a9a38
Segmentation fault


Nei /var/log/messages non c'è molto, a dire il vero:


May 11 20:34:56 AS15C3101B kernel: [ 1115.363581] Modules linked in: i2c_dev stmpe_ts snd_bcm2835 snd_pcm snd_seq snd_seq_device snd_timer snd evdev uinput fb_ili9340(C) fbtft(C) syscopyarea sysfillrect sysimgblt fb_sys_fops spi_bcm2708 i2c_bcm2708 8192cu w1_therm lirc_rpi(C) w1_gpio wire lirc_dev cn rc_core uio_pdrv_genirq uio
May 11 20:34:56 AS15C3101B kernel: [ 1115.363724] CPU: 0 PID: 24237 Comm: cat Tainted: G         C     3.18.9+ #768
May 11 20:34:56 AS15C3101B kernel: [ 1115.363742] task: dbb0b600 ti: daf0e000 task.ti: daf0e000
May 11 20:34:56 AS15C3101B kernel: [ 1115.363778] PC is at w1_slave_show+0x2d8/0x398 [w1_therm]
May 11 20:34:56 AS15C3101B kernel: [ 1115.363804] LR is at vsnprintf+0x27c/0x3e0
May 11 20:34:56 AS15C3101B kernel: [ 1115.363820] pc : [<bf04336c>]    lr : [<c02fb36c>]    psr: 20000113
May 11 20:34:56 AS15C3101B kernel: [ 1115.363820] sp : daf0fe08  ip : bf0435c0  fp : daf0fe54
May 11 20:34:56 AS15C3101B kernel: [ 1115.363840] r10: 0000001f  r9 : daf0fe27  r8 : daf0fe27
May 11 20:34:56 AS15C3101B kernel: [ 1115.363854] r7 : dcf70a50  r6 : dcfb8000  r5 : 00000fe5  r4 : 00000000
May 11 20:34:56 AS15C3101B kernel: [ 1115.363867] r3 : 00000000  r2 : 1002ff7f  r1 : 464b01de  r0 : 0000000d
May 11 20:34:56 AS15C3101B kernel: [ 1115.363882] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
May 11 20:34:56 AS15C3101B kernel: [ 1115.363896] Control: 00c5387d  Table: 1ad54008  DAC: 00000015
May 11 20:34:56 AS15C3101B kernel: [ 1115.364356] [<bf04336c>] (w1_slave_show [w1_therm]) from [<c0361650>] (dev_attr_show+0x2c/0x58)
May 11 20:34:56 AS15C3101B kernel: [ 1115.364394] [<c0361650>] (dev_attr_show) from [<c01aa838>] (sysfs_kf_seq_show+0x9c/0x104)
May 11 20:34:56 AS15C3101B kernel: [ 1115.364424] [<c01aa838>] (sysfs_kf_seq_show) from [<c01a9168>] (kernfs_seq_show+0x34/0x38)
May 11 20:34:56 AS15C3101B kernel: [ 1115.364452] [<c01a9168>] (kernfs_seq_show) from [<c015c310>] (seq_read+0x1b8/0x488)
May 11 20:34:56 AS15C3101B kernel: [ 1115.364481] [<c015c310>] (seq_read) from [<c01a9b50>] (kernfs_fop_read+0x124/0x16c)
May 11 20:34:56 AS15C3101B kernel: [ 1115.364511] [<c01a9b50>] (kernfs_fop_read) from [<c0137e6c>] (vfs_read+0x98/0x188)
May 11 20:34:56 AS15C3101B kernel: [ 1115.364538] [<c0137e6c>] (vfs_read) from [<c0138580>] (SyS_read+0x4c/0xa0)
May 11 20:34:56 AS15C3101B kernel: [ 1115.364573] [<c0138580>] (SyS_read) from [<c000e800>] (ret_fast_syscall+0x0/0x48)
May 11 20:34:56 AS15C3101B kernel: [ 1115.364679] ---[ end trace d47c3c19eebad7da ]---

Da questo momento in poi qualsiasi interrogazione sulle sonde w1 rimarrà in hang e bloccherà la shell o qualsiasi script che richiami questa informazione. Anche un semplice cat del valore di w1_slave.

rmmod e modprobe dei moduli w1 rimarranno in hang esattamente come tutto ciò che riguarda anche il modulo w1_thermal w1_slave e w1_bus.


Scatenare l'errore

Più interrogazioni si fanno sulle sonde w1, più avremo probabilità di scatenare il Kernel Panic.

Un modo efficace per mandare in hang il sistema può essere questo:

(bash)# while [ true ]; do cat /sys/bus/w1/devices/28-*/w1_slave; sleep 1; done

Se il sistema è affetto dal problema, nel giro di 60 minuti diventerà instabile.


Ipotesi

Una delle ipotesi che abbiamo formulato si basa sull'assenza di clock hardware nel Raspberry. Tale mancanza, emulata a livello software tramite timer interrupt, potrebbe produrre (in determinate e rare circostanze di carico e utilizzo di risorse) una dilatazione del clock, causando difficoltà nella gestione dell'hardware comunicante in half-duplex (che quindi utilizza dei timing precisi) come quello w1.

E' solo un'ipotesi, ma nel paragrafo successivo vedremo come lavorando sui nice del processore si producano dei miglioramenti.


Soluzioni (più o meno artigianali)

Intendiamoci, può accadere qualsiasi cosa, ma un Kernel deve gestire questo tipo di problema. Il fatto che si pianti (non del tutto, perchè riusciamo ancora a riavviare mediante un reset di tipo echo 1 > /proc/sys/kernel/sysrq ), non è comunque normale. Di fatto tutta la parte w1 entra irrimediabilmente in hang fino al riavvio del sistema.

Perdendoci la testa, correlando l'errore non presente sui sistemi multicore e seguendo la traccia dell'ottimizzazione dell'utilizzo della singola risorsa CPU, ci siamo accorti di una cosa:

# ps -lfax | grep w1_bus_master
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
1     0      247     2    20   0        0        0     w1_pro           S    ?              0:17   \_ [w1_bus_master1]

# nice
0

(Per chi non lo sapesse, nice è il comando linux in grado di forzare una priorità di CPU durante l'esecuzione di un processo. Renice è il suo omonimo in grado di cambiarla ad un processo esistente.)

Nonostante il nice di default fosse 0, w1_bus_master veniva eseguito con nice 20. In situazioni di high-cpu-load, quindi, un processo "tradizionale" parrebbe essere eseguito con una priorità maggiore di un processo di sistema così delicato.

Tanto per iniziare, quindi, abbiamo dato una priorità di utilizzo CPU a -20 (il massimo impostabile "tradizionalmente"):

# renice -n -20 $( ps -aux | grep w1_bus_master | grep -v "grep" | sed -n 1p | awk '{ print $2 }' );

Successivamente abbiamo trovato una profonda correlazione scatenante con l'esecuzione di uno script python contenente librerie pygame. Abbiamo, quindi, startato lo script con nice -n 39 python script.py

Questi due accorgimenti, insieme ad un'ottimizzazione dello script python e al numero di processi che esso generava, sono bastati a ridurre drasticamente i kernel panic e gli errori CRC in lettura del bus w1. Ad ora, dopo quasi 4.000 interrogazioni, non ho avuto nemmeno un CRC error e, ovviamente, di conseguenza nessun Kernel Panic o Kernel Mod Hang. 
Senza gli accorgimenti di cui sopra, ricevevo circa il 20% di errori CRC, prima di causare (prima o poi) un prevedibile crash del Kernel e del suo modulo di gestione w1.

lunedì 4 maggio 2015

Active Directory Domain Services: Domini, Siti, Alberi e Foreste pur non avendo il pollice verde

Come visto nel precedente articolo, Active Directory è diventata una suite di più servizi di cui il ruolo regina rimane AD DS, ovvero Active Directory Domain Services.

AD DS è in grado di raccogliere account, computer, stampanti, gruppi, etc. e di racchiuderli all'interno di un dominio Active Directory.


Domini, UO e Gruppi

Immaginiamo di avere un'azienda con 20 postazioni e di volerne centralizzare la gestione, l'autenticazione e l'attribuzione di permessi di sicurezza. AD è lo strumento principe in ambienti Microsoft ed il contesto entro il quale racchiuderemo i nostri oggetti viene definito Dominio.

All'interno del Dominio AD possiamo creare delle "Unità Organizzative" (con oggetti coerenti tra di loro) che condividono Group Policy, ovvero gruppi di regole prestabilite. A loro volta possiamo scendere ulteriormente nel dettaglio creando dei gruppi di distribuzione all'interno dell'Unità Organizzativa o del dominio madre.


Questa è una tipica e classica infrastruttura AD DS monodominio, dove le risorse all'interno dell'azienda sono sufficientemente contenute da essere racchiuse entro i limiti logici di un singolo dominio.

Questo, ovviamente, prescinde dallo strato hardware e da quanti Domain Controller avremo.


Siti

Mediante l'introduzione di una politica di Sito, è possibile stabilire che un gruppo di utenti debba autenticarsi su un Domain Controller ed un altro gruppo su un altro, pur rimanendo all'interno dello stesso dominio. Normalmente i Siti sono WAN differenti le cui connessioni non sono affidabili e performanti come quelle di LAN.
Si tratta di una soluzione comoda e relativamente rapida per aziende multisede. I vantaggi sono evidenti: sopravvivenza in caso di problemi di connessione e contenimento del traffico geografico.




Alberi e Foreste

I Domini possono avere "profondità" a piacimento e concettualmente possiamo vederli come dei rami di un albero. Facciamo finta di non aver creato i Siti e, per necessità organizzative, sentire l'esigenza di creare uno o più altri sotto-domini chiamati a loro volta bari.azienda.loc e milano.azienda.loc. A sua volta su milano.azienda.loc potrei voler creare spinoff.milano.azienda.loc.

Ho creato un albero di domini, ognuno con le proprie risorse.

Qualora io decida di creare un nuovo dominio chiamato azienda2.loc ed abbia deciso di creare una relazione di "Trust" tra i due domini, ho creato sostanzialmente una foresta.


Intendiamoci, sono situazioni abbastanza limitate, probabilmente una multinazionale sentirà l'esigenza di strutturare una foresta, ma difficilmente ci troveremo a dover andare oltre il concetto di albero. Nella maggior parte delle installazioni contenute, una gestione accurata di Unità organizzative e Siti risulta più che sufficiente.

Quando utilizzare i siti e le foreste? Bella domanda, probabilmente uno dei motivi principali che ci spinge a creare più domini è l'assegnazione di amministratori di dominio in grado di far tutto, ma entro i limiti del proprio dominio. Ovviamente diversi dagli amministratori dell'intera foresta. Possiamo semplificare dicendo che due domini possono essere amministrati singolarmente da due amministratori e da un terzo (gerarchicamente più importante) in grado di amministrarli entrambi. Ed è già un buon motivo per creare due domini o sottodomini separati.

Ok, anche le Unità Organizzative possono avere amministratori diversi. Ma questa è un'altra storia...


Relazioni di Trust (o di fiducia) tra Domini

Il trust è automatico, bidirezionale e transitivo tra più domini della stessa foresta. Gli Enterprise Admin e gli Schema Admin potranno modificare tutto di tutti, gli amministratori di dominio, invece, solo il singolo dominio.

Per transitivo si intende l'estensione del concetto di fiducia a tutti i domini di cui il dominio in trust si fida. Se A si fida di B, che a sua volta si fida di C, A si fida automaticamente di C.

Viene definito Trusting Domain quello che contiene le risorse (immaginiamo ad un account e le sue relative credenziali) e il Trusted Domain quello che le richiama.


Cataloghi Globali

I server che detengono il ruolo di Catalogo Globale sono adibiti a facilitatori per le query extradominio. Se sono un utente alla ricerca di una stampante in un dominio diverso dal mio (ma all'interno di una foresta ove vige una relazione di Trust), posso contattare N server alla ricerca della stampante oppure posso contattare un Catalogo Globale che detiene l'indice di tutti gli oggetti di tutti i domini, facilitandomi e velocizzandomi il lavoro.
Ovviamente i Cataloghi Globali non hanno senso qualora io abbia un unico Dominio AD.



Conclusioni

I Servizi di Dominio Active Directory possono facilitare la gestione di reti molto semplici o molto complesse. E' bene trovare il giusto equilibrio, altrimenti invece di semplificare le cose, le renderemo più complicate. 
Morale della favola: se ho 20 macchine in un'unica sede, semplificherò la gestione creando un singolo dominio e magari più Unità Organizzative. Al tempo stesso se ho 30 sedi con EDP locali, semplificherò la mia gestione creando 30 sottodomini e strutturando magari una foresta. 
Ma se ho 20 macchine e creo una foresta con 15 domini, probabilmente ho molto tempo libero e sono consapevole che la gestione diventerà facilmente un incubo. Ad ognuno, il suo.
AD DS si presta ad essere inserito in ogni realtà, dal microbusiness all'enterprise. E' sufficiente utilizzare gli strumenti giusti contestualizzandoli alle dimensioni e alle architetture in essere.
Sembra banale? Eppure è pieno di aziende con un solo dominio pur avendo 300 macchine con IT dipartimentali.



Discaimer: Ogni articolo di questo blog è stato integralmente scritto dall'autore. Il contenuto è completamente originale e la riproduzione è vietata salvo autorizzazione.