Kategori arşivi: Windows Server

Güvenlik Seviyenizi Düşürmeden RDS Ortamlarınızda Şifre Değişikliklerini RDWeb Üzerinden Yapın

Windows Server 2012 R2 / 2016 / 2019 gibi yeni nesil işletim sistemlerinde ve yine Windows 8.1 sonrasındaki istemci makinelerde varsayılan olarak uzak erişim için NLA (Network Level Authentication) açık gelir. Bu durumda bir sonraki logon işleminde şifre süresi dolmuş yani logon sırasında şifresini değiştirmesi gereken bir kullanıcı RDP ile bağlantı kuramamaktadır. Aşağıdaki gibi bir uyarı alabilirsiniz

Bu durumda NLA özelliğini kapatabilirsiniz, ancak tavsiyem bunu kapatmamanızdır, çünkü güvenlik için bu önemli bir özelliktir. Peki çözüm nedir? Aslında basit, server 2012 R2 ve sonrasında terminal server hizmetlerinde RD Web özelliği sayesinde kullanıcılar bir web ara yüzü üzerinden şifresini değiştirebilir.

Okumaya devam et

RDS – Terminal Server Oturum Erişimleri – Shadow Remote Control

Terminal Server ortamlarında sistem yöneticileri kullanıcılarına destek vermek için uzak erişim talebinde bulunabilir. Bunu uzun yıllardır bilinen bir yönetim alışkanlığıdır. Tabiki son kullanıcı bilgisayarlarına benzer şekilde yardım masasındaki çalışanların erişimi için SCCM veya 3 parti programlarda kullanılarak bağlanılabilir. Ancak Terminal server ortamları bu özelliği yıllardır ücretsiz bir şekilde sunduğu için (Shadow) genelde çok sık kullanılan bir özelliktir.

Peki bu özelliği bir terminal server ortamında nasıl kullanıyoruz?

Öncelikle Terminal Server kurulumunun tamamlandığını düşünüyorum, bu konuda da bir ihtiyaç var ise ÇözümPark Bilişim Portalı üzerinde bu konuda pek çok makale bulunmaktadır. Kurulum sonrasında ilk yapmanız gereken yerel GPO veya çok fazla RDS sunucusu olacak ise merkezi bir GPO ile aşağıdaki ayarları yapılandırmanız gereklidir;

Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections\Set Rules for Remote Control of Remote Desktop user Session

Okumaya devam et

Server Manager Tazeleme Sorunu – Automatic Refresh Failed issue in Server Manager in Windows Server

Bu konuda google da pek çok öneri var, ancak ÇözümPark Bilişim Portalı forumlarında bu konuda bir tespit bulundu bunu paylaşmak istedim. Eğer google aramasında çıkan sonuçlar sorununuzu çözmedi ise muhtemel custom bir servis olabilir. Yani Windows Server standart servislerin dışındaki servisleri Disable edip durumu kontrol etmenizi tavsiye ediyorum.

The Boot Configuration Data for your PC is missing or Contains Errors – 0xc000000f

The Boot Configuration Data for your PC is missing or contains errors

Eğer İşletim sistemini açarken aşağıdaki gibi bir hata ile karşılaşıyorsanız;

Bu işletim sisteminizin açılış dosyalarında bir sorun olduğunu gösterir. Bunun pek çok nedeni olabilir, ortak kullanılan bir terminal server ve yetkili kullanıcılar bu dosyalara zarar vermiş olabilir, virüs ve benzeri kötü içerikli bir kod parçacığı buna neden olmuş olabilir, sanal bir makine ise makine disk ayarlarındaki değişiklikler veya güncelleme kaynaklı olabilir. Önemli olan bu sorunu nasıl düzelteceğimiz.

Öncelikle sanal veya fiziksel fark etmeksizin bir windows ISO dosyasına ihtiyacınız bulunmaktadır. İşletim sisteminiz Windows Server ise Server, Client ise client yani mevcut OS ile aynı sürüm bir ISO’ yu DVD veya USB olarak eğer sanal ise zaten doğrudan ISO olarak gösterip işletim sistemini bu kurulum medyasından başlatın.

