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)

Networks

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).

Networks

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).