Costringiamo Windows Server su una VPS a bassa potenza con Windows Server Core

Costringiamo Windows Server su una VPS a bassa potenza con Windows Server Core
A causa dell'esigenza di risorse di Windows, nei server VPS dominano distribuzioni Linux leggere: Mint, Colibri OS, Debian o Ubuntu, prive di un ambiente desktop pesante, non necessario per i nostri scopi. Come si dice, solo console, solo hardcore! E in effetti, questo non è affatto un'esagerazione: lo stesso Debian parte con 256 MB di RAM e un core a 1 GHz, cioè praticamente su qualsiasi 'ceppo'. Per un lavoro confortevole, servono almeno 512 MB e un processore un po' più veloce. Ma cosa succede se vi diciamo che è possibile fare più o meno la stessa cosa su VPS con Windows? Che non è necessario installare il pesante Windows Server, che richiede da tre a quattro gigabyte di RAM e almeno un paio di core a 1,4 GHz? Basta usare Windows Server Core: liberatevi dell'interfaccia GUI e di alcuni servizi. Di come farlo parleremo nell'articolo.

Chi è questo Windows Server Core?

Informazioni chiare su cos'è Windows (server) Core non si trovano nemmeno sul sito ufficiale di Microsoft; anzi, è così confuso che non è facile capirlo subito, ma i primi riferimenti risalgono all'epoca di Windows Server 2008. In sostanza, Windows Core è un nucleo operativo di Windows Server (sorpresa!), 'snellito' delle dimensioni della propria GUI e di circa la metà dei servizi accessori.

La principale caratteristica di Windows Core è la bassa richiesta di hardware e la gestione completamente da console tramite PowerShell.

Se si visita il sito di Microsoft e si controllano i requisiti tecnici, per avviare Windows Server 2016/2019 avrete bisogno di almeno 2 GB di RAM e di un core a 1,4 GHz. Ma tutti noi capiamo che con tale configurazione possiamo aspettarci solo l'avvio del sistema, ma sicuramente non un funzionamento confortevole del nostro OS. È proprio per questo che per far funzionare Windows Server si tende a riservare più memoria e almeno 2 core/4 thread dal processore, se non si fornisce una costosa macchina fisica su qualche Xeon, invece di una semplice macchina virtuale.

Tuttavia, il nucleo stesso del sistema server richiede solo 512 MB di RAM, e quelle risorse del processore che venivano utilizzate dalla GUI solo per essere visualizzate e per mantenere attivi i suoi numerosi servizi possono essere allocate per qualcosa di più utile.

Ecco un confronto tra i servizi supportati out-of-the-box di Windows Core e un Windows Server completo dal sito ufficiale di Microsoft:

application
server core
server withdesktop experience

Command prompt
available
available

Windows PowerShell/ Microsoft .NET
available
available

Perfmon.exe
non disponibile
available

Windbg (GUI)
supportato
available

Resmon.exe
non disponibile
available

Regedit
available
available

Fsutil.exe
available
available

Disksnapshot.exe
non disponibile
available

Diskpart.exe
available
available

Diskmgmt.msc
non disponibile
available

Devmgmt.msc
non disponibile
available

Server Manager
non disponibile
available

Mmc.exe
non disponibile
available

Eventvwr
non disponibile
available

Wevtutil (Query eventi)
available
available

Services.msc
non disponibile
available

Pannello di controllo
non disponibile
available

Aggiornamento di Windows (GUI)
non disponibile
available

Esplora file di Windows
non disponibile
available

Barra delle applicazioni
non disponibile
available

Notifiche della barra delle applicazioni
non disponibile
available

Taskmgr
available
available

Internet Explorer o Edge
non disponibile
available

Sistema di aiuto integrato
non disponibile
available

Shell di Windows 10
non disponibile
available

Windows Media Player
non disponibile
available

PowerShell
available
available

PowerShell ISE
non disponibile
available

PowerShell IME
available
available

Mstsc.exe
non disponibile
available

Servizi Desktop remoto
available
available

Gestore Hyper-V
non disponibile
available

Come si può vedere, da Windows Core è stato rimosso molto. Sono stati eliminati servizi e processi legati all'interfaccia grafica del sistema, così come ogni genere di "spazzatura", che sicuramente non sarà necessaria sulla nostra macchina virtuale da console, ad esempio, Windows Media Player.

Quasi come Linux, ma non è lui

Windows Server Core ha molto in comune con le distribuzioni Linux, ma in realtà non è del tutto corretto fare questo confronto. Sì, questi sistemi condividono una ridotta esigenza di risorse grazie all'assenza di GUI e a molti servizi secondari, ma dal punto di vista dell'uso e di alcuni approcci alla costruzione, è pur sempre Windows e non un sistema unix.

Il modo più semplice per capirlo è che, con la costruzione manuale del kernel Linux e l'installazione successiva di pacchetti e servizi, anche la distribuzione Linux più leggera può essere trasformata in qualcosa di pesante e simile a un coltellino svizzero (qui ci sarebbe voglia di fare una battuta su Python e inserire un'immagine della serie "Se i linguaggi di programmazione fossero armi", ma non lo faremo). In Windows Core c'è molta meno libertà, visto che stiamo trattando comunque un prodotto Microsoft.

