İçeriğe atla

Homelab Ağ Diyagramı: VLAN'lar, Güvenlik Duvarı, Reverse Proxy ve Self-Hosted Servisler

Yeniden kurabileceğiniz bir homelab ağı: VLAN planı, VLAN'lar arası güvenlik duvarı kuralları, gerçek sertifikalı reverse proxy, güvenli uzaktan erişim, DNS ve yedekler.

· Kurucu ve geliştirici

Yayımlandı:

Ağ diyagramı. İnternet, yalnızca UDP 51820'de WireGuard kabul eden OPNsense ya da pfSense güvenlik duvarına ulaşır. Yönetilebilir switch VLAN 10–50'yi trunk ile taşır. VLAN 30'da reverse proxy, Proxmox ve NAS var. Erişim noktası SSID'leri Trusted, IoT ve Guest VLAN'larına eşler.

Çoğu homelab düz bir ağla başlar: Pi-hole çalıştıran bir Raspberry Pi, bir NAS, Proxmox ve bir düzine konteyner çalıştıran bir mini PC; hepsi İSS modeminin dağıttığı 192.168.1.0/24 ağında. Akıllı TV ve artık firmware güncellemesi almayan bir kamera bu ağı NAS'ınızın yönetim sayfasıyla paylaşır, iki yıl önceki Jellyfin port yönlendirmesi de hâlâ açıktır.

Bu yazı, IoT cihazlarını ve misafirleri yalıtan, servisleri güvenli biçimde dışarıya açan ve kolayca kurtarılabilen bir homelab ağı tasarlıyor, ardından onu çiziyor.

Ağın yapması gerekenler

  • Yalıtım. TV'ler, kameralar ve misafir telefonları internete ulaşır; NAS'ınıza ya da hypervisor'ınıza değil.
  • Güvenli dışa açma. Her servis için ayrı bir port değil, kimliği doğrulanmış ve şifreli tek bir giriş yolu.
  • Kurtarılabilirlik. Bir disk öldüğünde ağı hafızanızdan değil, yedeklerden ve bir diyagramdan yeniden kurarsınız.

Donanım: çift NAT olmaması için bridge modunda bir İSS modemi; ikisi de açık kaynak olan, VLAN'lar arasında yönlendirme yapan ve DHCP, DNS ile VPN'leri çalıştıran bir OPNsense ya da pfSense CE güvenlik duvarı; 802.1Q VLAN desteği olan yönetilebilir bir switch; SSID'leri VLAN'lara eşleyen bir erişim noktası; VM'ler ve LXC konteynerleri için bir Proxmox VE sunucusu; ve bir NAS.

VLAN planı

RFC 1918 özel adres aralıklarından (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) bir /16 seçin ve her VLAN'a bir /24 verin. Eve bağlanacağınız ağlarda yaygın olan 192.168.0.0/24 ve 192.168.1.0/24'ten, ayrıca 172.17.0.0/16'dan (Docker'ın olağan varsayılan bridge ağı) ve 100.64.0.0/10'dan (Tailscale'in adresleri) kaçının. Bu örnek, VLAN ID'sini üçüncü oktet olarak kullanan 10.23.0.0/16'yı kullanıyor.

VLAN Ad Alt ağ Neler bulunur Dışarıya izin verilen
10 Management (yönetim) 10.23.10.0/24 Güvenlik duvarı, switch, AP ve Proxmox'un yönetim arayüzleri Yalnızca güncellemeler
20 Trusted (güvenilir) 10.23.20.0/24 Dizüstü bilgisayarlarınız ve telefonlarınız İnternet, proxy, yönetici cihazlardan yönetim
30 Servers (sunucular) 10.23.30.0/24 VM'ler, konteynerler, NAS, proxy, Pi-hole Güncellemeler için internet
40 IoT 10.23.40.0/24 TV, hoparlörler, kameralar, akıllı prizler Yalnızca internet
50 Guest (misafir) 10.23.50.0/24 Misafirler Yalnızca internet

Güvenlik duvarından switch'e, switch'ten erişim noktasına ve switch'ten Proxmox'a giden bağlantılar etiketli trunk'lardır; OPNsense dokümantasyonu, güvenlik duvarı trunk'ına etiketsiz VLAN'lar karıştırılmaması konusunda uyarır. Diğer cihazlar etiketsiz access portu alır.

Proxmox'ta, Proxmox VE ağ dokümantasyonundaki gibi bridge'i VLAN-aware yapın ve sunucunun yönetim adresini VLAN 10'a koyun. Böylece her VM kendi VLAN etiketini alır:

auto vmbr0
iface vmbr0 inet manual
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094

auto vmbr0.10
iface vmbr0.10 inet static
    address 10.23.10.5/24
    gateway 10.23.10.1

Her kablosuz VLAN için bir SSID oluşturun: Trusted, IoT ve Guest. Cisco Meraki'nin önerisine göre erişim noktası başına en fazla üç SSID olmalı, çünkü her SSID en düşük veri hızında her 100 ms'de bir kendi beacon çerçevesini gönderir.

VLAN'lar arası güvenlik duvarı kuralları

OPNsense ve pfSense kuralları trafiğin girdiği arayüzde, yukarıdan aşağıya değerlendirir: İlk eşleşen kural kazanır, hiçbir kurala uymayan trafik de varsayılan engelleme kuralına takılır. İkisi de stateful çalışır; bu yüzden Trusted'ın 443 üzerinden proxy'ye erişmesine izin verdiğinizde yanıtlar da geri gelebilir.

Her VLAN için önce ihtiyaç duyduğu şeye izin verin, ardından RFC1918 adlı bir alias ile tüm özel adres aralıklarını engelleyin, en son da internete izin verin. IoT arayüzünde:

# Eylem Kaynak Hedef Port Neden
1 Pass IoT net Pi-hole, 10.23.30.53 53 Filtrelenmiş DNS
2 Block IoT net Güvenlik duvarının kendi adresleri any Yönetim sayfalarına erişim yok
3 Block IoT net RFC1918 alias'ı any Diğer VLAN'lara erişim yok
4 Pass IoT net any any İnternet

2 numaralı kural, güvenlik duvarının alias'ta olmayan genel WAN adresini de kapsar; pfSense bu hedefe This firewall (self) der. Dar kapsamlı istisnalar engelleme kurallarının üstüne yazılır: Trusted'dan 443 üzerinden proxy'ye, yönetici dizüstü bilgisayarınızdan 8006 üzerinden Proxmox web arayüzüne, Home Assistant'tan IoT'ye. Bu alias yalnızca IPv4'ü kapsar; VLAN'larınız IPv6 önekleri alıyorsa onları da engelleyin.

Sürpriz genellikle ekran yansıtmada (casting) çıkar. AirPlay ve Google Cast cihazları 224.0.0.251 üzerindeki multicast DNS ile bulur; Apple'ın belirttiği gibi bu trafik genellikle alt ağlar arasında yönlendirilmez. Trusted ile IoT arasında OPNsense'in os-mdns-repeater eklentisi gibi bir mDNS repeater çalıştırın ve Trusted'ın TV'ye erişmesine izin verin.

Reverse proxy arkasındaki servisler

Servers VLAN'ında Caddy, Traefik ya da Nginx Proxy Manager gibi tek bir reverse proxy TLS'i sonlandırır ve trafiği host adına göre yönlendirir; böylece güvenlik duvarı 443'e yalnızca tek bir adres için izin verir.

Sahibi olduğunuz bir alan adının altındaki adları kullanın, örneğin jellyfin.home.example.com. RFC 6762'nin multicast DNS için ayırdığı .local'dan kaçının; .internal ya da home.arpa altındaki adlar yerelde çalışır, ama hiçbir genel CA bunlar için sertifika vermez.

Sertifikaları Let's Encrypt'ten DNS-01 doğrulamasıyla alın: ACME istemciniz, DNS sağlayıcınızın API'si üzerinden _acme-challenge.<name> adresinde bir TXT kaydı oluşturur; böylece hiçbir şeyin internetten erişilebilir olması gerekmez. Wildcard sertifika veren tek doğrulama türü de budur ve sizin de bir wildcard sertifikaya ihtiyacınız var. Let's Encrypt her sertifikayı herkese açık Certificate Transparency günlüklerine gönderir; bu yüzden *.home.example.com servis listeniz yerine tek bir ad yayımlar. Caddy 2.10'dan beri diğer siteler eşleşen bir wildcard sertifikayı yeniden kullanır:

*.home.example.com {
	tls {
		dns cloudflare {env.CF_API_TOKEN}
	}
	abort
}

jellyfin.home.example.com {
	reverse_proxy 10.23.30.21:8096
}

Bunun için caddy-dns/cloudflare modülünü içeren bir Caddy derlemesi ve yetkileri Zone.Zone:Read ile Zone.DNS:Edit ile sınırlı bir token gerekir. Sertifikalar bugün 90 gün geçerli, Şubat 2028'e kadar bu süre 45 güne inecek; bu yüzden yenilemeyi otomatikleştirin.

Uzaktan erişim seçenekleri

Seçenek İnternetin gördüğü Efor Ödünleşimler
443'ü proxy'ye yönlendirmek IP adresiniz ve her uygulamanın giriş sayfası Düşük Tek engel her uygulamanın kendi giriş ekranıdır; carrier-grade NAT arkasında çalışmaz
Güvenlik duvarında WireGuard Kimliği doğrulanmamış paketleri yok sayan tek bir UDP portu Orta Erişilebilir bir genel IP ve cihaz başına bir anahtar çifti gerekir
Tailscale İçeriye açık hiçbir şey Düşük Tailscale'in koordinasyon servisine ya da self-hosted Headscale'e dayanır; bu yazı yazılırken (Kasım 2026) Personal planı ücretsiz
Cloudflare Tunnel İçeriye açık hiçbir şey Düşük ila orta TLS'i Cloudflare sonlandırır ve trafiğinizi görür; alan adınızın Cloudflare'de olması gerekir

WireGuard kendi kullanımınız için iyi bir varsayılan seçimdir: WireGuard makalesine göre kimliği doğrulanmamış paketlere hiçbir zaman yanıt vermez, bu yüzden port tarayıcıları onu göremez. Yine de gelen bağlantılar için bir port gerektirir ve carrier-grade NAT bunu imkânsız kılar; WAN adresinizin RFC 6598 paylaşımlı aralığı olan 100.64.0.0/10 içinde olması bunun ele veren işaretidir.

Tailscale ve Cloudflare Tunnel ise bağlantıyı dışarıya doğru kurar. Tailscale'in DERP aktarıcıları yalnızca WireGuard ile şifreli kalan paketleri iletir ve bir subnet router, her VM'e istemci kurmadan Servers VLAN'ına ulaşır. Tunnel, VPN kurmayacak kişilerle paylaşılan servisler için uygundur; Cloudflare Access bir giriş adımı ekleyebilir. Zero trust mimari diyagramı, kimliğin neden ağ konumundan daha önemli olduğunu açıklıyor.

VLAN başına DNS ve DHCP

Güvenlik duvarı her VLAN'da DHCP sunar ve sunucular için rezervasyon tutar. OPNsense varsayılan olarak doğrulama yapan, özyinelemeli bir çözümleyici olan Unbound'u etkinleştirir. Trusted ve IoT için Servers VLAN'ında Pi-hole ya da AdGuard Home çalıştırın: İkisi de reklamları ve izleyicileri filtreler, *.home.example.com adlarını proxy'ye yönlendiren yerel kayıtları tutar ve diğer sorguları Unbound'a iletir (DNS nasıl çalışır yazısı tek bir sorguyu uçtan uca izliyor). Misafirler doğrudan güvenlik duvarını kullanır. Başka bir makinede ikinci bir filtreleme örneği çalıştırın: Tek örnek durursa bu VLAN'lar ad çözümlemesini kaybeder.

Yedekler ve güç

3-2-1 kuralını uygulayın: üç kopya, iki farklı depolama türü, biri başka bir konumda. VM'leriniz birinci kopyadır, NAS'a ya da bir Proxmox Backup Server'a alınan gecelik yedekler ikinci, bir bulut bucket'ındaki şifreli kopya da üçüncü. Proxmox Backup Server artımlı, tekilleştirilmiş ve şifreli yedekler alır; Proxmox bunları tam olarak güvenmediğiniz hedeflerde bile güvenli sayar. RAID ve snapshot'lar yedek değildir. Güvenlik duvarı yapılandırmasını dışa aktarın (OPNsense ve pfSense'te tek bir XML dosyası), bu diyagramla birlikte saklayın ve geri yüklemeyi test edin; felaket kurtarma mimari diyagramı RPO ve RTO'yu ele alıyor.

Güvenlik duvarını, switch'i, Proxmox sunucusunu ve NAS'ı bir UPS'e bağlayın. Network UPS Tools (NUT) ile UPS'e bağlı makine, diğerlerine ağ üzerinden kapanmalarını söyler; bu yüzden switch'in de UPS'e bağlı olması gerekir. UPS'i prizden çekilen güce ve teknik veri sayfasındaki çalışma süresi grafiğine göre boyutlandırın: Saatlere değil, dakikalara ihtiyacınız var.

Homelab ağ diyagramı

Ağ diyagramı. İnternet, yalnızca UDP 51820'de WireGuard kabul eden OPNsense ya da pfSense güvenlik duvarına ulaşır. Yönetilebilir switch VLAN 10–50'yi trunk ile taşır. VLAN 30'da reverse proxy, Proxmox ve NAS var. Erişim noktası SSID'leri Trusted, IoT ve Guest VLAN'larına eşler.

22 bileşen · 11 bağlantı

Archboard'da aç
Diyagram içeriği
  • Internet
  • OPNsense or pfSense
  • Managed switch
  • Access point
  • VLAN 20 · Trusted
  • Laptops and phones
  • VLAN 40 · IoT
  • TV, cameras, plugs
  • VLAN 50 · Guest
  • VLAN 30 · Servers
  • Reverse proxy (Caddy)
  • Proxmox VE host
  • NAS (backups)
  • Links
  • deny inbound
  • WireGuard UDP 51820
  • trunk: 10–50
  • trunk: 10, 20, 40, 50
  • trunk: 10, 30
  • HTTPS 443 from Trusted and VPN
  • HTTP to apps
  • nightly backups
  • SSID home
  • SSID iot
  • SSID guest
OPNsense ya da pfSense güvenlik duvarının arkasında bir homelab. Yönetilebilir bir switch beş VLAN'ı trunk ile taşır, erişim noktası üç SSID'yi VLAN'lara eşler ve uygulamalara giden tek yol sunucu VLAN'ındaki reverse proxy'dir. VLAN'lar arasındaki diğer her şey engellenir.

Nasıl okunur:

  • Üst sıra: internet, güvenlik duvarı, switch. WAN, UDP 51820 üzerindeki WireGuard dışında tüm gelen trafiği reddeder (kesikli).
  • Trunk'lar etiketli VLAN'ları taşır: switch'e 10'dan 50'ye kadar, erişim noktasına PoE üzerinden 10, 20, 40 ve 50, Proxmox'a 10 ve 30.
  • Çerçeveler VLAN'lardır, üzerlerinde ID, ad ve CIDR yazar. Management, yani VLAN 10, switch'in altındaki etikettir.
  • Turkuaz kenarlar izin verilen akışlardır: Trusted'dan ve VPN istemcilerinden proxy'ye HTTPS 443, oradan uygulamalara HTTP. Kesikli gri çizgi gecelik yedektir.
  • Erişim noktası home, iot ve guest SSID'lerini 20, 40 ve 50 numaralı VLAN'lara eşler.
  • Markdown bloğu VLAN planını ve ayarları içerir; gösterge bağlantı renklerini açıklar.

Homelab ağ diyagramlarını net çizmek

  • Her VLAN'ı ID, ad ve CIDR bilgisiyle doğrudan çerçevenin üzerinde etiketleyin.
  • Trunk'ları taşıdıkları VLAN'larla işaretleyin. Bir trunk'ta eksik kalan VLAN klasik bir hatadır.
  • Güvenlik duvarını VLAN'lar arasındaki tek yol olarak çizin, izin verilen akışları portlarıyla etiketleyin.
  • Dışarıdan giriş yolunu gösterin, tek bir UDP portu olsa bile.
  • Dışarıda bırakın: konteynerleri, MAC adreslerini ve switch port numaralarını. Bunlar, ağ topolojisi diyagramı rehberinin açıkladığı gibi fiziksel bir diyagrama aittir.
  • Diyagramı yapılandırma yedeklerinizle birlikte saklayın ve bir kural değiştiğinde güncelleyin.

Archboard'da oluşturun

  1. Google ya da GitHub ile giriş yapın ve bir diyagram oluşturun.
  2. Ağ paketinden yan yana bir İnternet düğümü, OPNsense ya da pfSense etiketli bir Güvenlik duvarı ve bir Ağ anahtarı ekleyin; erişim noktası için de sağ alta bir Kablosuz düğümü koyun.
  3. VLAN 20, 30, 40 ve 50 için dört Alt ağ çerçevesi ekleyin ve her birine adını ve CIDR değerini yazın.
  4. Servers çerçevesine reverse proxy olarak bir Yük dengeleyici (pakette proxy türü yok), Proxmox için bir Sunucu ve Tür alanı NAS olarak ayarlanmış bir Cihaz ekleyin. Trusted çerçevesine dizüstü bilgisayar için bir Cihaz, IoT çerçevesine de IoT cihazı için bir Cihaz ekleyin.
  5. Bunları birbirine bağlayın, her bağlantının bağlantı türünü WAN, Ethernet, PoE ya da Wi-Fi olarak ayarlayın ve bağlantıyı VLAN'ları ya da SSID'siyle etiketleyin. İzin verilen akışları turkuaz, WireGuard'ı ve yedekleri kesikli çizin.
  6. Ağ paketinden bir Ağ göstergesi, VLAN planını içeren Temel paketinden bir Markdown bloğu ve her VLAN'ın kuralı için Temel Metin etiketleri ekleyin.

Uygulamalarınız bir compose.yaml dosyasında tanımlıysa Docker Compose'dan diyagrama aracı servis tarafının taslağını çıkarır, ağ diyagramları sayfası da paketin tamamını gösterir. Örnek 15 diyagram düğümü kullanıyor ve Free planın sınırları içinde kalıyor; bu sayı aynı zamanda Free planda diyagram başına sınırdır.

SSS

Bir homelab ağında hangi VLAN'lar olmalı? Genellikle beş tane: yönetim, güvenilir cihazlar, sunucular, IoT ve misafir. Yalnızca cihazlar farklı kurallara ihtiyaç duyduğunda yenisini ekleyin; her VLAN yeni kurallar ve çoğu zaman bir SSID daha getirir.

VLAN'lar için yönetilebilir bir switch gerekir mi? Evet, 802.1Q destekli yönetilebilir ya da akıllı (smart) bir switch ve SSID'leri VLAN'lara eşleyen bir erişim noktası gerekir. Yönetilemeyen switch'ler portları VLAN'lara atayamaz.

OPNsense ya da pfSense'i Proxmox üzerinde VM olarak mı çalıştırmalıyım? Bir cihazdan tasarruf ettirir, ama sunucu her yeniden başladığında bütün ev internetsiz kalır. Küçük, ayrı bir güvenlik duvarını kurtarmak daha kolaydır. Sanallaştıracaksanız WAN'a ayrı bir NIC verin ve yapılandırma dışa aktarımının bir kopyasını sunucunun dışında saklayın.

Self-hosted bir servis için port açmak güvenli mi? Uygulamanın giriş sayfasını internete açar; bu durumda uygulamanın güvenlik güncellemeleri sizin savunmanız olur. VPN'i tercih edin; port yönlendirmek zorundaysanız yalnızca 443'ü reverse proxy'ye yönlendirin ve önüne kimlik doğrulama ekleyin.

Yalnızca dahili servisler için Let's Encrypt kullanabilir miyim? Evet, DNS-01 ile: Bir TXT kaydı alan adını sizin kontrol ettiğinizi kanıtlar, bu yüzden servisin internetten hiç erişilebilir olması gerekmez. Wildcard sertifika, servis adlarını Certificate Transparency günlüklerinin dışında tutar.

Ücretsiz başlayın — tek kullanıcı, kredi kartı gerekmez.

İlgili yazılar

← Blog'a dön

Bir dakikada canvas açın

Google veya GitHub ile giriş yapın. Tek koltuk ücretsiz; ekip katılınca planı yükseltin.