1. Anasayfa
  2. DHCP

Windows Server’da DHCP Üzerinden Misafir ve Kurumsal Cihazların Ayırt Edilmesi


Kurumsal ağ altyapılarında ağa bağlanan her cihazın kimliğini ve statüsünü bilmek sadece bilgi güvenliği için değil, aynı zamanda kaynak planlaması, erişim kontrolü ve performans yönetimi açısından da büyük önem taşır.

Özellikle BYOD (Bring Your Own Device – Kendi Cihazını Getir) uygulamaları ve misafir Wi-Fi erişimleri arttıkça kuruma ait cihazlar ile geçici kullanıcı cihazlarını ayırt etme ihtiyacı da giderek kritik hale gelmiştir.

Bu ayrımın en temel yollarından biri DHCP (Dynamic Host Configuration Protocol) üzerinden sağlanan kiralık IP adresleri ile yapılabilir.

DHCP sunucusu her istemciye bağlandığında ona IP adresi atar ve bu atama esnasında çeşitli istemci bilgileri (bilgisayar adı, MAC adresi, kiralama süresi vb.) kaydedilir.

Bu bilgiler doğru analiz edilirse misafir ile kurumsal cihazları birbirinden ayırmak mümkündür.

DHCP client’lar otomatik olarak IP adresi, alt ağ maskesi, varsayılan ağ geçidi, DNS sunucusu gibi yapılandırma bilgilerini veren bir ağ protokolüdür.

DHCP sunucusu belirli bir IP adres aralığını (scope) yönetir ve bu aralık içinden adresleri kiralayarak istemcilere atar. Her kiralama, sunucu üzerinde bir kayıt olarak tutulur.

DHCPServer PowerShell Modülü

Windows Server ortamlarında DHCP sunucularını PowerShell komutlarıyla yönetmek mümkündür. Bunun için DHCPServer modülü kullanılır. Bu modül aşağıdaki gibi birçok işlemi yapabilir.

  • DHCP scope’larını listeleme
  • Kiralanan IP’leri çekme
  • Belirli MAC veya cihaz adlarına göre filtreleme
  • Otomasyon script’leri geliştirme

Uygulama: Misafir ve Kurumsal Cihaz Ayrımı Yapan PowerShell Scripti

Script’in Detaylı Açıklaması

# DHCPServer modülünü yüklüyoruz
Import-Module DHCPServer

# Sunucuya tanımlı tüm IPv4 scope'ları alıyoruz
$scopeList = Get-DhcpServerv4Scope

# Sayaç: Misafir olmayan IP sayısını toplamak için
$totalNonGuestIPs = 0

# Tüm scope’lar üzerinde döngü kuruyoruz
foreach ($scope in $scopeList) {
    # Her scope için kiralanan tüm IP’leri alıyoruz
    $leasedIPs = Get-DhcpServerv4Lease -ScopeId $scope.ScopeId

    # Misafir olmayan cihazları filtreliyoruz (örneğin 'GUEST' olmayanlar)
    $nonGuestIPs = $leasedIPs | Where-Object { $_.ClientName -ne "GUEST" }

    # Misafir olmayan IP sayısını topluyoruz
    $totalNonGuestIPs += $nonGuestIPs.Count
}

# Toplam sonucu yazdırıyoruz
Write-Output "Toplam kurumsal cihaz IP sayısı: $totalNonGuestIPs"

Dikkat Edilmesi Gereken Noktalar:

AlanAçıklama
ClientNameDHCP kiralama verisindeki cihaz adı. Misafir cihazlar genellikle özel bir ad şablonu ile tanımlanır (örneğin “GUEST-LAPTOP01”, “VISITOR-XXXX”).
-ne Operatörü“Not Equal” anlamına gelir. Yani bu script, cihaz adı “GUEST” olmayanları filtreler.
ScopeIdHer DHCP kapsamının benzersiz IP aralığı ID’sidir (örneğin 192.168.10.0).

Gelişmiş Kullanım Senaryoları

MAC Adresi ile Cihaz Sınıflandırması

Bazı durumlarda cihaz adları yetersiz kalabilir. Bunun yerine MAC adresi ön ekleri (OUI – Organizationally Unique Identifier) kullanılabilir. Örneğin, kurumsal cihazlar genellikle belirli bir üreticiye aittir (örneğin Lenovo, Dell). Bu durumda şöyle filtreleme yapılabilir.

$nonGuestIPs = $leasedIPs | Where-Object { $_.ClientId -like "00-2A-60*" }

“00-2A-60” burada belirli bir üreticinin MAC adresi ön ekidir.

Zaman Bazlı Analiz ve Loglama

Script, zamanlanmış görev olarak çalıştırılabilir ve günlük/haftalık cihaz trendleri analiz edilebilir:

# Tarih damgası ekleyerek log dosyasına yaz
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm"
"[$timestamp] Kurumsal IP sayısı: $totalNonGuestIPs" | Out-File "C:\Logs\IPStats.log" -Append

Raporlama İçin Export

Kurumsal cihazların listesini Excel’e aktarmak için aşağıdaki gibi bir ek yapılabilir:

$nonGuestIPs | Select-Object IPAddress, ClientName, ClientId, LeaseExpiryTime | Export-Csv "C:\Logs\CorporateDevices.csv" -NoTypeInformation

İlginizi Çekebilir