Bu seride tek bir Proxmox node üzerinde kurduğum siber güvenlik homelab’ini anlatıyorum. Bu ortamı network öğrenmek, Windows identity çalışmak, SIEM telemetry toplamak, detection denemeleri yapmak, attack simulation çalıştırmak, honeypot incelemek, malware-analysis izolasyonu kurmak ve automation projeleri geliştirmek için kullanıyorum.
Amacım rastgele VM’lerden oluşan kalabalık bir ortam kurmak değildi. Küçük ama gerçekçi bir lab kurmak istedim: her network’ün görevi belli olsun, iki network arasında izin verilen her yolu açıklayabileyim.
Seri Haritası#
| Bölüm | Konu |
|---|
| 1 | Proxmox, pfSense ve ilk internal bridge |
| 2 | Alpine jumpbox ve pfSense’e güvenli erişim |
| 3 | VLAN’lar, gateway’ler ve ilk DHCP düzeni |
| 4 | Docker, Portainer, n8n ve macvlan |
| 5 | Pentest segmentinde Kali ve Metasploitable |
| 6 | Wazuh SIEM temeli ve ilk log kaynakları |
| 7 | Snort IDS, T-Pot ve honeypot telemetry |
| 8 | CGNAT arkasında Tailscale remote access |
| 9 | İzole malware-analysis segmenti |
| 10 | Active Directory, DNS, DHCP ve domain join |
| 11 | Final pfSense firewall kuralları ve segmentasyon hardening |
VLAN’lar#
| VLAN | Subnet | Amaç |
|---|
| LAN | 10.10.1.0/24 | ilk erişim, jumpbox ve acil yönetim yolu |
| 10 | 10.10.10.0/24 | SIEM ve monitoring sistemleri |
| 20 | 10.10.20.0/24 | Active Directory, DNS ve DHCP servisleri |
| 30 | 10.10.30.0/24 | Docker host, Portainer, automation ve container’lar |
| 40 | 10.10.40.0/24 | Kali ve bilerek zafiyetli bırakılmış hedefler |
| 50 | 10.10.50.0/24 | honeypot sistemleri ve attack telemetry |
| 60 | 10.10.60.0/24 | Windows client’lar ve endpoint telemetry |
| 99 | 10.10.99.0/24 | izole malware-analysis makineleri |
Part 10 ile Windows identity katmanını eklemiştim: Active Directory, DNS, DHCP ve domain-joined client. Bu bölümde lab’i “kurulum sırasında herkes herkesle konuşsun” halinden açık bir firewall policy’ye taşıdım.
Amacım karmaşık kural yazmak değildi. Amacım her izinli yolun açıklanabilir olmasıydı.
Ne İnşa Ettim? Geçici build-phase allow rule’larını segmentli pfSense policy ile değiştirdim:
Default duruş: deny by default Management: Tailscale + break-glass LAN/WAN erişimi Jumpbox: Alpine üzerinden Kali SSH yolu Client VLAN: sadece AD, DNS, Wazuh, Windows Update Container VLAN: sadece Docker host + n8n explicit egress Honeypot VLAN: sadece Wazuh telemetry Pentest VLAN: internet egress yok Isolated VLAN: ingress yok, egress yok ‹ › ...
Part 9 ile malware-analysis segmentini kurmuştum. Bu bölümde Windows identity katmanını ekledim: AD DS, DNS, DHCP ve ilk domain-joined client.
Bu bölüm Sysmon, Wazuh Windows agent, Atomic Red Team, Group Policy ve detection engineering için temel hazırladı.
Ne İnşa Ettim? Server: Windows Server 2022 Desktop Experience VM name: prod-winserver VLAN: 20 / DEFENCE IP: 10.10.20.20/24 Gateway: 10.10.20.1 Domain: ad.plumy.lab NetBIOS: AD Roles: AD DS, DNS, DHCP Client VLAN: 60 / CLIENT Client test: domain join and ad\plumy login Telemetry: Wazuh agent on DC and client ‹ › ...
Part 8 ile remote access hazırdı. Bu bölümde malware-analysis segmentini kurdum.
Bu segmentin mantığı lab’in geri kalanından farklı: domain yok, SIEM agent yok, final durumda gerçek internet yok. Controlled detonation, fake internet ve snapshot disiplini var.
Ne İnşa Ettim? Segment: isolated malware-analysis Network: vmbr99 / VLAN 99 design FLARE-VM: 10.10.99.20 REMnux: 10.10.99.10 Internet: final state'te yok SIEM agent: yok Status: FLARE kuruldu, REMnux import/boot edildi, INetSim validation pending ‹ › ...
Part 7 sonrası pratik bir ihtiyaç çıktı: lab evde dururken ben uzaktan çalışacaktım. pfSense’i internete açmak istemediğim için Tailscale kullandım.
Buradaki güvenlik kuralım basit: pfSense web UI, SSH veya Wazuh dashboard public internete açılmayacak.
Ne İnşa Ettim? pfSense: Tailscale subnet router Advertised: 10.10.0.0/16 Clients: Mac and phone Recovery: Proxmox üzerinde ayrı Tailscale node Inbound ports: public internet'e açık yok ‹ › ...
Part 6 ile Wazuh temelini kurmuştum. Bu bölümde detection ve deception katmanı ekledim: pfSense üzerinde Snort, HONEYPOT VLAN içinde T-Pot.
Amacım sadece tool çalıştırmak değildi. Anlamlı telemetry üretmek, bunun Wazuh’a ulaştığını görmek ve event kaybolursa nerede kaybolduğunu anlayabilmek istedim.
Ne İnşa Ettim? Snort: pfSense package, IDS mode Interfaces: WAN and LAN Rules: Community + focused ET Open categories Honeypot: T-Pot in VLAN 50 Telemetry: T-Pot Suricata eve.json -> Wazuh agent Test source: Kali in VLAN 40 ‹ › ...
Part 5 sonunda Kali ve Metasploitable hazırdı. Bu bölümde ilk visibility katmanını ekledim: Wazuh SIEM.
Amacım her şeyi aynı anda izlemek değildi. Önce Wazuh server, Docker host agent, Docker event collection ve pfSense syslog forwarding düzgün çalışsın istedim.
Ne İnşa Ettim? Wazuh VM: 10.10.10.99 Segment: SIEM / VLAN 10 RAM: 8 GB CPU: 4 vCPU Disk: 128 GB Agent target: Docker host 10.10.30.100 Syslog source: pfSense ‹ › ...
Part 4 sonunda Docker platformu hazırdı. Bu bölümde klasik offensive-security ikilisini ekledim: Kali attacker, Metasploitable ise bilerek zafiyetli bırakılmış target.
İkisini de PENTEST VLAN’a koydum. Böylece pratik trafiği lab’in geri kalanından ayrı kaldı ve segment dışına çıkış tamamen pfSense kurallarına bağlı oldu.
Ne İnşa Ettim? Segment: PENTEST VLAN: 40 Gateway: 10.10.40.1 Kali IP: 10.10.40.102 Metasploitable: 10.10.40.100 ‹ › ...
Part 3 sonunda VLAN yapısı hazırdı. Bu bölümde CONTAINER VLAN içinde Docker platformunu kurdum.
Amacım sadece Docker çalıştırmak değildi. Container trafiğini ileride firewall ve SIEM tarafında tek tek görebilmek istedim. Bu yüzden önemli container’lara gerçek lab IP’leri verdim.
Ne İnşa Ettim? VM name: prod-docker VM ID: 103 OS: Ubuntu Server 24.04 VLAN: 30 / CONTAINER Host IP: 10.10.30.100 Docker UI: Portainer CE Macvlan net: 10.10.30.0/26 n8n IP: 10.10.30.10 ‹ › ...
Part 2 sonunda pfSense’e erişebiliyor ve jumpbox’ı kullanabiliyordum. Bu bölümde flat LAN’i segmentli bir lab ağına dönüştürdüm.
Amacım önce VLAN interface’lerini oluşturmak, her segmente gateway IP vermek, kurulum aşamasında işimi kolaylaştıracak DHCP’yi açmak ve final firewall policy’yi ayrı bir bölüme bırakmaktı.
Ne İnşa Ettim? Parent interface: vtnet1 VLAN 10: SIEM VLAN 20: DEFENCE VLAN 30: CONTAINER VLAN 40: PENTEST VLAN 50: HONEYPOT VLAN 60: CLIENT VLAN 99: ISOLATED Segment VLAN Gateway Amaç LAN native 10.10.1.1/24 jumpbox ve erken yönetim SIEM 10 10.10.10.1/24 Wazuh ve monitoring DEFENCE 20 10.10.20.1/24 AD, DNS, DHCP CONTAINER 30 10.10.30.1/24 Docker ve automation PENTEST 40 10.10.40.1/24 Kali ve vulnerable target HONEYPOT 50 10.10.50.1/24 honeypot telemetry CLIENT 60 10.10.60.1/24 Windows endpoint’ler ISOLATED 99 10.10.99.1/24 malware-analysis isolation Neden Önemli? Segmentasyon lab’i büyütülebilir hale getirdi. Hangi sistemler konuşacak, hangileri default block olacak, telemetry nereden gelecek ve lateral movement firewall üzerinden geçerken nasıl görünecek gibi soruları artık daha net sorabiliyorum.
...
Part 1 sonunda pfSense WAN ve LAN tarafıyla boot etmişti. Bu bölümde LAN tarafına ilk Linux VM’imi ekledim: küçük bir Alpine jumpbox.
Bu makine lab’e ilk kontrollü giriş kapım oldu. Her servisi doğrudan laptop’a açmak yerine Alpine’a SSH ile girip, sadece ihtiyaç duyduğum servisi local forwarding ile kendime taşıyorum.
Ne İnşa Ettim? VM name: prod-alpine VM ID: 102 OS: Alpine Linux Network: vmbr1 IP: 10.10.1.50/24 Gateway: 10.10.1.1 Role: jumpbox / bastion ‹ › ...
Bu ilk bölümde lab’in temelini kurdum: tek bir Proxmox node, bir internal VLAN-aware bridge ve bütün lab network’lerinin önünde duracak pfSense firewall/router.
Burada özellikle servis kurmadım. Önce ağ temelinin doğru olduğundan emin olmak istedim. Windows, Docker, Wazuh, Kali, honeypot ve malware-analysis makineleri daha sonra bu temelin üstüne gelecek.
Ne İnşa Ettim? Physical host: homelab Hypervisor: Proxmox VE Firewall VM: prod-firewall WAN bridge: vmbr0 -> home LAN / upstream router LAN bridge: vmbr1 -> internal lab bridge, VLAN-aware, no physical uplink pfSense WAN: vtnet0 -> 192.168.1.87/24 pfSense LAN: vtnet1 -> 10.10.1.1/24 ‹ › ...