Windows Server Core viene fornito già come immagine preconfezionata, la configurazione predefinita della quale può essere valutata nella tabella sopra. Se avrai bisogno di qualcosa dall'elenco non supportato, dovrai aggiungere gli elementi mancanti online tramite la console. Tuttavia, è importante non dimenticare il 'Feature on demand' e la possibilità di scaricare componenti in formato CAB, che possono essere aggiunti all'immagine prima dell'installazione. Ma questo scenario non funziona se, mentre stai lavorando, ti accorgi che ti manca qualche servizio rimosso.

Ma ciò che distingue favorevolmente la versione Core dalla versione completa è la possibilità di aggiornare il sistema e aggiungere servizi senza interrompere il lavoro. Windows Core supporta l'installazione 'a caldo' di pacchetti, senza riavvio. Come risultato, sulla base di osservazioni pratiche: un macchina con Windows Core deve essere riavviata circa 6 volte meno frequentemente rispetto a un server Windows, quindi una volta ogni sei mesi, e non una volta al mese.

Un vantaggio piacevole per gli amministratori sarà il fatto che se il sistema viene utilizzato come previsto - tramite la console, senza RDP - e non viene trasformato in un secondo Windows Server, diventa estremamente sicuro rispetto alla versione completa. Infatti, la maggior parte delle vulnerabilità di Windows Server si concentra proprio su RDP e sulle azioni degli utenti che attraverso questo stesso RDP fanno cose che non dovrebbero. È un po' come la storia di Henry Ford e il suo approccio al colore delle automobili: «Qualsiasi cliente può avere un'auto dipinta di qualsiasi colore desideri, purché sia nera». Così è con il sistema: l'utente può interagire con il sistema in qualsiasi modo, l'importante è che lo faccia tramite console.

Installazione e gestione di Windows Server 2019 Core

In precedenza abbiamo detto che Windows Core è praticamente Windows Server senza l'interfaccia GUI. Cioè, puoi utilizzare quasi qualsiasi versione di Windows Server come versione core, cioè rinunciare all'interfaccia GUI. Per i prodotti della famiglia Windows Server 2019, ci sono 3 delle 4 build server: la modalità core è disponibile per Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter e Hyper-V Server 2019, quindi da questo elenco si esclude solo Windows Server 2019 Essentials.

Inoltre, il pacchetto di installazione di Windows Server Core non deve essere cercato in modo particolare. Nello standard dell'installer di Microsoft, la versione core viene offerta praticamente per impostazione predefinita, mentre la versione con GUI deve essere selezionata manualmente:

Costringiamo Windows Server su una VPS a bassa potenza con Windows Server Core
In realtà ci sono più di un modo di gestire il sistema, oltre a quello menzionato di PowerShell, che è quello raccomandato dal produttore per default. È possibile gestire una macchina virtuale su Windows Server Core in almeno cinque modi diversi:

  • PowerShell Remoto;
  • Strumenti di Amministrazione Remota del Server (RSAT);
  • Windows Admin Center;
  • Sconfig;
  • Gestore del Server.

Le prime tre opzioni sono di particolare interesse: PowerShell standard, RSAT e Windows Admin Center. Tuttavia, è importante capire che ottenendo i vantaggi di uno degli strumenti, ci si trova ad affrontare anche le limitazioni che esso comporta.

Non ci soffermeremo sulle possibilità della console, PowerShell è PowerShell, con i suoi evidenti pro e contro. Con RSAT e WAC, però, tutto è un po' più complesso. 

WAC fornisce accesso a elementi di controllo di sistema importanti, come la modifica del registro e la gestione di dischi e dispositivi. RSAT nel primo caso funziona solo in modalità di solo lettura e non permette di effettuare modifiche, mentre per gestire dischi e dispositivi fisici gli strumenti di amministrazione del server remoto hanno bisogno di GUI, il che non è il nostro caso. In generale, RSAT non gestisce file e, di conseguenza, aggiornamenti, installazione/rimozione di programmi e modifiche al registro.

▍Gestione del sistema

 

WAC
RSAT

Gestione dei componenti

Editor del registro

No

Gestione della rete

Visualizzazione degli eventi

Cartelle condivise

Gestione dei dischi

Solo per server con GUI

Pianificatore attività

Gestione dei dispositivi

Solo per server con GUI

Gestione file

No

Gestione degli utenti

Gestione dei gruppi

Gestione dei certificati

Aggiornamenti

No

Disinstallazione di programmi

No

Monitor di sistema

D'altra parte, RSAT ci dà un controllo completo sui ruoli della macchina, mentre Windows Admin Center non può fare nulla al riguardo. Ecco un confronto delle capacità di RSAT e WAC in questo aspetto, per maggiore chiarezza:

▍Gestione dei ruoli

 

WAC
RSAT

