Każda aplikacja, do której dostęp ma nieograniczona liczba osób lub też łączy się z nią zdalnie, musi być odpowiednio zabezpieczona. Nie muszę chyba nikomu udowadniać, o tym, jak ogromne ma to znaczenie. Żyjemy w erze cyfryzacji, która dopadła każdego z nas. Dzięki temu powstało bardzo dużo narzędzi, ułatwiających wykonywanie naszej pracy w sposób wygodniejszy niż to było kiedyś. Jednak za tym wszystkim idą pewne konsekwencje. Choć jest ich dużo, to jednak w tym materiale chciałbym się skupić na bezpieczeństwie związanym z wirtualizacją Proxmox. Dlatego zapraszam do zapoznania się z materiałem, w którym poznasz zasady bezpieczeństwa w wirtualizacji.
Ostatni webinar w tym roku!
Zapraszamy na bezpłatny webinar poświęcony roli sztucznej inteligencji w zarządzaniu infrastrukturą IT, zarówno w dużych serwerowniach, jak i w środowiskach homelab.
W trakcie wydarzenia dowiesz się, jak AI może wspierać codzienną pracę administratora, pomagając w automatyzacji procesów, monitorowaniu zasobów, analizie danych oraz zwiększaniu efektywności operacyjnej.
Zapisy na: https://asdevops.pl/warsztaty/
Zasady bezpieczeństwa w wirtualizacji – korzystaj z silnych i unikalnych haseł
Ten punkt nie powinien nikogo dziwić. Musiał się pojawić i w tym materiale, bo typ hasła, jaki stosujemy, jest to podwalina całego systemu bezpieczeństwa. Jeżeli korzystamy ze słabych haseł, to stosowanie bardzo kosztownych i zaawansowanych technik zabezpieczeń mija się z celem. Natomiast ważne jest zrozumienie samej idei takiego trudnego do złamania hasła. Czy jesteś w stanie odpowiedzieć na pytanie, czym trudne hasło, jest w jednym zdaniu?
Otóż ciężkie hasło rozumiem przez: “Silne hasło to takie, które atakującemu trudno odgadnąć lub złamać za pomocą zautomatyzowanych narzędzi. Powinien mieć co najmniej 8 znaków i zawierać kombinację wielkich i małych liter, cyfr i znaków specjalnych.”
Jest to jedno z wytłumaczeń, z którym spotkałem się w jednym z artykułów napisanych w języku angielskim kilka lat temu. Tłumaczy ono doskonale ideę. Jednak osobiście nie zgadzam się z tymi 8 znakami. Każde hasło powinno mieć więcej niż 8 znaków. Delikatnie odbiegając od tematu, jeżeli kiedykolwiek będziesz chciał założyć konto i przy rejestracji istnieje minimalna ilość znaków, to pamiętaj, by stworzyć takie, które ma ich więcej. W obecnej chwili narzędzia, o których wspominał autor, są ustawiane na te 8 znaków lub minimum znaków, jeżeli dotyczy to konkretnego miejsca. Nasza wygoda często okazać się może zgubna.
Natomiast kolejnym błędem jest tworzenie takich samych haseł do kilku kont. Pamiętajmy, istnieją menedżery haseł, w których możesz takie magazynować. Jednym z darmowych i dostępnych na wszystkie platformy jest KeePassXC.
I na sam koniec, możliwe, że najistotniejsza sprawa. Konto administratora, czyli root. Pamiętaj, że jest ono kontem specjalnym. Ten, kto ma dostęp do niego, może zrobić dosłownie wszystko. Nawet wszystko usunąć łącznie z backupami o ile są powiązane z nim. Dla tego konta hasło musi być bardzo skomplikowane i dość długie.
Zapewnienie aktualizacji bezpieczeństwa zarówno hosta Proxmox, jak i maszyn wirtualnych
Pewnie wiecie, że poprawki zabezpieczeń są to aktualizacje, dzięki którym łatane są luki w oprogramowaniu. Nie wykonanie tych czynności aktualizacyjnych może skutkować wykorzystaniem ich przez osoby niepowołane. W ten sposób hakerzy mogą uzyskać nieautoryzowany dostęp lub naruszają w jakiś sposób bezpieczeństwo systemu. W celu zapewnienia aktualności wspomnianych systemów powinniśmy skorzystać z odpowiedniego menedżera pakietów stosowanego w danej dystrybucji Linux. Niemniej jednak pamiętajcie, aby przed wprowadzeniem aktualizacji przeprowadzić testy na środowisku nieprodukcyjnym. Dzięki temu sprawdzisz, czy nie powodują jakichś komplikacji, przez co będziesz wiedział jakie poprawki musisz wprowadzić, by można było je zaimplementować w środowisku produkcyjnym.
Aktualizację możesz przeprowadzać indywidualnie na każdym hoście i na każdym urządzeniu, jednak wygodniej jest skorzystać z na przykład ansible, które automatyzuje cały proces.
Konfiguracja zapory ogniowej oraz dostępu
Trzecim istotnym punktem jest zapora ogniowa lub jeżeli wolisz firewall. Jest to bardzo istotny element, każdego środowiska, dlatego też pojawia się na tej liście. Firewall wspomaga przez nieautoryzowanym dostępem. Dzięki niemu monitorujesz i kontrolujesz przychodzący i wychodzący ruch sieciowy przy pomocy skonstruowanych przez ciebie reguł bezpieczeństwa. Dlatego bardzo istotne jest ostatnie zdanie tego akapitu. To Ty musisz skonstruować odpowiednie reguły i je dość często testować oraz wprowadzać zmiany. Nie istnieje jedno idealne rozwiązanie.
Proxmox działa w systemie Linux, dlatego do tego celu masz bardzo spore zaplecze narzędzi, które pomogą w tym zadaniu. Jednym z takich najbardziej znanych jest zapora ogniowa iptables. Kontroluje ona ruch przychodzący i wychodzący do systemu hosta. Jest w pełni konfigurowalna i jeżeli pozna się pewne zasady, można w bardzo prosty sposób stworzyć bardzo dobre reguły zabezpieczające. Ruch z i do hosta możesz konfigurować na podstawie różnych kryteriów. Czy będzie to źródłowy, czy też docelowy adres IP, czy też protokół lub numer portu. Jednak w tym pomóc może Ci Proxmox. Regułami do iptables możesz zarządzać przy pomocy jego interfejsu sieciowego.
Drugim elementem wymienionym w tym paragrafie jest kontrola dostępu. Dzięki niej ograniczasz dostęp do hosta. Proxmox będzie dostępny tylko dla zaufanych użytkowników i urządzeń. Dokonać tego możesz przez wspomniane silne i unikatowe hasła do uwierzytelniania oraz dzięki grupom i uprawnieniom do kontrolowania czynności, jakie użytkownicy mogą wykonać.
Zasady bezpieczeństwa w wirtualizacji – korzystaj z szyfrowanych kanałów komunikacji
Kolejnym istotnym środkiem zapewnienia bezpieczeństwa jest korzystanie z takich narzędzi do komunikacji jak HTTPS i SSH. Jest to bardzo istotny element szczególnie przy zdalnym dostępie do Proxmoxa i jego systemów. Dzięki szyfrowaniu kanałów komunikacji chronisz poufność, jak i integralność danych przesyłanych pomiędzy klientem, a hostem.
Natomiast w ramach wyjaśnienia w skrócie postanowiłem omówić oba szyfrowane kanały, dla tych, co nie mieli nigdy z nimi styczności.
HTTPS
Jest to interfejs internetowy, z którego korzysta Proxmox w celu zdalnego zarządzania przy pomocy własnego interfejsu. HTTPS jest to następstwo wersji HTTP, która w odróżnieniu od swojego poprzednika używa szyfrowanego połączenia do ochrony danych. Aby był dostępny w Proxmox, musisz zainstalować certyfikat SSL/TLS na hoście.
SSH
Jest to połączenie umożliwiające zdalny dostęp do hosta Proxmox. Dzięki niemu połączysz się z interfejsem wiersza poleceń na zdalnej maszynie. Aby korzystać z SSH, musisz skonfigurować go na hoście Proxmox.
Korzystanie z szyfrowanych kanałów komunikacji, które wymieniłem w powyższych kilku akapitach, stało się podstawowym zabezpieczeniem nie tylko serwera z Proxmox, a każdego serwera.
Używaj pamięci masowej w celu ochrony danych
Jak wiesz, Proxmox jest to platforma open source służąca wirtualizacji, dzięki której możesz uruchomić wiele maszyn wirtualnych na tym samym urządzeniu. W związku z powyższym istotnym elementem posiadania różnego rodzaju systemów operacyjnych jest korzystanie z niezawodnego rozwiązania do przechowywania danych.
Do dwóch najczęściej opcji, z których korzystają użytkownicy, należy użycie sieciowego urządzenia pamięci masowej NAS i sieci pamięci masowej SAN. Choć nazwy dość zbliżone to występuje pomiędzy nimi znaczne różnice. Poniżej opisuje skrótowo każde z nich.
NAS
NAS to dedykowane urządzenie pamięci masowej, które łączy się z siecią i zapewnia dostęp do współdzielonych danych i plików. Urządzenia NAS są zazwyczaj przeznaczone do użytku w małych i średnich firmach i można je skonfigurować tak, aby zapewniały bezpieczną i nadmiarową pamięć masową dla maszyn wirtualnych Proxmox.
SAN
SAN to szybka sieć urządzeń pamięci masowej zaprojektowana w celu zapewnienia szybkiego i niezawodnego dostępu do danych. Sieć SAN może służyć do przechowywania i zarządzania danymi dla wielu maszyn wirtualnych Proxmox. Może zapewniać zaawansowane funkcje, takie jak tworzenie migawek, replikacja i powstrzymanie duplikowania danych.
Dzięki korzystaniu z jednego z wymienionych narzędzi zapewniamy sobie dodatkową ochronę danych. Jednak nic nie dzieje się samo. Dlatego ważne jest również wdrożenie systemu automatyzacji wykonywania kopii bezpieczeństwa, ale o tym za chwilę…
Tworzenie regularnych kopii bezpieczeństwa Proxmox
Wykonanie kopii zapasowych można na kilka sposobów. Poniżej omawiam trzy najczęściej stosowane.
Korzystanie z wbudowanych funkcji
Proxmox posiada wbudowane funkcje służące tworzeniu kopii bezpieczeństwa. Umożliwia ona wykonywanie kopii zarówno maszyn wirtualnych, jak i kontenerów. Posiada wbudowaną funkcję, dzięki której możesz zaplanować regularne, wykonywanie ich umieszczając je lokalnie lub na serwerze zdalnym.
Korzystanie z zewnętrznego oprogramowania
Nie jesteś ograniczony tylko do wbudowanych funkcji Proxmox. Możesz wykorzystać oprogramowanie firm trzecich, dzięki którym osiągniesz zamierzony cel. Wielu decyduje się na takie rozwiązanie z powodu zaawansowanych funkcji takiego oprogramowania. Do najważniejszych możemy zaliczyć kompresję i szyfrowanie oraz możliwość przechowywania na różnych urządzeniach pamięci masowej czy też podłączonej do sieci (SAN, NAS).
Tworzenie migawek
Proxmox umożliwia tworzenie migawek maszyn wirtualnych oraz kontenerów. Dzięki migawce zapisywane są wszystkie dane, które w trakcie tworzenia jej znajdowały się w wirtualnej maszynie. Dzięki niej możesz przywrócić maszynę do poprzedniego stanu, na przykład sprzed awarii. Jednak nie są one zastępstwem dla wykonywania kopii bezpieczeństwa tylko dodatkowym narzędziem umożliwiającym szybkie przywrócenie po powstaniu problemu.
Dodatkiem do wspomnianych czynności jest wprowadzenie planu odzyskiwania po awarii. Dzięki temu określimy kroki, które będzie należało podjąć w przypadku wystąpienia awarii. Plan ten powinien zawierać szczegółowe informacje o tym, jak odzyskać dane, jak przywrócić środowisko Proxmox do trybu online oraz jak komunikować się z zainteresowanymi stronami w sprawie awarii i procesu odzyskiwania. Określenie takiego planu może okazać się bardzo istotne, ponieważ wykazuje czynności, jakie muszą być wykonane w przypadku jej wystąpienia. Unikamy sytuacji, w której pracownicy nie wiedzą, co mają w takiej sytuacji zrobić.
Przydzielenie odpowiednich limitów zasobów
Po zainstalowaniu i skonfigurowaniu Proxmox kolejnym istotnym elementem jest przydział odpowiedniej ilości zasobów. Musisz upewnić się, że to, co zużywają użytkownicy, nie wpłynie negatywnie na wydajność.
Dzięki narzędziu Proxmox możesz ustawić limity dla:
- Procesorów;
- Pamięci;
- We/wy dysku:
- Przepustowość sieci.
Do tego celu możesz użyć interfejsu Proxmox lub interfejsu wiersza poleceń. Ważne jest, aby monitorować wykorzystanie zasobów przez gości i odpowiednio dostosowywać limity zasobów, aby zapewnić ich optymalne działanie.
Korzystaj z narzędzi do monitorowania
Jeżeli chcesz być pewny, że twoje urządzenia będą cały czas sprawne, a gdy stanie się najgorsze otrzymać odpowiednią informację, powinieneś skorzystać z systemu monitoringu. W ten sposób sprawisz, że Proxmox będzie stabilniejszy i niezawodny. Narzędzia do monitorowania pomagają w śledzeniu wydajności i dostępności środowiska Proxmox. Narzędzi takich jest wiele. Natomiast do kluczowych funkcji oraz możliwości powinniśmy doszukiwać się funkcji:
Monitoring w czasie rzeczywistym. Istotne jest, aby narzędzie takie wykonywało monitorowanie w trybie ciągłym. Dzięki temu przez ciągłe zebranie danych, ich porównywanie możemy również zabezpieczyć się przed wystąpieniem różnych innych incydentów.
Ostrzeganie. Nawet najlepszy system bez tego elementu okaże się do niczego, jeżeli nie będzie ostrzegał przed wystąpieniem zagrożenia lub możliwości jego wystąpienia.
Gromadzenie danych. Każdy szanujący się program do monitoringu powinien gromadzić dane, analizować je i co najważniejsze wyciągać z nich wnioski.
Możliwości konfiguracyjne. Przy wykonywaniu tego typu sprawdzeń, ważne jest, aby można było dowolne ostrzeżenia, zagrożenia ustawić. Takie narzędzie powinno mieć możliwość włączenia i wyłączenia niektórych metryk i alertów. Dzięki temu będziesz w stanie idealnie dopasować je do swoich potrzeb.
Choć jak wspomniałem, narzędzi do monitoringu jest bardzo dużo to jednak w obecnej chwili najczęściej stosowanym i spełniającym wszystkie wspomniane wymagania jest Zabbix. Dlatego, jeżeli chciałbyś dowiedzieć się więcej i nauczyć się je wdrażać zapraszamy do naszego szkolenia.
Korzystaj z wbudowanych funkcji bezpieczeństwa Proxmox
Proxmox posiada wbudowane funkcje bezpieczeństwa, które nie są automatycznie uruchamiane. Do takich należą:
AppArmor. Jest to moduł bezpieczeństwa jądra systemu Linux. Umożliwia on wyznaczenie zasad kontroli dostępu do aplikacji. Dzięki niej kontrolujesz do czego dana aplikacja ma dostęp. Przez to możesz zapobiec złośliwym aplikacjom wykonanie czynności, do jakich zostały stworzone.
SELinux. Zapewnia kontrolę dostępu oraz izolację zasobów. Dzięki SELinux określasz, począwszy od użytkowników, skończywszy na aplikacjach, do jakich zasobów mają dostęp. Do tego, co rozumiem przez zasoby, zaliczam zarówno pliki, jak i porty czy też urządzenia systemowe. Tak jak AppArmor pomaga w zapobieganiu uaktywniania złośliwych aplikacji.
Jednak obie funkcje nie są uruchamiane automatycznie. Musisz je włączyć przy konfiguracji Proxmox. Następnie przy pomocy nich konfigurujesz kontrolą dostępu dla hosta, na którym używasz Proxmox.
Zasady bezpieczeństwa w wirtualizacji – czytaj poradniki bezpieczeństwa oraz dokumentację Proxmox
Świat się zmienia, dlatego też muszą się zmieniać sposoby zabezpieczeń. To, co dziś rozumiemy jako bezpieczne, jutro może okazać się już złamane i lepiej z tego nie korzystać. Przyznam, że ciężko jest wychwycić wszystko, jednak w ostatnim punkcie tego artykułu muszę napisać, że powinniśmy się starać być z tym na bieżąco. W ten sposób zapewnimy sobie bezpieczeństwo.
Miejsca, do jakich warto zaglądać, przedstawiam poniżej:
https://pve.proxmox.com/wiki/Main_Page
https://www.reddit.com/r/Proxmox/
Natomiast jeżeli chcesz więcej, polecamGoogle i frazę w języku angielskim Proxmox VE security issues.
Podsumowanie – Zasady bezpieczeństwa w wirtualizacji
Zapewnienie bezpieczeństwa jest często karkołomnym zajęciem wymagającym poświęcenia ogromnej ilości czasu oraz środków finansowych. Jednak, aby obniżyć nieco koszty, można zapoznać się z tematem i nie potrzebować pomocy w każdym zakresie z tym związanym. Mam nadzieję, że przedstawione w tym artykule zasady bezpieczeństwa w wirtualizacji przybliżyły Ci ten temat i wiesz już jak działać w tym zakresie u siebie.
Więcej na temat bezpieczeństwa przeczytasz w naszych artykułach blogowych.