Po co komu serwerownia w domu i jak się do tego hobby zabrać

Cichy szum wentylatorów w szafie ukrytej w garażu lub piwnicy, blask diod podświetlających urządzenia, a przede wszystkim satysfakcja z budowania własnej infrastruktury – motywacje mogą być różne, a twórców domowych serwerowni czeka wiele przygód.

Homelab to nic innego jak domowe środowisko oparte na infrastrukturze sieciowej i serwerowej, które z pasją jest rozwijane i utrzymywane przez osoby o różnych profesjach. W społeczności redditowej dedykowanej dla ludzi dzielących się doświadczeniami w budowie własnych homelabów możemy spotkać zarówno devopsów, programistów, jak i bezpieczników. Znajdziemy tam także sporo początkujących adeptów ze wspomnianych dziedzin, którzy obrali właśnie taką ścieżkę nauki i przygotowania do pracy.

Artykuł, który czytacie, jest początkiem serii poświęconej budowaniu bezpiecznych środowisk zarówno dla pasjonatów, jak i raczkujących w branży osób, które albo są na początku swojej ścieżki zawodowej, albo pragną się przebranżowić. Głównie będziemy skupiać się na tym, co znamy i lubimy, czyli bezpieczeństwie. I to niekoniecznie wyłącznie cyfrowym 😉 

Po co tworzyć homelab?

W dzisiejszych czasach można zbudować niskim kosztem naprawdę imponujące domowe laboratorium. Sprzyjają temu dostępne za darmo rozwiązania, które można stosować zarówno na środowiskach produkcyjnych, jak i w domowym zaciszu. Pomaga również sama różnorodność podejścia w instalowaniu i utrzymywaniu usług sieciowych wraz z systemami – czy to na pojedynczych urządzeniach, przez wirtualizator czy konteneryzację. Grzech też nie wspomnieć o możliwej automatyzacji rutynowych działań poprzez użycie chociażby Ansible.

Po co w dobie rozwiązań chmurowych lub prawie darmowych VPS-ów budować w domu własne serwery? Teoretycznie ceny nie są obecnie zbyt wygórowane, ale w praktyce może się okazać, że szybko dotrzemy do limitów czy ograniczeń sprzętowych, a ich zniwelowanie będzie się już wiązać z bardziej dotkliwymi kosztami. Homelab to tańsza, atrakcyjniejsza forma spokojnej i wygodnej nauki nowych technologii czy rozwiązań. Relatywnie łatwo jest rozbudowywać użytkowane serwery/komputery o nowe komponenty czy kupić i podłączyć kolejny sprzęt. Homelab posiada, co prawda, pewne ograniczenia, jeśli nie dysponujemy wystarczająco szybkim łączem czy stałym, publicznym adresem IP, ale w początkowej fazie niekoniecznie musi to być dla nas istotne.

Sama budowa domowego środowiska w oparciu o najtańsze komputery producentów takich jak Dell, HP, Fujitsu czy Lenovo kupione w serwisach Allegro lub OLX to koszt kilkaset złotych. Podobnie sprawa ma się ze sprzętem sieciowym, akcesoriami czy częściami zamiennymi. Próg wejścia nie jest wysoki i z niewielkim budżetem jesteście w stanie zbudować całkiem ciekawy i wydajny zalążek domowego homelabu.

Dla kogo homelab jest dobrym rozwiązaniem?

Homelab najczęściej tworzony jest w celu podnoszenia własnego doświadczenia i wiedzy lub przygotowania do konkretnych wyzwań, jakie chcemy podjąć na danym etapie kariery zawodowej. Może być również zaspokajaniem swoich niespełnionych marzeń jak choćby używanie SIEM-a, do którego nie udało się przekonać kolegów w pracy. Warto przed rozpoczęciem prac przygotować ich plan – bez tego sprzęt będzie stał i najzwyczajniej w świecie kurzył się, a także denerwował drugą połówkę 🙂 

Homelab może oczywiście wyglądać atrakcyjnie, jak pokazuje przykład jednego z użytkowników Reddita

Szykując się do nowej pracy lub zmiany obecnej, możemy z wyprzedzeniem zaplanować sobie listę zagadnień i wyzwań, które chcielibyśmy podjąć w ramach samodzielnej nauki, szczególnie gdy nowa praca wiąże się z wymaganiami lub oczekiwaniami co do konkretnych rozwiązań, z którymi dotychczas nie mieliśmy styczności. Przykładem mogą być języki programowania, techniki testowania, zarządzanie konkretnymi systemami czy tworzenie i utrzymywanie konfiguracji dla nich. 

Homelab to też świetne rozwiązanie, gdy chcemy przygotować się do konkretnych certyfikacji, których elementem jest realizacja technicznych zadań lub konieczność nabrania wiedzy praktycznej. Konieczność zbudowania środowiska składającego się z kilku wirtualnych maszyn z systemami Windows może okazać się kosztowne w środowisku chmurowym, a dużo tańsze, gdy odpalimy je na Virtualboxie i kilkuletnim komputerze.

Tworzenie i utrzymywanie własnego środowiska w domu to też cenne rozwiązanie dla osób, które nie posiadają doświadczenia komercyjnego, a chcą kandydować do pierwszej pracy w branży IT. O swoich domowych projektach warto wówczas powiedzieć zarówno w CV, jak i podczas rozmowy kwalifikacyjnej. Gdy jesteśmy na poziomie juniorskim, zawsze może to dodać kilka plusów do kandydatury.

Domowy kącik szumu wentylatorów 😉

Bezpieczeństwo homelabu

Planując i tworząc homelab, każdorazowo miejcie na uwadze, że wszystko, co będziecie testować, uruchamiać, a przede wszystkim udostępniać publicznie w sieci, może zostać także przetestowane przez potencjalnych napastników.

Aby zobrazować skalę potencjalnego zagrożenia wystarczy skorzystać z jednej ze znanych wyszukiwarek publicznie dostępnych usług sieciowych. Jeśli przyjmiemy, że część osób tworzących swoje domowe środowiska używa komputerów Raspbbery Pi do wystawiania serwera SSH, to na przykładzie naszego kraju widzimy skalę na poniższym zrzucie ekranu. 

Oczywiście bierzemy pod uwagę, że najpewniej część powyższych wyników może być zawyżona przez osoby, które po prostu utrzymują w domu swoje usługi typu Home Assistant. Często oparte są one na popularnej “malince”, ale z drugiej strony – kto powiedział, że to nie może być też częścią homelabu? 😉 

Znając trendy w budowie homelabów, możemy łatwo zdefiniować przykładowe korelacje, wskazujące na takie właśnie środowiska:

  • domyślne porty usług takich jak Kubernetes, Grafana, Prometheus, ElasticSearch, Zabbix, Nginx, Tomcat etc.,
  • usługi zdalnego dostępu, począwszy od protokołów typu SSH czy RDP, ale także OpenVPN czy Wireguard,
  • interfejsy zdalnego zarządzania urządzeniami, jak np. iLO dla HP czy iDrac dla Dell,
  • dedykowane rozwiązania dla przechowywania plików, jak Synology, QNAP, TrueNAS, FreeNAS, NextCloud i inne,
  • urządzenia brzegowe, takie jak popularne także w domu Ubiquiti Unifi, firewall pfSense, opensense i inne,
  • nazwy systemów dedykowanych pod konkretne komputery, jak Raspbian.
Wystarczy kilka komputerów Raspberry Pi, aby stworzyć całkiem ciekawie wyglądający klaster Kubernetesa

Im większa różnorodność zastosowań i kreatywności w budowaniu homelabu, tym więcej kombinacji pozwalającej na zidentyfikowanie takiego środowiska. Powyższa lista obrazuje ryzyka, które napastnicy wyposażeni w boty czy skanery mogą wykorzystać. 

Jak zacząć budowę bezpiecznego homelabu?

Zasady budowy bezpiecznego homelabu podzieliliśmy na kilka kategorii. Jeśli macie własne propozycje, zapraszamy do zamieszczenia ich w komentarzach.