Advanced Thread Protection
ANTEPRIMA
No

Windows Defender
ANTEPRIMA

Contenitori
ANTEPRIMA

Centro amministrativo AD
ANTEPRIMA

Domini e Trust AD
No

Siti e servizi AD
No

DHCP
ANTEPRIMA

DNS
ANTEPRIMA

Gestore DFS
No

Gestore GPO
No

Gestore IIS
No

Quindi è già chiaro che rinunciando a GUI e PowerShell a favore di altri strumenti di gestione, non si può scappare con l'uso di un unico strumento: per un'amministrazione completa su tutti i fronti avremo bisogno almeno di una combinazione di RSAT e WAC.

È importante ricordare che utilizzare WAC richiede 150-180 megabyte di memoria RAM. Windows Admin Center crea 3-4 sessioni sul lato del server quando si connette, che non vengono terminate nemmeno disconnettendo lo strumento dalla macchina virtuale. Inoltre, WAC non funziona con versioni di PowerShell precedenti, quindi avrete bisogno di almeno PowerShell 5.0. Tutto ciò va contro la nostra il paradigma di rigida economia delle risorse, ma per il comfort bisogna pagare. Nel nostro caso: con memoria RAM.

Un'altra opzione per gestire Server Core è installare un GUI tramite strumenti di terze parti, per non dover gestire quelle tonnellate di spazzatura che vengono con una installazione completa dell'interfaccia.

In questo caso abbiamo due opzioni: installare il sistema originale Explorer o utilizzare Explorer++. In alternativa a quest'ultimo, qualsiasi file manager va bene: Total Commander, FAR Manager, Double Commander e così via. Quest'ultima opzione è preferibile se l'economia della memoria RAM è fondamentale per voi. È possibile aggiungere Explorer++ o qualsiasi altro file manager creando una cartella di rete e avviandola tramite la console o il pianificatore.

L'installazione di un Explorer completo ci offre più possibilità nel lavoro con software dotato di UI. Per questo dobbiamo rivolgerci alla funzionalità Server Core App Compatibility Feature on Demand (FOD) che ripristinerà nel sistema MMC, Eventvwr, PerfMon, Resmon, Explorer.exe e persino Powershell ISE. Tuttavia, per questo dovremo pagare, come nel caso del WAC: perderemo irreversibilmente circa 150-200 megabyte di RAM, che verranno sprecati da explorer.exe e altri servizi. Anche se sulla macchina non c'è un utente attivo.

Costringiamo Windows Server su una VPS a bassa potenza con Windows Server Core
Costringiamo Windows Server su una VPS a bassa potenza con Windows Server Core
Ecco come appare l'utilizzo della memoria del sistema su macchine con il pacchetto Explorer originale e senza di esso.

Qui sorge la legittima domanda: perché tutte queste manovre con PowerShell, FOD, file manager, se ogni passo a sinistra o a destra porta a un aumento dell'assunzione di RAM? Perché affollarsi di strumenti e muoversi inquieti per garantire un lavoro confortevole su Windows Server Core, quando potete semplicemente installare Windows Server 2016/2019 e vivere come una persona normale?

Ci sono diverse ragioni per utilizzare Server Core. Prima: un consumo di memoria quasi dimezzato. Se ricordate, questa condizione era alla base del nostro articolo sin dall'inizio. Ecco un confronto, il consumo di memoria di Windows Server 2019, confrontatelo con gli screenshot poco sopra:

Costringiamo Windows Server su una VPS a bassa potenza con Windows Server Core
Ed ecco, 1146 MB di memoria utilizzata invece di 655 MB su Core. 

Se ipotizziamo che il WAC non vi servirà e utilizzerete Explorer++ invece dell'originale Explorer, allora otterrete comunque quasi mezzo ettaro su ogni macchina virtuale che esegue Windows Server. Se la macchina virtuale è una sola, l'aumento è trascurabile, ma se sono cinque? Qui la presenza di GUI fa la differenza, soprattutto se non vi serve. 

In secondo luogo, qualsiasi danza attorno a Windows Server Core non vi porterà a combattere il principale problema dell'utilizzo di Windows Server: RDP e la sua sicurezza (cioè, la sua completa assenza). Windows Core, anche con l'aggiunta di FOD, RSAT e WAC, è ancora un server senza RDP, il che significa che non è soggetto al 95% degli attacchi esistenti.

Nel complesso

In generale, Windows Core è solo leggermente "più grasso" rispetto a qualsiasi distribuzione Linux stock, ma è molto più funzionale. Se avete bisogno di liberare risorse e siete pronti a lavorare con la console, WAC e RSAT, utilizzando file manager invece di un GUI completo — allora vale la pena prestare attenzione a Core. Tanto più che con essa non dovrete pagare per un Windows completo, e i soldi risparmiati possono essere spesi per aggiornare il vostro VPS, aggiungendo, ad esempio, RAM. Per comodità, abbiamo aggiunto Windows Server Core al nostro marketplace.

Costringiamo Windows Server su una VPS a bassa potenza con Windows Server Core

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster