Ş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ı, kurulumları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 ö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.
  • Genel URL'de tam etki alanı-adı (FQDN) yerine makine adını kullanmak çok fazla yazma tasarrufu sağlar.
  • Bağlamada ana bilgisayar adını belirsiz bırakmak, 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, BIR HTTPS bağlaması kullanılmadığı sürece, IPSec gibi başka çözümler kullanılmadığı sürece aktarım sırasında Azure DevOps Server ve oradan iletişim şifrelenmez. Bu nedenle, iletişimin içeriğini izleyen ve hatta değiştiren kötü amaçlı aktörlere karşı savunmasız olabilirler. Bu sorunlar, Azure DevOps Server kurumsal güvenlik duvarının arkasındaki bir intranette dağıtıldığında Azure DevOps Server örneklerin büyük çoğunluğu olduğu için bir ölçüde azaltılır. Ancak bu senaryolarda bile, Azure DevOps Server gönderilen ve gönderilen veriler kaynak kodu, iş öğesi verileri ve genellikle ek güvenlikten yararlanabilecek 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üne alındığında, Azure DevOps Server dağıtımlarında HTTPS bağlamalarının kullanımını daha güçlü bir şekilde savunma zamanı geldiğinden emin olduk.

Grupları ayarlama

TFS 2017, tüm sunucu yapılandırma senaryolarında web sitesi ayarları yapılandırma seçeneklerini sunar. Site bağlamalarının, sanal dizinlerin ve genel URL'lerin birleşimlerini bir araya toplayan ve en yaygın olarak kullanılmasını önerdiğimiz ve buna 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 önceki sürümlerinde kullanılan ayarları 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'de HTTP bağlaması yalnızca son kullanıcılar için kolaylık sağlamak amacıyla eklenir; tüm trafiğin bağlantı noktası 443'te HTTPS bağlaması kullanılarak sona ermesi için bir yeniden yönlendirme yapılandırılır. Bu ayar grubunun Genel URL'si formda 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 hangi seçeneklerin kullanılabilir olduğu hakkında daha fazla bilgi için aşağıdaki Sertifika Seçenekleri'ne bakın.

Yalnızca HTTPS ayar grubu, 443 numaralı bağlantı noktasında makinenin FQDN'sinin Ana Bilgisayar Adı olarak olduğu tek bir HTTPS bağlaması sağlar. Bu ayar grubunun Genel URL'si biçimindedir https://fully-qualified-domain-nameve otomatik olarak imzalanan 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 formda http://machine-name.

HTTPS ve HTTP (yeniden yönlendirme ile) ayar grubunu kullanırken, HTTP genel URL'si kullanılması önerilmez. Çoğu modern tarayıcı, 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, süresi dolan SSL sertifikasına sahip bir siteye göz atmaya benzer bir deneyime neden olur.

Sertifika seçenekleri

HTTPS bağlamaları ve SSL/TLS şifrelemesi kullanarak web siteleri dağıtmak, çok çeşitli belgelerin zaten mevcut olduğu zengin ve ilginç bir konu olan ortak anahtar altyapısının (PKI) daha geniş konusuyla yakından ilgilidir. Buradaki karmaşıklığın tamamı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 sertifika dağıtmayla ilgili belirli ilkeleri vardır, bu nedenle Azure DevOps Server dağıtımı için hangi sertifikayı kullanacağınıza karar vermenin ilk adımı genellikle kuruluş düzeyinde bir bilgi teknolojisi grubuyla konuşmaktır.

Seçeneklere şunlar dahildir:

  • 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, Azure DevOps Server deneme dağıtımları için kullanışlıdır, çünkü sağlamaları ve kullanmaları çok kolaydır. Bunlar, Azure DevOps Server ü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. Otomatik olarak imzalanan sertifikalar genellikle ortadaki adam saldırılarına açıktır. Kök sertifikaları her istemci makinesine yüklenene kadar sertifika uyarılarına ve hatalarına neden olacağından, kullanıcılar için de sorunlara 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 otomatik olarak imzalanan sertifikalar oluşturduğunda, biri sunucudaki Güvenilen Kök Sertifika Yetkilileri deposuna, diğeri ise ilk tarafından imzalanan, sunucudaki Kişisel depoya yerleştirilen ve Azure DevOps Server tarafından kullanılan iki sertifika oluşturur. İşleri bu şekilde ayarlamak, 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 rotasyonunu etkinleştirir.

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:

  • Sertifikayı sunucuda el ile dışarı aktarmak ve ardından her istemciye 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 bulunan Export-Certificate powershell cmdlet'ini kullanma. Daha sonra import-Certificate her istemcide içeri aktarmak için kullanılabilir.
  • İstemcilere dağıtımı otomatikleştirmek için grup ilkesi 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 gereğini ortadan kaldırın. 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, sertifikalar bir dış Sertifika Yetkilisinden (CA) alınabilir (genellikle bir ücret karşılığında). 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ı'nı ve 2048 veya daha büyük bir bit uzunluğu seçmenizi öneririz.

Genel URL'nizi değiştirme

Ayrıca, mevcut bir Azure DevOps Server dağıtımını yükseltirken genel URL'nin değiştirilmesinin son kullanıcıları etkileyeceği de belirtilmelidir. HTTP'den HTTPS bağlamalarına dönüştürmeyi önermeye devam etsek de, Visual Studio istemci bağlantılarının yeniden kurulması gerekir, eski yer işaretleri artık düzgün çözümlenmez, vb. 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.