Aracılığıyla paylaş


Şirket içi Azure DevOps için web sitesi ayarları ve güvenliği

TFS 2017 | TFS 2015 | TFS 2013

Arka plan

Birçok sürümde, daha önce Team Foundation Server (TFS) olarak adlandırılan Azure DevOps Server için varsayılan web sitesi ayarları şu şekildedir:

  • 8080 numaralı bağlantı noktasındaki Azure DevOps Server web sitesi için ana bilgisayar adı veya IP adresi belirtilmemiş tek bir HTTP bağlaması.
  • formunun http://machine-name:8080/tfsgenel URL'si (daha önce Bildirim URL'si olarak adlandırılır) .

Bu ayarların birincil avantajı, bunların ayarlanmasının çok basit olması ve çoğu senaryoda son kullanıcılar için uygun olmasıdır. Özellikle:

  • HTTPS yerine HTTP kullanmak, sertifikaları alma ve yükleme gereksinimini ortadan kaldırıp önler.
  • 80 yerine 8080 kullanılması, aynı makinedeki diğer sitelerle olası çakışmaları önler.
  • Sitenin sanal dizini olarak "tfs" kullanmak, Azure DevOps Server'ı ve diğer web sitelerini aynı sunucuda aynı bağlantı noktasında barındırmayı kolaylaştırır.
  • Kamuya açık URL'de tam etki alanı adı (FQDN) yerine makine adını kullanmak, çok fazla yazma tasarrufu sağlar.
  • Bağlamada konak adının belirtilmemiş olarak bırakılması, bağlanma esnekliği sağlar. Kullanıcılar sunucularına bağlanmaya çalıştığında makine adı, FQDN veya IP adresi çalışır.

Ancak bu ayarlar varsayılan olarak güvenli değildir. Özellikle, HTTPS bağlaması kullanılmadığı sürece, IPSec gibi diğer çözümler kullanılmadığı sürece Azure DevOps Server'a ve Azure DevOps Server'dan gelen iletişim aktarım sırasında şifrelenmez. Bu nedenle, iletişimin içeriğini izleyen ve hatta değiştiren kötü amaçlı aktörlere karşı potansiyel olarak savunmasızdırlar. Azure DevOps Server örneklerinin büyük çoğunluğu kurumsal güvenlik duvarının arkasındaki bir intranette dağıtıldığından, Azure DevOps Server'ın intranette kurulumu bu sorunları bir ölçüde azaltır. Ancak bu senaryolarda bile Azure DevOps Server'a ve Azure DevOps Server'dan gönderilen veriler genellikle ek güvenlikten yararlanabilecek kaynak kodu, iş öğesi verileri ve diğer bilgileri içerir.

Ayrıca, TFS 2017'de taşıyıcı belirteçleri kablo üzerinden gönderen yeni kimlik doğrulama senaryoları (derleme/yayın aracısı hizmet hesabı kimlik doğrulaması, kişisel erişim belirteçleri) vardır. Bu belirteçler kötü amaçlı kullanıcılar tarafından elde edilirse, ait oldukları kullanıcıların kimliğine bürünmek için kullanılabilir.

Tüm bunlar göz önünde bulundurulduğunda, Azure DevOps Server dağıtımlarında HTTPS bağlamalarının kullanımını daha güçlü bir şekilde savunma zamanı geldi.

Grupları ayarlama

TFS 2017, tüm sunucu yapılandırma senaryolarında web sitesi ayarları yapılandırma seçeneklerini sunar. Site bağlamaları, sanal dizinler ve genel URL'lerin birleşimlerini bir araya toplayan ve en yaygın olarak kullanılacağına inandığımız çeşitli ayar grupları sağlanır. Bu ayar gruplarından hiçbirinin uygun olmadığı senaryolarda, Ayarlar Site Ayarlarını Düzenle iletişim kutusu kullanılarak tamamen özelleştirilebilir.

Varsayılan ayar grubu

Varsayılan ayar grubu, Azure DevOps Server'ın önceki sürümlerinde kullanılan ayarların aynısını içerir. Yukarıda listelenen tüm nedenlerden dolayı, bu ayarlar yeni Azure DevOps Server dağıtımları için hala varsayılandır. Mevcut dağıtımlar için mevcut ayarları korumayı deneyeceğiz ve bu da genellikle Varsayılan ayar grubunun seçilmesine neden olur.

Yeniden yönlendirme ayarı grubu ile HTTPS ve HTTP.

HTTPS ve HTTP (yeniden yönlendirmeli) ayar grubu iki bağlama sağlar:

  • Makinenin tam etki alanı-adı (FQDN) ana bilgisayar adı olarak olan 443 numaralı bağlantı noktasında bir HTTPS bağlaması.
  • 80 numaralı bağlantı noktasında, yine makinenin FQDN'sini Ana Bilgisayar Adı olarak içeren bir HTTP bağlaması.

Bağlantı noktası 80'deki HTTP bağlaması yalnızca son kullanıcılar için kolaylık sağlamak amacıyla eklenir. Tüm trafiğin 443 numaralı bağlantı noktasında HTTPS bağlaması kullanılarak sona ermesi için bir yeniden yönlendirme yapılandırılır. Bu ayar grubunun Genel URL'si formdadır https://fully-qualified-domain-name. Varsayılan olarak, bu ayar grubu yeni otomatik olarak imzalanan sertifikalar sağlar ve bunları HTTPS bağlaması için kullanır. Genellikle üretim TFS dağıtımları için otomatik olarak imzalanan sertifikaların kullanılmasını önermeyiz. Otomatik olarak imzalanan sertifikaların ne zaman kullanılacağı ve diğer seçeneklerin ne zaman kullanılabildiğini öğrenmek için aşağıdaki Sertifika Seçenekleri'ne bakın.

Yalnızca HTTPS ayar grubu, makinenin FQDN'sini Ana Bilgisayar Adı olarak kullanarak 443 numaralı bağlantı noktasında tek bir HTTPS bağlaması sağlar. Bu ayar grubunun Genel URL'si biçimindedir https://fully-qualified-domain-name, ve kendinden imzalı sertifikalar varsayılan olarak sağlanır.

Yalnızca HTTP ayar grubu, 80 numaralı bağlantı noktasında Ana Bilgisayar Adı belirtilmemiş tek bir HTTP bağlaması sağlar. Bu ayar grubunun Genel URL'si formdadır http://machine-name.

HTTPS ve HTTP (yeniden yönlendirmeli) ayar grubu kullanılırken, HTTP genel URL'si kullanılması önerilmez. Modern tarayıcıların çoğu karma HTTP ve HTTPS içeriğini varsayılan olarak güvenli değildir ve boş sayfalar görüntüleyebilir. Varsayılan tarayıcı ayarlarını geçersiz kılmak ve güvenli olmayan içeriğe izin vermek genellikle mümkün olsa da bu, süresi dolmuş SSL sertifikasına sahip bir siteye göz atma deneyimine benzer bir deneyime neden olur.

Sertifika seçenekleri

HTTPS bağlamalarını ve SSL/TLS şifrelemesini kullanarak web siteleri dağıtmak, çok çeşitli belgelerin zaten var olduğu zengin ve ilginç bir konu olan ortak anahtar altyapısının (PKI) daha geniş konusuyla yakından ilgilidir. Buradaki karmaşıklıkların tümünü kapsamaya çalışmayacağız, bunun yerine Azure DevOps Server dağıtımları için HTTPS bağlamalarını yapılandırmaya yönelik üst düzey seçeneklere odaklanacağız. Birçok kuruluşun sertifikaları dağıtma konusunda belirli ilkeleri vardır, bu nedenle Azure DevOps Server dağıtımı için hangi sertifikanın kullanılacağına karar vermenin ilk adımı genellikle kuruluş düzeyinde bir bilgi teknolojisi grubuyla konuşmaktır.

Seçenekler şunlardır:

  • TFS yapılandırma sihirbazının dağıtım tarafından kullanılmak üzere otomatik olarak imzalanan sertifikalar oluşturmasına izin verme.
  • bir iç Sertifika Yetkilisinden sertifika alma.
  • Dış Sertifika Yetkilisinden sertifika alma.

Otomatik olarak imzalanan sertifikalar

