Compilare pam-u2f e integrarlo nell'autenticazione in Linux

Premetto che su CentOS 6 questo è ancora un work in progess, probabilmente sbaglierò io qualcosa, ma i binari e le librerie prodotte non riescono a instaurare una comunicazione corretta tra bus USB e sistema, anche se la Yubikey viene vista correttamente dal sistema. La compilazione di pam-u2f richiede parecchie dipendenze e le librerie necessarie non sono disponibile nei repo ufficiali (incluso epel). Preso dalla frustrazione ho tirato su una VM CentOS 7 e con grande soddisfazione ho trovato alcune librerie necessarie (json-c e hidapi) in epel. In questo caso la compilazione va a buon fine in maniera semplice semplice e possibile applicare il modulo pam-u2f a tutte quelle applicazioni pam-aware. Lo stesso vale per Debian 8. Nel caso non sapeste cosa e come funzioni PAM, consiglio la lettura di questo ottimo articolo. Vi darà un'infarinatura generale sulle potenzialità di PAM, uno strumento spesso non considerato. INSTALLAZIONE Per prima cosa installiamo un po' di pacchetti necessari, per la guida prenderò in considerazione installazioni CentOS 6 e CentOS 7: yum groupinstall "Development Tools" yum install epel-release json-c json-c-devel hidapi hidapi-devel gengetopt help2man openssl openssl-devel check check-devel pam-devel Da tenere in considerazione che alcuni pacchetti come json-c (presente nei repo, ma non

Continua a leggere >>>

Visualizzare Dell Service Tag su una macchina Windows/Linux

L'altro giorno mi è capitato di dover recuperare un Dell Service Tag da una macchina remota senza l'Idrac. La macchina in questione era un hypervisor XenServer. Da una macchina Linux basta dare il comando: dmidecode|grep "Serial Number" Mentre su una macchina Windows questo è il comando da dare: wmic bios get serialnumber Premetto che quest'ultimo comando non lo ho testato personalmente.

Continua a leggere >>>

Scaricare un certificato non trusted di un sito web

Può capitare di doverci imbattere in siti che mostrano un certificato self-signed e quindi non verificato da un autorità. Solitamente è una pessima mossa aggiungere certificati sconosciuti nella radice dei certificati trustati. Tuttavia se il servizio che espone questo certificato è di nostra "giurisdizione" possiamo anche fare uno strappo alla regola. Sempre meglio avere una connessione https con certificato self-signed che viaggiare su una connessione non protetta. =) Possiamo reperire il certificato semplicemente dando un comando OpenSSL. I binari per Windows sono disponibili a questo indirizzo, mentre su ambienti Linux è quasi onnipresente. Se avete delle installazioni di OpenVPN il comando openssl.exe sarà già disponibile. Su una macchina Linux potete usare questo comando: openssl s_client -showcerts -connect server.it:443 </dev/null 2>/dev/null | openssl x509 -outform PEM>mycert.pem Su una macchina Windows invece possiamo usare: openssl s_client -connect server.it:443 > mycert.pem Una volta ottenuto il file ci basterà editarlo con un qualsiasi editor di testo e lasciare solo la parte compresa tra BEGIN CERTIFICATE e END CERTIFICATE. Ora importiamo questo file nel gestore dei certificati di Windows (Win + R -> certmgr.msc) sotto autorità di certificazione radice attendibili. Mi raccomando state attenti a fare questa operazione, non è il massimo importare certificato a

Continua a leggere >>>

Backup tramite rsync e ssh

La vecchia scuola non si batte mai. 😉 SSH ed rsync sono da sempre una coppia vincente. L'altro giorno stavo usando WinSCP e avevo la necessità di copiare dei file da un server remoto ad un altro, senza dover passare per il pc locale. Con mio grande dispiacere noto che WinSCP non offre questa funzionalità e quindi chiuso il programma e avvio KiTTY. Con questa semplice stringa è possibile copiare file/cartelle da un server remoto ad un altro tramite SSH. E' necessario però sapere i path di destionazione, in quando non è possibile "esplorare" il server e non è disponibile nemmeno l'autocompletamento. rsync -avz -e "ssh -p 22 -i <private-key>" <path-file/cartelle-da-copiare> [email protected]:<path-di-destinazione> Le voci fra le parentesi angolari vanno ovviamente modificate addentandole alle vostre necessità. I parametri per rsync sono i seguenti: -a: modalità archivio -v: verbose attivo -z: compressione dei dati durante il trasferimento -e: copia su PC remoto SSH invece vuole: -p: nel caso non utilizziate la porta standard 22 -i: per utilizzare la chiave privata al posto di username e password.   Sotto ambienti Linux questi strumenti sono disponibili nativamente, in ambienti Windows invece è possibile utilizzare Cygwin.  

Continua a leggere >>>

Effettuare il backup del RaspberryPi

Anche se il dispositivo in questione è un RaspberryPi i backup vanno sempre fatti! A differenza di un normale PC o server, i cui relativi storage sono basati su HDD o SSD, dobbiamo affrontare una brutta bestia: la memoria flash. Che ha un endurace decisamente inferiore rispetto agli hard disk meccanici o a stato solido. Il problema è presente solo durante le scritture su disco, mentre le letture lasciano integre le celle. Nonostante questo le scritture su SD vengono fatte continuamente anche a nostra insaputa e questo può ridurre la vita della scheda di memoria, fino a renderla inutilizzabile. Questa cosa mi è già capitata qualche mese fa e non avendo avuto un'immagine del Raspberry ho dovuto reinstallare tutto da capo. Il problema è tuttavia semplicemente risolvibile con il backup completo della SD, che nei sistemi Linux può essere ottenuto utilizzando il comando dd. Schedulando il processo si ottengono backup multipli. In caso di un problema alla SD sarà sufficiente acquistarne una nuova ed effettuare il restore dell'immagine. Una procedura più semplice e non schedulata può essere l'utilizzo di win32DiskImager per creare l'immagine leggendo il contenuto della memoria SD. Questo però ci obbliga a spegnere il Raspberry. Di fatto è

Continua a leggere >>>

Vi sono spariti i colori da bash sul Raspberry Pi?

Dopo aver installato RVM sul mio Raspberry Pi ho completamente perso l'highlighting in bash utilizzando un client SSH come kitty o putty. La cosa, almeno per me, era davvero seccante. Ho risolto aggiungendo questo pezzo di codice al file .bash_profile presente nella home. if [ -f ~/.bashrc ]; then source ~/.bashrc fi

Continua a leggere >>>

info: mpt raid status change on debian

Qualche giorno fa mi sono imbattuto in questo errore su una Debian 7 in ambiente virtuale senza i VMware tools: This is a RAID status update from mpt-statusd. The mpt-status program reports that one of the RAIDs changed state: Cosa molto strana dato che il sistema non fa uso di RAID. Si tratta semplicemente di una vm con un disco virtuale. Il messaggio è però abbastanza seccante in quando ad ogni login ssh ci si ritrova davanti tale notifica. Risolvere il problema è semplice e basta dare i seguenti comandi come root: /etc/init.d/mpt-statusd stop echo RUNDAEMON=no > /etc/default/mpt-statusd update-rc.d -f service Done...

Continua a leggere >>>

Google Reader è morto e ora...? Ci pensa TT-RSS

Google Reader è stato "terminato" il primo di luglio. Io personalmente ero uno di quei tanti che lo usava in maniera particolarmente intensiva. La mia scuola di pensiero è che non ci si può affidare ai social network per veicolare un flusso coerente di notizie, ma soprattutto poterle fruire in modo ordinato. Nulla potrà mai sostituire lo stream RSS, e nel dire questo è anche corretto ricordare il caro Aaron Swartz. Sarò pur vecchia scuola ma non riuscirei nemmeno per un secondo a concepire l'idea di utilizzare Google+, Twitter o Facebook per leggere le varie news. Magari questo potrebbe andare bene con qualche sottoscrizione ma con centinaia di sottoscrizione immagino sia la ricetta per non capire una mazza e diventare letteralmente stupidi. Un reader RSS web-based è sicuramente più auspicabile. Un client RSS desktop lo trovo poco pratico, ormai è risaputo che tablet, smarpthone, molteplici PC sono alla base di una persona che di IT se ne intende almeno un pochino. D'altro canto la possibilità di fruire delle proprie feed da qualsiasi luogo e da qualsiasi dispositivo è sicuramente l'obbiettivo migliore. Feedly è in lizza per diventare l'erede di Google Reader. Seppur ora sia disponibile in versione totalmente web-based, senza

Continua a leggere >>>

SSH two-step authentication con Google authenticator su CentOS 6.x e SELinux

Oggi ho lottato duramente contro SELinux, in una sfida uomo-macchina dove alla fine l'uomo è risultato vincitore. 😀 Non sto qui a spiegarvi l'impatto che ha l'autenticazione a due fattori sulla sicurezza, mi limito a dire "something you know, something you have". Installata la CentOS 6.4 e configurato il webserver passo al SSH server. Cambio la porta, rimuovo l'accesso per l'utente root e limito la connessione solo a certi utenti. Stabilisco i gracetime, le connessioni massime, fail2ban per i brute force e le regole per iptables. Fatto questo passo a configurare il two-step authentification e mi imbatto sempre in "Access Denied". Guardo il log con: tail /var/log/secure -n 100 e noto: Jul 16 17:15:32 sshd(pam_google_authenticator)[5646]: Did not receive verification code from user Jul 16 17:15:32 sshd(pam_google_authenticator)[5646]: Invalid verification code Jul 16 17:15:32 sshd(pam_google_authenticator)[5646]: Failed to update secret file "/home//.google_authenticator" Faccio una veloce ricerca su Google e noto che il problema è dovuto a SELinux (Security-Enhanced Linux). Ovviamente col cavolo che lo disabilito solo per far funzionare l'autenticazione a due fattori. I problemi tra SELinux e pam_google_autheticator sono ben noti, fortunatamente esiste un semplice workaround. Approfitto di questo per scrivere un intero post dedicato su come integrare Google Authenticator nel SSH

Continua a leggere >>>

Script bash per montare una share di rete e un volume TrueCrypt

Può capitare di essere distanti da casa e di dover accedere a dei dati in "cassaforte". Nel mio caso la cassaforte è rappresentata da un bel volume criptato tramite TrueCrypt che risiede in un'unità condivisa. Accedervi però dall'esterno della propria rete non è poi così semplice. Innanzitutto bisognerebbe instaurare una connessione con il "campo base" tramite VPN o tunneling SSH ad esempio, ed in secondo luogo trasferire questo volume sul dispositivo remoto per poi aprirlo. Questo è ancora fattibile se il volume ha dimensioni contenute, la cosa diventa abbastanza improponibile quando il volume criptato comincia a superare i 100MB. Come sappiano tutti in Italia non brilliamo certo in connettività... anzi ora che ci penso non brilliamo proprio in niente 😀 Come fare quindi ad accedere a dati sensibili da remoto? Raspberry PI salvaci tu! L'idea è quella di usare il Raspberry per montare l'unità di rete su cui risiede il volume criptato e utilizzare TrueCrypt (anche esso installato sul Raspberry) per poterlo decifrare e leggerene il contenuto. I dati nel mio caso risiedono in un NAS, ma il volume di TrueCrypt in questione può tranquillamente essere utilizzato direttamente dal Raspberry. Per la connessione con quest'ultimo invece io utilizzerò prima una

Continua a leggere >>>