Powershell, Windows Firewall e magari RMM

Firewall dinamico con Powershell
Ci sono situazioni che si ritiene non saranno mai reali e quindi tali da non pensarci, nel caso in cui ci si pensi, sono così improbabili che non ci si investe tempo per risolvere nel caso.
Nello specifico penso a quegli eventi dove nella rete ci si ritrova ad affrontare uno o più dispositivi di passaggio, il cui utilizzatore è a conoscenza di alcune informazioni di accesso, ma dopo che qualcuno lo ha autorizzato a collegarsi con il computer ecco sorgere l’inconveniente che potrebbe ficcare il naso in posti da evitare.
Emersa questa problematica diventa per noi necessario trovare una soluzione per limitare questa potenziale falla di sicurezza.
Mettendo insieme i vari elementi conosciuti emerge una soluzione dinamica, che annovero tra le soluzioni patch per rimediare agli errori decisionali.
Opzioni possibili
Le vie per risolvere la situazione sono diverse e per le scelte decisionali non modificabili, in buona parte non sono applicabili.
- Scollegare il dispositivo dalla rete;
- Collegare il dispositivo ad una VLAN o ad un Wireless di tipo Guest;
- Creare una reservation nel DHCP e bloccare l’indirizzo sui sistemi da proteggere;
- Filtrare il MAC address delle schede di rete del dispositivo.
I primi due punti non sono realizzabili per vincoli di direzione, perché il dispositivo devo poter accedere ad alcuni elementi della LAN principale e creare una VLAN dedicata o una rete Wireless su misura, da usare per una settimana, diventa un investimento non affrontabile.
Il punto tre potrebbe essere il salva vita, noto l’IP rigidamente assegnato dal DHCP, si procedere con la creazione di una regola di blocco nel Windows Firewall. Tuttavia, questo approccio non è sicuro, se il soggetto è in malafede, può semplicemente applicare un indirizzo statico al suo dispositivo e raggirare il blocco.
Il quarto punto è quello che offre maggiori garanzie, anche se il MAC Address è in molti casi modificabile; tuttavia, è un’evenienza che richiede un livello di esperienza di cui l’utente medio non dispone. Il punto cruciale è come automatizzare l’aggiornamento del Windows Firewall passando dal MAC Address, tenendo presente che il tempo è poco e il budget disponibile ancora meno.
La soluzione tampone
La prima opzione che passa per la mente è quella di filtrare il MAC Address nel router o nel firewall della rete dove il dispositivo è collegato, tuttavia in base alle regole di navigazione, il traffico tra indirizzi IP della medesima rete non passa dal gateway; quindi, questo tipo di implementazione andrebbe a bloccare la connessione verso Internet o altri sistemi al di fuori della rete locale. Dispositivi gateway evoluti possono anche gestire questi venti, ma non è detto che siano disponibili.
Alcuni elementi sicuramente disponibili sui server e computer Microsoft Windows sono:
- Windows Firewall
- Powershell
- Agente RMM (Opzionale)
La linea di azione da seguire diventa quella di determinare il MAC Address del dispositivo remoto, da usare per generare una lista di valori da sottomettere al firewall.
Lo strato di rete di qualsiasi dispositivo dispone di una tabella contenente i MAC Address dei dispostivi che in qualche modo hanno preso contatto (ARP Table), questa tabella fornisce anche l’indirizzo IP del sistema connesso.
Sfruttando la ARP Table diventa possibile determinare l’indirizzo IP usato dal sistema remoto e da questa informazione generare o modificare la regola di blocco inserita nel Windows Firewall del sistema di proteggere.
Come funziona
Lo script realizzato è progettato per essere associato come monitor ad un RMM o inserito nello schedulatore di Microsoft Windows, in entrambi i casi con una cadenza di ripetizione di 60 secondi, il monitoraggio deve essere continuo.
Sfruttando Powershell come prima azione vengono acquisiti i MAC Address inseriti in input ed utilizzati per creare un file JSON salvato in una cartella di default e contente gli indirizzi MAC e un indirizzo IP di valore 000.000.000.000. Il file JSON con i valori di input è generato solo al primo avvio del monitor, successivamente viene modificato con i valori acquisiti dal sistema. Nel caso di modifiche è necessario attivare un reset, che forza lo script a caricare nuovamente i valori di input della procedura, pulendo e ricreando le regole in Windows Firewall.
Per salvare un array di valori in formato JSON si ricorre ad alcuni cmdlet messi in pipe:
$ArrayValori | ConvertTo-Json -depth 1 | Set-Content -Path “file.json”
Per poter utilizzare i valori nella procedura è fondamentale leggerli dal file JSON e ricreare l’array di origine, anche in questo caso si ricorre a qualche pipe:
$ArrayValori = Get-Content -Path “file.json”| ConvertFrom-Json
Ottenuti I valori di riferimento è necessario ottenere dal sistema la tabella ARP dei dispositivi che hanno avuto qualche contatto con la scheda di rete, per ottenere queste informazioni è possibile utilizzare la seguente stringa di cmdlet:
$ArpTable = get-wmiobject win32_networkadapter |
where-object { $_.netconnectionstatus -eq 2 } |
Get-NetNeighbor -addressfamily IPv4 |
Select-Object IPAddress,LinkLayerAddress
Noti gli indirizzi che si intende bloccare e l’elenco di chi ha avuto contatti con la scheda di rete, la procedura inizia a confrontare le informazioni, alla prima attivazione tutti gli indirizzi IP forniti dal file JSON sono di valore zero, questo evidenzia che il MAC Address è collegato ad un IP diverso e pertanto viene creata la regola nel firewall con l’IP ottenuto dalla ARP Table. L’indirizzo IP ottenuto è inserito nel file JSON attraverso una riscrittura.
Ad ogni ciclo del monitor il controllo si ripete e per ogni variazione degli indirizzi IP associati ai MAC Address da bloccare viene cancellata la vecchia regola nel Windows Firewall e creata una nuova regola con la relativa modifica del file JSON.
Il monitor rende possibile resettare completamente la configurazione, andando a cancellare il file JSON e la sua cartella contenitore e tutte le regole create nel Windows Firewall per questa implementazione.
Per maggiori informazioni sull’uso e la realizzazione degli script di automazione leggi questo articolo e contattaci senza impegno.
I componenti distribuiti sono forniti senza alcuna garanzia. Non vi sono garanzie che il software soddisfi le vostre esigenze o sia esente da errori. In nessun caso gli sviluppatori saranno responsabili per eventuali danni.
I componenti proposti sono stati collaudati nel modo più esaustivo possibile e sono utilizzati in modo regolare in ambienti di produzione, durante il loro utilizzo non si sono verificate anomalie di funzionamento.
Articoli recenti
- ShellBag – un viaggio allucinante nei ricordi di Windows
- La donazione di sangue nei cani: importanza, modalità e compatibilità
- Il Manto del Cane: Un Viaggio alla Scoperta della Sua Pelle e del Suo Pelo
- Proteggi il tuo cane dal caldo: prevenzione e riconoscimento della disidratazione
- Monitoraggio e Verifica delle Configurazioni di Rete: Una Soluzione Efficace con PowerShell e Datto RMM
Archivi
Prossimi eventi
Non ci sono eventi imminenti.
Iscriviti alla nostra Newsletter
Un progetto parallelo ambientato nella Tuscia Sutrina: piante da giardino locali, tecniche di coltivazione, storia e leggende del territorio, racconti fantasy a tema. Botanica, cultura e tradizioni in un unico spazio.
A volte basta una breve pausa per ritrovare la concentrazione: qualche minuto tra verde e fantasia può aiutare a tornare al lavoro con nuove idee.
Visita il sito