Otomatik olarak imzalanan sertifikalar, sağlamaları ve kullanımı çok kolay olduğundan Azure DevOps Server'ın deneme dağıtımları için kullanışlıdır. Bunlar Azure DevOps Server'ın üretim dağıtımları için daha az uygundur ve genel İnternet'e sunulan Azure DevOps Server dağıtımları için kullanılmasını önermeyiz. Genellikle, kendi kendine imzalanmış sertifikalar araya girme saldırılarına açıktır. Ayrıca, kök sertifikaları her istemci makinesine yüklenene kadar sertifika uyarılarına ve hatalarına neden olacağından kullanıcılar için sorunlara da neden olur. Örneğin, Edge tarayıcısı aşağıdaki hatayı gösterir.

Edge'de sertifika hataları.

TFS yapılandırma sihirbazı, dağıtımınız için kendi kendine imzalanan sertifikalar oluşturduğunda, iki tane üretir: biri sunucudaki Güvenilen Kök Sertifika Yetkilileri deposuna yerleştirilir, diğeri ise birincisi tarafından imzalanmış olarak sunucudaki Kişisel depoya yerleştirilir ve Azure DevOps Server tarafından kullanılır. İşlerin bu şekilde ayarlanması, ortadaki adam saldırıları olasılığını azaltmaya yardımcı olur ve yukarıda gösterilen gibi sertifika hatalarından kaçınmak için tüm istemcilere yeni bir sertifika dağıtmaya gerek kalmadan HTTPS bağlamasında kullanılan sertifikanın döndürülmesi sağlanır.

Bu sertifika uyarılarını ve hatalarını önlemek için kök sertifikayı dışarı aktarabilir ve istemci makinelerine yükleyebilirsiniz. Bunu gerçekleştirmenin çeşitli yolları vardır, örneğin:

  • Sertifikayı sunucuda el ile dışa aktarmak ve ardından her istemciye içeri aktarmak için Sertifikalar MMC ek bileşenini kullanma.
  • Sertifikayı dışarı aktarmak için Windows 8 / Windows Server 2012 ve sonraki işletim sistemlerinde kullanılabilen Export-Certificate powershell cmdlet'ini kullanma. Import-Certificate komutu daha sonra her istemciye içeri aktarmak için kullanılabilir.
  • İstemcilere dağıtımı otomatikleştirmek için Grup İlkesi'ni kullanma.

İç ve dış Sertifika Yetkilileri

Birçok büyük kuruluşun kendi ortak anahtar altyapısı vardır ve kendi Sertifika Yetkililerinden sertifikalar yayımlar. Genellikle bu durumda, bu yetkililerin güvenilen kök sertifikaları zaten istemci makinelerine dağıtılır ve bu nedenle Azure DevOps Server için ek sertifika dağıtma gereksinimi ortadan kalır. Kuruluşunuzun kendi ortak anahtar altyapısı varsa bu, Azure DevOps Server dağıtımınız için iyi bir seçenek olabilir.

Diğer seçenekler uygun veya kullanılabilir olmadığında, bir dış Sertifika Yetkilisi'nden (CA) sertifikalar (genellikle bir ücret karşılığında) alınabilir. Sertifika İmzalama İsteği oluşturmayla başlayan bu işlemin yönergeleri çoğu CA web sitesinde bulunabilir. Bazı önemli notlar:

  • Sertifika isteğinde sağlanan Ortak Adın, genel URL'nizde istediğiniz ana bilgisayar adıyla eşleştiğinden emin olun ( örneğin, tfs.contoso.com).
  • Şifreleme Hizmeti Sağlayıcısı Özellikleri bölümünde Microsoft RSA SChannel Şifreleme Sağlayıcısı ve 2048 veya üzeri bir bit uzunluğu seçmenizi öneririz.

Genel URL'nizi değiştirme

Mevcut bir Azure DevOps Server dağıtımını yükseltirken genel URL'nin değiştirilmesinin son kullanıcıları etkileyeceğini de unutmayın. Her ne kadar HTTP'den HTTPS bağlamalarına dönüştürmeyi hâlâ önersek de, Visual Studio istemci bağlantılarının yeniden kurulması gerekir, eski yer işaretleri artık düzgün çözümlenmez ve benzeri sorunlar ortaya çıkabilir. Bu nedenle, önemli kesintileri önlemek için bu tür bir değişikliği Azure DevOps Server dağıtımınızın kullanıcılarıyla koordine etmek önemlidir.