Giriş
Merhabalar, Techaptic kanalına hoş geldiniz. Bugün Windows Server 2025 kurulumunu ve kurulum sonrası yapılması gereken temel yapılandırma ayarlarını konuşacağız. Aslında amacımız sadece bir işletim sistemi kurmak değil, bu sunucuyu iş ortamında kullanacakmışız gibi düzgün bir temele oturtmak. Bu yüzden sadece kurulum aşamalarını değil, izlenmesi gereken best practice adımlarını tek tek uygulayacağız. Hazırsanız sanal makinemize geçelim ve başlayalım.
Windows Server 2025 Yenilikleri: Hotpatching, SMB over QUIC ve NVMe
Sunucu kurulumuna geçmeden önce Windows Server 2025 ile birlikte gelen bazı temel özelliklerden bahsetmek istiyorum size. Bunlardan ilki Hotpatching. Bildiğiniz gibi işletim sisteminin yamalarını dağıttığımızda, birçoğu diskte bulunan çekirdek dosyaları değiştirdiği için yeniden başlatma işlemi gerektirir. Hotpatching mimarisi ile yamalar diskteki dosyalara dokunmadan doğrudan RAM içerisinde çalışan kodlara enjekte ediliyor. Yalnız şunu da belirtmek gerekir ki; bu durum, sunucularımızı ve bilgisayarlarımızı bir daha hiç yeniden başlatmayacağımız anlamına gelmiyor. Çünkü Microsoft, yılda 4 kez ‘Baseline’ adını verdiği yamalar yayınlayacak ve bunlar yeniden başlatma gerektirecek. Fakat diğer güvenlik yamaları doğrudan RAM üzerine yazılacak. Bu bizim için tamamen kesintilerin bitmesi demek değil de çok daha az kesinti süresi anlamına geliyor. İkinci özellik ise SMB over QUIC. Şirket dışından çalışmak zorunda olan personellerin şirket dosyalarına ulaşmak için bir VPN ya da bir ajan kullanmasına gerek kalmıyor bu teknolojiyle. QUIC protokolü, TCP bağlantısının hantallıklarını bir kenara bırakıp dosya trafiğini UDP 443 portu üzerinden internete açıyor. TCP el sıkışmalarını (handshakes) aradan çıkardığı için sistem çok daha hızlı çalışıyor. Tabii bu noktada UDP protokolü ile süreç ilerlediği için güvenlik endişeleri de artabilir. Kullanıcı sadece \\dosya_sunucusu_adi şeklinde yazıyor ve tıpkı ofisteymiş gibi ama bu sefer TLS 1.3 ile şifrelenmiş güvenli bir tünel üzerinden sunucuya bağlanabiliyor. Dolayısıyla bu da oldukça önemli bir gelişme. Bahsetmek istediğim son özellik ise yeni NVMe geliştirmeleri. Server 2025 depolama mimarisinde çok önemli değişiklikler yaptı. Microsoft, eski SCSI ve AHCI depolama katmanlarını atlayarak yeni ve optimize edilmiş bir depolama yığını (Storage Stack) yazdı. Bu geliştirme sayesinde eski sürümlere kıyasla %90’a varan oranlarda daha fazla IOPS değeri sunuluyor. Eğer yoğun veri işleyen sunucular kuracaksanız bu ciddi anlamda teknolojik donanım maliyetlerinizi önemli ölçüde düşürecektir.
Donanım Gereksinimleri ve TPM (Trusted Platform Module) Önemi
Bundan sonraki süreçte sunucunun ön gereksinimlerine geçeceğiz. Minimum değerler işlemci için 1.4 GHz, disk alanı için 32 GB, bellek için 2 GB ve ağ erişimi için de 1 GB. Ancak burada dikkatinizi son gereksinim olan TPM’e çekmek istiyorum. Teknik olarak biz Server 2025’i bir TPM modülü olmadan da kurabiliriz. Fakat sanallaştırma tabanlı güvenlik (VBS) ve Credential Guard gibi birçok modern güvenlik özelliklerini kullanmak istiyorsak TPM donanımını eklememiz gerekiyor. Bu videoda da en iyi pratikler ekseninde ilerleyeceğimiz için en güvenli senaryo ile devam edeceğiz.
VMware Workstation Üzerinde Sanal Makine (VM) Oluşturma
Şimdi sunucu kurulum işlemlerine başlayabiliriz. VMware Workstation’ı açtıktan sonra ‘Create a new virtual machine’ diyelim. ‘Typical’ı seçip ileri diyoruz. Ben işletim sistemi bilgisini daha sonra belirteceğim için ‘I will install the operating system later’ seçeneğini seçip ileri diyorum. Bu sayfada ‘Microsoft Windows’un ve ‘Windows Server 2025’in seçili olduğundan emin olalım ve ileri diyelim. Burada sanal makineye bir isim verelim. İleri diyoruz. Disk kapasitesi olarak 60 GB benim için yeterli. Siz isterseniz arttırabilirsiniz. Ben buradaki alandan ‘Store virtual disk as a single file’ seçeneğini seçip ileri diyorum ve ‘Finish’ diyorum. Kuruluma başlamadan önce donanım ayarlarının düzgün yapılandırıldığından emin olmak için ‘Edit virtual machine settings’ alanına geliyorum. Memory kısmı 2 GB olarak ayarlanmış. Ben bunu 8 yapacağım. Siz de 4 ve üzeri olarak değiştirebilirsiniz. İşlemci kısmında ‘Cores per processor’ bölümünü 4 olarak değiştireceğim; 1’e 4 olacak. Diski ayarlamıştık, bir değişiklik yapmamıza gerek yok. CD/DVD kısmında ISO dosyasını Server 2025’in ISO’su olarak seçmemiz gerekiyor. ‘Use ISO image file’ kısmından ‘Browse’ diyoruz ve ilgili ISO dosyasını buluyoruz. Bu alanda ‘Connect at power on’ seçeneğinin aktif olduğundan emin olalım lütfen. Network Adapter kısmı ‘NAT’ olarak kalabilir. USB Controller, Sound Card’ı kaldırabiliriz, şu an için ihtiyacımız yok.
Sanal Makine Şifreleme ve TPM Modülünün Eklenmesi
Son olarak TPM modülünü ekleyeceğimizden bahsetmiştik. Burada genel olarak yanlış bir kanı var, bundan biraz bahsetmek istiyorum. Sunucular için çok da şifrelemeye gerek yok diye düşünülebilir. Ama bana göre bir yazılımdan verinin çalınması, donanımdan verinin çalınmasından çok daha kolaydır. Eğer bir saldırganın datastore’a erişimi varsa ilgili dosyaları saniyeler içerisinde kopyalayıp bu bilgileri açabilir. Bunu engellemek için en önemli avantajımız TPM modülünü aktif etmek ve şifrelemeyi yapılandırmak olacaktır. Dolayısıyla bunu yapmak için ‘Options’ kısmına gelip ‘Access Control’ alanından ‘Encrypt’ seçeneğini seçiyoruz. Burada kısmi olarak dosyaları şifrelemek istersek ‘Only the files needed to support a TPM’i seçebiliriz. Ya da ‘All the files for this virtual machine’ diyerek bütün dosyaları şifreleyebiliriz. Ben şu an için kısmiyi seçeceğim. Bir şifre belirteceğim. ‘Encrypt’ diyorum. Bu işlemden sonra donanım kısmına TPM modülünü ekleyebilmem mümkün oluyor. Dolayısıyla ‘Hardware’ sekmesine gelip ‘Add’ dediğimde ‘Trusted Platform Module’ü seçip ekleyebilir oluyorum ve tamamlamak için donanım ayarlarını ‘OK’ deyip kapatabiliriz burayı.
Windows Server 2025 Kurulum Süreci
Kurulumu başlatmak için sol üst taraftaki ‘Power on this virtual machine’ butonuna tıklıyoruz. Siyah alanda bir defa mouse ile basıp klavyeden bir tuşa basalım. Böylelikle sistem ilgili ISO’dan boot edilecek. Dil olarak İngilizce ISO’yu seçmiştik, bunu değiştiremeyiz. Ama zaman ve para birimi değerlerini istersek değiştirebiliriz. Ben burada Türkiye’yi seçeceğim ve ileri diyorum. Klavyemde Turkish Q klavye kullanıyorum. Siz de isteğe göre değiştirebilirsiniz bu alanı. Ve sonrasında tekrardan ileri diyelim. Yapmak istediğimiz işlem Windows Server’ı kurmak. Dolayısıyla ilk seçenek doğru. Ve burada da ‘I agree everything will be deleted including files, apps and settings’ seçeneğini seçerek ileri diyoruz. Burada Windows’un görsel versiyonunu kurmak istiyoruz, dolayısıyla ‘Desktop Experience’ seçeceğiz. Bu örnekte de standart versiyonunu kuracağız. Dolayısıyla ikinci seçeneği seçip ileri diyorum. Lisans maddelerini kabul ediyor musun şeklinde bize bir bildiri sunuyor. Biz bunları kabul etmek için ve kuruluma devam edebilmek için ‘Accept’ diyoruz. Bir tane diskimiz var. Bu disk de zaten seçili. Dolayısıyla bunun üzerine kurulum yapacağımız için ‘Next’ diyerek kurulumu başlatabiliriz. Burada kuruluma hazır olduğunu söylüyor ve kısa bir özet geçiyor. ‘Install’ deyip işlemi başlatıyoruz. Ben sizi fazla bekletmemek açısından videoyu ileri saracağım. Dolayısıyla kaldığımız yerden hızlı bir şekilde devam edebiliyor olacağız. Bu ekranda Administrator hesabı için bir şifre belirleyelim. Güçlü olmasına özen gösterin. ‘Finish’ diyoruz. Tuş kombinasyonunu göndermemiz gerekiyor. Ctrl+Alt+Delete bilgisini bu şekilde gönderebiliriz. Şifre kısmına da az önce belirlediğimiz şifreyi girelim. Burada tanı bilgilerini Microsoft’a göndermesi ile alakalı bir seçenek var. ‘Required Only’ kısmını seçip ‘Accept’ diyebiliriz.
VMware Tools Kurulumu
Bu ekranda çalışmamız çok zor. Dolayısıyla bizim gerek klavye işlemlerimizi gerekse de ekran görünümünü düzeltmek için VMware Tools aracını kullanmamız lazım. Sağ alt tarafta ‘Install Tools’ diye bir bölüm var. Buraya tıklıyoruz. Bu ilgili CD/DVD donanımına VMware Tools’un ISO’sunu bağlayacak ve bu şekilde uygulamayı kurabileceğiz. Bu alanı tıklayalım. AutoPlay’den ‘Run setup.exe’ diyelim. ‘Next’ diyoruz. Kurulum tipine ‘Complete’ diyelim. ‘Next’ ve tekrardan ‘Install’ deyip kurulumu başlatalım. 1-2 dakikaya kurulmuş olacaktır. ‘Finish’ diyelim. Ayarların etkin hale gelmesi için sistemi yeniden başlatmamız lazım. ‘Yes’ diyerek sunucuyu yeniden başlatalım. Tekrardan Ctrl+Alt+Delete kombinasyonu göndermek için buraya tıklayalım ve şifremize girelim. Ekranı biraz daha iyi görebilmeniz için görsel ayarları düzenleyeceğim şimdi. ‘Display Settings’ alanından ‘Scale’ kısmını %125’e çekiyorum. Evet daha iyi oldu.
Kurulum Sonrası Yapılandırma: İsimlendirme, Zaman Dilimi ve IP Atama
Sunucuyu best practices ile yapılandırmak için ilk olarak sunucuya doğru düzgün bir isim vermek daha mantıklı. Özellikle şirket politikası gereği bir isimlendirme formatınız varsa buna göre uyarlayabilirsiniz. Server Manager ekranını kapatıyorum ve ilgili sayfada sol tarafta ‘Local Server’ ayarını tıklıyorum. Burada ‘Computer name’ kısmını görüyoruz. Buraya belirli bir formatla düzgün bir isim verelim. Sağ tarafta ‘Change’ var. Change’e tıkladık. ‘Computer Name’ kısmına şöyle biraz daha derli toplu bir isim verebiliriz. ‘OK’ diyelim. Bu ayarın aktif olması için sunucunun yeniden başlatılması gerektiğini söylüyor. Bundan önce ben bir iki ayar daha yapacağım, yeniden başlatacağım. Şimdi ‘Restart Later’ diyelim. İkinci ayar da ilgili sunucunun bulunduğu Time Zone (zaman dilimi) bilgilerinin düzeltilmesi olacak. Zaman oldukça önemlidir sunucularda. Bu yüzden Time Zone bilgisini düzeltmemiz gerekiyor. Yine Local Server seçiliyken Time Zone bilgisi ‘-08:00 Pacific Time’ olarak geçmiş burada. Bizim kendi ortamımızda Türkiye olduğu için bunu değiştireceğim. Tıkladım. Sağ alt tarafta ‘Change time zone’ ayarı var. Buraya tıklıyoruz. İlgili Time Zone’u kendi bölgenize göre seçerek düzeltebilirsiniz. Ben burada ‘UTC+03:00 Istanbul’u seçeceğim ve ‘OK’ diyorum. Bir diğer konfigürasyon da ilgili sunucuya bir IP adresi atanması. Sunucular genellikle dinamik IP’lerle çalışmaz. Statik IP’lerle çalışır. Bu IP’yi nasıl atayabiliriz? Sağ alt tarafta Network ikonuna sağ tıklayıp ‘Network and Internet settings’e tıklayalım. Menüden üst taraftaki ‘Ethernet’ kısmına, alt tarafta IP assignment kısmı otomatik olarak DHCP tarafından atandığı belirtiliyor. Biz bunu manuele çekeceğiz. ‘Edit’ diyelim buraya. Ve buradaki ayarı manuele çekelim. Bu sunucu için IPv4’ü aktif edeceğiz. Ve buna göre bir IP atayacağız. C Class olacağı için Subnet mask bölümüne 255.255.255.0 verebiliriz. IP adresimiz tamamen kendi ortamınıza göre uyarlanması lazım. Ben burada kendi ortamıma göre uyarlıyorum bunu. DNS kısmında içeride bir DNS sunucunuz varsa onu belirtebilirsiniz. Ben burada sadece Google’ın DNS’lerini belirtip kaydediyor olacağım. Tamamdır. Şimdi bu ayarları aktif etmek için sunucuyu yeniden başlatabiliriz.
Uzak Masaüstü Bağlantısı (RDP) Ayarları
Bir diğer best practice ayarımız uzak bağlantılarla alakalı, RDP. Bildiğiniz gibi adminler karşı bilgisayarlara uzaktan bağlanarak işlerini görebilir rahatlıkla. Yalnız bu bağlantıları yaparken hem güvenli bir şekilde bağlantıların yapılması hem de belirli kişilere bu yetkinin verilmesi önemli. Bunu nasıl ayarlıyoruz? Buradaki pop-up’ı kaldıralım. ‘Local Server’ alanına geldiğimizde şurada ‘Remote Desktop’ bölümünü göreceksiniz. ‘Disabled’a tıklayın. Şu anki ayar buymuş. Bunu aktif hale getirmek için ‘Allow remote connections to this computer’ı seçmemiz gerekiyor. Bunu seçtikten sonra sistem bize firewall’da bir exception tanımlandığını söylüyor. Buna ‘OK’ diyoruz. Burada güvenli bağlantıların yapılabilmesi için ‘Allow connections only from computers running Remote Desktop with Network Level Authentication’ ayarının açık olduğundan emin olun. Ve belirli kişilere bu işlemi yapabilmesini sağlamak için de ‘Select Users’ alanından ilgili kullanıcıları buraya ekleyin. Şimdi benim örneğimde zaten tek kullanıcı olduğundan ve Administrator’ın da zaten buna yetkisi olduğundan benim bir şey eklememe gerek yok. Ama sizin örneğinizde bir domain ortamınız varsa ya da birden fazla kullanıcınız varsa ilgili kullanıcılardan hangisine yetki verilmesi gerekiyorsa buraya ekleyin ve bu şekilde OK deyip kaydedebilirsiniz.
Windows Update ve Sconfig (Sunucu Konfigürasyon Aracı)
Bir diğer konu da sunucular için önemli bir yapılandırma ayarı olan Windows Update’ler. Windows Update’lerde best practice aslında ilgili Administrator kullanıcısının o sunucunun downtime’larını (kesinti sürelerini) yönetebilmesidir. Dolayısıyla eğer ilgili server otomatik olarak update’leri çekerse, aktif hale getirmek için kendi otomatik olarak belirli aralıklarla kendini yeniden başlatır. Bu durumda ise downtime’ları adminler yönetemez. Bunun için ben daha farklı bir araç göstereceğim. Start kısmına sağ klik yapıp ‘Run’a gelelim. Ve buradan da bu sefer sconfig yazıp Enter diyelim. Bu bir nevi terminalden sunucunun belirli ayarlarını düzenlediğimiz bir yapı. Tabii arayüzden de yapabiliriz. Hatta birazdan göreceksiniz bazı ayarları arayüzden de yapılandırdık. Ama isterseniz bu alandan daha hızlı bir şekilde menüleri seçerek burada gerekli ayarları tanımlayabilirsiniz. Örneğin burada görmüş olduğunuz gibi Domain, Workgroup gibi ayarlar, bilgisayarın isminin verilmesi, Network ayarları ya da zaman gibi ayarları burada rahatlıkla tanımlayabilirsiniz. Bizim örneğimizde 5. bölüm ‘Update Settings’ ayarı önemli ve bu da ‘DownloadOnly’. Aslında istediğimiz ayar da bu şu an. Ama örnek olması açısından şimdi bizim burada ayarımız otomatik update olduğunu varsayalım ve biz ‘DownloadOnly’e çekmek istiyoruz. Nasıl çalışıyor sistem? Buradaki başındaki numarayı seçerek ilgili menüye gidiyoruz. Şu an ‘5’ yazacağız ve Enter diyoruz. Burada da hangilerini set etmek istiyorsak yine başındaki numaraları kullanıyoruz. Örneğimizde ‘DownloadOnly’e çekmek için ‘2’ye ya da manuele çekmek istiyorsanız ‘3’e basıp Enter deyip buradaki ayarı bu şekilde set edebilirsiniz. Buradan çıkmak istediğinizde de ’15’ yazıp Enter demeniz yeterli olacaktır.
Gereksiz Servislerin Kapatılması (PowerShell Scripti ile)
Bir diğer best practice olarak yapılandırabileceğimiz ayar, gereksiz olduğunu düşündüğümüz servislerin kapatılması ve durdurulması olacaktır. Bildiğiniz gibi sunucuları kurarken birçok servis de gelir ve bu servislerin de ilgili sunucu için bir kısmı gereksiz olur. Kaynak tüketir ve aslında ister istemez bir güvenlik açığı da oluşturabilir. Bunun için Start kısmına gelip ‘Run’a tıklıyoruz ve bu sefer services.msc yazıyoruz. Burada servislerimizin listesi gözüküyor. Bir servisi durdurmak için ilgili servisin içerisine girip o servisle alakalı ‘Startup type’ını, bilgisayar başladığı anda nasıl bir aksiyon alsın dediğinde; Manual olabilir, Disabled olabilir, Automatic olabilir ya da gecikmeli bir şekilde başlatmak istiyorsak da ‘Automatic (Delayed Start)’ diyebiliriz ve durmuşsa başlatabiliriz, başlamışsa durdurabiliriz gibi gibi birçok ayar burada yapılabilir. Bunları tek tek yapmak bir noktada zaman kaybına neden olabilir. Dolayısıyla bir şablon mantığında bunların yönetilmesi daha doğru olabilir. Ben bu noktada bir tane script konumlandıracağım ve bu script’i çalıştırdığımda da belirli servislerin durmasını isteyeceğim. C:\ altında bir temp dosyası (klasörü) oluşturacağım. Bu klasörün içinde de bir tane txt dosyası oluşturacağım. Bunu da PowerShell script’ine dönüştüreceğim. Adı ne olsun? DisableServices. Yalnız burada uzantıları göremiyoruz dosyanın. Şuradaki ‘View’ alanına gelip ‘File name extensions’a tıkladığınızda ilgili dosyanın uzantısını da göstermiş oluruz. Biz burayı .ps1 olarak, PowerShell script’i olarak çalıştırmasını sağlayacak uzantıyı sağlıyoruz. Bunu açıp ilgili script’imi kopyalıyorum. Siz kendi ortamlarınızda bu script’i çalıştırmadan önce mutlaka servisler listesini analiz edin lütfen. Örneğin ben burada Spooler servisini, Map Broker servisini ya da Remote Registry gibi servisleri disable ediyorum. Sizin ortamınızda bunların bazıları gerekebilir. Örneğin bir Print Server üzerinde bunu çalıştırırsanız Print Server’ınız çalışmaz. Ben bu ayarları bu şekilde yapılandırıp kaydediyorum ve çıkıyorum buradan. Sonra bir PowerShell’i yönetici yetkisi ile çalıştırıp ilgili dizine geçiş yapacağım. ‘Run as Administrator’ diyelim. Sonra cd \temp diyelim. .\ koyalım. Disable-Services.ps1 diyelim. -ExecutionPolicy Bypass (veya Set-ExecutionPolicy RemoteSigned -Force). Burada bir parametre kullanıyorum. Bu parametre aslında bu script’i çalıştırırken belirli kısıtlamaları kaldırarak çalışmasına imkan sağlayacak parametre. Ve bu şekilde script’imi çalıştırabilirim. Enter diyorum. Burada yeşil yazılarla aslında ilgili servisi bulduğunu, durdurulduğunu ve disable’a çektiğini gösteriyor. Bazı durumlarda ilgili servisin bulunamadığını ya da zaten bunun pasifte olduğunu da belirten bazı servisler de var. Script’in çalışıp çalışmadığını da test etmemiz önemli. Dolayısıyla örneğin Spooler servisimizi bir kontrol edelim. Gerçekten servisi durdurmuş mu ona bakalım. Print Spooler servisi şu an çalışıyor ‘Automatic’te. Bir refresh atalım listeyi. Aynen. İlgili script’i çalıştırdıktan sonra servisinin durduğunu buradan görebiliyoruz. Dolayısıyla script’imiz beklediğimiz şekilde çalışmış. Bu videonun da sonuna geldik. Umarım yararlı olmuştur. Bir sonrakinde görüşmek üzere. Hoşça kalın.