Formazione e Tecnologia
Interrogare il firewall di Windows usando 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:

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.

LEGGI ANCHE -  Controllo dei contenuti delle code di BitsTransfer

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.

LEGGI ANCHE -  Powershell per cancellare i vecchi profili dai computer

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.

Estrazione dei dati delle regole del firewall.

Estrazione dei dati delle regole del firewall.

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.

Le regole del firewall con un codice Powershell perfezionato.

Le regole del firewall con un codice Powershell perfezionato.

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
LEGGI ANCHE -  Gestione Avanzata del DHCP con Microsoft Windows Server e PowerShell
Archivi
Prossimi eventi

Non ci sono eventi imminenti.

Iscriviti alla nostra Newsletter
Seleziona lista (o più di una):
Manteniamo i tuoi dati privati e NON li condividiamo con terze parti. Per maggiori informazioni, consulta la nostra Privacy Policy.
Confermo di aver letto la Policy sul trattamento dei dati

Automatizzare in autonomia

Ecco come diventare autonomi nella realizzazione di procedure o come beneficiare di quanto già pronto all'uso.
Il misticismo della Tuscia e le curatrici

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