Ze względu na obżarstwo systemów Windows, w środowisku VPS dominują lekkie dystrybucje Linuksa: Mint, Colibri OS, Debian czy Ubuntu, pozbawione ciężkiego środowiska graficznego, które jest dla nas niepotrzebne. Jak to mówią, tylko konsola, tylko hardcor! I w zasadzie nie jest to wcale przesada: ten sam Debian startuje na 256 MB pamięci i jednym rdzeniu z zegarem 1 Ghz, czyli na prawie każdym „pniu”. Do komfortowej pracy potrzebne będzie co najmniej 512 MB i nieco szybszy procesor. Ale co, jeśli powiemy Ci, że możesz zrobić mniej więcej to samo na VPS z systemem Windows? Dlaczego nie trzeba wdrażać ciężkiego systemu Windows Server, który wymaga od trzech do czterech hektarów pamięci RAM i co najmniej kilku rdzeni taktowanych zegarem 1,4 GHz? Po prostu użyj Windows Server Core - pozbądź się GUI i niektórych usług. Porozmawiamy o tym, jak to zrobić w artykule.
Kim jest rdzeń serwera Windows?
Nawet na oficjalnej stronie Mikesa nie ma jasnej informacji o tym, czym jest Windows (serwer) Core, a raczej wszystko jest tam tak zagmatwane, że nie od razu zrozumiesz, ale pierwsze wzmianki pochodzą z epoki Windows Server 2008. Zasadniczo Windows Core to działający serwer jądra systemu Windows (nagle!), „cieńszy” pod względem rozmiaru własnego GUI i około połowy usług pobocznych.
Główną cechą Windows Core jest niewymagający sprzęt i pełna kontrola konsoli poprzez PowerShell.
Jeśli wejdziesz na stronę Microsoftu i sprawdzisz wymagania techniczne, to do uruchomienia Windows Server 2016/2019 potrzebne będą co najmniej 2 gigabajty pamięci RAM i co najmniej jeden rdzeń o taktowaniu 1,4 GHz. Ale wszyscy rozumiemy, że przy takiej konfiguracji możemy oczekiwać jedynie uruchomienia systemu, ale na pewno nie wygodnej obsługi naszego systemu operacyjnego. Z tego powodu Windows Serverowi zwykle przydziela się więcej pamięci i co najmniej 2 rdzenie/4 wątki z procesora, jeśli nie zapewni mu drogiej maszyny fizycznej na jakimś Xeonie, zamiast taniej maszyny wirtualnej.
Jednocześnie sam rdzeń systemu serwerowego wymaga jedynie 512 MB pamięci, a zasoby procesora, które zużywał GUI po prostu na narysowanie na ekranie i utrzymanie licznych usług, można wykorzystać do czegoś bardziej przydatnego.
Oto porównanie usług Windows Core obsługiwanych fabrycznie i pełnego systemu Windows Server z oficjalnej witryny Microsoft:
aplikacja
rdzeń serwera
serwer zdoświadczenie z komputerem
Wiersz polecenia
dostępny
dostępny
Windows PowerShell/Microsoft .NET
dostępny
dostępny
Perfmon.exe
niedostępne
dostępny
Windbg (GUI)
utrzymany
dostępny
Resmon.exe
niedostępne
dostępny
regedit
dostępny
dostępny
Fsutil.exe
dostępny
dostępny
Disksnapshot.exe
niedostępne
dostępny
Diskpart.exe
dostępny
dostępny
ggmt.msc
niedostępne
dostępny
devmgmt.msc
niedostępne
dostępny
Server Manager
niedostępne
dostępny
mmc.exe
niedostępne
dostępny
Wydarzenie
niedostępne
dostępny
Wevtutil (zapytania o zdarzenia)
dostępny
dostępny
Services.msc
niedostępne
dostępny
Panel sterowania
niedostępne
dostępny
Aktualizacja systemu Windows (GUI)
niedostępne
dostępny
Windows Explorer
niedostępne
dostępny
Pasek zadań
niedostępne
dostępny
Powiadomienia na pasku zadań
niedostępne
dostępny
Taskmgr
dostępny
dostępny
Internet Explorer lub Edge
niedostępne
dostępny
Wbudowany system pomocy
niedostępne
dostępny
Powłoka systemu Windows 10
niedostępne
dostępny
Windows Media Player
niedostępne
dostępny
PowerShell
dostępny
dostępny
PowerShell ISE
niedostępne
dostępny
Edytor edytora PowerShell
dostępny
dostępny
Mstsc.exe
niedostępne
dostępny
Usługi pulpitu zdalnego
dostępny
dostępny
Menedżer funkcji Hyper-V
niedostępne
dostępny
Jak widać, sporo zostało wyciętych z Windows Core. Pod nóż poszły usługi i procesy związane z GUI systemu, a także wszelkie „śmieci”, które zdecydowanie nie są potrzebne na naszej wirtualnej maszynie konsoli, np. Windows Media Player.
Prawie jak Linux, ale nie to
Naprawdę chcę porównać Windows Server Core z dystrybucjami Linuksa, ale w rzeczywistości nie jest to do końca poprawne. Tak, te systemy są do siebie podobne pod względem zmniejszonego zużycia zasobów ze względu na rezygnację z GUI i wielu usług pobocznych, ale pod względem obsługi i niektórych podejść do montażu jest to nadal system Windows, a nie Unix.
Najprostszym przykładem jest to, że ręcznie budując jądro Linuksa, a następnie instalując pakiety i usługi, nawet lekką dystrybucję Linuksa można przekształcić w coś ciężkiego i podobnego do szwajcarskiego scyzoryka (tutaj naprawdę chcę zażartować na temat Pythona na akordeonie i wstaw obrazek z serii „Gdyby języki programowania były bronią”, ale tego nie zrobimy). W Windows Core tej swobody jest znacznie mniej, bo przecież mamy do czynienia z produktem Microsoftu.
Windows Server Core jest dostarczany jako gotowy, którego domyślną konfigurację można oszacować z powyższej tabeli. Jeśli potrzebujesz czegoś z nieobsługiwanej listy, będziesz musiał dodać brakujące elementy online za pośrednictwem konsoli. To prawda, nie należy zapominać o funkcji na żądanie i możliwości pobierania komponentów w postaci plików CAB, które można następnie dodać do złożenia przed instalacją. Ale ten skrypt nie zadziała, jeśli już w trakcie procesu odkryjesz, że brakuje Ci którejkolwiek z usług cięcia.
Jednak tym, co odróżnia wersję Core od wersji pełnej, jest możliwość aktualizacji systemu i dodawania usług bez przerywania pracy. Windows Core obsługuje walcowanie na gorąco pakietów bez ponownego uruchamiania. W rezultacie, z praktycznych obserwacji: komputer z systemem Windows Core należy uruchamiać ~6 razy rzadziej niż komputer z systemem Windows Server, czyli raz na sześć miesięcy, a nie raz na miesiąc.
Przyjemnym bonusem dla administratorów jest to, że jeśli system będzie używany zgodnie z przeznaczeniem - poprzez konsolę, bez RDP - a nie zamieniony na drugi Windows Server, wówczas stanie się wyjątkowo bezpieczny w porównaniu do pełnej wersji. W końcu większość luk w zabezpieczeniach systemu Windows Server wynika z protokołu RDP i działań użytkownika, który za pośrednictwem tego protokołu RDP robi coś, czego nie powinno się robić. Przypomina to historię Henry’ego Forda i jego podejścia do koloru samochodu: „Każdy klient może zlecić pomalowanie samochodu na dowolny kolor, pod warunkiem, że jest czarny" Podobnie jest z systemem: użytkownik może komunikować się z systemem w dowolny sposób, najważniejsze, że robi to poprzez konsola.
Zainstaluj i zarządzaj systemem Windows Server 2019 Core
Wspomnieliśmy wcześniej, że Windows Core to w zasadzie Windows Server bez opakowania GUI. Oznacza to, że możesz używać prawie dowolnej wersji systemu Windows Server jako wersji podstawowej, czyli porzucić GUI. W przypadku produktów z rodziny Windows Server 2019 są to 3 z 4 kompilacji serwerów: tryb podstawowy jest dostępny dla systemów Windows Server 2019 Standard Edition, Windows Server 2019 Datacenter i Hyper-V Server 2019, czyli wykluczony jest tylko system Windows Server 2019 Essentials z tej listy.
W takim przypadku tak naprawdę nie trzeba szukać pakietu instalacyjnego systemu Windows Server Core. W standardowym instalatorze Microsoftu domyślnie oferowana jest wersja core, natomiast wersję GUI należy wybrać ręcznie:
Tak naprawdę opcji zarządzania systemem jest więcej niż wspomniany PowerShell, który domyślnie oferuje producent. Maszyną wirtualną w systemie Windows Server Core można zarządzać na co najmniej pięć różnych sposobów:
- Zdalny PowerShell;
- Narzędzia administracji zdalnej serwera (RSAT);
- Centrum administracyjne systemu Windows;
- Skonfiguruj;
- Menedżer serwera.
Największym zainteresowaniem cieszą się trzy pierwsze pozycje: standardowy PowerShell, RSAT i Windows Admin Center. Należy jednak zrozumieć, że choć zyskujemy korzyści płynące z jednego z narzędzi, otrzymujemy także ograniczenia, jakie ono narzuca.
Nie będziemy opisywać możliwości konsoli; PowerShell to PowerShell, z jego oczywistymi zaletami i wadami. W przypadku RSAT i WAC wszystko jest nieco bardziej skomplikowane.
WAC zapewnia dostęp do ważnych elementów sterujących systemem, takich jak edycja rejestru oraz zarządzanie dyskami i urządzeniami. RSAT w pierwszym przypadku działa tylko w trybie przeglądania i nie pozwoli na dokonanie jakichkolwiek zmian, a do zarządzania dyskami i urządzeniami fizycznymi Narzędzia administracji zdalnej serwera wymagają GUI, co w naszym przypadku nie ma miejsca. Ogólnie rzecz biorąc, RSAT nie może pracować z plikami, a zatem aktualizacjami, instalacją/usuwaniem programów podczas edycji rejestru.
▍Zarządzanie systemem
WAC
RSAT
Zarządzanie komponentami
Tak
Tak
Edytor rejestru
Tak
Nie
Zarządzanie siecią
Tak
Tak
Podgląd zdarzeń
Tak
Tak
Udostępnione foldery
Tak
Tak
Zarządzanie dyskiem
Tak
Tylko dla serwerów z GUI
Harmonogram zadań
Tak
Tak
Zarządzanie urządzeniami
Tak
Tylko dla serwerów z GUI
Zarządzanie plikami
Tak
Nie
Zarządzanie użytkownikami
Tak
Tak
Zarządzanie grupą
Tak
Tak
Zarządzanie certyfikatami
Tak
Tak
Aktualizacje
Tak
Nie
Odinstalowywanie programów
Tak
Nie
Monitor systemu
Tak
Tak
Z drugiej strony RSAT daje nam pełną kontrolę nad rolami na komputerze, podczas gdy Windows Admin Center nie może w tym zakresie zrobić dosłownie nic. Oto porównanie możliwości RSAT i WAC w tym aspekcie, dla przejrzystości:
▍Zarządzanie rolami
WAC
RSAT
Zaawansowana ochrona wątków
ZAPOWIEDŹ
Nie
Windows Defender
ZAPOWIEDŹ
Tak
pojemniki
ZAPOWIEDŹ
Tak
Centrum administracyjne AD
ZAPOWIEDŹ
Tak
Domena AD i trusty
Nie
Tak
Witryny i usługi reklamowe
Nie
Tak
DHCP
ZAPOWIEDŹ
Tak
DNS
ZAPOWIEDŹ
Tak
Menedżer DFS
Nie
Tak
Menedżer GPO
Nie
Tak
Menedżer IIS
Nie
Tak
Oznacza to, że jest już jasne, że jeśli porzucimy GUI i PowerShell na rzecz innych elementów sterujących, nie będziemy w stanie obejść się bez korzystania z jakiegoś mononarzędzia: do pełnej administracji na wszystkich frontach będziemy potrzebować co najmniej połączenie RSAT i WAC.
Trzeba jednak pamiętać, że za korzystanie z WAC trzeba będzie zapłacić 150-180 megabajtów pamięci RAM. Po podłączeniu Centrum administracyjne systemu Windows tworzy 3-4 sesje po stronie serwera, które nie są przerywane nawet po odłączeniu narzędzia od maszyny wirtualnej. WAC nie działa również ze starszymi wersjami programu PowerShell, dlatego będziesz potrzebować co najmniej programu PowerShell 5.0. Wszystko to jest sprzeczne z naszym paradygmatem oszczędności, ale za wygodę trzeba płacić. W naszym przypadku - RAM.
Inną opcją zarządzania Server Core jest instalacja GUI przy użyciu narzędzi innych firm, aby nie ciągnąć ton śmieci, które są dostarczane z interfejsem w pełnoprawnym zestawie.
W tym przypadku mamy dwie możliwości: wdrożyć w systemie oryginalnego Eksploratora lub użyć Eksploratora++. Alternatywą dla tego ostatniego jest odpowiedni dowolny menedżer plików: Total Commander, FAR Manager, Double Commander i tak dalej. To drugie rozwiązanie jest preferowane, jeśli oszczędność pamięci RAM jest dla Ciebie krytyczna. Możesz dodać Explorer++ lub dowolny inny menedżer plików, tworząc folder sieciowy i uruchamiając go za pomocą konsoli lub harmonogramu.
Zainstalowanie pełnoprawnego Explorera da nam większe możliwości w zakresie pracy z oprogramowaniem wyposażonym w UI. W tym celu my
Tak wygląda zużycie pamięci przez system na komputerach z natywnym pakietem Explorer i bez niego.
Powstaje tutaj logiczne pytanie: po co to wszystko tańczyć z PowerShellem, FOD, menedżerami plików, jeśli jakikolwiek krok w lewo lub w prawo prowadzi do wzrostu zużycia pamięci RAM? Po co smarować się masą narzędzi i przerzucać się na boki, aby zapewnić wygodną pracę na Windows Server Core, skoro można po prostu pobrać Windows Server 2016/2019 i żyć jak biały człowiek?
Istnieje kilka powodów, dla których warto używać Server Core. Po pierwsze: bieżące zużycie pamięci jest prawie o połowę mniejsze. Jeśli pamiętasz, ten warunek był podstawą naszego artykułu na samym początku. Dla porównania, oto zużycie pamięci w systemie Windows Server 2019, porównaj ze zrzutami ekranu tuż powyżej:
I tak 1146 MB zużycia pamięci zamiast 655 MB na Core.
Zakładając, że nie potrzebujesz WAC i będziesz używać Explorer++ zamiast oryginalnego Explorera, to ty i tak wygrasz prawie pół hektara na każdej maszynie wirtualnej z systemem Windows Server. Jeśli jest tylko jedna maszyna wirtualna, to wzrost jest niewielki, ale jeśli jest ich pięć? W tym miejscu liczy się posiadanie GUI, szczególnie jeśli go nie potrzebujesz.
Po drugie, wszelkie tańce wokół Windows Server Core nie doprowadzą Cię do walki z głównym problemem działania Windows Server - RDP i jego bezpieczeństwem (a dokładniej jego całkowitym brakiem). Windows Core, nawet pokryty FOD, RSAT i WAC, nadal jest serwerem bez RDP, czyli nie jest podatny na 95% istniejących ataków.
Pozostały
Ogólnie rzecz biorąc, Windows Core jest tylko trochę grubszy niż jakakolwiek standardowa dystrybucja Linuksa, ale jest znacznie bardziej funkcjonalny. Jeśli chcesz zwolnić zasoby i jesteś gotowy do pracy z konsolą, WAC i RSAT oraz korzystasz z menedżerów plików zamiast pełnoprawnego GUI, warto zwrócić uwagę na Core. Co więcej, dzięki niemu będziesz mógł uniknąć dodatkowych opłat za pełnoprawny system Windows i wydać zaoszczędzone pieniądze na aktualizację swojego
Źródło: www.habr.com