İlk olarak karşınıza OS yükleme ekranı gelecektir, burada dil ayarlarını yaptıktan sonra next diyerek ilerleyin. Bu bölümde hemen alt köşede “repair” seçeneğini göreceksiniz;

Daha sonra `Troubleshoot` seçeneğini seçin

Bu seçeneği seçtikten sonra karşınıza aşağıdaki gibi bir ekran gelecektir;

Bu bölümde ise “command promt” seçeneğini seçin;

DOS ekranında önce C dizinine geçip sonra aşağıdaki komutu yazıyoruz;

Bu işlemden sonra sorunsuz bir şekilde İşletim sisteminin açıldığını göreceksiniz.

Eğer hala sorun devam ediyor ise bir ümit aşağıdaki seçeneği deneyebilirsiniz;

Startup Repair işlemi de benzer bir Deneme ile açılış sorunlarını çözmeye çalışacaktır. Eğer sorun çözülebilecek bir durumda ise İşletim sisteminin sorunsuz bir şekilde çalıştığını göreceksiniz.

Ben aktif olarak müşterimde ilk yöntem ile sorunu çözdüm ama hepimiz biliyoruz ki her sorunun birbirinden farklı kaynağı olabileceği için bu yöntem Çözüm olmayabilir.

Umarım faydalı bir yazı olmuştur.

Windows 10 Pro Sürümü için GPO ile Lock Screen Yönetimi- Configure Windows Spotlight on the lock screen

Windows Spotlight, farklı arka plan görüntülerini görüntüleyen ve bazen kilit ekranında öneriler sunan kilit ekranı arka planı için bir seçenek olarak Windows 10 da sunulan bir özelliktir. Bu özellik tüm Windows 10 masa üstü sürümlerinde yer almaktadır.

Bazı şirketlerin iş ihtiyacı nedeni ile lock screen olarak ifade ettiğimiz işletim sistemi ekranının kilitlendiğinde ortaya çıkan bu görselleri kurumsal görseller ile değiştirmek isteyebilir. Bu durumda aşağıdaki makale ile kolaylıkla yapılabilir;

https://docs.microsoft.com/en-us/windows/configuration/windows-spotlight

Fakat bu yöntem Windows 10 Enterprise ve Windows 10 Education sürümleri için çalışan bir yöntemdir.

Aşağıdaki yolu takip edebilirsiniz;

“Computer Configuration\Administrative Templates\Control Panel\Personalization\Force a specific default lock screen and logon image”

Okumaya devam et

RDS Session Time Limits Ayarları

Windows sunucu sistemlerinin hem güvenlik hem de performans için uzak bağlantılarının yönetilmesi önemlidir. Bu bağlamda uzak bağlantılar için yerel veya Merkezi gpo uygulanabilir.

GPO ayarlarına ulaşmak için aşağıdaki yol izlenir;

Computer Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Session Time Limits

Set time limit for disconnected sessions

Bir kullanıcı login olduktan sonra uzak Bağlantı penceresini kapatır ise arka planda oturum açık kalmaya devam eder. Ancak bu GPO aşağıdaki gibi ayarlanır ise;

Bu uzak Bağlantı disconnect olduktan 1dk sonra oturum kapanır. Yani yapılan işler yarıda kalır.

Set time limit for active but idle Remote Desktop Services sessions

Active bir session’ ın kaç dk boşta kalması durumunda disconnected olacağına karar veriyoruz.

Örneğin bu değeri 2 saat yaparsak 2 saat boyunca boşta kalan session disconnected olarak kapanacaktır. Bu sayede bir daha bağlanmak isteyen kişi kullanıcı adı ve şifre girmek zorundadır.

Örnek 30dk boyunca kapatmadığınız ama örneğin aşağı indirdiğiniz veya aktif olsa bile remote Bağlantı yaptığınız bilgisayarı lock edip gittiğinizi düşünün. Geldiğiniz zaman remote Bağlantı kopmuş olacaktır. Ancak otorum kapanmamıştır. Yani çalışmalarınız aynen kaldığı yerden devam eder.

Ancak bu davranışı aynı anda “Terminate (End) session when time limits are reached” isimli GPO ile kullanırsanız değiştirebilirsiniz. Bu durumda yukarıdaki GPO’ yu aşağıdaki gibi Enable yaparsanız 2 saat sonra oturumda kapanır.

Set time limit for active Remote Desktop Services sessions

Bir kullanıcının maksimum çalışma süresini ayarladığımız ilkedir. Örneğin bu değeri 2 saat yaparsak bir kullanıcı bir oturum için makismum 2 saat çalışacaktır. Bu süre dolmadan 2dk önce bir uyarı gelecektir.

Eğer bir diğer GPO olan “Terminate (End) session when time limits are reached” da aşağıdaki gibi enable ise otorum komple kapanır, yani dosyalar, açık olan uygulamalar kapanır

Ancak bir Sonraki GPO olan “Terminate (End) session when time limits are reached” varsayılan durumda yani aşağıdaki gibi ise

Sadece disconnect olur. Aşağıdaki gibi bir uyarı ile uzak Bağlantı kapanır. Ancak açık olan dosyalara bir şey olmaz. Yani log off olmaz.

Terminate (End) session when time limits are reached

Bu ilkeyi enable olarak ayarlarsanız idle veya aktif çalışma süreleri dolduğunda kullanıcı oturumu log off olur. Yani oturum kapanır.

Servicing Stack Updates Nedir?

Windows Update ekranında aşağıdaki gibi bir ekran görüntüsü görebilirsiniz;

Cumulative Update kavramına aşinaydık ancak SSU yeni bir kavram. Peki nedir bu SSU yüklemesi?

Hizmet yığını güncelleştirmeleri olarak geçen SSU, Windows güncellemelerini yüklerken kullanılan servis yığını için güncelleme içermektedir. Ek olarak bu güncelleştirme DISM, SFC, Windows özelliklerini veya rollerini değiştirme ve bileşenleri onarma gibi Windows dağıtımının çeşitli öğeleri için temel bir bileşen olan “component-based servicing stack” (CBS) içerir. CBS, genellikle her ay yayınlanan güncellemelere sahip olmayan küçük bir bileşendir.

Cumulative Update gibi her ay görmezsiniz ancak bu yama temel olarak windows update hizmetini iyileştirdiği için yüklemeniz tavsiye edilmektedir. Her ne kadar bir birinden farklı yama paketleri olsa da bir biri ile ilişkili olduğu yerler vardır.

Yani güncel yamaları almak istiyorsanız en güncel yama platformuna sahip olmanız lazım, bir örnek vermek gerekir ise KB4284880 yamasını yüklemek için mutlaka işletim sisteminizde May 17, 2018 servicing stack update yüklü olmalıdır.

Daha fazla bilgi için

https://docs.microsoft.com/en-us/windows/deployment/update/servicing-stack-updates

RDP Ataklar için Kritik Önlemler

Dışarıya açık sistemler her zaman bir güvenlik zafiyeti oluşturmaktadır. Ancak çoğunlukla hizmet sunmak amacı başta olmak üzere aslında bu en temel iş ihtiyacı olduğu için dışarıya açık pek çok system olduğunu görüyoruz. En temel internet üzerinde gezdiğimiz bütün sitelerin herkese açık olduğunu düşünürseniz aslında çok ciddi bir büyüklükten söz ediyoruz. Böylesine büyük bir okyanusta benim web sitemi, uygulamamı veya sistemimi mi bulacaklar diye düşünmeyin. Çünkü hep söylediğim bir şey olan “değişen ve gelişen teknoloji ile yeni nesil atakları görüyoruz” artık AI kullanarak yapılan atakları görünce gerçekten çok yerinde bir cümle oluyor. Dahası makalemizdeki gibi RDP temelli ataklar artık herkesin kolaylıkla yapabildiği bir atak türü haline gelmiş durumda. Yani çok büyük alışveriş veya sosyal medya platformlarını düşündüğümüz zaman gerçekten inanılmaz ataklar ile karşı karşıyalar, ancak ben daha temel bir konuya odaklandım. Bunun en temel sebebi ise her ne kadar şifreleme atakları yüzünden pek çok müşteri artık dışarıya açık RDP portunu kapatsa da hala ne yazık ki bizim güvenlik ekibine haftada en az 1-5 arası vaka gelmektedir. Bu da aslında bir şekilde kısa süreli, POC amaçlı, gözden kaçan veya unutulan RDP sistemlerinin hala ciddi bir tehlike oluşturduğunu gösterir.

