Archivio

Archive for aprile 2014

PowerShell v.4–Server Core Management (parte 2)

Abbiamo visto come impostare i principali parametri relativi alla configurazione di rete, proseguiamo nella gestione di altre configurazioni del nostro server. Sicuramente la regolazione della data e dell’ora sono importanti, in particolare se non abbiamo a disposizione un server di riferimento orario oppure siamo privi di una connessione verso internet.

PowerShell ci mette a disposizione due cmdlets per questo scopo. Get-Date ci permette di ottenere informazioni in merito alla data ed ora correnti della macchina; Set-Date ci permette di impostare i valori desiderati (utilizzando il formato data del sistema, usando Get-Culture sarà possibile stabilire le impostazioni della lingua del sistema) digitando tra doppi apici la data e l’ora.

image

Tra le configurazioni inziali non va dimenticato il firewall di sistema. Le ultime versioni del sistema operativo hanno portato grandi miglioramenti relativamente alla protezione della rete e grazie al firewall con sicurezza avanzata abbiamo uno strumento decisamente efficace a disposizione. Purtroppo molti tecnici hanno l’abitudine di disattivarlo e non hanno mai valutato le sue potenzialità, personalmente ritengo che sia utile mantenerlo attivo anche perché i server roles che attiviamo/disattiviamo provvedono autonomamente ad abilitare/disabilitare le regole del firewall necessarie al loro funzionamento (ed anche i prodotti di terze parti si comportano in ugual modo). In alcuni casi, però, dobbiamo provvedere manualmente a questa attività; poiché la verifica del funzionamento della rete avviene utilizzando comandi come ping e tracert, che sfruttano le specifiche del protocollo ICMP, è utile che il firewall accetti questo genere di richieste e consenta l’invio della risposta. Per visualizzare le regole del firewall abbiamo a disposizione il cmdlet Get-NetFirewallRules; digitandolo senza parametri ci verranno elencate, nel formato lista, tutte le regole presenti. Usando un filtro sul nome, ed una pipeline per mostrare il risultato come una tabella, potremo ottenere un elenco molto più ristretto e leggibile.

image

Regole del firewall da abilitare per la diagnostica di rete sono quelle che rispondono ai seguenti filtri:

FPS-ICMP4-ERQ-*: per la gestione delle richieste echo per il protocollo TCP/IP v4;

FPS-ICMP6-ERQ-*: per la gestione delle richieste echo per il protocollo TCP/IP v6.

Essendo queste regole già presenti nel sistema, perché utili per l’accesso alle risorse files e stampanti (tant’è che sono regole che si attiverebbero automaticamente qualora abilitassimo le condivisioni, quindi il server role File and Printer Sharing), possiamo forzarne l’abilitazione utilizzando il cmdlet Enable-NetFirewallRule.

image

Ovviamente è anche disponibile il cmdlet per la disabilitazione delle regole: Disable-NetFirewallRule. Quando si gestisce il firewall di sistema per rendere l’ambiente di lavoro più sicuro potrebbe rendersi necessario anche disabilitare delle regole per impedire intrusioni, perché la prima fonte di attacchi informatici ha origine nella rete locale e non da internet!

Per quanto inerente alle configurazioni abitualmente applicate resta solamente la gestione dell’accesso alla macchina mediante desktop remoto. A differenza delle precedenti impostazioni non abbiamo un cmdlet per abilitare/disabilitare la connessione RDP, ci dovremo avvalere dei cmdlet per la scrittura nel registro di sistema. Le chiavi di nostro interesse sono:

HKLM:\System\CurrentControlSet\Control\Terminal Server

HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

di cui considereremo rispettivamente i valori fDenyTSConnections e UserAuthentication. Per conoscere lo stato di abilitazione di desktop remoto dovremo usare il cmdlet Get-ItemProperty sulla prima chiave di registro (nel nostro caso il valore di fDenyTSConnections è 0).

image

Variando fDenyTSConnections possiamo abilitare o disabilitare il protocollo RDP, quando l’impostazione è 1 desktop remoto è disabilitato, quando è 0 il protocollo è abilitato. Per applicare questa modifica al registro di sistema è necessario disporre di privilegi elevati e si utilizza il cmdlet Set-ItemProperty.

image

In ugual modo possiamo operare su UserAuthentication sapendo che 1 significa garantire l’accesso solo ai client che dispongono di autenticazione a livello di rete (più sicuro) mentre lasciando 0 permetteremo l’accesso a qualsiasi client RDP.

image

Evidentemente è consigliabile utilizzare dei client desktop remoto con autenticazione a livello di rete in modo che la comunicazione con la macchina di destinazione sia protetta sin dalle prime fasi della connessione.

Resta solo da configurare il firewall affinché ci permetta il traffico del protocollo desktop remoto.

image

Usando il cmdlet New-NetFirewallRule possiamo creare le regole di nostro interesse, che nello specifico sono:

New-NetFirewallRule -Name ‘RDPC-TCP-IN’`
    –Displayname ‘Remote Desktop Connection (TCP-In)’`
    –Protocol TCP –LocalPort 3389 `
    –Enabled True -Profile Domain,Private,Public

New-NetFirewallRule -Name ‘RDPC-UDP-IN’`
    –Displayname ‘Remote Desktop Connection (UDP-In)’`
    –Protocol UDP –LocalPort 3389`
    –Enabled True -Profile Domain,Private,Public

Queste regole vanno, evidentemente, riviste in funzione del livello di sicurezza ed accessibilità necessario alle esigenze. Questi comandi aprono le porte su tutti i profili standard disponibili quindi, se non è necessario autorizzare l’accesso quando la rete a cui si è connessi è di tipo pubblico possiamo escludere il profilo dai comandi.

Per completare la configurazione della macchina, per quanto inerente la gestione remota, resta solo WinRM. La gestione di questo servizio è possibile usando il cmdlet Enable-PSRemoting, per attivarlo, e Disable-PSRemoting, per disattivarlo.

image

Usando –Force vengono omesse tutte le richieste di conferma, Si potrebbe utilizzare il parametro –SkipNetworkProfileCheck per consentire l’accesso remoto anche da macchine in una rete pubblica (ma nello stessa sottorete), questo parametro non ha alcun effetto sui server che consentono già questo tipo di connessione. Opzionalmente si potrebbe modificare la regola del firewall che garantisce l’accesso al servizio per rimuovere tutte le eventuali restrizioni (oviamente questo riduce un poco la sicurezza ma aumenta la possibilità di gestione della macchina). Per applicare questa impostazione è necessario digitare il comando Set-NetFirewallRule con i parametri sotto riportati.

image

La disabilitazione dell’accesso WinRM, Disable-PSRemoting, non effettua tutte le operazioni inverse di disattivazione ma aggiungendo dei permessi alla sicurezza inibisce, per esempio, l’accesso al sistema per NT AUTHORITY\NETWORK.

image

Possiamo valutare lo stato di permessi utilizzando il cmdlet Get-PSSessionConfiguration.

image

 

Il nostro Windows Server 2012 R2 è praticamente configurato, restano ancora da configurare il servizio di aggiornamenti automatici (che per complessità rimando ad un successivo post) e l’attivazione del sistema operativo. Per quanto inerente l’attivazione del sistema abbiamo a disposizione un efficace VBScript; digitando SLMGR.VBS col parametro –ipk seguito dal codice 25 cifre ci permette di registrare il product-key e con il parametro –ato ci permette di completare l’attivazione del sistema operativo.

Con questo passaggio abbiamo concluso la configurazione iniziale del nostro Windows Server 2012 R2…e tutto (meno un azione) con PowerShell!!! Buon lavoro

%d blogger hanno fatto clic su Mi Piace per questo: