Trasformare Windows Server in un VPS a basso consumo con Windows Server Core

Trasformare Windows Server in un VPS a basso consumo con Windows Server Core
A causa della golosità dei sistemi Windows, l'ambiente VPS è dominato da distribuzioni Linux leggere: Mint, Colibri OS, Debian o Ubuntu, prive di un ambiente desktop pesante che non è necessario per i nostri scopi. Come si suol dire, solo console, solo hardcore! E in effetti, questa non è affatto un'esagerazione: la stessa Debian inizia con 256 MB di memoria e un core con un ciclo di clock di 1 Ghz, cioè su quasi tutti i "ceppi". Per un lavoro confortevole avrai bisogno di almeno 512 MB e un processore leggermente più veloce. Ma cosa succederebbe se ti dicessimo che puoi fare più o meno la stessa cosa su un VPS con Windows? Perché non è necessario implementare un pesante server Windows, che richiede da tre a quattro ettari di RAM e almeno un paio di core con clock a 1,4 GHz? Usa semplicemente Windows Server Core: elimina la GUI e alcuni servizi. Parleremo di come farlo nell'articolo.

Chi è questo Windows Server Core?

Non ci sono informazioni chiare su cosa sia Windows (server) Core nemmeno sul sito ufficiale di Mikes, o meglio, lì è tutto così confuso che non capirai immediatamente, ma le prime menzioni risalgono all'era di Windows Server 2008 Essenzialmente, Windows Core è un server kernel Windows funzionante (improvvisamente!), "più sottile" per le dimensioni della propria GUI e circa la metà dei servizi laterali.

La caratteristica principale di Windows Core è l'hardware poco impegnativo e il controllo completo della console tramite PowerShell.

Se vai sul sito Microsoft e controlli i requisiti tecnici, per avviare Windows Server 2016/2019 avrai bisogno di almeno 2 GB di RAM e almeno un core con una velocità di clock di 1,4 GHz. Ma capiamo tutti che con una tale configurazione possiamo aspettarci solo l'avvio del sistema, ma certamente non il funzionamento confortevole del nostro sistema operativo. È per questo motivo che a Windows Server viene solitamente allocata più memoria e almeno 2 core/4 thread dal processore, se non gli viene fornita una macchina fisica costosa su alcuni Xeon, invece di una macchina virtuale economica.

Allo stesso tempo, il nucleo del sistema server stesso richiede solo 512 MB di memoria e le risorse del processore che sono state consumate dalla GUI semplicemente per essere disegnate sullo schermo e mantenere in esecuzione i suoi numerosi servizi possono essere utilizzate per qualcosa di più utile.

Ecco un confronto tra i servizi Windows Core supportati immediatamente e un Windows Server completo dal sito Web ufficiale di Microsoft:

applicazione
core del server
server conesperienza desktop

Prompt dei comandi
disponibile
disponibile

Windows PowerShell/Microsoft .NET
disponibile
disponibile

Perfmon.exe
non disponibile
disponibile

Windbg (GUI)
supportato
disponibile

Resmon.exe
non disponibile
disponibile

Regedit
disponibile
disponibile

Fsutil.exe
disponibile
disponibile

Disksnapshot.exe
non disponibile
disponibile

Diskpart.exe
disponibile
disponibile

diskmgmt.msc
non disponibile
disponibile

devmgmt.msc
non disponibile
disponibile

Server manager
non disponibile
disponibile

mmc.exe
non disponibile
disponibile

eventvwr
non disponibile
disponibile

Wevtutil (query sugli eventi)
disponibile
disponibile

Services.msc
non disponibile
disponibile

Pannello di controllo
non disponibile
disponibile

Aggiornamento di Windows (GUI)
non disponibile
disponibile

di Windows Explorer
non disponibile
disponibile

barra delle applicazioni
non disponibile
disponibile

Notifiche sulla barra delle applicazioni
non disponibile
disponibile