Bezpieczeństwo fizyczne

  1. W pierwszej kolejności zadbaj o odpowiednie zabezpieczenie elektryczne dla urządzeń, których chcesz używać.
  2. Dla bezpieczeństwa zaopatrz się także w środki gaśnicze, na wypadek gdyby doszło do pożaru, oraz zorientuj w ich stosowaniu w przypadku wzniecającego się pożaru.
  3. Rozważ zakup urządzenia UPS.

Bezpieczeństwo sieciowe

  1. Zadbaj o nie najgorszej klasy, konfigurowalny router z pełnym dostępem administracyjnym.
  2. Zawsze stosuj szyfrowanie ruchu sieciowego dla każdej usługi, zarówno wewnątrz sieci, jak i w zewnętrznej komunikacji.
  3. Odseparuj urządzenia w sieci, a zwłaszcza innych domowników i gości od sieci twojego homelabu.
  4. Jeśli koniecznie chcesz wystawiać usługi sieciowe na świat, stosuj losowe, inne od domyślnych numery portów. Pamiętaj także o regularnym wdrażaniu i aktualizowaniu reguł firewalla do twoich usług z sieci zewnętrznej. A najlepiej usług nie udostępniaj całemu światu, tylko ograniczaj do nich dostęp np. za pomocą VPN-a.
  5. Jeśli wystawiasz usługi z wykorzystaniem protokołu HTTPS, rozważ zastosowanie Cloudflare, które już w darmowej wersji podniesie bezpieczeństwo twojego środowiska, a także “schowa” adres publiczny twojego serwera.

Zabezpieczanie systemów i usług

  1. Regularnie wykonuj aktualizacje oprogramowania na każdym z używanych urządzeń.
  2. Korzystaj z zaleceń bezpieczeństwa twórcy systemu, usługi czy oprogramowania, których używasz. Zawsze możesz też skorzystać z wytycznych CIS Benchmarks, które są świetnym źródłem wiedzy o zabezpieczaniu systemów i usług
  3. Status zabezpieczenia Twoich systemów i usług możesz regularnie sprawdzać np. Lynisem.
  4. Na serwerze, z którego udostępniasz usługi, rozważ zainstalowanie oprogramowania typu LKRGFail2Ban lub innego, które będą zapobiegały próbom przeprowadzenia ataku. Rozważ także konteneryzację swoich usług i projektów dla większego bezpieczeństwa.
  5. Już od pierwszych dni opracuj, wdrażaj oraz testuj politykę kopii zapasowych dla twojego homelabu – dobre nawyki trzeba sukcesywnie trenować.

Reagowanie na zagrożenia

  1. Zadbaj o agregowanie logów z urządzeń i systemów tworzących twoje środowisko. Szczególnie zdarzenia w kontekście bezpieczeństwa są istotne, a wdrożenie notyfikacji w przypadku zidentyfikowania anomalii może znacznie przyśpieszyć twoją reakcję na niepożądane aktywności. 
  2. Rozważ wdrożenie lokalnego systemu IDS/IPS/SIEM, który będzie identyfikował anomalie bezpieczeństwa w twojej sieci.
  3. Monitoruj wszystkie aktywne systemy i usługi w twojej sieci pod kątem parametrów wydajnościowych oraz diagnostycznych. Również ruch sieciowy powinien podlegać analizie w trybie rzeczywistym wraz z reprezentacją danych w sposób pozwalający na ich łatwy przegląd. 

Powyższa lista nie jest zamknięta – to jedynie punkt wejścia, który sprawia, że na horyzoncie czeka kilka ciekawych narzędzi do wdrożenia i utrzymywania. W końcu pasjonaci uwielbiają takie wyzwania… 😉 

Co dalej? 

W kolejnych artykułach tego cyklu omówimy rozwiązania oraz usługi, które pozwolą podnieść bezpieczeństwo środowiska homelabowego. Mamy już kilka pomysłów, ale jeśli przychodzą wam do głowy uwagi lub rozwiązania, które warto podjąć w naszej serii, to zachęcamy do podzielenia się nimi w komentarzach.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *