Ta część jest bardziej techniczna. Opiszę jak organizowałem sieć w szczegółach, pokaże serwisy których używam i jak ich konfigurowałem.
Sieć Link to heading
Po tym jak dodałem serwer do homelab musiałem trochę modyfikować sieć oraz zrobić porządek z IP adresami. Tak zmieniała się sieć:
- default (VLAN ID: 1, subnet: 192.168.0.1/24)
- homelab (VLAN ID: 2, subnet: 192.168.2.1/24)
- iot (VLAN ID: 5, subnet: 192.168.5.1/24)
- guest (VLAN ID: 6, subnet: 192.168.6.1/24)
Pozostawiłem VLAN ID 3 oraz 4 na przyszłość, jakbym kiedyś miał więcej serwerów. Każda wirtualna maszyna w proxmox dostaje ip adres z sieci homelab. W poprzednim materiale opisałem jak działa u mnie dns. Każda maszyna dns ma tą samą końcówkę 33:
- dns: 192.168.2.33
- Raspberry Pi Zero: 192.168.5.33
Serwery DNS są ustawione dla każdej sieci w takiej samej kolejności: dns, rpi.
DNS Link to heading
Tak jak pisałem wcześniej żeby nie trzymać w pamięci IP każdej maszyny lub serwisu użyłem lokalnego DNS. Daje to możliwość przypisać każdemu IP własny „adres”. Np zamiast wpisywać w przeglądarce http://192.168.5.233 (synology NAS) mogę po prostu wpisać http://nas
. Ponieważ już mam pihole, zrobienia czegoś takiego zajmuje dosłownie kilka minut. W zakładce Local DNS wpisuje nazwę którą chce i IP adres do którego ta nazwa powinna być przypisana. Na tym koniec. Zdecydowałem na następujące nazewnictwo: każde urządzenie (lub maszyna wirtualna) będzie posiadać jedno słowo. A lokalne serwisy będę mieć końcówkę .home
.
Na ten moment mam takie DNS:
- ui (konsola unifi)
- proxmox (Dell Optiplex)
- nas (synology NAS)
- pizero (Raspberry Pi Zero)
- dns (VC)
- tools (VC)
- services (VC)
- tasks (VC)
- media (VC)
- iot (VC)
- git.home (gitea)
- auth.home (oauth)
- main.home (dashboard)
- notes.home (notatki)
- uptime.home (monitoring)
Kiedyś usiądę i zrobię jakąś automatyzacje oby nie wpisywać tego ręczenie do PiHole. Ale na razie jest mi ok z tym. Tym bardziej że nie dodaje nowe rzeczy codziennie.
Firewall Link to heading
Unifi console pozwała na ustawienie reguł dla sieci. Co pozwała np ograniczyć dostęp z jednej podsieci do innej. Np żeby urządzenie z sieci iot nie mogły się dostać do sieci default lub homelab (a lepiej do żadnej).
Poniżej jest opis wszystkich ip grup oraz reguł firewall które mam w network.
IP Groups Link to heading
- RFC1918 - Adress: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
- PiHole - Adress: 192.168.2.33, 192.168.5.33
- PiHole port - Port Group: 53
- Gateway - Adress: 192.168.0.1, 192.168.2.1, 192.168.5.1, 192.168.6.1
- Gateway port - Port Group: 443, 8443
Firewall rules Link to heading
Bardzo ważne jest kolejność reguł. Czym wyżej znajduje się na liście tym większy priorytet ma. Więc blokada na sam koniec, a wszystko co powinno pozwalać na dostęp wyżej blokady. Inaczej reguła z blokadą będzie blokować pozwolenie.
- Allow established & related
Name: Allow established & related
Advanced: Manual
Match State: Established, Related
- Allow default to all vlans: pozwolić na dostęp z default do każdej innej sieci
Name: Allow default to all vlans
Source:
Source Type: Network
Network: Default
Destination:
Source Type: Port/IP Group
Address Group: RFC1918
- Allow from homelab to iot: pozwolić na dostęp z homelab do iot
Name: Allow from homelab to iot
Source:
Source Type: Network
Network: Homelab
Destination:
Source Type: Network
Network: IoT
- Allow dns from vlans: pozwolić na dostęp do dns z każdej sieci
Name: Allow dns from vlans
Source:
Source Type: Port/IP Group
Address Group: RFC1918
Destination:
Source Type: Port/IP Group
Address Group: PiHole
Port Group: PiHole port
- Allow TV to jellyfin: pozwolić na dostęp telewizora do jellyfin
Name: Allow TV to jellyfin
Source:
Source Type: Port/IP Group
Address Group: TV
Destination:
Source Type: Port/IP Group
Address Group: Media
Port Group: Jellyfin port
- Drop traffic between vlans: zabronić dostęp wszystkich sieci do innej
Name: Drop traffic between vlans
Action: Drop
Source:
Source Type: Port/IP Group
Address Group: RFC1918
Destination:
Source Type: Port/IP Group
Address Group: RFC1918
- Drop invalid: resetować „martwe” połączenia
Name: Drop invalid
Action: Drop
Advanced: Manual
Match State: Invalid
- Allow default to gateway: pozwolić na dostęp z default do konsoli unifi
Type: Lan Local
Name: Allow default to gateway
Source:
Source Type: Network
Network: Default
Destination:
Source Type: Port/IP Group
Address Group: Gateway
Port Group: Gateway port
- Block vlans to gateway: zabronić dostęp wszystkich sieci do konsoli unifi
Type: Lan Local
Name: Allow established & related
Action: Drop
Source:
Source Type: Port/IP Group
Address Group: Any
Port Group: Any
Destination:
Source Type: Port/IP Group
Address Group: Gateway
Port Group: Gateway port
PS: w następnej cześci bardziej się skupię na tym co hostuje na serwerze. Prośba wszystkie pytania i uwagi kierować na email: [email protected] (na razie nie widzę potrzeby w dodaniu sekcji komentarzy).