taskmgr
disponibile
disponibile

Internet Explorer o Bordo
non disponibile
disponibile

Sistema di aiuto integrato
non disponibile
disponibile

Conchiglia di Windows 10
non disponibile
disponibile

Windows Media Player
non disponibile
disponibile

PowerShell
disponibile
disponibile

Power Shell ISE
non disponibile
disponibile

IME di PowerShell
disponibile
disponibile

MSTSC.exe
non disponibile
disponibile

Servizi Desktop remoto
disponibile
disponibile

Manager Hyper-V
non disponibile
disponibile

Come puoi vedere, molto è stato tagliato da Windows Core. I servizi e i processi associati alla GUI del sistema, così come tutta la "spazzatura" che sicuramente non è necessaria sulla nostra macchina virtuale della console, ad esempio Windows Media Player, sono finiti sotto i ferri.

Quasi come Linux, ma non è così

Voglio davvero confrontare Windows Server Core con le distribuzioni Linux, ma in realtà questo non è del tutto corretto. Sì, questi sistemi sono simili tra loro in termini di ridotto consumo di risorse a causa dell'abbandono della GUI e di molti servizi collaterali, ma in termini di funzionamento e alcuni approcci all'assemblaggio, questo è ancora Windows e non un sistema Unix.

L'esempio più semplice è che costruendo manualmente il kernel Linux e poi installando pacchetti e servizi, anche una distribuzione Linux leggera può essere trasformata in qualcosa di pesante e simile a un coltellino svizzero (qui voglio davvero fare una battuta a fisarmonica su Python e inseriremo un'immagine della serie "Se i linguaggi di programmazione fossero armi", ma non lo faremo). In Windows Core tale libertà è molto minore, poiché si tratta comunque di un prodotto Microsoft.

Windows Server Core viene fornito già pronto, la cui configurazione predefinita può essere stimata dalla tabella sopra. Se hai bisogno di qualcosa dall'elenco non supportato, dovrai aggiungere gli elementi mancanti online tramite la console. È vero, non dovresti dimenticare Funzionalità su richiesta e la possibilità di scaricare componenti come file CAB, che possono quindi essere aggiunti all'assieme prima dell'installazione. Ma questo script non funziona se già durante il processo scopri che ti manca uno dei servizi tagliati.

Ma ciò che distingue la versione Core da quella completa è la possibilità di aggiornare il sistema e aggiungere servizi senza interrompere il lavoro. Windows Core supporta l'hot rolling dei pacchetti, senza riavvio. Di conseguenza, sulla base di osservazioni pratiche: una macchina che esegue Windows Core deve essere riavviata circa 6 volte meno spesso di una che esegue Windows Server, ovvero una volta ogni sei mesi e non una volta al mese.

Un piacevole vantaggio per gli amministratori è che se il sistema viene utilizzato come previsto - tramite la console, senza RDP - e non trasformato in un secondo server Windows, diventa estremamente sicuro rispetto alla versione completa. Dopotutto, la maggior parte delle vulnerabilità di Windows Server sono dovute all'RDP e alle azioni dell'utente che, attraverso lo stesso RDP, fa qualcosa che non dovrebbe essere fatto. È un po’ come la storia di Henry Ford e il suo atteggiamento nei confronti del colore di un’auto: “Ogni cliente può far verniciare un’auto di qualsiasi colore desideri purché sia Nero" Con il sistema è lo stesso: l'utente può comunicare con il sistema in qualsiasi modo, l'importante è che lo faccia attraverso consolle.

Installa e gestisci Windows Server 2019 Core

Abbiamo accennato in precedenza che Windows Core è essenzialmente Windows Server senza il wrapper della GUI. Cioè, puoi utilizzare quasi tutte le versioni di Windows Server come versione principale, ovvero abbandonare la GUI. Per i prodotti della famiglia Windows Server 2019, si tratta di 3 build di server su 4: la modalità core è disponibile per Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter e Hyper-V Server 2019, ovvero è escluso solo Windows Server 2019 Essentials da questo elenco.

