Narzędzia użytkownika

Narzędzia witryny


projekty:proj_sieci_domowej

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
projekty:proj_sieci_domowej [2025/05/08 12:52] administratorprojekty:proj_sieci_domowej [2025/05/16 17:30] (aktualna) administrator
Linia 1: Linia 1:
-====== Projekt mojej Sieci domowej ======+====== Network: Projekt Home-Lab'======
  
 ===== Wymagania i specyfikacja ===== ===== Wymagania i specyfikacja =====
Linia 46: Linia 46:
 == LAB-ROUTER == == LAB-ROUTER ==
  
-To jest główny router na którym są wszystkie przekierowania portów na odpowiednie serwery. Kiedyś był on równiez serwerem VPN, teraz już tylko dostał tunel PPTP do monitorowania urządzeń w drugiej lokalizacji. Przekierowania portów są do usług na serwerach minecraft-server i ardugeek-server. Wykorzystuję na nim funckję DDNS dostępną od mikrotika gdyż nie wszystkie usługi chce mieć na tunelach cloudflare. +To jest główny router na którym są wszystkie przekierowania portów na odpowiednie serwery. Kiedyś był on również serwerem VPN, teraz już tylko dostał tunel PPTP do monitorowania urządzeń w drugiej lokalizacji. Przekierowania portów są do usług na serwerach minecraft-server i ardugeek-server. Wykorzystuję na nim funkcję DDNS dostępną od mikrotika gdyż nie wszystkie usługi chce mieć na tunelach cloudflare. 
  
 == Mikrotik Dzialka == == Mikrotik Dzialka ==
  
-To jest tylko prosty klient dla sieci 4G/LTE jako klient DHCP z bramą. Skonfogurowany jest jako klient tunely PPTP. Tunel ten na dzień dzisiejszy wykorztuję tylko do monitorowania urządzeń. Całą resztę robi tailscale. \\+To jest tylko prosty klient dla sieci 4G/LTE jako klient DHCP z bramą. Skonfigurowany jest jako klient tunelu PPTP. Tunel ten na dzień dzisiejszy wykosztuję tylko do monitorowania urządzeń. Całą resztę robi tailscale. Poniżej jest sprzęt jaki wykorzystuję do łączności 4G/LTE  
 +<WRAP group> 
 +<WRAP column> 
 +{{:projekty:pasted:20250516-092143.jpeg?200}}\\ 
 +TP-LINK TL-MR100\\ 
 +Źródło: [[https://www.morele.net|Morele.Net]] 
 +</WRAP> 
 +<WRAP column> 
 +{{:projekty:pasted:20250516-092056.jpeg?200}}\\ 
 +Antena 4G/LTE\\ 
 +Źródło: [[https://www.morele.net|Morele.Net]] 
 +</WRAP> 
 +</WRAP>
  
-konfiguracja routera poniżej (hasła i inne dane poufne zostały ukryte): +== PROXMOX-REMOTE - Serwer fizyczny ==
- +
-== PROXMOX-REMOTE ==+
  
 {{:projekty:pasted:20250508-112336.jpeg?direct&200}} {{:projekty:pasted:20250508-112336.jpeg?direct&200}}
  
-Fizycznie jest to stary serwer Fujitsu Primergy RX300 S8, który dawno temu odkupiłem od jednego z moich klientów. Mam na nim zainstalowanego hyper-visora [[https://www.proxmox.com/en/|Proxmox VE]]. Nie jest to serwer z wygórowaną specyfikacją ale wystarcza na różne eskperymenty. Ma procesor Intel Xeon, 32GB pamięci ram, Dwie macierze jedną RAID1 (256GB SSD) i drugą RAID5 (3.5TB HDD). Na nim jest uruchomiona usługa tailscale.+Fizycznie jest to stary serwer Fujitsu Primergy RX300 S8, który dawno temu odkupiłem od jednego z moich klientów. Mam na nim zainstalowanego hyper-visora [[https://www.proxmox.com/en/|Proxmox VE]]. Nie jest to serwer z wygórowaną specyfikacją ale wystarcza na różne eksperymenty. Ma procesor Intel Xeon, 32GB pamięci ram, Dwie macierze jedną RAID1 (256GB SSD) i drugą RAID5 (3.5TB HDD). Na nim jest uruchomiona usługa tailscale. 
 + 
 +Jest to też węzeł wyjściowy dla sieci 10.42.30.0/24, więc jeżeli który kolwiek z klientów sieci Tailscale będzie chciał się połączyć z czymkolwiek w tej sieci to wyjdzie do niej przez ten serwer. 
 + 
 +== MAINFRAME - Maszyna wirtualna na proxmox-remote ==
  
-== MAINFRAME ==+{{:projekty:pasted:20250516-092908.png?200}}\\ 
 +Logo dystrybucji Xubuntu\\ 
 +Źródło: [[https://commons.wikimedia.org/wiki/File:Xubuntu_logo.svg|wikimedia.org]]
  
 Jest to maszyna wirtualna z systemem [[https://xubuntu.org/|xubuntu]] 22.04. Na niej mam uruchomione usługi takie jak: Jest to maszyna wirtualna z systemem [[https://xubuntu.org/|xubuntu]] 22.04. Na niej mam uruchomione usługi takie jak:
Linia 72: Linia 88:
 Wszystkie z tych usług są hostowane za pomocą tunelu cloudflare. Nie mam dostępnego adresu publicznego w tej lokalizacji na karcie sim, więc niestety pozostaje tylko tunel cloudflare. Nie są to usługi dla mnie krytyczne więc jak tunel się rozłączy (a ma tendencję raz na jakichś czas ;-)) to nie ma to wpływu na działanie mojej sieci. Connector tailscale nie działa na tej maszynie wirtualnej tylko działa na samym hypervisorze. Wszystkie z tych usług są hostowane za pomocą tunelu cloudflare. Nie mam dostępnego adresu publicznego w tej lokalizacji na karcie sim, więc niestety pozostaje tylko tunel cloudflare. Nie są to usługi dla mnie krytyczne więc jak tunel się rozłączy (a ma tendencję raz na jakichś czas ;-)) to nie ma to wpływu na działanie mojej sieci. Connector tailscale nie działa na tej maszynie wirtualnej tylko działa na samym hypervisorze.
  
-== ARDUGEEK-SERVER ==+== ARDUGEEK-SERVER - Serwer fizyczny ==
  
 {{:projekty:pasted:20250508-114622.png?200}} {{:projekty:pasted:20250508-114622.png?200}}
  
 Jest to fizyczny komputer który pewien czas temu złożyłem z zamówionych komponentów, ma on jak na dzisiejsze czasy już trochę przestarzałą specyfikację ale na moje potrzeby wystarcza w 100%. System na nim zainstalowany to Windows Server 2019. Specyfikacja tego serwera to: Intel i3 3 generacji, 16GB pamięci ram, i wiele różnego rodzaju dysków zewnętrznych i wewnętrznych podłączonych do niego. Wiele z nich jest backupowanych w różne miejsca (inne dyski lub onedrive) za pomocą narzędzia [[https://duplicati.com/|Duplicati]] z retencją i różnicowe. Jest to centralny punkt całej mojej sieci, jest to serwer od którego wszystko się zaczęło (oczywiście nie ten konkretny, było wiele jego poprzedników o tej samej nazwie), to do niego się łączę zdalnie jak jestem gdzieś poza domem a coś się zepsuło i muszę coś naprawić zdalnie, to na nim testuję różne rozwiązania, to na nim jest uruchomiona ta Wiki. Wszystko co jest w mojej sieci jest w jakichś sposób powiązane z tym serwerem. Jest to fizyczny komputer który pewien czas temu złożyłem z zamówionych komponentów, ma on jak na dzisiejsze czasy już trochę przestarzałą specyfikację ale na moje potrzeby wystarcza w 100%. System na nim zainstalowany to Windows Server 2019. Specyfikacja tego serwera to: Intel i3 3 generacji, 16GB pamięci ram, i wiele różnego rodzaju dysków zewnętrznych i wewnętrznych podłączonych do niego. Wiele z nich jest backupowanych w różne miejsca (inne dyski lub onedrive) za pomocą narzędzia [[https://duplicati.com/|Duplicati]] z retencją i różnicowe. Jest to centralny punkt całej mojej sieci, jest to serwer od którego wszystko się zaczęło (oczywiście nie ten konkretny, było wiele jego poprzedników o tej samej nazwie), to do niego się łączę zdalnie jak jestem gdzieś poza domem a coś się zepsuło i muszę coś naprawić zdalnie, to na nim testuję różne rozwiązania, to na nim jest uruchomiona ta Wiki. Wszystko co jest w mojej sieci jest w jakichś sposób powiązane z tym serwerem.
 +
 +Jest to też węzeł wyjściowy dla siecio 10.42.0.0/24 lub dla całego ruchu w sieci tailscale. Pozwala to klientom sieci Tailscale wychodzić na świat przez ten komputer.
  
 Poniżej zestawienie usług działających na tym serwerze. Poniżej zestawienie usług działających na tym serwerze.
Linia 97: Linia 115:
  
  
-== ARDU-STATION ==+== ARDU-STATION - komputer fizyczny ==
  
-To jest moja główna stacja robocza i komputer na którym zdarza mi się ogrywać gry wideo. Specyfikacja to Ryzen 5 5800U, 32GB ram i 1TB SSD, 1TB HDD, 2TB HDD. To jest główne stanowisko z całym środowiskiem do wirtualizowania i testowania nowych rozwiązań to tutaj wykorztuję środowisko Hyper-V i CHR od MikroTika do szkoleń. To tutaj powstał i jest wykorzystywany [[narzedzia:hyper-v_graph|skrypt do mapowania topologii Hyper-V]]. Tutaj również mam zainstalowany konnector tailscale ponieważ stąd również się łączę do moich serwerów i testuję różne rozwiązania a w wolnym czasie lubie pograć w klasyki gatunku.+To jest moja główna stacja robocza i komputer na którym zdarza mi się ogrywać gry wideo. Specyfikacja to Ryzen 5 5800U, 32GB ram i 1TB SSD, 1TB HDD, 2TB HDD. To jest główne stanowisko z całym środowiskiem do wirtualizowania i testowania nowych rozwiązań to tutaj wykosztuję środowisko Hyper-V i CHR od MikroTika do szkoleń. To tutaj powstał i jest wykorzystywany [[narzedzia:hyper-v_graph|skrypt do mapowania topologii Hyper-V]]. Tutaj również mam zainstalowany konnector tailscale ponieważ stąd również się łączę do moich serwerów i testuję różne rozwiązania a w wolnym czasie lubię pograć w klasyki gatunku.
  
 Tutaj usług jako takich nie ma mogę w sumie wymienić tylko jedną mianowicie mam tutaj WSL2 skonfigurowany tak żebym mógł na nim uruchomić program [[https://www.gnuradio.org/|GNU-RADIO]] do symulacji przetwarzania sygnałów. Tutaj usług jako takich nie ma mogę w sumie wymienić tylko jedną mianowicie mam tutaj WSL2 skonfigurowany tak żebym mógł na nim uruchomić program [[https://www.gnuradio.org/|GNU-RADIO]] do symulacji przetwarzania sygnałów.
  
-== minecraft-server == +== minecraft-server - serwer fizyczny ==
- +
-> BlueMap is a program that reads your Minecraft world files and generates not only a map, but also 3D-models of the whole surface. With the web-app you then can look at those in your browser and basically view the world as if you were ingame! Or just look at it from far away to get an overview. +
-Z https://bluemap.bluecolored.de/+
  
 {{:projekty:pasted:20250508-121758.png?200}} {{:projekty:pasted:20250508-121758.png?200}}
Linia 116: Linia 131:
   * https://bluemap.ardugeek.ovh - plugin [[https://bluemap.bluecolored.de/|BlueMap]] do wyświetlania mapy serwera w przeglądarce   * https://bluemap.ardugeek.ovh - plugin [[https://bluemap.bluecolored.de/|BlueMap]] do wyświetlania mapy serwera w przeglądarce
  
-**Plugin BlueMap**\\+//__Plugin Bluemap__//
  
-{{ :projekty:mc_bluemap.gif?400 |}}+> BlueMap is a program that reads your Minecraft world files and generates not only a map, but also 3D-models of the whole surface. With the web-app you then can look at those in your browser and basically view the world as if you were ingame! Or just look at it from far away to get an overview.
  
-Jest to moje niedawne odrycie i uważam że ten plugin powinien mieć każdy kto ma swój własny serwer Minecraft. Plugin ten pozwala w formie 3D przeglądać świat gry tak jakbyśmy byli w grze. Plugin na szczęscie jest napisany w JavaScript'cie więc nie obciąża serwera. Wygląda to spektakularnie. Instalacja jest prosta, a port na jakim mapa jest widoczna to ''8100''.+Z https://bluemap.bluecolored.de/ 
 + 
 +Jest to moje niedawne odkrycie i uważam że ten plugin powinien mieć każdy kto ma swój własny serwer Minecraft. Plugin ten pozwala w formie 3D przeglądać świat gry tak jakbyśmy byli w grze. Plugin na szczęscie jest napisany w JavaScript'cie więc nie obciąża serwera. Wygląda to spektakularnie. Instalacja jest prosta, a port na jakim mapa jest widoczna to ''8100''.
  
 == Zasada działania Tailscale == == Zasada działania Tailscale ==
  
-== Zasada działania tuneli Cloudflare ==+Tailscale to usługa VPN oparta na architekturze mesh, która upraszcza łączenie wielu urządzeń w bezpiecznej sieci prywatnej (tailnet). Zamiast tradycyjnego modelu hub-and-spoke (gdzie cały ruch przepływa przez centralny serwer), Tailscale umożliwia bezpośrednie, szyfrowane połączenia punkt-punkt między węzłami sieci. Każde połączenie jest szyfrowane end-to-end za pomocą protokołu WireGuard (z algorytmem ChaCha20-Poly1305), a klucze prywatne pozostają wyłącznie na urządzeniach użytkowników. Węzły sieci wymieniają się kluczami i metadanymi przez płaszczyznę kontrolną – serwery koordynacyjne Tailscale – wykorzystując protokół Noise IK (X25519) opakowany w TLS, co umożliwia uwierzytelnianie i dystrybucję konfiguracji (ACL). 
 + 
 +Dzięki mechanizmom NAT traversal każdy klient Tailscale próbuje przebić się przez zaporę (hole-punching) przy użyciu niestandardowego protokołu UDP. Jeśli połączenie bezpośrednie nie może zostać nawiązane (np. z powodu symetrycznego NAT), Tailscale automatycznie korzysta z relayów DERP (Designated Encrypted Relay for Packets) – dedykowanych serwerów przesyłających zaszyfrowane pakiety między węzłami. Dzięki temu możliwa jest łączność nawet w trudnych warunkach sieciowych. 
 + 
 +Kluczowe technologie i protokoły 
 + 
 +  * WireGuard – bazowy protokół VPN UDP używany do szyfrowania pakietów między urządzeniami. 
 +  * DERP – system serwerów relay pośredniczących w przekazie pakietów, gdy połączenie bezpośrednie zawiedzie. 
 +  * NAT traversal / hole punching – niestandardowy protokół UDP do przebijania się przez translatory adresów. 
 +  * Noise IK / TLS – protokoły szyfrowania i uwierzytelniania wykorzystywane w komunikacji z serwerami Tailscale. 
 +  * DNS i certyfikaty – MagicDNS i automatyczne certyfikaty TLS dla zasobów w tailnecie. 
 + 
 +Zalety rozwiązania 
 + 
 +  * Bezpieczeństwo end-to-end – pełne szyfrowanie i prywatność, klucze prywatne nigdy nie opuszczają urządzeń. 
 +  * Brak konfiguracji sieciowej – działanie typu „zero-config”, łatwe dołączanie urządzeń. 
 +  * Niskie opóźnienie i wysoka wydajność – bezpośrednie połączenia peer-to-peer. 
 +  * Elastyczność – działa na wielu systemach operacyjnych, integruje się z Active Directory i chmurami. 
 +  * Prosta administracja – przez panel webowy można ustalać reguły ACL, definiować trasy, monitorować ruch. 
 + 
 +Wady i ograniczenia 
 + 
 +  * Zaufanie do dostawcy – kontrola i koordynacja ruchu wymaga połączenia z serwerami Tailscale. 
 +  * Wymagania systemowe – konieczność instalacji klienta na każdym urządzeniu. 
 +  * Limity darmowego planu – większe sieci wymagają płatnego abonamentu. 
 +  * Wydajność w sieciach bez bezpośrednich połączeń – relay DERP może wprowadzać opóźnienia. 
 +  * Brak funkcji VPN do anonimizacji – Tailscale nie jest typowym VPN-em do omijania blokad czy maskowania IP. 
 + 
 +Zastosowania praktyczne 
 + 
 +  * Zdalny dostęp do serwerów i urządzeń – np. SSH, RDP, kamery IP bez otwierania portów. 
 +  * Łączenie wielu lokalizacji – połączenia między biurami, chmurami i środowiskami dev/produkcyjnymi. 
 +  * IoT i homelab – bezpieczne połączenia z urządzeniami domowymi, Raspberry Pi itd. 
 +  * Zero Trust Networking – szczegółowa kontrola dostępu i segmentacja sieci. 
 + 
 +== Zasada działania Cloudflare Tunnel == 
 + 
 +Cloudflare Tunnel (wcześniej Argo Tunnel) umożliwia bezpieczne udostępnianie usług serwerowych (np. WWW, SSH, RDP) bez potrzeby posiadania publicznego IP ani otwierania portów. Na serwerze uruchamiany jest agent cloudflared, który inicjuje wyłącznie wychodzące, zaszyfrowane połączenia TLS do infrastruktury Cloudflare. Ruch użytkowników z Internetu trafia najpierw do Cloudflare, który przekazuje go przez tunel do serwera lokalnego. 
 + 
 +Tunel można związać z nazwą domeny (np. CNAME), a Cloudflare zapewnia szyfrowanie, filtrowanie oraz ochronę przed atakami. Połączenia są utrzymywane przez HTTP/2 lub HTTP/3 (QUIC), co zapewnia wysoką wydajność i odporność na opóźnienia. 
 + 
 +Kluczowe technologie i protokoły 
 + 
 +  * cloudflared – agent na serwerze utrzymujący połączenie z Cloudflare. 
 +  * TLS 1.3 – zabezpiecza tunelowaną transmisję danych. 
 +  * HTTP/2 i HTTP/3 (QUIC) – protokoły transportowe wspierające wielowątkowość i niskie opóźnienia. 
 +  * Port 7844 / adresy Cloudflare – domyślny port komunikacji z Cloudflare; wystarczy tylko dostęp wychodzący. 
 +  * DNS i routing – tunel wiązany jest z nazwą DNS, co upraszcza udostępnianie zasobów. 
 + 
 +Zalety rozwiązania 
 + 
 +  * Brak otwartych portów – wszystkie połączenia są wychodzące. 
 +  * Ochrona przed atakami – Cloudflare oferuje wbudowaną ochronę DDoS i firewall. 
 +  * Globalna sieć – dane przesyłane są najbliższą możliwą trasą do centrum danych Cloudflare. 
 +  * Prosta konfiguracja – szybka instalacja i integracja z panelem Cloudflare Zero Trust. 
 +  * Szerokie zastosowanie – obsługuje wiele typów usług (np. serwery WWW, SSH, RDP). 
 + 
 +Wady i ograniczenia 
 + 
 +  * Zależność od Cloudflare – tunel działa tylko przez ich infrastrukturę. 
 +  * Prywatność – Cloudflare ma techniczny dostęp do odszyfrowanych żądań HTTP. 
 +  * Koszty – darmowy plan jest ograniczony, zaawansowane funkcje wymagają subskrypcji. 
 +  * Opóźnienia – dodatkowy skok przez sieć Cloudflare może wprowadzać niewielki narzut. 
 +  * Wymóg połączenia wychodzącego – potrzebny dostęp do portu 7844 i adresów Cloudflare. 
 + 
 +Zastosowania praktyczne 
 +  * Udostępnianie aplikacji webowych lub API – bez publicznego IP i z kontrolą dostępu. 
 +  * Zdalny dostęp do pulpitów, serwerów lub paneli administracyjnych. 
 +  * Wdrożenia w firmach z ograniczonym dostępem do Internetu lub siecią za NAT-em. 
 +  * Współdzielenie środowisk developerskich – bez ekspozycji usług na zewnątrz. 
 + 
 +=== Monitorowanie mojej sieci === 
 + 
 +{{:projekty:pasted:20250511-180729.png}} 
 + 
 +Nie mam na tyle kluczowych usług w mojej sieci żeby to pieczołowicie monitorować natomiast mam na przykład skonfigurowane powiadomienia mailowe w cloudflare jeżeli któryś z tuneli się rozłączy to dostaję od razu informację mailową który. Jeżeli chodzi o resztę monitorowania to wykorzystuję do tego LAB-ROUTER na którym mam uruchomioną usługę [[https://mikrotik.com/thedude|The Dude]] pozwala mi ona na prostą mapę sieci oraz na prosty monitoring usług takich jak Ping, HTTP, SSH itp. 
 + 
 +{{:projekty:pasted:20250511-180805.png}} 
 + 
 +Mam skonfigurowane proste monitorowanie trafficu na wszystkich linkach co pozwala mi czasami monitorować ewentualne anomalie. 
 + 
 +=== Domeny === 
 + 
 +Jak można zauważyć we wcześniejszych akapitach mam dwie domeny ''ardugeek.ovh'' oraz ''ostrowski.net.pl''. Spieszę w wyjaśnieniem, w momencie kiedy miałem mało osób które uczyłem i dawałem szkolenia to kupiłem sobie domenę do hostowania własnej strony do eksperymentów i zabawy. Z wiekiem i doświadczeniem doszedłem do wniosku że lepiej będzie mieć maila i domenę z własnym nazwiskiem więc też i taką kupiłem. Obydwie sa opłacone na następne nie pamiętam ile lat, więc nadal mam je obydwie, i przyjąłem taką konwencję że rzeczy które są bardziej permanentne takie jak to WIKI albo [[https://ostrowski.net.pl|moja strona]] będą pod domeną ''ostrowski.net.pl'', a rzeczy które są eksperymentami lub dla zabawy zostawiam na domenie ardugeek.ovh. 
 + 
 +Stąd taka geneza dwóch domen. Można by powiedzieć że jedna to IntraNet a druga to ExtraNet tylko że byłoby to trochę nie poprawne wykorzystanie tych pojęć 🤓. 
 + 
 + 
 +==== Podsumowanie ====  
 + 
 +W tym artykule przedstawiłem projekt mojej domwej sieci (niektórzy wolą to określać mianem Home Labu ;-)), z której korzystam na co dzień słuchając muzyki na smartfonie czy sprawdzając swoje notatki na mojej WIKI. Jak można zauważyć jest to mieszanka wielu różnych usług, programów i systemów operacyjnych połączona razem w jedne wielkie (tutaj każdy sobie mówi sam co), jest to wynikiem hostowania różnych usług przez lata na rożnych starych laptopach albo komputerach z odzysku. Ta konfiguracja sieci jest ze mną już ładne parę lat i odnoszę wrażenie że jest to jej finalna wersja, od teraz już tylko spodziewam się małych zmian ale nie jej całej przebudowy.  
 + 
 +Sieć ta też była i nadal czasami jest wykorzystywana do hostowania projektów moich znajomych lub rodziny. Swego czasu też było na niej hostowane kilka stron dla szkół które obsługiwałem. Lata dokładania technologi zmieniania oraz usuwania spowodowały że jest to jak stara dobra wytarta kanapa, jak się na niej usiądzie to czujesz się jak u siebie. 
projekty/proj_sieci_domowej.1746701532.txt.gz · ostatnio zmienione: 2025/05/08 12:52 przez administrator