Generatore di password via command line

Ogni tanto serve generare un po’ di password casuali, questo è un metodo rapido e, si spera, efficace.

Tutto quello che serve è un *NIX e un /dev/urandom con una ragionevole entropia, magari aiutato da un software come haveged.

Questa è l’invocazione per richiamare 1024 byte di password casuali (deve essere scritta su una riga sola, vado a capo per praticità):

strings /dev/urandom |
tr -c -d '\!-~' |
dd bs=1 count=1k 2>/dev/null |
sed -r 's/(.{12})/\1\n/g' ;
echo

Quello che fa questa command line è prendere da /dev/urandom solamente i gruppi di byte che corrispondono a caratteri stampabili (prima riga), filtrarli secondo un range ASCII (seconda riga), fermarsi a 1024 caratteri (terza riga), visualizzarli su righe di 12 caratteri l’una (quarta riga) e andare a capo dopo l’ultima password (ultima riga).

Il range sulla seconda riga è uno dei più ampi possibile nel set ASCII stampabile perché lascia fuori solamente lo spazio e può essere modificato a piacere, ad esempio se si vogliono solamente lettere minuscole e numeri la seconda riga diventa

tr -c -d 'a-z0-9' |

Sulla quarta riga si può variare il numero 12 per avere password di lunghezze differenti o sostituire \n con \t per avere le password incolonnate separate da tab.

Sarai abbastanza sveglio?

Il libro Sei abbastanza sveglio per lavorare in Google è un testo molto illuminante.
Come si può intuire dal titolo, tratta di due grandi temi: l’efficacia (o sarebbe meglio dire inefficacia) dei colloqui di lavoro tenuti come la maggior parte di noi li conosce e l’insieme di conoscenze scientifiche, spannometria e creatività necessarie a superare i test attitudinali che sempre più aziende (Google nel titolo è solo un esempio) propongono ai candidati.

Oltre a scoprire molte cose sulle Risorse Umane e sul recruiting in generale, non vi nascondo che tutta la parte sui questionari sia la più interessante: prima di tutto per sfidare sè stessi a risolverli, poi per imparare come affrontare quelli troppo difficili.
Spesso sono questionari lunghi e complicati che non tutte le aziende e i reparti si possono permettere: nel mio piccolo io sono spesso alla ricerca di domande o problemi possibilmente semplici da porre che non necessitino troppo tempo o risorse, ma che siano utili per capire velocemente e in maniera ragionevolmente affidabile le competenze e le abilità di un candidato. Leggi tutto “Sarai abbastanza sveglio?”

La sfiga ci vede benissimo

Questa mattina il blog è stato offline fino dopo l’una ed è doverosa una spiegazione.

Ieri ho vinto per oggi un viaggio andata e ritorno in Francia da un cliente per una serie di riunioni di pianificazione. No, non è un modo per nascondere un pranzo di Natale, a pranzo ho mangiato una baguette au jambon mentre tornavo a piedi in ufficio dal Carrefour dove avevo fatto razzia di formaggi.

Stamattina mi sono svegliato alle 04:30 e ho trovato la VM su cui è ospitato il sito irraggiungibile. Ho aperto un ticket e sono saltato in macchina per andare dal cliente.

Il fornitore ha risolto il problema poche ore dopo, ma c’è un “ma”.

Fino all’una non mi sono potuto collegare in Rete ed è stato lì che ho scoperto il problema: quando un server va giù male rimangono i socket nel file system (stale socket). Le ultime versioni di MySQL di CentOS sembra che abbiano dei problemi con gli stale socket: quando MySQL riparte dopo un crash non ripulisce lo stale socket e tutti i processi che usano quel metodo di comunicazione vedono il database server KO.

Ecco spiegato il down di questa mattina, purtroppo la sfiga ha visto che questa mattina ero AFK e ha colpito con precisione chirurgica.

RedHat 7 beta 1: prova di installazione

Ho fatto la prima installazione di prova di una RedHat 7.0 beta 1.

Dopo aver scaricato l’ISO, ho creato una macchina virtuale su VMware Workstation 9 con queste caratteristiche: 2 Gb RAM, 20 Gb disco, singolo processore 64 bit a un core, NIC in bridge, sistema operativo Linux 2.6.x a 64 bit generico.

Il boot da CD lascia 30 secondi di tempo per decidere se partire subito, attivare il rescue mode oppure cambiare i parametri del kernel.

Red Hat 7 Beta 1 - Welcome

Anaconda ha un nuovo aspetto grafico, la procedura di installazione non è più in formato wizard ma propone tutti gli elementi da configurare in una schermata riassuntiva unica e lascia decidere al SysAdmin cosa configurare e in che ordine. Nota: il partizionamento dei dischi è l’ultimo dell’elenco e potrebbe essere necessario utilizzare le scroll bar per visualizzarlo.

Leggi tutto “RedHat 7 beta 1: prova di installazione”

RedHat 7.0 beta 1

RedHat ha annunciato la disponibilità di RedHat Enterprise Linux 7 Beta 1.

La versione beta è liberamente scaricabile da tutti per la valutazione e per segnalare anche eventuali problemi.

A differenza dalla precedente versione 6, sarà possibile effettuare un aggiornamento in place della versione 6.5 senza la necessità di riformattare o reinstallare da zero.

Non è più possibile installare la versione 7 su processori a 32 bit, il cui supporto è garantito attraverso la virtualizzazione oppure un layer di compatibilità software.

Le nuove installazioni della distribuzione avranno per default il file system xfs, anche se sono comunque supportati i file system ext.

Tra le novità e i limiti di Red Hat 7 si possono annoverare:

  • 3 Tb di RAM massima, 1 Gb di RAM minima (per la versione x86_64);
  • file system di massimo 500 Tb e singolo file di massimo 16 Tb con xfs;
  • kernel 3.10.0;
  • systemd sostituisce gli script di init e altri aspetti di avvio del sistema;
  • ext2 ed ext3 sono sconsigliati e dovrebbero essere sostituiti in place da ext4;
  • webalizer, thunderbird e compiz sono stati rimossi;
  • MariaDB ha sostituito MySQL;
  • sendmail è sconsigliato, anche se non ci voleva Red Hat…

Questo è solamente un assaggio della novità che sono elencate in dettaglio nelle note di rilascio.

Chi utilizza o amministra RedHat o CentOS dovrebbe familiarizzare con la versione 7 prima di metterla in produzione perché alcune novità, come systemd, sono davvero strutturali.

Il team di CentOS sta già lavorando per costruire l’ambiente della versione 7.

Errore DFS se si prepara Windows 2003 per l’upgrade

Se si esegue il Server Migration Tool su un Windows Server 2003 per la migrazione del dominio a Windows Server 2012 può capitare che il programma visualizzi un errore in cui viene segnalato che il servizio DFS Replication (replica DFS in italiano) non è attivo.

Purtroppo l’errore è bloccante, ma il DFS Replication non esiste su Windows Server 2003, in quanto è strato introdotto a partire da Windows Server 2003 R2.

Inutile tentare di attivare repliche DFS su SYSVOL a caso, si tratta di un errore nello script PowerShell ed è lì che va applicata la soluzione.

Il problema risiede nel file C:\Documents and Settings\All Users\Application Data\Microsoft\Microsoft Baseline Configuration Analyzer 2\Models\SBSMigrationPrep.ps1; se per vostra sfortuna state operando su un Windows in una lingua diversa dall’inglese il path deve essere modificato di conseguenza, ma il nome del file è sempre quello.

Leggi tutto “Errore DFS se si prepara Windows 2003 per l’upgrade”

SELinux

SELinuxAmmettiamolo: la maggior parte di noi disabilita SELinux come prima azione quando installa un server ex novo.

Selinux viene visto come una rottura di scatole, che non fa funzionare le cose che installiamo. A parziale discolpa dei SysAdmin va detto che SELinux non è esattamente intuitivo (sto parlando di livello di intuitività di un SysAdmin) e spesso lo si percepisce come quello che sta tra un problema e la soluzione dello stesso.

Con l’aumentare degli attacchi è bene iniziare a considerare l’opzione di (ri)abilitare SELinux, magari partendo dai server meno critici.

Da punto di vista della sicurezza, il vantaggio di SELinux è che le sue policy non sono facilmente modificabili dall’utente o da un applicativo e permettono un controllo molto più granulare dei normali attributi di lettura/scrittura/esecuzione di *NIX. Inoltre SELinux applica delle policy obbligate: in un normale sistema *NIX un utente può fare chmod 777 della propria home directory, mentre se sono attive delle opportune policy di SELinux lo stesso utente potrebbe non riuscire a farlo anche se è proprietario della directory ed ha i permessi di scrittura.

SELinux è un argomento complesso e articolato, di seguito viene solamente grattata la superficie con un esempio di implementazione su CentOS 6.4, tenendo ben presente che nella sicurezza non esiste un singolo silver bullet, ma una buona sicurezza è sempre frutto di varie azioni coordinate.

Leggi tutto “SELinux”

Apache: proteggere le directory di upload

Nella sicurezza non esiste un solo silver bullet, ma ci sono tanti piccoli accorgimenti che aiutano a rafforzare un sistema.

Uno dei problemi dei siti è il controllo e l’isolamento dei file caricati dagli utenti o da sconosciuti. Ci sono vari modi per mitigare eventuali  problemi che si possono verificare quando viene caricato un file indesiderato, qui ne viene esposto uno, ben sapendo che non si tratta dell’unico.

Il tipico esempio di directory pericolosa per un sito è la directory /wp-content/uploads di WordPress. Un metodo per mitigare gli attacchi è disabilitare qualsiasi tipo di esecuzione di script o programmi da questa directory da parte di Apache aggiungendo queste direttive alla configurazione del sito:

<Directory /path/wp-content/uploads/>
  AllowOverride none
  RemoveHandler .cgi .pl .py
  <FilesMatch "\.(php|p?html?)$">
    SetHandler none
  </FilesMatch>
</Directory>

In questo modo nessun file CGI, Perl, Python o PHP caricato in quella directory potrà essere interpretato come tale se richiamato da Apache.

ClamAV: main.cvd aggiornato

ClamAVSe controllate la directory dei dati di un’installazione di ClamAV trovate qualcosa di questo tipo:

103M Sep 12 04:51 daily.cld
30M Jun 21 08:31 main.cvd

Ovvero il file delle definizioni giornaliere supera per più di tre volte la dimensione del file delle definizioni principali.

Il prossimo 17 settembre verrà rilasciata una nuova versione del file main.cvd che sarà di circa 70 Mb.

Inoltre l’intenzione dei gestori del progetto sarebbe quella di pubblicare periodicamente una versione aggiornata del file main.cvd per ridurre il carico sui server di distribuzione.

Postfix: forzare il dialogo cifrato fra due MTA

ECCETTO RESIDENTIÈ possibile forzare il dialogo cifrato TLS tra due server di posta elettronica (MTA).

Di seguito viene spiegato come farlo con Postfix 2.10.2, l’ultima disponibile, compilata sul server in cui gira con il supporto TLS attivato. È naturalmente possibile ottenere lo stesso risultato anche con altri MTA o con versioni precedenti di Postfix (sconsiglio di scendere sotto la 2.6.0 ed è meglio evitare il range  2.9.0 – 2.9.5 (incluse) perché hanno un baco nel calcolo del fingerprint della chiave pubblica.

È fondamentale una certa padronanza con Postfix, che viene data per scontata dalla procedura descritta di seguito.

Lo scopo è forzare l’MTA ad utilizzare una connessione via TLS quando dialoga con un altro MTA noto. Per fare ciò non è necessario un certificato rilasciato da una CA nota, ma va benissimo anche un certificato autogenerato. Lo scopo di questa configurazione è proprio quello di non utilizzare necessariamente la PKI.

Leggi tutto “Postfix: forzare il dialogo cifrato fra due MTA”

La prima legge di Kurgan (o anche “Del contrappasso”)

“Quanto piu` un cliente snobba le piu` elementari misure di protezione (backup, raid, ups) tanto meno avra` incidenti disastrosi”

Corollario:

“Chi applica  misure di protezione multiple e ridondanti subira` incidenti talmente disastrosi da mettere a dura prova tutte queste misure di protezione”

 

Ma vediamo un paio di esempi significativi…

Leggi tutto “La prima legge di Kurgan (o anche “Del contrappasso”)”

Beata incoscienza

C’era una volta, molti anni fa, un me stesso decisamente piu` incosciente del me stesso di oggi. Vi raccontero` una avventura (da sistemista) di quel me stesso.

Erano i tempi di Windows NT4, e c’era un cliente che aveva un server Compaq con un disco SCSI connesso a un controller SCSI non RAID. Questo cliente aveva deciso che voleva installare un controller RAID e 3 dischi (due nuovi piu` quello che gia` aveva) per metterli in RAID5.

Aveva quindi comperato il controller e due dischi, e aveva chiesto all’azienda per la quale lavoravo di installarlo. Io avevo suggerito di installare 3 dischi nuovi e tenere per sicurezza i dati sul  disco vecchio, ma chiaramente mi e` stato detto che non se ne parlava nemmeno: comperare 3 dischi nuovi al posto di 2 era un costo che non volevano pagare.

Ed e` cosi` che, con due ore di tempo massimo di fermo del server, e senza alcun backup (perche` il cliente ovviamente non l’aveva, e non aveva ne` intenzione ne` modo di farne uno al volo), ho tentato l’impresa.

Ho installato su NT4 il driver del controller RAID, alla cieca, confidando che al riavvio avrebbe visto il controller. Poi ho spento la macchina, riavviato con un dischetto con il Norton Ghost, fatta una immagine ghost del disco originale su un altro computer in rete (una sola, perche` non avevo il tempo per farne due e nemmeno per fare un check che l’immagine fosse a posto), smontato il controller non RAID, installato il controller RAID e altri due dischi, creato un RAID5 con i 3 dischi (perdendo tutti i dati dal disco originale), riavviato il Ghost, fatto il restore dell’immagine (con resize automatico alla nuova dimensione) sul nuovo RAID5, e riavviato Windows NT4, pregando che vedesse il controller RAID e non andasse in bomba blu.

Grazie a una serie incredibile di miracoli (nessun errore nell’immagine Ghost, il dischetto DOS del Ghost che vede il controller RAID senza problemi come un unico disco a livello di BIOS, Windows NT che riesce a fare il boot sul nuovo controller senza inceppamenti) questa storia ha avuto un lieto fine.

Se mi avessero chiesto oggi di fare un lavoro del genere in due ore senza backup, e tutto per non pagare il prezzo di un disco nuovo in piu`, gli avrei riso in faccia.

Windows XP: una bomba a orologeria per la sicurezza

Quando è uscito nel 2002 tutti detestavano XP, chi per l’interfaccia Disney, chi perché non sapeva installarlo o gestirlo e voleva tenersi Windows 98, chi perché credeva che il “vero” sistema operativo doveva avere un disco rigido leggibile anche partendo da floppy con MS-DOS, chi perché credeva che fosse Windows 2000 con un’altra shell…

Adesso dite a queste stesse persone che non devono più usare XP e scoppia il finimondo.

Microsoft non supporterà più Windows XP a partire all’8 aprile 2014, fra 228 giorni. Non sono tanti, sono 32 settimane, 160 giorni di lavoro, 1280 ore di lavoro medie  (senza contare le festività infrasettimanali).

Il termine del supporto non significa banalmente che non verranno più rilasciati aggiornamenti (qualche sconsiderato potrebbe anche essere felice), ma significa che dal 9 aprile prossimo ogni Windows XP diventerà l’anello debole della sicurezza. Terminato il supporto di Microsoft, anche gli altri produttori di software cesseranno di rilasciare aggiornamenti, quindi oltre a un Windows vulnerabile ci saranno anche Java, Acrobat Reader, Flash…

Il motivo di questo pericolo è presto detto.

Ogni qual volta che viene rilasciata una patch questa è spesso accompagnata da una nota tecnica. Gli esperti di sicurezza e, prima di loro, i malviventi analizzano sia la nota tecnica sia la patch medesima per capire esattamente quale sia la vulnerabilità che viene corretta e, nel caso dei malviventi, come sia possibile sfruttarla. Questo accade sempre perché c’è un’ampia possibilità che i computer non vengano aggiornati subito, quindi c’è una finestra temporale ridotta per poter sfruttare quella vulnerabilità.

Spesso lo stesso problema riguarda più versioni di Windows, le cui patch escono tutte assieme.

Ma se un sistema operativo non è più supportato le patch non escono più. E se una vulnerabilità nota di Windows Vista, 7 oppure 8 è presente anche in Windows XP nessuno più porrà rimedio al problema, con estrema gioia di chi scrive malware.

Ed ecco che dal prossimo 9 di aprile ogni Windows XP sarà un potenziale pericolo per tutti.

228 giorni, tic, toc, tic, toc…

PuTTY 0.63

puttyÈ stata rilasciata la versione 0.63 di PuTTY.

Questa è una release che corregge alcuni possibili problemi di sicurezza, quindi tutti gli utilizzatori abituali di PuTTY dovrebbero aggiornare le loro installazioni.

Nel caso di autenticazione con chiave privata, le versioni precedenti conservavano in memoria una copia della chiave privata per tutta la durata della sessione ssh. In caso di swap o crash dump la chiave privata poteva anche essere scritta su disco.

Un altro baco permetteva al server di una sessione SSH-2 di trasmettere delle risposte tali per cui PuTTY andava in buffer overrun o underrun e crashava. Questa vulnerabilità poteva essere sfruttata prima ancora della verifica delle chiavi.

Una nuova feature consente alle applicazioni nelle sessioni xterm di capire la differenza tra testo scritto effettivamente dall’utente e testo incollato in modo da potersi comportare di conseguenza.

Backup su storage online

QIC TapesIn questo contesto online non è da intendersi come “su un qualche server di Internet”, ma “su un server accessibile in maniera automatica con comandi appositi (mount, rsync, net use) senza l’intervento umano indipendentemente dalla sua collocazione fisica”. Se avete in testa la parola cloud state leggendo la pagina sbagliata, circolare! circolare!

Una volta backup implicava “supporti rimovibili” (floppy o nastri che fossero). A parte storie più o meno leggendarie di maltrattamenti e mutilazioni involontarie dei supporti, era un sistema relativamente sicuro (a meno di non usare i DAT a 4mm, nel qual caso era sicuro che i dati erano persi…) perché qualsiasi evento che avesse come vittima i dati salvati non poteva fisicamente raggiungere i dati salvati. In poche parole un’azione che portava alla cancellazione di tutti i dati non poteva cancellare le copie degli stessi salvate sui supporti rimovibili.

Negli ultimi anni c’è stato uno spostamento dei backup, almeno quelli di prima generazione (la copia dai dati vivi verso il backup) verso gli storage su disco sia perché i nastri sono diventati oltraggiosamente cari sia perché lo storage su disco è più versatile.

Questo metodo ha un primo innegabile vantaggio di non dipendere dall’azione umana: non è più necessario che un addetto cambi le cassette periodicamente perché il backup vada a buon fine e i problemi ci sono solamente se lo storage si riempie, si guasta o va offline per altre ragioni. Inoltre il backup potrebbe trovarsi fisicamente ovunque purché raggiungibile via TCP/IP.

Questa soluzione, se applicata da sola, nasconde però una terribile insidia.

Leggi tutto “Backup su storage online”

Svuotate quell’accidente di cestino!

Waste binQualche giorno fa ho migrato un mail server con storage maildir e client in IMAP di un cliente su una nuova macchina virtuale.

Nonostante siano configurati relativamente pochi utenti, /var/spool/mail è di 30 Gb. Non è un problema, su Linux la limitazione è solamente lo spazio disco e, come per i file server, parto sempre dal presupposto che se una persona conserva un messaggio di posta elettronica ha motivo di farlo.

Analogamente ai file server, ogni tanto eseguo delle analisi statistiche sui mail server per vedere come è utilizzato lo spazio.

Uno scriptino stupido come questo permette di vedere quanto occupano i cestini in una struttura maildir in cui ogni dominio è una directory con dentro le varie mailbox (/var/spool/mail/example.com/user/var/spool/mail/acme.com/user, eccetera):

#!/bin/bash
for D in $(find /var/spool/mail/ -mindepth 2 -maxdepth 2 -type d) ; do
   du -sh $D/.Trash* ;
done

Quando ho eseguito questo script sullo storage del cliente di cui sopra mi sono accorto che circa 1/3 delle mail era nei cestini.

Leggi tutto “Svuotate quell’accidente di cestino!”

Aggiungiamo un altro disco

Hard Disk KOHo iniziato ad installare server con Novell NetWare 2.x

La società per cui lavoravo in quel periodo quando doveva vendere piccole soluzioni forniva un Compaq Deskpro 286 su cui veniva installato l’applicativo di NetWare 2. I PC avevano, ovviamente un solo disco che durava spesso più dell’applicativo che supportavano. Naturalmente si facevano i backup, spesso sui dischi locali dei PC.

Poi siamo passati a Novell NetWare 3.x, installati o su Deskpro 386 oppure, per i più facoltosi, su Compaq SystemPro, tra i primi “PC” in fatti per essere “server”. Anche in questo caso si installava un solo disco, che durava per anni (sempre con il suo bravo backup, si capisce). Solamente verso il 1994 ho installato i primi RAID di Compaq: gli IDA, precursori degli Smart Array Controller che hanno dimostrato infinite volte di meritare il loro nome di battesimo.

Nella seconda metà degli anni 90, con l’esplosione dei server il RAID diventa quasi obbligatorio, sia perché chi vende vende più dischi sia perché i dischi diventano meno robusti sia perché inizia la frenesia, spesso ingiustificata, dello zero downtime. Si mette tutto ridondante: alimentatore, dischi, NIC, così il server può funzionare senza problemi 24x7x365, magari con un contratto di assistenza analogo. E poi l’azienda lavora 40 ore la settimana e nessuno controlla se il server ha dei guasti, ma questo è un altro discorso.

Leggi tutto “Aggiungiamo un altro disco”

La sicurezza dei gestionali nel 2013

fail-owned-fence-security-failOggi sto lavorando all’installazione di un gestionale che gira su Linux. Il software in questione gestisce le paghe dei dipendenti, fra le altre cose. Usandolo tramite la sua interfaccia client (che parla con un servizio di qualche tipo sul server) richiede ovviamente uno username e una password (lunga almeno 8 caratteri) per identificare gli utenti che accedono.

Purtroppo pero`, su specifiche precise del fornitore del software, e` richiesto che sul server sia installato FTP e anche telnet, e che ci sia un unico utente “di gestione” che puo` accedere via FTP e telnet per poter leggere o modificare arbitrariamente  ogni file di dati e di programma del gestionale. Ssh, invece, non e` richiesto.

Infine, per essere assolutamente sicuri che anche un utente inesperto e privo di cattive intenzioni possa comunque fare il massimo danno anche involontariamente  e`  inoltre necessario che la directory di installazione del gestionale (che contiene programmi e dati) sia accessibile da uno share SMB, ovviamente configurato con permessi 777 per tutti gli utenti.

Che dire?

Un backup delle VM ben fatto

veeamÈ un po’ di tempo che voglio scrivere qualcosa su VEEAM, ho sempre rimandato perché non volevo che la cosa sembrasse una marchetta (ho una manciata di lettori, che diavolo posso pretendere? ma ci sono sempre quelli che vedono complotti dappertutto).

Conosco e utilizzo come SysAdmin BackupExec (BE) da quando era di Arcada; poi è passato a Seagate, quindi a Veritas, che è stata poi fagocitata da Symantec. Posso dire di avere un po’ di esperienza con BE. Per alcuni periodi ho utilizzato anche il backup di CA, ma è stato un calvario.

BE è sempre stato il software d’elezione per le realtà medio piccole: funzionava bene, era semplice e non aveva bisogno di due o tre tecnici-sacerdoti che lo curassero (qualcuno ha detto “Tivoli Storage Manager”?)

All’inizio BE era bello, semplice e comodo: si diceva al programma “ogni giorno a quest’ora mi fai la copia di tutto il server su questa unità nastro” e lui da bravo lo faceva e aggiornava il log delle attività. Bastava guardare nella consolle se c’erano delle righe rosse, tenere d’occhio il numero di byte copiati e il gioco era fatto.

Quando l’ha preso in mano Symantec è iniziata la fine: un sacco di roba inutile, una complicazione dopo l’altra e un carrozzone pesantissimo di bloatware. Fare un backup con BE è peggio che avere a che fare con la PA. La versione per gli ambienti virtuali ha un sacco di limitazioni e prima di farla funzionare bisogna buttare via dei giorni per capire dove sta il problema.

Non nascondo che la prima volta che ho sentito parlare di VEEAM ero un po’ scettico. Ratmir Timashev? Un backup fatto da un russo? 🙂

Leggi tutto “Un backup delle VM ben fatto”