Güncelleme 13.05.2019

Makaleye gelen yorumlardan sanki tüm RDP sistemleri için öneriler tadında bir makale beklentisi oluşmuş. Bu kadar uğraşacağına MFA yaparız gibi yorumlar görüyorum. Arkadaşlar zaten VPN yapsanız iş bitiyor, olay VPN, MFA yada sertifika doğrulama gibi kurumsal çözümleri kullanmayan müşteriler için kıssadan hisse öneride bulunuyorum.

Aslında bende yukarıdaki konulardan gol yemiş birisiyim. Herkesin farklı bir hikayesi vardır benimkisi çok basit, udemy eğitimlerim için POC ortamı hazırladım, ancak VPN vs ile bağlanmak çok pratik gelmedi, içerisinde bilgi de yoktu ancak günün sonunda en değerli şeyim olan vaktimi kaybettim. Exchange Server ortamı, GPO ortamı derken birkaç günlük kurulmuş mis gibi sistem şifrelendi. Neyse ki demo, poc ortamları bizde hep ayrı fiziksel sunucu ve network de olduğu için prod ortam olan ÇözümPark bundan etkilenmiyor. Gerçi bunun içinde bulut yedek senaryomuz var ama oradaki kesinti bizi üzer.

Bu durumda daha sonra ortak etkinlikle için kullandığımız birkaç ortamda meydana geldi. Tabiki bu işin kesin yöntemini sizler gibi bizde çok iyi biliyoruz. VPN. Fakat bazen ISP den kaynaklı, bazen danışmanın eğitmenin bulunduğu yer ve zaman nedeni ile T anında o RDP açılması gerekiyor 😊 Ama gel gör ki ne oluyorsa ya o sırada oluyor ya da her insan gibi bu yoğun gündemde unutuluyor.

Peki bu iş gerçekten bu kadar riskli mi? Bende her seferinde kendime soruyorum çünkü genel olarak müşterilerimin büyük çoğunluğu kurumsal firma, durum böyle olunca acaba ne kadar makine vardır bu şekilde diye düşünmeden edemiyorum ve an itibari ile 2.3 milyon makinenin bu durumdan etkilenebileceğini görüyorum

Bende bundan bir ders çıkardım. Madem bu işi çok iyi biliyoruz, elinde VPN imkânı olmayan, ip bazlı sınırlama imkânı olmayanlar için bir sıkılaştırma çözümü yapamaz mıyız? Aslında yapabiliriz.

Benim temel 3 adımda RDP için sıkılaştırma yönetimim aşağıdaki gibidir;

1 – Administrator ismini hemen değiştirin.

Yeni bir sistem kurduktan sonra varsayılan olan “Administrator” hesabı çok büyük tehlike içermektedir. Zaten otomatik yapılan atakların başında Administrator hesabına yapılmaktadır. Bunun için local GPO ile aşağıdaki yolu izleyebilirsiniz

Gpedit.msc – Computer Configuration – Windows Settings – Security Settings – Local Policies – Security Options altına “Accounts: Rename administrator account”

Örnek dışarıya açık bir sistemde en çok atak denemesi yapılan hesaplar aşağıdaki gibidir;

ADMINISTRATOR

Audit

Test

Ftp

Warehouse

Fax

Lab

Postgres

User1

User2

Guest

Webmaster

Admin

User

Sistema

Adm

Archive

Update

İnfo

Test2

Finans

Muhasebe

Report

Görüldüğü gibi aslında bu işin temelinde kullanıcı hesabını tahmin etmek var, yani siz bundan sonraki diğer iki önlemi almasanız bile sadece bu hareket ile ciddi manada VPN’ siz, dış dünyaya açık bir RDP sistemi için sıkılaştırma yapmış olursunuz.

Peki ikinci adım nedir?

Aslında bu ilk adım ile beraber kullanıldığı zaman çok etkili bir koruma yöntemi oluyor.

Lock Policy.

Yani diyelim administrator hesabını değiştirdik ancak yine de tespit edildi veya tahmin edildi, bu durumda da 3 veya 5 veya size uygun bir yanlış deneme sayısından sonra otomatik hesabın lock olması. Tabi bu süreyi çok uzun tutmamak lazım aksi halde sizin de erişim sorunlarınız kaçınılmaz olur.

Bunun için yine local GPO’ da aşağıdaki yolu izleyebilirsiniz. Computer Configuration – Windows Settings – Security Settings – Account Policies – Account Lockout Policy

Altından ayarları kendinize göre yapabilirsiniz. Peki birisi hesabı buldu ve lock etti sisteme nasıl erişeceğim?

Evet bu ihtimale karşın mutlaka “Reset account Lockout counter after” bölümünü kullanmanız lazım. Zaten atakları incelerseniz süreklilik gösterirken mutlaka 5dk veya 10dk ara verirler.

Peki ikinci yöntem de tamam. Gelelim en son yönteme. Bu ise aslında yukarıdaki iki çözümden sonra sürekli loglarda atakları gördükten sonra aklıma gelen ve küçük bir araştırma ile benim gibi başkalarının da düşündüğü bir çözüm gördüm. Her ne kadar güvenli bir ortam oluştursam da sürekli sunucumu taciz etmeleri beni biraz rahatsız etti. Sonuçta bu hareketleri aşağıdaki iki log’ dan görebiliyoruz;

1 – Security loglarından;

İkinci olarak

Event Viewer- Application and Services Logs- Microsoft- Windows- RemoteDesktopServices-RdpCoreTS altındaki Operational loglarından event id 140

İlk log içerisinde kullanıcı bilgisi bu log içerisinde ise atak yapılan kaynak ip adresini görüyoruz. Tabi burada heyecanlanmayın, muhtemel bunlar zombi yani zararlı bulaştırılmış makineler olduğu için bunların üzerinden kimin size saldırı düzenlediğini bulmanız çok mümkün değil. Zaten size özel bir saldırı olmuyor genelde, makalemin başında söylediğim gibi karanlık veya derin web dediğimiz ortamda bir sürü otomatik RDP portu arayan ve kullanıcı adı şifre deneyen araçlar var.

Ben buradan yola çıkarak şunu düşündüm, bu ip adreslerini otomatik alıp windows firewall üzerindeki bir kurala ekleyecek. Tamda bunu yapacağız.

Öncelikle bir kural oluşturalım;

Custom bir kural hazırlayacağız.

Program sekmesinde “All programs” bölümünü seçip ilerliyorum.

Protocol ve Port bölümünde ise “any” seçiyorum.

Bu bölümde ise remote ip adres kısmına iki tane gerçek olmayan ip yazın.

Son olarak bu ip adreslerinden gelen herhangi bir port isteğini yasaklayacak bir kural olması için “Block the connection” seçeneğini seçiyorum.

Son olarak firewall kuralımız için bir isim seçiyoruz. Burası önemli, çünkü PS içerisinde hangi kurala ip adreslerini ekleyeceğini seçerken lütfen buraya yazacağınız ismi not edin.

Kuralımız hazır, şimdi olay günlüğünden ip adreslerini alacak ve bu firewall kuralına yazacak bir PS lazım.

Bunu aşağıdaki link üzerinden indirebiliriz;

İndirdiğimiz dosyası örneğin ben C:\komut dizinine indirdim ve çalıştırdım.

Gördüğünüz gibi ilk çalıştırmada 31 adet ip adresini yasakladı. Aslında PS süper çalışıyor ancak sorun sürekli bunu elle mi çalıştıracağız? Tabiki hayır. Bu durumda PS için zamanlanmış bir görev yapalım

Buraya yazacaklarımız sırası ile aşağıdaki gibidir;

Action: “Start a program”

Setting Program/Script: “powershell.exe“

Add arguments (optional): -ExecutionPolicy Bypass C:\komut\RDPBlock.ps1 (Burada tabi siz PS için verdiğiniz isim ve path tanımlayın)

Alt bölümdeki kutucuğu işaretleyerek finish dedikten sonra açılan yeni ekranda bu zamanlanmış görevler için özellikler penceresini açmış olacağız

Burada yapmamız gereken değişiklik “Run whether user is logged on or not” olmalıdır. Bu sayede siz login olmasanız da PS arka planda çalışacaktır.

Son olarak yetkili bir hesap ile zamanlanmış görevi tamamlıyoruz.

Peki durumu biraz inceleyelim neler oluyor?

Gördüğünüz gibi atak ortalama her 5dk da bir tekrarlanıyor. 5:03, 5:08, 5:13, 5:19 ve en son 5:36. Ancak 5.36 dan sonra dikkat ederseniz saatin 6:12 olmasına karşın tekrarlanmadığıdır. Bunun sebebi ise 77 adet ip adresini PS loglardan alıp kural içerisine eklemiştir.

Biz tabi öyle bir sistem kurunca bize saldıranda biraz hırs yaptı ve ip sayısını arttırdı.

Ancak ben zamanlanmış görevi her 5dk da bir çalışacak şekilde yaptığım için çok ilgilenmiyorum açıkçası. Özetle sistem otomatik olarak ip adreslerini eklediği sürece içim rahat.

Peki bu ip adresleri maksimum kaç tane olabilir? Windows Firewall için limit 1000 tanedir.  1000 taneden fazla ip ile size saldırmaları durumunda zaten daha kurumsal bir çözüm kullanmanızı tavsiye ederim.

Not: bu arada PS şöyle geliştirilebilir, örnek 10 gün veya 30 günden önce eklenen ip adresleri otomatik silinebilir bu sayede sistem otomasyona döner.

Aşağıdaki komutlar ise son durumu kontrol etmeniz için gereklidir;

(Get-NetFirewallRule -DisplayName “Block RDP Attackers” | Get-NetFirewallAddressFilter).RemoteAddress | Measure-Object

Yukarıdaki komut toplam kaç adet remote ip adresi olduğunu gördüğümüz komut.

(Get-NetFirewallRule -DisplayName “Block RDP Attackers” | Get-NetFirewallAddressFilter).RemoteAddress | Out-file -FilePath c:\komut\remoteipaddress.csv -Encoding utf8

Bu komut ise bu ip adreslerini eğer export etmek istiyorsanız kullanabileceğiniz komut setidir.

Umarım faydalı bir makale olmuştur. Bir sonraki makalemde görüşmek üzere.

Not: Eğer isterseniz bu konuda aynı işi yapan 3.parti bir programda var, onu da deneyebilirsiniz ancak tabiki lisans ücreti ödenmesi gerekiyor- https://www.servolutions.com/shop/Products.aspx?cat=botfence

Powershell için Kaynak

RDS Collection Hatası – Unable to configure the RD Sessionhost server. Invalid operation

Güzel bir RDS Farm projesi yaptınız ve sıra geldi collection oluşturmaya. Connection broker sunucusu üzerinde bu süresi işletirken aşağıdaki gibi bir hata alabilirsiniz;

Unable to configure the RD Sessionhost server. Invalid operation

Hatta bu hatanın altında da GPO ile ilgili uyarılar görürsünüz. Bunun temel nedeni yeni kurduğunuz session host sunucularının mevcut domain ortamındaki RDS ilkelerini alması ile ilgilidir. Yani muhtemel domain seviyesinden veya kurduğunuz sunucuların bulunduğu OU için tanımlanmış RDS ilkeleri var ise bu oluşturmaya çalıştığınız collection ayarları ile çakışacağı için hata alırsınız.

Çözüm olarak yeni kurduğunuz sunucuların herhangi bir RDS GPO ayarı almamasını sağlamanız yeterlidir.

1 Soru 1 Cevap: Windows Server 2019 In-place Upgrade

Soru: Server 2019 in-place upgrade hangi OS sürümlerini desteklemektedir?

Cevap: Server 2012 R2 ve Server 2016 sürümleri in-place upgrade desteklemektedir. 2008 R2 direkt olarak yükseltme desteklemiyor olsa bile önce 2012, sonra 2016 sonra 2019 olacak şekilde yükseltilebilir.

Daha fazla bilgi için;

https://www.hakanuzuner.com/index.php/upgrade-windows-server-2008-r2-to-windows-server-2019.html
https://www.hakanuzuner.com/index.php/upgrade-windows-server-2016-to-windows-server-2019.html
https://www.hakanuzuner.com/index.php/windows-server-upgrade-center.html