Scripting di ISA Server 2006 con PowerShell

Published 19 March 07 02:25 PM | claudiog 

Recentemente ho dovuto configurare un server ISA 2006, per consentire la navigazione dalla rete Interna a Internet su di una porta SSL non standard (quindi non TCP/443).

ISA Server 2006 (come la 2004) non consente, per ragioni di sicurezza, l'uso di "tunnelling" (non ispezionabile) su porte non standard. Però la piattaforma è molto flessibile ed è sempre stato possibille, con l'uso di alcuni oggetti COM e di un pò di scripting, creare dei nuovi "Port Ranges" legali, su cui poi attestare una specifica regola outbound.

La KB 283284 di Microsoft, descrive un esempio d'uso, in VBscript. Ma potevo esimermi dallo scriverne una versione PowerShell ? ... NO ! :-D

Ecco di seguito il codice commentato, ed il classico link per il download del .PS1

Per prima cosa dobbiamo istanziare un oggetto COM in PowerShell ed associarlo ad una variabile, che possiamo stampare ed interrogare usando Reflection:

$Isa=new-object -strict 'FPC.Root'

$Isa
$Isa | gm

Poi creiamo un'altra variabile, per estrarre l'elenco dei Port Ranges definiti in ISA, usando un metodo di $Isa per connetterci all'array e da lì agli elementi della Policy, specificatamanete a quelli che trattano del componente WebProxy.

$tpRanges = ($Isa.GetContainingArray()).ArrayPolicy.WebProxy.TunnelPortRanges
$tpRanges

Bene, abbiamo appena visto che l'unico ....
Ora creiamo un nuovo Port Range, che associamo ad una variabile per eventuali altre elaborazioni, quindi salviamo i Port Ranges modificati e rinfreschiamo l'oggetto $Isa, per aggiornare l'oggetto complessivo con la nuova configurazione.

$newRange = $tpRanges.AddRange('SSL 81 - Video Conferenza', 81, 81)
$tpRanges.Save()

$Isa.Refresh()


In questo caso abbiamo definito un protocollo SSL su porta 81.

Claudio

Filed under: ,
Anonymous comments are disabled

About claudiog

MCSA, MCSE, MCT su NT/2000/2003 MCTS: Windows Server 2008 Active Directory/Application Platform/Network Infrastructure