Din cauza consumului ridicat de resurse al sistemelor Windows, în medii VPS domină distribuțiile Linux ușoare: Mint, Colibri OS, Debian sau Ubuntu, lipsite de un mediu desktop greu, inutil în cadrul sarcinilor noastre. Așa cum se spune, doar consola, doar hardcor! Și, de fapt, nu este deloc o exagerare: același Debian pornește cu 256 MB memorie și un nucleu cu frecvența de 1 GHz, adică aproape pe orice "butuc". Pentru o funcționare confortabilă, sunt necesari cel puțin 512 MB și un procesor puțin mai rapid. Dar ce-ar fi să vă spunem că cam aceleași lucruri pot fi realizate pe VPS cu Windows? Că nu este nevoie să instalați un Windows Server greu, care necesită de la trei la patru gigaocteți de memorie RAM și minimum două nuclee cu frecvența de 1,4 GHz? Pur și simplu folosiți Windows Server Core — scăpați de GUI și de unele servicii. Despre cum să faceți acest lucru, vom vorbi în articol.
Cine este acest Windows Server Core?
Informațiile clare despre ce este Windows (server) Core nu sunt nici măcar pe site-ul oficial al Microsoft, ba chiar acolo sunt atât de încurcate încât nu vei înțelege imediat, dar primele mențiuni datează încă din epoca Windows Server 2008. Practic, Windows Core este un nucleu funcțional al Windows Server (surprinzător!), "slăbit" pe dimensiunea propriului GUI și aproximativ jumătate din serviciile secundare.
Principalul aspect al Windows Core este cerințele minime de hardware și gestionarea completă prin consolă prin PowerShell.
Dacă ne adresăm site-ului Microsoft și verificăm cerințele tehnice, pentru a porni Windows Server 2016/2019 aveți nevoie de cel puțin 2 GB de memorie RAM și un nucleu cu frecvența de 1,4 GHz. Dar cu toții înțelegem că pe o astfel de configurație ne putem aștepta doar la pornirea sistemului, dar cu siguranță nu la o funcționare confortabilă a sistemului nostru de operare. Tocmai din acest motiv, pentru a rula Windows Server, de obicei se alocă mai multă memorie și minimum 2 nuclee/4 fire de procesor, dacă nu cumva îi oferă o mașină fizică scumpă pe un Xeon, în loc de o mașină virtuală ieftină.
Totuși, nucleul sistemului de server necesită doar 512 MB de memorie, iar resursele procesorului pe care GUI le consumă doar pentru a fi afișat pe ecran și pentru a menține numeroasele sale servicii active pot fi utilizate pentru ceva mai util.
Iată o comparație a serviciilor acceptate "din cutie" în Windows Core și Windows Server complet din partea site-ului oficial Microsoft:
application
server core
server cuexperiență desktop
Linie de comandă
disponibil
disponibil
Windows PowerShell/Microsoft .NET
disponibil
disponibil
Perfmon.exe
nu disponibil
disponibil
Windbg (GUI)
susținut
disponibil
Resmon.exe
nu disponibil
disponibil
Regedit
disponibil
disponibil
Fsutil.exe
disponibil
disponibil
Disksnapshot.exe
nu disponibil
disponibil
Diskpart.exe
disponibil
disponibil
Diskmgmt.msc
nu disponibil
disponibil
Devmgmt.msc
nu disponibil
disponibil
Server Manager
nu disponibil
disponibil
Mmc.exe
nu disponibil
disponibil
Eventvwr
nu disponibil
disponibil
Wevtutil (interogări de evenimente)
disponibil
disponibil
Services.msc
nu disponibil
disponibil
Panoul de control
nu disponibil
disponibil
Actualizare Windows (GUI)
nu disponibil
disponibil
Explorator Windows
nu disponibil
disponibil
Taskbar
nu disponibil
disponibil
Notificări pe bara de activități
nu disponibil
disponibil
Taskmgr
disponibil
disponibil
Internet Explorer sau Edge
nu disponibil
disponibil
Sistemul de ajutor încorporat
nu disponibil
disponibil
Shell Windows 10
nu disponibil
disponibil
Windows Media Player
nu disponibil
disponibil
PowerShell
disponibil
disponibil
PowerShell ISE
nu disponibil
disponibil
PowerShell IME
disponibil
disponibil
Mstsc.exe
nu disponibil
disponibil
Servicii Desktop la distanță
disponibil
disponibil
Hyper-V Manager
nu disponibil
disponibil
După cum se poate observa, din Windows Core au fost eliminate multe lucruri. Serviciile și procesele asociate cu GUI-ul sistemului, precum și tot felul de 'moloz' care cu siguranță nu va fi necesar pe mașina noastră virtuală de consolă, de exemplu, Windows Media Player.
Aproape ca Linux, dar nu este
Windows Server Core este adesea comparat cu distribuțiile Linux, dar, de fapt, nu este chiar corect. Da, aceste sisteme sunt asemănătoare în ceea ce privește consumul redus de resurse datorită renunțării la GUI și multe servicii accesorii, dar în ceea ce privește exploatarea și anumite abordări de construcție, este încă Windows, nu un sistem unix.
Cel mai simplu exemplu — prin construirea manuală a nucleului Linux și instalarea ulterioară a pachetelor și serviciilor, chiar și cea mai ușoară distribuție Linux poate fi transformată într-un sistem greu și asemănător unui cuțit elvețian (aici este foarte tentant să fac o glumă despre Python și să introduc o imagine din seria „Dacă limbajele de programare ar fi arme”, dar nu o vom face). În Windows Core există mult mai puțină libertate, deoarece, în fond, avem de-a face cu un produs Microsoft.
Windows Server Core vine deja cu o construcție gata făcută, configurația implicită a căreia poate fi evaluată din tabelul de mai sus. Dacă aveți nevoie de ceva din lista nedeschisă, va trebui să adăugați elementele lipsă online prin consolă. Totuși, nu trebuie uitat despre Feature on demand și posibilitatea de a descărca componentele sub formă de fișiere CAB, care pot fi apoi adăugate la construcție înainte de instalare. Dar acest scenariu nu funcționează dacă, în timpul utilizării, ați descoperit că vă lipsește vreun serviciu eliminat.
Dar ceea ce distinge Core-ul de versiunea completă este capacitatea de a actualiza sistemul și de a adăuga servicii fără a opri funcționarea acestuia. Windows Core suportă desfășurarea pachetelor 'pe căldură', fără reboot. Ca urmare, conform observațiilor practice: o mașină care rulează din Windows Core trebuie repornită de aproximativ 6 ori mai rar decât una care rulează Windows Server, adică o dată la șase luni, nu o dată pe lună.
Un bonus plăcut pentru administratori este că, dacă sistemul este utilizat așa cum a fost conceput - prin consolă, fără RDP - și nu din acesta se face un al doilea Windows Server, atunci devine extrem de sigur în comparație cu versiunea completă. Majoritatea vulnerabilităților Windows Server sunt legate de RDP și de acțiunile utilizatorului care, prin RDP, face ceea ce nu ar trebui. Este ca povestea cu Henry Ford și atitudinea sa față de culoarea mașinii: „Orice client poate avea o mașină vopsită în orice culoare dorește, atâta timp cât este neagră. Așa este și cu sistemul: utilizatorul poate comunica cu sistemul în orice mod, important este să o facă prin consola.
Instalarea și gestionarea Windows Server 2019 Core
Anterior, am menționat că Windows Core este, de fapt, Windows Server fără interfața GUI. Asta înseamnă că puteți folosi aproape orice versiune de Windows Server ca versiune core, renunțând astfel la GUI. Pentru produsele din familia Windows Server 2019, există 3 din 4 versiuni de server disponibile: modul core este disponibil pentru Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter și Hyper-V Server 2019, astfel încât din această listă lipsesc doar Windows Server 2019 Essentials.
În același timp, pachetul de instalare Windows Server Core nu trebuie căutat în mod special. În instalatorul standard de la Microsoft, versiunea core este oferită practic implicit, în timp ce versiunea cu GUI trebuie selectată manual:

