RDP Cookie
RDP Cookie Koşulu Nedir?
RDP Cookie koşulu, Remote Desktop Protocol (RDP) bağlantılarındaki cookie bilgisini değerlendirerek trafik yönlendirme kararları almak için kullanılan bir koşul tipidir.
RDP cookie, Windows Remote Desktop bağlantılarında kullanıcı oturum bilgisini taşır:
Bu koşul sayesinde RDP kullanıcıları farklı terminal sunucularına yönlendirilebilir.
RDP Cookie Koşulunun Önemi
RDP load balancing senaryolarında, kullanıcıların doğru terminal sunucusuna yönlendirilmesi kritik öneme sahiptir.
RDP Cookie koşulu sayesinde;
- Kullanıcılar kendi oturumlarının bulunduğu sunucuya yönlendirilebilir,
- RDP farm'larında kullanıcı bazlı yönlendirme yapılabilir,
- Session affinity (oturum yapışkanlığı) sağlanabilir,
- VDI ortamlarında kullanıcı deneyimi iyileştirilebilir,
- RDP bağlantıları için güvenlik politikaları uygulanabilir.
RDP Cookie Yapısı:
| Alan | Açıklama | Örnek |
|---|---|---|
| mstshash | Kullanıcı/oturum tanımlama bilgisi | mstshash=admin |
TIP
En yaygın RDP cookie'si mstshash'tir ve Windows Remote Desktop Client tarafından kullanıcı adı bilgisini taşıyacak şekilde gönderilir.
Kullanılabildiği vService Tipleri
Koşul yalnızca istek (At Request) aşamasında kullanılabilir.
İnceleme Beklemesi
RDP cookie'sinin okunabilmesi için vService, bağlantının ilk paketlerini inceler; bu nedenle rdp cookie koşulu kullanılan vService'te bağlantı kabulü 5 saniyeye kadar gecikebilir (cookie daha erken gelirse bekleme erken biter). Bu davranış, koşul tanımlandığında otomatik olarak devreye girer.
Nasıl Eklenir?
Yeni bir RDP Cookie Koşulu, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:
- Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
- Load Balancer → Conditions → Add adımları takip edilir.
- Criteria olarak RDP cookie seçilir.
- Koşula ait ilgili konfigürasyonlar yapılandırılır.
Addbutonuna tıklanarak koşul eklenir.
RDP Cookie Koşulu Ekleme Formu
RDP Cookie Koşulu Ekleme Formu
INFO
Condition Name
Oluşturulacak koşul için isteğe bağlı bir isim girilebilir.
Bu alan, özellikle aşağıdaki senaryolarda önemlidir:
- Aynı vService altında çok sayıda koşul tanımlandığında,
- Benzer kriterlere sahip koşulların ayırt edilmesi gerektiğinde,
- Koşulun hangi iş kuralını temsil ettiğinin hızlıca anlaşılması istendiğinde.
Bu alan boş bırakıldığında, TR7 ilgili koşulun içeriğini analiz ederek Condition Description alanında otomatik ve açıklayıcı bir isim oluşturur. Oluşturulan bu açıklama, koşul listelerinde isim olarak kullanılır.
INFO
Criteria Zorunlu
Koşulun tipini belirleyen alandır; aranabilir açılır listeden RDP cookie seçilir. Bu seçim, formda görüntülenecek alanları belirler. Kriter, koşul kaydedildikten sonra değiştirilemez: farklı bir kritere ihtiyaç duyulursa yeni bir koşul tanımlanır. Listedeki tüm kriterler ve kapsamları için Conditions sayfasındaki kriter kataloğuna bakılabilir.
INFO
RDP Cookie Name Zorunlu
Kontrol edilecek RDP cookie adı girilir. Alan boş açılır; kutuda örnek olarak mstshash gösterilir (varsayılan olarak seçili değildir).
TIP
Çoğu RDP load balancing senaryosunda mstshash cookie'si kullanılır. Bu cookie, Windows Remote Desktop Client tarafından otomatik olarak gönderilir.
INFO
Content Matching Method Varsayılan: Exact match
İçeriğin nasıl eşleştirileceğini belirler. Alan, formda etiketsiz bir açılır liste olarak Criteria'nın hemen altında görünür ve Exact match seçili açılır.
| Seçenek | Kod | Açıklama |
|---|---|---|
| Exact match | exactMatch | Değer birebir eşleşmelidir. |
| Start | start | Değer belirtilen metinle başlamalıdır. |
| End | end | Değer belirtilen metinle bitmelidir. |
| Includes | sub | Değer belirtilen metni içermelidir. |
| Regex | regex | Değer düzenli ifadeyle eşleşmelidir. |
| Is present | found | Yalnızca varlık kontrolü sağlanır. (değer önemli değil) |
RDP Cookie Eşleştirme için Öneriler:
| Method | Kullanım | Örnek |
|---|---|---|
| Exact Match | Belirli kullanıcı | admin |
| Start | Kullanıcı prefix'i | vdi- |
| Includes | İçerik kontrolü | server1 |
| Is present | Cookie varlığı | (cookie var mı?) |
| Regex | Pattern | ^admin[0-9]+$ |
INFO
Case Insensitive Varsayılan: Kapalı
Büyük/küçük harf duyarlılığını kontrol eder.
- Aktif:
example,EXAMPLE,Exampleaynı kabul edilir - Aktif Değil: Tam eşleşme gerekir (varsayılan)
Windows kullanıcı adları case-insensitive olduğundan, bu seçeneğin etkin olması önerilir.
INFO
Query Zorunlu
Eşleştirilecek olan değer bu alana girilir. Seçilen eşleştirme yöntemine göre:
- Exact match: Değerin birebir karşılığını kontrol eder.
- Start: Aranacak metin parçasının başlangıcını kontrol eder.
- End: Aranacak metin parçasının bitişini kontrol eder.
- Includes: Aranacak metin parçasının içinde geçme durumunu kontrol eder.
- Regex: Düzenli ifade deseni (Regex) ile kontrol eder.
Örnek değerler:
| Değer | Açıklama |
|---|---|
admin | admin kullanıcısı |
vdi-user | VDI kullanıcı prefix'i |
DOMAIN\user | Domain kullanıcısı |
WARNING
Windows kullanıcı adları case-insensitive'dir. Case Insensitive seçeneğini etkinleştirmeniz önerilir.
INFO
Condition Description
Girilen kriter ve değerler doğrultusunda TR7 tarafından otomatik olarak oluşturulur.
Bu açıklama;
- Koşulun hangi değer için geçerli olduğunu,
- Hangi kriter üzerinden çalıştığını,
- Listeleme ekranlarında koşulun hızlıca anlaşılmasını
sağlayacak şekilde sistem tarafından dinamik olarak üretilir.
TIP
RDP cookie değeri, aksiyonlarda ve TCP log formatlarında RDP çerezi akıllı değişkeniyle, çerez adı verilerek kullanılabilir.
INFO
Form Butonları
Add
Add butonuna tıklanarak koşul ekleme işlemi tamamlanır.
Add & Repeat
Add & Repeat butonu ile koşul ekleme işlemi tamamlanır ve farklı konfigürasyonlarla ilgili pencereden çıkılmadan yeni bir koşul daha eklenebilir.
Koşul Eklendi
Operasyonel Kullanım Önerileri
- Session Affinity Sağlayın. Kullanıcıları her zaman aynı terminal sunucusuna yönlendirerek oturum sürekliliği sağlayın.
- Case Insensitive Kullanın. Windows kullanıcı adları case-insensitive olduğundan eşleştirmede bunu dikkate alın.
- TCP vService Kullanın. RDP bağlantıları için TCP vService (port 3389) kullanın.
- Yedek Sunucu Planı. Kullanıcının hedef sunucusu down olduğunda yedek sunucuya yönlendirme planlayın.
Canlı Ortamlarda Yaygın Kullanım Senaryoları
Aşağıdaki örnekler, ilgili koşulun gerçek sistemlerde en sık karşılaşılan kullanım senaryolarında nasıl uygulandığını göstermektedir. Bu senaryolar, canlı ortamlarda yaygın olarak tercih edilen ve sahada edinilmiş deneyimlere dayanan pratikleri temel alır.
Senaryo 1: Admin Kullanıcı Terminal Server Yönlendirme
Kullanım Amacı: Admin kullanıcılarını özel güçlendirilmiş ve izole edilmiş terminal sunucusuna yönlendirerek yüksek güvenlikli RDP ortamı sağlamak.
Konfigürasyon:
- RDP Cookie Name:
mstshash - Content Matching Method: Start
- Query:
admin - Case Insensitive: işaretli
Senaryo 2: VDI Kullanıcı Segmentasyonu
Kullanım Amacı: VDI kullanıcılarını kalıcı VDI masaüstü sunucularına, normal kullanıcıları paylaşımlı RDS sunucularına yönlendirerek resource optimizasyonu sağlamak.
Konfigürasyon:
- RDP Cookie Name:
mstshash - Content Matching Method: Start
- Query:
vdi- - Case Insensitive: işaretli
Senaryo 3: RDP Cookie Varlığına Göre Grup Ayrımı
Kullanım Amacı: RDP cookie gönderen istemcileri (standart Remote Desktop Client) cookie göndermeyen istemcilerden ayırıp farklı Kurum Servisi gruplarına yönlendirmek.
Konfigürasyon:
- RDP Cookie Name:
mstshash - Content Matching Method: Is present
→ Conditional Backend Services
TIP
Kullanıcıyı her bağlantıda aynı sunucuya yapıştırmak (session persistence) bu koşulun değil, vService'in yük dengeleme algoritmasının işidir: bunun için L7 TCP vService'te RDP Cookie algoritması kullanılır. Yalnızca "cookie var mı" denetimi için koşul tanımlamaya gerek de yoktur: koşul seçim listelerinde hazır If RDP cookie is present koşulu sunulur.
