[PL] Homelab (część 3: DNS oraz firewall)
June 6, 2024
Ta część jest bardziej techniczna. W tej części opiszę jak organizowałem sieć w szczegółach, pokaże serwisy których używam i jak ich konfigurowałem.
Sieć
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
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
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
- 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
Bardzo ważna 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