Există, de fapt, mai multe modalități de gestionare a sistemului decât cea menționată, PowerShell, care este propusă de producător implicit. Poți gestiona o mașină virtuală pe Windows Server Core în minimum cinci moduri diferite:
- PowerShell la distanță;
- Instrumentele de administrare a serverului la distanță (RSAT);
- Windows Admin Center;
- Sconfig;
- Server Manager.
Cele mai interesante sunt primele trei opțiuni: PowerShell standard, RSAT și Windows Admin Center. Totuși, este important să înțelegem că, obținând avantajele uneia dintre instrumente, suntem supuși și limitărilor impuse de aceasta.
Nu ne vom extinde asupra posibilităților consolei, PowerShell este PowerShell, cu avantajele și dezavantajele sale evidente. Cu RSAT și WAC, însă, lucrurile sunt un pic mai complicate.
WAC oferă acces la elemente importante de control al sistemului, cum ar fi editarea registry-ului și gestionarea discurilor și dispozitivelor. RSAT, în primul caz, funcționează doar în modul de vizualizare și nu permite efectuarea de modificări, iar pentru gestionarea discurilor și a dispozitivelor fizice, Remote Server Administration Tools necesită un GUI, ceea ce nu se aplică în cazul nostru. În general, RSAT nu poate gestiona fișierele și, prin urmare, actualizările, instalarea\/dezinstalarea programelor în editarea registry-ului.
▍Administrarea sistemului
WAC
RSAT
Administrarea componentelor
Da
Da
Editor de registry
Da
Nu
Administrarea rețelei
Da
Da
Vizualizarea evenimentelor
Da
Da
Folder comun
Da
Da
Administrarea discurilor
Da
Numai pentru servere cu GUI
Planificator de sarcini
Da
Da
Gestionarea dispozitivelor
Da
Numai pentru servere cu GUI
Gestionarea fișierelor
Da
Nu
Administrarea utilizatorilor
Da
Da
Administrarea grupurilor
Da
Da
Administrarea certificatelor
Da
Da
Actualizări
Da
Nu
Dezinstalarea programelor
Da
Nu
Monitor de sistem
Da
Da
Pe de altă parte, RSAT ne oferă control complet asupra rolurilor de pe mașină, în timp ce Windows Admin Center nu poate face practic nimic în acest sens. Iată o comparație a capacităților RSAT și WAC în acest aspect, pentru claritate:
▍Administrarea rolurilor
WAC
RSAT
Advanced Thread Protection
PREVIEW
Nu
Windows Defender
PREVIEW
Da
Containere
PREVIEW
Da
AD Administrative Center
PREVIEW
Da
AD Domain and Trusts
Nu
Da
AD sites and services
Nu
Da
DHCP
PREVIEW
Da
DNS
PREVIEW
Da
Manager DFS
Nu
Da
Manager GPO
Nu
Da
Manager IIS
Nu
Da
Așadar, este deja evident că, renunțând la GUI și PowerShell în favoarea altor elemente de control, nu vom putea rezolva problemele folosind un singur instrument: pentru o administrare completă pe toate fronturile, ne va fi necesară cel puțin o combinație din RSAT și WAC.
Trebuie să ținem cont că utilizarea WAC va costa între 150 și 180 de megabytes de memorie RAM. Windows Admin Center, atunci când se conectează, creează 3-4 sesiuni pe partea serverului, care nu se închid nici măcar după dezactivarea instrumentului de la mașina virtuală. De asemenea, WAC nu funcționează cu versiunile mai vechi de PowerShell, deci veți avea nevoie de măcar PowerShell 5.0. Toate acestea contravin paradigmei noastre de economisire strictă a resurselor, dar confortul are un preț. În cazul nostru — memorie RAM.
O altă opțiune de administrare a Server Core este instalarea GUI-ului prin intermediul unor instrumente terță parte, pentru a evita îngreunarea cu tonele de „gunoi” care vin împreună cu o instalație completă.
În acest caz, avem două opțiuni: să instalăm Explorer-ul original pe sistem sau să folosim Explorer++. Ca alternativă la acesta, orice manager de fișiere va fi potrivit: Total Commander, FAR Manager, Double Commander și așa mai departe. Ultimul este preferabil dacă economisirea memoriei RAM este critică pentru tine. Poți adăuga Explorer++ sau orice alt manager de fișiere prin crearea unei folder de rețea și rulându-l prin consolă sau programator.
Instalarea unui Explorer complet ne va oferi mai multe opțiuni în ceea ce privește lucrul cu software-ul dotat cu UI. Pentru asta va trebui funcționalității Server Core App Compatibility Feature on Demand (FOD), care va readuce în sistem MMC, Eventvwr, PerfMon, Resmon, Explorer.exe și chiar Powershell ISE. Totuși, pentru aceasta va trebui să plătim, așa cum se întâmplă și cu WAC: vom pierde fără întoarcere aproximativ 150-200 de megabyte de memorie RAM, pe care explorer.exe și alte servicii le vor consuma fără milă. Chiar și atunci când nu există un utilizator activ pe mașină.


Așa arată consumul de memorie al sistemului pe mașinile cu pachetul original Explorer și fără acesta.
Aici apare o întrebare firească: de ce toate aceste jonglerii cu PowerShell, FOD, manageri de fișiere, dacă fiecare pas în stânga sau în dreapta duce la o creștere a consumului de memorie RAM? De ce să ne umplem cu o mulțime de instrumente și să ne agitam de colo-colo pentru a ne asigura o muncă confortabilă pe Windows Server Core, când putem pur și simplu să instalăm Windows Server 2016/2019 și să trăim ca un om normal?
Există câteva motive pentru a folosi Server Core. Primul: un consum de memorie aproape dublu mai mic. Dacă îți amintești, aceasta a fost condiția care a stat la baza articolului nostru încă de la început. Iată, pentru comparație, consumul de memorie al Windows Server 2019, compară-l cu capturile de ecran de mai sus:

Și iată, 1146 MB consumat de memorie în loc de 655 MB pe Core.
Dacă presupunem că nu vei avea nevoie de WAC și că vei folosi Explorer++ în loc de Explorer-ul original, atunci vei câștiga încă aproape o jumătate de hectar pe fiecare mașină virtuală care rulează Windows Server. Dacă ai o singură virtuală, atunci câștigul este nesemnificativ, dar dacă sunt cinci? Aici, deja prezența GUI-ului contează, mai ales dacă nu ai nevoie de el.
Al doilea — orice dansuri în jurul Windows Server Core nu vor rezolva problema principală a exploatării Windows Server — RDP și securitatea acestuia (mai exact, absența ei totală). Windows Core, chiar și în varianta sa FOD, RSAT și WAC, rămâne un server fără RDP, adică nu este vulnerabil la 95% din atacurile existente.
În rest
În general, Windows Core este doar ușor „mai greu” decât orice distribuitor Linux standard, dar este mult mai funcțional. Dacă aveți nevoie de eliberarea resurselor și sunteți dispus să lucrați cu consola, WAC și RSAT, să utilizați manageri de fișiere în loc de un GUI complet — atunci Core merită atenție. Cu atât mai mult cu cât veți putea economisi bani, evitând să plătiți pentru o versiune completă de Windows, iar banii economisiți să-i cheltuiți pe un upgrade al , adăugând de exemplu, RAM. Pentru comoditate, am adăugat Windows Server Core în .
Sursa: habr.com
