Maggiori informazioni dalle regole del firewall con Powershell

Interrogare il firewall di Windows usando Powershell.
Abbiamo già scritto della localizzazione delle regole del firewall di Microsoft Windows usando Powershell; tuttavia, una semplice lista dei nomi è solo il primo passo.
Dalla ricerca della regola vogliamo ottenere anche le informazioni relative all’applicazione interessate, agli indirizzi coinvolti e alle porte.
Tutto questo sempre per via del fatto che a noi cercare le regole nel pannello grafico di Microsoft Windows infastidisce molto ed inoltre abbiamo piacere nel poter eseguire le operazioni anche attraverso degli script e un RMM.
Purtroppo Powershell non dispone nativamente di un unico cmdlet per avere tutte le informazioni, diventa pertanto necessario richiedere i vari elementi della regola a cmdlet diversi, in questo articolo andiamo ad illustrare una strada spartana per la raccolta dei dati, con una strada illustrata in passato è possibile aggregare le informazioni in un’unica matrice.
Tabella dei Contenuti
Quattro cmdlet per interrogare il firewall
La visualizzazione delle regole esistenti di Microsoft Windows attraverso Powershell è molto semplice, in questo contesto vedremo solo i comandi di visualizzazione della regola, dei programmi, degli indirizzi e delle porte.
I comandi chiave di questo articolo sono i seguenti e il loro nome ne spiega l’uso:
- Get-NetFirewallRule – Visualizza tutte le regole;
- Get-NetFirewallApplicationFilter – Visualizza tutti i programmi referenziati dal firewall;
- Get-NetFirewallAddressFilter – Visualizza tutti gli indirizzi referenziati dal firewall;
- Get-NetFirewallPortFilter – Visualizza tutte le porte referenziate dal firewall.
Sono disponibili ulteriori cmdlet per aumentare il dettaglio di informazioni sulle specifiche regole cercate.
Come interrogare il firewall
Per individuare le regole dobbiamo sfruttare il nome dell’applicazione o servizio su cui dobbiamo agire e che potrebbe essere filtrato dal firewall. Per farlo sfruttiamo una parte ridotta del nome dell’oggetto che stiamo cercando, lo scopo è quello di massimizzare la possibilità di trovare qualcosa, dopo di che è possibile raffinare la ricerca perfezionando il nome da cercare.
Get-NetFirewallRule | Where-Object { $_.DisplayName -like “*rmm*” }
Il cmdlet Get-NetFirewallRule restituisce l’intero elenco delle regole presenti con tutti i parametri chiave che le definiscono, questa visualizzazione non fornisce i dettagli relativi al programma, agli indirizzi e alle porte coinvolte.
Per filtrare l’elenco passiamo l’output ottenuto, usando una pipe (|), al cmdlet where-object. Nella condizione cerchiamo tutte le occorrenze dove il parametro DisplayName contiene una porzione del nome della regola.
L’output ottenuto costituisce la base di partenza per le ulteriori ricerche.
Approfondimento delle informazioni sulle regole ottenute
Un elemento importante è il minimizzare quanto possibile l’output ottenuto in precedenza, così da avere solo le effettive regole da analizzare, semplificando di conseguenza la visualizzazione.
Il codice rudimentale che andiamo ad utilizzare è il seguente, inoltre sfruttando gli ulteriori cmdlet e modificando le condizioni di select è possibile ottenere ulteriori dati relativi alla regola.
$RuleName = "webremote 11.9.0.1661"
$RuleList = Get-NetFirewallRule | Where-Object { $_.DisplayName -like "*$RuleName*"}
foreach ($Rule in $RuleList) {
$Application = $Rule | Get-NetFirewallApplicationFilter
$Port = $Rule | Get-NetFirewallPortFilter
$Address = $Rule | Get-NetFirewallAddressFilter
$Rule | Select DisplayName,Description,Direction,Enabled,Profile
$Application | Select Package,Programm,AppPath
$Address | Select LocalAddress,RemoteAddress
$Port | select Protocol,LocalPort,RemotePort,DynamicTransport,DynamicTarget
write-host ("-" * 50)
}
Con la Riga 1 forniamo la parola/frase chiave da cercare tra le regole presenti nel firewall, può essere un parametro dello script da eseguire o un argomento del componente del RMM.
La Riga 2 salva in una variabile oggetto (RuleList) la risultante della ricerca filtrata dal cmdlet Where-Object, usando la condizione determinata dalla parola chiave.
Dalla Riga 3 alla Riga 14 vengono richiesti i dettagli di ogni singola regola individuata e processata.
La Riga 3, con l’istruzione foreach, esegue un ciclo dei contenuti della variabile del precedente output, immagazzinando il valore del record letto nella variabile Rule.
Le Righe 4, 5 e 6 ottengono rispettivamente le informazioni relative all’applicazione, alle porte e agli indirizzi coinvolti dalla regola in esame, immagazzinandole in una variabile dedicata.
Le Righe 8, 9, 10 e 11 stampano i risultati ottenuti e relativi ai soli campi specificati dal cmdlet Select-Object.
La Riga 13 traccia una linea di separazione tra gli output delle diverse regole analizzate.
Conclusioni
Con questo codice rudimentale possiamo ottenere tutte le informazioni relative alle specifiche regole del firewall di Microsoft Windows.
L’aggiunta degli ulteriori cmdlet legati al modulo Firewall di Powershell e l’estensione dei campi specificati dai cmdlet Select-Object, rende possibile estendere o ridurre i dati ottenuti.
Con le opportune manipolazioni del codice è possibile ottenere degli output organizzati e tali da permettere delle ulteriori ricerche nel contesto dei valori ottenuti.
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
Automatizzare in autonomia
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