In questo caso, non è necessario cercare il pacchetto di installazione di Windows Server Core. Nel programma di installazione Microsoft standard, la versione core viene offerta letteralmente per impostazione predefinita, mentre la versione GUI deve essere selezionata manualmente:

Trasformare Windows Server in un VPS a basso consumo con Windows Server Core
In effetti, ci sono più opzioni per la gestione del sistema rispetto a quella citata PowerShell, offerta dal produttore per impostazione predefinita. Puoi gestire una macchina virtuale su Windows Server Core in almeno cinque modi diversi:

  • PowerShell remoto;
  • Strumenti di amministrazione remota del server (RSAT);
  • Centro di amministrazione di Windows;
  • Configurazione;
  • Gestore server.

Le prime tre posizioni sono di maggiore interesse: PowerShell standard, RSAT e Windows Admin Center. Tuttavia, è importante capire che mentre riceviamo i vantaggi di uno degli strumenti, riceviamo anche i limiti che esso impone.

Non descriveremo le funzionalità della console; PowerShell è PowerShell, con i suoi ovvi pro e contro. Con RSAT e WAC tutto è un po' più complicato. 

WAC ti dà accesso a importanti controlli di sistema come la modifica del registro e la gestione di dischi e dispositivi. RSAT nel primo caso funziona solo in modalità di visualizzazione e non consente di apportare modifiche, inoltre per gestire dischi e dispositivi fisici Remote Server Administration Tools richiede una GUI, cosa che nel nostro caso non è avvenuta. In generale, RSAT non può funzionare con file e, di conseguenza, aggiornamenti, installazione/rimozione di programmi nella modifica del registro.

▍Gestione del sistema

 

WAC
RSAT

Gestione dei componenti

Editor del registro

No

Gestione della rete

Visualizza eventi

Cartelle condivise

Gestione del disco

Solo per server con GUI

Utilità di pianificazione

Gestione dei dispositivi

Solo per server con GUI

Gestione dei file

No

Gestione utenti

Gestione del gruppo

Gestione dei certificati

Aggiornamenti

No

Disinstallazione di programmi

No

Monitoraggio del sistema

D'altra parte, RSAT ci dà il controllo completo sui ruoli sulla macchina, mentre Windows Admin Center non può fare letteralmente nulla a questo riguardo. Ecco un confronto tra le capacità di RSAT e WAC in questo aspetto, per chiarezza:

▍Gestione dei ruoli

 

WAC
RSAT

Protezione avanzata del filo
ANTEPRIMA
No

Windows Defender
ANTEPRIMA

contenitori
ANTEPRIMA

Centro amministrativo d.C
ANTEPRIMA

Dominio e trust AD
No

Siti e servizi AD
No

DHCP
ANTEPRIMA

DNS
ANTEPRIMA

Gestore DFS
No

Responsabile oggetto Criteri di gruppo
No

Responsabile dell'IIS
No

Cioè, è già chiaro che se abbandoniamo la GUI e PowerShell a favore di altri controlli, non potremo farla franca utilizzando una sorta di monostrumento: per un'amministrazione completa su tutti i fronti, avremo bisogno almeno una combinazione di RSAT e WAC.

Tuttavia, devi ricordare che per utilizzare WAC dovrai pagare 150-180 megabyte di RAM. Una volta connesso, Windows Admin Center crea 3-4 sessioni sul lato server, che non vengono interrotte anche quando lo strumento viene disconnesso dalla macchina virtuale. Inoltre, WAC non funziona con le versioni precedenti di PowerShell, quindi avrai bisogno almeno di PowerShell 5.0. Tutto ciò va contro il nostro paradigma di austerità, ma per avere comodità bisogna pagare. Nel nostro caso: RAM.

Un'altra opzione per gestire Server Core è installare la GUI utilizzando strumenti di terze parti, in modo da non trascinare in giro tonnellate di spazzatura fornite con l'interfaccia in un assieme a tutti gli effetti.

In questo caso, abbiamo due opzioni: implementare l'Explorer originale sul sistema o utilizzare Explorer++. In alternativa a quest'ultimo è adatto qualsiasi file manager: Total Commander, FAR Manager, Double Commander e così via. Quest'ultimo è preferibile se il risparmio della RAM è fondamentale per te. Puoi aggiungere Explorer++ o qualsiasi altro file manager creando una cartella di rete e avviandola tramite la console o lo scheduler.

L'installazione di un Explorer a tutti gli effetti ci offrirà maggiori opportunità in termini di lavoro con software dotato di un'interfaccia utente. Per questo noi dovrà contattare alla funzionalità di compatibilità dell'app Server Core on Demand (FOD) che restituirà MMC, Eventvwr, PerfMon, Resmon, Explorer.exe e persino Powershell ISE nel sistema. Per questo, però, dovremo pagare, come nel caso di WAC: perderemo irreversibilmente circa 150-200 megabyte di RAM, che verranno divorate senza pietà da explorer.exe e altri servizi. Anche se non è presente alcun utente attivo sulla macchina.

Trasformare Windows Server in un VPS a basso consumo con Windows Server Core
Trasformare Windows Server in un VPS a basso consumo con Windows Server Core
Questo è l'aspetto del consumo di memoria da parte del sistema sulle macchine con e senza il pacchetto Explorer nativo.

Qui sorge una domanda logica: perché tutto questo ballare con PowerShell, FOD, file manager, se qualsiasi passo a sinistra o a destra porta ad un aumento del consumo di RAM? Perché imbrattarti di una serie di strumenti e spostarti da un lato all'altro per garantire un lavoro confortevole su Windows Server Core, quando puoi semplicemente scaricare Windows Server 2016/2019 e vivere come un uomo bianco?

Esistono diversi motivi per utilizzare Server Core. Primo: il consumo attuale di memoria è quasi la metà. Se ricordi, questa condizione era la base del nostro articolo all'inizio. Per confronto, ecco il consumo di memoria di Windows Server 2019, confrontato con gli screenshot appena sopra:

Trasformare Windows Server in un VPS a basso consumo con Windows Server Core
E quindi, 1146 MB di consumo di memoria invece dei 655 MB del Core. 

Supponendo che tu non abbia bisogno di WAC e utilizzerai Explorer++ invece dell'Explorer originale, allora tu vincerai comunque quasi mezzo ettaro su ogni macchina virtuale che esegue Windows Server. Se esiste una sola macchina virtuale, l'aumento è insignificante, ma se ce ne sono cinque? È qui che conta avere una GUI, soprattutto se non ne hai bisogno. 

In secondo luogo, qualsiasi danza attorno a Windows Server Core non ti porterà a combattere il problema principale del funzionamento di Windows Server: RDP e la sua sicurezza (più precisamente, la sua completa assenza). Windows Core, anche rivestito con FOD, RSAT e WAC, è ancora un server senza RDP, ovvero non è suscettibile al 95% degli attacchi esistenti.

Residuo

In generale, Windows Core è solo leggermente più grasso di qualsiasi distribuzione Linux standard, ma è molto più funzionale. Se hai bisogno di liberare risorse e sei pronto a lavorare con la console, WAC e RSAT e utilizzare i file manager invece di una GUI completa, vale la pena prestare attenzione a Core. Inoltre, con esso potrai evitare di pagare un extra per un Windows completo e spendere i soldi risparmiati per aggiornare il tuo VPS, aggiungendo lì, ad esempio, RAM. Per comodità, abbiamo aggiunto Windows Server Core al nostro mercato.

Trasformare Windows Server in un VPS a basso consumo con Windows Server Core

Fonte: habr.com

Aggiungi un commento