Archives For In Evidenza

È un problema che ho affrontato qualche tempo fa e che inizialmente mi ha dato un po’ di grattacapi, salvo poi trovare casi molti simili che mi hanno aiutato a risolvere l’anomalia. Il disco di un PC si satura e la colpa è della cartella C:\Windows\Temp, invasa da file senza estensione, dal nome che comincia sempre per cab_. Perché accade? Il problema viene generato da una installazione di alcuni aggiornamenti (da Windows Update) evidentemente non andata a buon fine, non del tutto almeno, nonostante la schermata preposta di Microsoft dica che tutto va bene.

Windows: l'invasione dei CBSPersist e dei cab_ (C:WindowsTemp)

Facendo un po’ più di attenzione, si scopre che in realtà di cartella che occupa spazio ce n’è un’altra. Teoricamente dovresti trovare anomala anche la C:\Windows\Logs\CBS, all’interno della quale dovresti trovare dei file CAB veri, e un file di log dalla dimensione decisamente robusta (CBS.log). L’anomalia parte proprio da qui. Partiamo con le opportune presentazioni (recuperate con una semplice ricerca):

CBS stands for “Component-Based Servicing” and it basically is the way components get installed and uninstalled during updates. It is the reason you see “Stage 1”, “Stage 2”, and “Stage 3” during the Service Pack 1 install (for example). “Stage 2” and “Stage 3” exists for the registry keys and files that are normally locked during regular operation.

Tutto chiaro? Un log in cui ogni aggiornamento di Microsoft va a scrivere e tiene traccia di ogni movimento. Un log destinato –per forza– a crescere, e che per un comportamento assolutamente standard va a ruotare, sospendendo la scrittura, finendo in un CAB che ne riduce (di parecchio) la dimensione, e infine ne prepara uno nuovo in cui tornare a scrivere, per poi ricominciare il giro ancora e ancora.

Se per qualsivoglia motivo questo procedimento non fila liscio, il CBS.log diventa più grande del previsto, ingestibile e –soprattutto– impossibile da mettere in un CAB nei tempi previsti. Il risultato? Cartella Temp di Windows piena di tentativi falliti di comprimere quel log, cartella CBS che si ingigantisce.

Diverse le fonti dove ho trovati informazioni in merito e persone capitate nello stesso vortice, ne ho selezionate tre che mi hanno aiutato:

Riepilogando, tutto questo può accadere in qualsiasi momento e -in base alla capacità del disco e lo spazio libero da poter sfruttare- potresti accorgertene a mesi (o forse anni) di distanza. Io ho scoperto di essere soggetto al problema solo perché un utente ha lamentato poco spazio libero e mi ha fatto scoprire l’anomalia. Le operazioni da affrontare per resettare il procedimento di scrittura e archiviazione del CBS.log è questo:

  • Fermare il servizio Windows Update.
  • Rinominare la cartella della Software Distribution (C:\Windows\SoftwareDistribution).
  • Cancellare ogni file in C:\Windows\Temp (ovviamente ignorando quelli in uso e che faranno comparire il classico errore a video di impossibilità di cancellazione, nda).
  • Riavviare il servizio di Windows Update.
  • Fermare il servizio Trusted Installer.
  • Cancellare ogni file in C:\Windows\Logs\CBS.
  • Riavviare il servizio Trusted Installer.
  • Forzare una ricerca aggiornamenti di Windows Update (direttamente via prompt).

Visto che questa cosa potrebbe capitare ad altri client in futuro, ho pensato di tradurla in codice batch, da dare in pasto anche al Kace di Dell (tanto per fare un esempio). Il tutto intervallando alcuni secondi di pausa prima di poter eseguire l’operazione successiva (dando così modo al client di non saltare alcun passaggio fondamentale):

sc stop wuauserv
ping 127.0.0.1 -n 7 > NUL
cd \Windows\
move SoftwareDistribution SoftwareDistribution_old
del /S C:\Windows\Temp\* /Q
FOR /D %%p IN ("C:\Windows\Temp\*.*") DO rmdir "%%p" /s /q
sc start wuauserv
rd /S /Q C:\Windows\SoftwareDistribution_old
sc stop TrustedInstaller
ping 127.0.0.1 -n 7 > NUL
del /S C:\Windows\Logs\CBS* /Q
sc start TrustedInstaller
ping 127.0.0.1 -n 5 > NUL
wuauclt.exe /detectnow

Così facendo ho risolto il problema e liberato spazio sul disco. Ho fatto queste modifiche al sistema mesi fa e il problema non si è più presentato (a me, ma anche ad altri utenti che nel frattempo ho rilevato nella nostra rete).

Facile (soprattutto se si ha un aiuto nella software distribution) fare un’analisi all’interno della rete aziendale e cercare le macchine che soffrono la stessa anomalia ma che ancora non hanno saturato il disco, basterà cercare nella cartella C:\Windows\Temp una forte presenza di cab_, così da portarsi avanti ed evitare che il problema si presenti agli occhi dell’utente.

Estote parati (cit.).

G

Il titolo è volutamente simile a quanto già scritto poco tempo fa, e vuole analizzare alcuni consigli che anche io cerco di dare a chiunque si mette a preparare una nuova installazione WordPress (spero prima per sé, poi forse –con buona esperienza sulle spalle– anche per altri), anche se in realtà i concetti di base valgono per qualsiasi accesso a qualunque servizio disponibile sulla grande rete. Basandomi sul blog di chi iThemes Security lo scrive, riporto alcuni passaggi secondo me fondamentali.

WordPress e Authy: autenticazione OneTouch 6

According to this infographic by WP Template on WordPress safety, insecure WordPress themes and plugins contribute to over 50% of all successful WordPress hacks.

Plugins and themes have to go through a screening process before they are released for public use from the WordPress.org plugin repository, so it is important to download your plugins and themes from trustworthy sources and always keep active themes and plugins update to the latest version.

fonte: ithemes.com/2016/11/08/wordpress-hacks

e ancora:

Using the same password on multiple sites is risky.

Using strong passwords for all your logins is one of the best online security practices you can develop.

The best practice to follow is creating a different password for every sing website you are registered on. Definitely don’t use the password you use for your bank account on another site.

An average of 30,000 sites are hacked every day.
This should give you an idea of how many people are affected by cyber attacks, and motivate you to use stronger passwords.

fonte: ithemes.com/2016/11/04/brute-force-attacks

Che poi non è che proprio ci voglia la scala eh. Strumenti come KeePass o simili (anche quelli completamente in cloud) sono fatti apposta per ricordarti password altrimenti (probabilmente) molto difficili da ricordare, soprattutto quando decidi di lasciare fare loro nella fase di generazione di una nuova password complessa. Vale anche il vecchio (ma ancora perfetto) consiglio del “utilizza password apparentemente stupide“, perché ti assicuro che “Il cavallo bianco di Napoleone!” può essere una password certamente più complessa della targa della tua automobile (puoi provare tu stesso su passwordmeter.com, tanto per levarti la curiosità).

Sulla base di ciò, è semplice stilare una ToDo List da tenere sempre bene a mente:

  • Sempre tenere aggiornato il tuo WordPress. Questo vale per il motore principale del CMS, ma anche (soprattutto, in realtà) plugin, temi e codice personalizzato che potresti aver scritto e poi dimenticato lì dopo poco, offrendo una possibile backdoor poco simpatica. Se il server che lo ospita è controllato da te, occorre tenere aggiornato ciò che gli permette di stare online (server web, MySQL, PHP, ecc.).
  • Disinstallare sempre plugin e temi non più utilizzati. Perché qui non si tratta solo di pulizia (sicuramente necessaria per tenere sempre snella l’installazione), ma perché così si vanno a chiudere possibili ulteriori falle, esattamente come da ragionamento del precedente punto della lista.
  • Utilizzare password complesse per ciascun account, possibilmente. Perché se è vero che il tuo blog è aperto alle iscrizioni (e si basa così sul buon senso dei tuoi utenti), è -spero- anche vero che tu possa stabilire delle regole precise per le password di coloro che possono pubblicare qualcosa, o peggio che possono modificare il comportamento del blog intero (un amministratore, tanto per essere chiari).
  • Abilitare l’autenticazione in due fattori per WordPress. E qui ti rimando all’articolo dedicato ad Authy e alla sua possibile integrazione con WordPress, comoda, funzionale, sicura.
  • Cancellare o declassare l’account “admin” predefinito di WordPress. Detto e stradetto, anche nel mio precedente articolo sulla protezione degli accessi alla Dashboard amministrativa, perché quell’utente creato di default nel database, è sempre scomodo e attaccabile (perché è quello che si da per scontato che esista).
  • Scegliere un buon hosting provider per il proprio CMS. Perché la sicurezza comincia dalle fondamenta, e affidarsi a chiunque non è –probabilmente– la migliore scelta, almeno per come la vedo io (e non solo). Un buon partner (perché di questo si tratta, nda) è quello che è sempre attento e pronto ad affrontare una difficoltà, a suggerirti le prossime mosse da fare, a bloccare chi è sgradito prima che faccia danni (più di quanti ne abbia già fatti entrando nel tuo sistema), e che ci tiene alla salvaguardia dei tuoi dati ma anche di coloro che abitano nel tuo stesso “condominio” (quando si parla di hosting condiviso, molto diffuso e primo step per tutti).
  • Scarica plugin e temi solo da fonti sicure. Evita come la peste siti web che promettono di regalarti il tema all’ultimo grido, creati con ore di sudato lavoro e ricchi di plugin solitamente a pagamento, pacchetti “all-in-one” appositamente clonati da siti web che li vendono e supportano quotidianamente. Spesso quei temi contengono codice malevolo, codificato (quindi di difficile decodifica per chi è alle prime armi), da qui in poi è tutto un salto nel buio. Se pensi che un tema sia assolutamente irresistibile, valuta l’acquisto della sua licenza, otterrai così anche un aiuto qualificato in caso di problemi, certamente meno costoso di qualcuno in grado di rimetterti in piedi dopo un deface (o simile) ai danni del tuo sito web.

Hai altri consigli? Vuoi raccontare la tua esperienza e dare qualche suggerimento in merito? L’area commenti –manco a dirlo– è a tua completa disposizione :-)

Qualche tempo fa ho avuto un problema piuttosto fastidioso: qualcuno ha deciso che uno specifico articolo di questo blog era poco gradito, buon (?) motivo per rompermi le scatole e saturare le risorse messe a disposizione dal mio hosting provider (che ringrazio per la pazienza). Per cercare di correre ai ripari, ho incattivito l’opzione di un plugin che già utilizzavo e che utilizzo ancora oggi, iThemes Security (ex Better WP Security).

Proteggere WordPress da login non autorizzati

Ci sono molteplici modi per proteggere l’accesso al wp-login.php, questo è uno tra i tanti attuabili senza molta fatica, una soluzione tutto sommato semplice da mettere in piedi.

Il mio consiglio? Fallo dopo aver chiuso l’accesso al sito web “al pubblico“, perché se è vero che sei sotto attacco, è anche vero che le risposte del tuo blog potrebbero andare in timeout, non arrivare mai. Per chiudere l’accesso a tutti tranne che a te dovrai conoscere il tuo indirizzo IP (mioip.it aiuta in questi casi) e sbarrare le porte grazie al file htaccess. Farlo è semplice, ti basterà creare (o modificare quello esistente) il file inserendo questo pezzo di codice:

order deny,allow
deny from all
allow from 127.0.0.1

Sostituisci il 127.0.0.1 con il tuo IP, carica il file .htaccess nel tuo spazio web (ripeto: se lo hai già, modifica quello che hai e non sovrascriverlo) e il gioco è fatto. Nessuno potrà visitare il tuo sito web a eccezione di te. Così facendo dovresti tagliare fuori il resto del mondo e avere campo libero per lavorare.

Installa iThemes Security e attivalo, così possiamo passare alla sua configurazione, e nello specifico quella utile a proteggere il blog da ripetuti tentativi di accesso alla dashboard di amministrazione o a un URL in particolare (giocando un pelo in contropiede e cambiando le carte in corsa, per poi rimetterle al loro posto).

Il plugin propone moltissime opzioni che ti consiglio caldamente di analizzare, ragionare e attivare secondo tue necessità, io preferisco saltare sulla singola esigenza di stavolta, andiamo con ordine.

404 detection

Servirà a proteggerti da chi tenta di raggiungere costantemente URL non esistenti, le sue impostazioni (e i limiti oltre i quali mandare in ban l’IP di chi ci sta provando) si trovano però in Global Settings, nello specifico parlo di:

  • Blacklist Repeat Offender, che deve essere assolutamente attivo.
  • Blacklist Threshold, che corrisponde al numero di tentativi da abbuonare all’IP prima di escluderlo in maniera definitiva (impedendogli di visualizzare il sito web).
  • Blacklist Lookback Period, che corrisponde al numero di giorni durante i quali quell’IP continuerà a rimanere sotto controllo (per capirci: se il limite di lockout è 2, per il numero specificato di giorni basterà farne un altro per andare in ban, una soluzione molto secca, tanto chi attacca generalmente raggiunge il limite di lockout nel giro di qualche minuto al massimo).
  • Lockout Period, che corrisponde all’intervallo di tempo (in minuti) di allontanamento di quell’IP dal blog.
  • Lockout White List è invece il box adatto a raccogliere gli IP che non devono essere soggetti alle impostazioni sopra riportate.

In tutto questo, nella stessa tab (Global Settings, nda), potrai scegliere di essere avvisato dei lockout e dei ban a mezzo posta elettronica (l’opzione da spuntare è Enable Email Lockout Notifications), che poi è un po’ come avere l’immediato polso della situazione …

Proteggere WordPress da login non autorizzati 1

e pensa che quella che vedi qui sopra è solo una parte dei ban a me notificati nel periodo dell’attacco, in pratica un campo di battaglia senza esclusione di colpi (sono arrivato a toccare quota 400 ban circa in un paio di giorni).

Banned Users

Passa ora alla tab Banned Users e imposta ciò che credo possa esserti più utile, ovvero:

  • Default Blacklist, che ti permetterà di sfruttare liste già popolate e verificate, offerte da HackRepair.com.
  • Enable Ban Lists, che manco a dirlo è tutto ciò che serve per iniziare a fare la raccolta differenziata di IP che servono evidentemente poco alle tue visite, ma che minano per troppo tempo la tua pazienza.

Volutamente non ho specificato (almeno fino a oggi) degli User Agents specifici. Generalmente quelli più fastidiosi vengono lasciati liberi nel web da player molto grandi, motori di ricerca, servizi. Ricorda che potrai comunque appoggiarti a questa ulteriore funzione in qualsiasi momento, in caso di necessità.

Local Brute Force Protection

Ciò che più va a “braccetto” con la protezione relativa agli errori 404, opzioni che riguardano stavolta il login alla Dashboard amministrativa di WordPress e che –secondo me– devono essere altrettanto restrittive e di difficile perdono, perché se sei davvero il gestore del blog, hai anche la possibilità di chiuderti fuori dalla porta ma conoscere il trucco delle chiavi sotto al tappeto, andando a disabilitare il plugin (rinominando la sua cartella nello spazio FTP) in caso di errore ripetuto e non voluto.

  • Max Login Attempts Per Host: specifica qui il numero di tentativi massimi di login per un singolo host (IP) prima di finire nella lista dei cattivi, in alternativa puoi lasciarlo a zero per evitare di mandare in ban l’indirizzo IP e decidere di rendere sufficientemente cattivo il Max Login Attempts Per User, che si riferisce invece al numero massimo di login di uno specifico utente (che può utilizzare più IP sorgenti, giusto per capirci).
  • Minutes to Remember Bad Login (check period) indica, come per il Blacklist Lookback Period di prima, il tempo che deve passare prima che il plugin dimentichi uno dei tentativi andati a male precedentemente.
  • Automatically ban “admin” user è –infine– quella che preferisco, perché la prima regola di qualsivoglia installazione di WordPress è quella di andare a disattivare o eliminare completamente l’admin creato di default dall’installazione, creandone uno che abbia uno username del tutto differente. Se qualcuno tenta di entrare come “admin” nel tuo blog, probabilmente si tratta di un bot, meglio estirparlo sul nascere, senza pensarci due volte.

C’è altro?

Si, molto. C’è da dare un’occhiata alla Network Brute Force Protection, alla File Change Detection (ciò che ti avvisa nel caso in cui vengano modificati dei file), alla WordPress Tweaks (per disattivare opzioni non necessarie e regolare l’accesso a risorse di WordPress) e tanto altro ancora, davvero. Prenditi il tempo necessario, studia tutte le possibilità offerte dal plugin, valuta se l’opzione Pro (a pagamento) proposta dallo stesso sviluppatore fa al caso tuo, imposta la migliore configurazione tenendo presente che in caso di configurazione errata o particolarmente cattiva, potrebbe chiuderti fuori dalla porta senza neanche passare dal via e prendere le duemila lire.

Quanto fatto però non basta, perché se l’attacco è verso uno specifico URL esistente, dovrai temporaneamente mettere offline il contenuto, oppure scegliere di cambiargli indirizzo, almeno per un periodo durante il quale ogni attacco non andrà a buon fine e porterà direttamente al ban, raccogliendo una serie di IP dai quali proteggersi. Concludi l’operazione andando a rimettere a posto il file .htaccess precedentemente modificato, per permettere a tutti di accedere nuovamente al blog. Le risorse del provider saranno ora più che sufficienti e potrai sopportare nuovamente il tuo carico di visite, quelle vere e assolutamente gradite.

Dopo aver adottato la soluzione, ho potuto rimettere abbastanza rapidamente online il contenuto precedentemente attaccato, che ancora oggi fa parte degli archivi di questo blog e che spero possa rimanere lì per molto altro tempo (no, non dirò di quale si tratta) :-)

L’area commenti è –come sempre– a totale disposizione per ulteriori soluzioni, alternative, commenti, critiche costruttive e per raccolte di “beneficenza“, che Natale si avvicina e sta baracca bisogna pur pagarla per tenerla viva e vegeta.

Estote parati (cit.).

G

È capitato a un amico, si trattava del solito messaggio che lo avvisava riguardo un fantastico e irrinunciabile servizio al quale si era appena abbonato. Peccato che non lo abbia mai voluto fare, ha solo sfiorato uno di quei banner pubblicitari che si trovano nelle applicazioni o nei siti web caricati da mobile, che in un nanosecondo permettono a società parassite di iniziare a scalare del credito dalla propria ricaricabile (o caricare quella spesa sull’abbonamento mensile). Ci sono decine di articoli che ne parlano e una marea di imprecazioni contro i carrier telefonici. Di cosa si tratta e come si blocca questo comportamento sul nascere?

Barring SMS

Servizi a pagamento non richiesti

Cito un cappello introduttivo di Altro Consumo che ha già trattato in passato l’argomento in maniera completa:

Si nascondono dietro nomi ogni volta diversi. Compaiono in bolletta in mezzo al resto dei costi, cercando di camuffarsi tra le altre voci. Sono i servizi non richiesti: abbonamenti di cui non si era mai sentito parlare prima di vederli comparire sulla bolletta mensile. Lo avete segnalato in tanti: mentre si naviga dallo smartphone, sfiori accidentalmente un banner pubblicitario e ti ritrovi abbonato in men che non si dica. Oppure, mentre stai giocando sul telefono, nell’intento di chiudere una finestra di pop-up, scatta la sottoscrizione ai servizi più disparati. Spesso capita anche che credi di navigare utilizzando le soglie previste dal tuo piano tariffario e, invece, poi scopri che non ti hanno rinnovato la promozione e stai spendendo soldi senza neanche rendertene conto. O che inizi a ricevere sms di vario genere, con contenuti a pagamento, senza aver mai richiesto alcuna attivazione.

Si va dallo spacciatore delle migliore suonerie per cellulari (fa molto anni ’90, nda) a quello che ti permette di stringere amicizie con nuove persone, magari anche a fini di relazione sentimentale. Fanno leva sulla curiosità, talvolta sulla pura e mera distrazione dell’utente che –dopo aver scaricato l’ennesimo gioco fotocopia– va a fare clic sul banner che compare a tradimento nell’avanzamento tra un livello e l’altro. Fosse per me, nonostante non sia mai caduto nella trappola, andrei a prendere a badilate in faccia coloro che abusano dell’ignoranza degli utilizzatori non molto esperti per estorcere denaro guadagnato con il sudore. È capitato tra amici, è capitato anche a Ilaria che -non facendolo certo apposta- ha fatto clic su un banner di un’applicazione di ricette, può succedere davvero a chiunque.

Formazione, consigli, ho fatto di tutto e cerco di tenere sempre allineato mio padre (che ha uno smartphone e una tariffa dati), lo stesso vale per mia madre, non è mai abbastanza, basta un secondo e la frittata è fatta (e via i primi 5€ nel frattempo, senza neanche battere ciglio).

Chiedere aiuto all’operatore

Quando succede un episodio legato a servizi a pagamento non richiesti, è necessario quanto prima contattare il proprio operatore e chiedere aiuto. Nel caso di TIM (ciò che ho dovuto fare io per mettere al riparo Ilaria) il numero è il 119. Prima di procedere ed essere sicuro di quanto accaduto, mi sono collegato all’area clienti del sito web ufficiale e ho dato una sbirciata ai servizi attivi, trovando quello relativo al SMS di notifica ricevuto qualche minuto prima:

Barring SMS: difendersi dai servizi a pagamento non richiesti

I primi 5€ erano stati già scalati dal credito, tanto per gradire. Prima di comporre il numero dell’assistenza e perderci nella labirintica scalata all’operatore in grado di aiutarci, ho anche inviato un SMS di risposta a quello di notifica, utilizzando il comando di STOP per provare a disattivare manualmente l’abbonamento mai voluto. A questo punto, senza aspettare ulteriormente, ho chiamato il 119. Dopo 800 possibili deviazioni, due salti carpiati e tuffo nel vuoto sono riuscito a parlare con un umano, ho spiegato la situazione e ho chiesto ulteriori dettagli.

La conferma è arrivata immediatamente. Il servizio non richiesto aveva già fatto il suo dovere infilandosi tra le spese ricorsive, senza conferma alcuna, un chiavi in mano davvero poco gradevole perché in grado di fare una rapida escalation quasi al pari di un root in shell Linux. Fatta partire la richiesta di rimborso del credito, abbiamo richiesto il barring per ogni tipo di servizio simile a quello che si era attivato per Ilaria.

Ti riporto un pezzo dell’articolo scritto da Luigi Cigliano sul suo blog, che ho trovato curiosando dopo aver terminato di parlare con il supporto del 119:

Ad ogni modo, è bene sapere che la legge è comunque dalla nostra parte. Con l’articolo 5, comma 4 dell’allegato A alla Delibera 418/07/CONS l’AGCOM infatti dispone che:

“… gli operatori della telefonia disattivino immediatamente i servizi a sovrapprezzo in abbonamento ed interrompano i conseguenti addebiti a decorrere dalla semplice richiesta telefonica dell’utente mediante chiamata al numero di assistenza clienti, nonché mediante eventuali ulteriori modalità telematiche messe a disposizione dall’operatore…”

Per non rischiare più di attivare servizi a pagamento indesiderati via SMS o MMS, come ultima spiaggia è possibile ora richiedere l’attivazione del Barring SMS, una funzione che blocca a monte questo genere di messaggi a pagamento, di solito provenienti da particolari numeri che iniziano con il 4 (in particolar modo le decadi 44, 45, 46, 47, 48).
Nella maggior parte dei casi per beneficiare del barring è sufficiente telefonare al servizio clienti del proprio gestore telefonico e farne domanda all’operatore (in alto trovate la lista dei vari recapiti).
Il rovescio della medaglia del servizio di barring SMS è quello di andare poi a bloccare anche tutti qui servizi SMS attivati volontariamente, come ad esempio quelli inviati dalla banca per notificare l’utilizzo della carta di credito.

In realtà, per mia esperienza, non ho riscontrato alcun tipo di problemi con gli SMS della banca che, pur avendo il barring attivo, continuano ad arrivare regolarmente sul telefono della mia compagna, è evidente che per evitare spiacevoli confusioni e mancati recapiti si siano tutelate (forse alcune, forse tutte) e facciano arrivare i loro messaggi tramite altri tipi di gateway.

Tutto si è concluso nel giro di pochi minuti, il rimborso è arrivato dopo qualche giorno, il barring continua a essere il metodo unico e solo per evitare che questi spiacevoli inconvenienti si verifichino ancora, fermo restando che considero altamente scorretta la sola possibilità di eseguire questo tipo di abbonamenti senza la reale conferma dell’utente finale.

Siamo circondati

Non è la prima che succede una cosa simile. È successo a Ilaria, è successo ad altri amici, ricordo (seppur ormai a fatica) che successe anche a me quando ancora esistevano Omnitel e nascevano i primi servizi per “chattare” tra contatti conosciuti e non (a quell’epoca però era decisamente più difficile parlare del problema con l’operatore e pretendere il rimborso).

Riporto solo due casi di persone che leggo (Enrico lo conosco anche dal vivo, ma tant’è) che hanno lamentato poco tempo fa la stessa anomalia (?) e che hanno avuto a che fare con i call center spesso non davvero pronti a servire un cliente in difficoltà e che fa notare una truffa bella e buona ai suoi danni (il primo dei due link qui di seguito è davvero epico):

Estote parati (cit.)

G

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato ai post "a bruciapelo"!

Non so se si può parlare di una vera e propria nuova versione. Cambia poco rispetto alla precedente, ma stavolta si può scegliere di controllare lo stato di lock out di un utente direttamente proponendolo da riga di comando, così da poter utilizzare lo stesso identico script e clonare facilmente l’operazione pianificata, così da monitorare contemporaneamente più utenti.

Powershell: LockoutAD.ps1, utente a riga di comando

Cosa cambia quindi rispetto al precedente articolo? Presto detto:

#-----------------------------------------------#
#   ACCOUNT DA MONITORARE:                      #
    Param( 
        [Parameter(Position=0, Mandatory=$false, ValueFromPipeline=$true)] 
        [string] $AccountMonitor
    )
#-----------------------------------------------#

Questo, al posto del precedente $AccountMonitor = 'ACCOUNT_AD', permetterà di richiamare lo script in maniera tale da passargli l’account direttamente dal prompt della PowerShell: .\LockoutAD.ps1 ACCOUNT_AD

Chiaramente, per evitare che ci si dimentichi di specificare l’utente, basterà specificare un valore di default che lo script adotterà nel caso in cui non ci siano parametri, qualcosa del tipo:

 if ([string]::IsNullOrEmpty($AccountMonitor)) { $AccountMonitor = 'ACCOUNT_AD' }

così da tutelare una corretta esecuzione del codice. Questa istruzione andrebbe messa chiaramente dopo il catch del parametro da riga di comando, ma prima di lasciar fare la ricerca dell’evento 4771 (o 4740, in base a ciò che si desidera monitorare).

Tutto il resto può rimanere invariato. Se si intende fare un test di funzionamento senza allertare troppi indirizzi di posta elettronica, si potrà clonare la riga del Send-MailMessage assicurandosi di essere unici destinatari (commentando quella che include quindi eventuali CC o BCC), per poi tornare alla normalità quando si è sicuri che tutto fili liscio.

Magari, in una prossima pillola, ti mostrerò come arricchire ulteriormente lo script, prevedendo uno sblocco automatico dell’utenza di dominio bloccata, così che tu possa analizzare con un attimo più di calma cosa è accaduto e nel frattempo l’utente non si accorga di nulla (o quasi).

A proposito di EventLog e PowerShell

Ho modificato il comportamento dello script perché ho avuto la necessità di clonare l’operazione schedulata sul server di dominio così da tenere d’occhio un differente utente. Per poter approfondire il motivo dei lock di quest’ultimo, ho utilizzato PowerShell per filtrare più rapidamente il log degli eventi di sicurezza, generalmente molto nutrito e che mette un attimo in difficoltà la GUI accessibile tramite Visualizzatore degli Eventi. Per questo motivo ho cercato informazioni in merito e trovato alcuni interessanti spunti su serverfault.com/questions/584309/powershell-and-using-get-eventlog.

Nello specifico, ho filtrato direttamente gli eventi 4740 e 4771 protagonisti dello script, includendo inoltre lo specifico nome utente problematico, tramite una semplice query di questo tipo:

Get-EventLog Security 4771,4740

Che, per filtrare esclusivamente un utente, diventerà:

Get-EventLog Security 4740,4771 -after ((get-date).addDays(-1)) | Where-Object {$_.message -match "NOMEUTENTE"}

Permettendoti così di ottenere a video uno storico completo dell’attività dell’utente specifico, anche quando si tratta di tentativi di accesso molto vecchi (dipende poi dalla quantità di log che tiene il server secondo impostazioni del suo amministratore), ignorando quindi il mio -Newest 1 che nello script permette di prendere in esame solo l’ultimo dei tentativi errati (quello in realtà relativo al blocco dell’account in LDAP).

Buon lavoro!

immagine featured: PowerShell Magazine