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

TFS 2017 | TFS 2015 | TFS 2013

Arka Plan

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

  • Konak adı veya IP adresi Azure DevOps Server 8080 bağlantı noktası üzerinde web sitesi için tek bir HTTP bağlaması.
  • formunun genel URL'si (daha önce Bildirim URL'si olarak http://machine-name:8080/tfs adlandırılır).

Bu ayarların en önemli avantajı, çoğu senaryoda son kullanıcılar için çok basit ve kullanışlı bir ayara sahip olmaktır. Özellikle:

  • HTTPS yerine HTTP kullanmak, sertifika alma ve yükleme ihtiyacının önüne geçmektedir.
  • 80 yerine 8080 kullanmak, aynı makinede diğer sitelerle olası çakışmaları önler.
  • Site için sanal dizin olarak "tfs" kullanmak, Azure DevOps Server diğer web sitelerini aynı sunucuda aynı bağlantı noktası üzerinde 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.
  • Konak adının belirtilmemiş bağlamada bırakarak bağlanma esnekliğine olanak sağlar. Kullanıcılar sunucularına bağlanmaya çalışsa da makine adı, FQDN veya IP adresi kullanılabilir.

Ancak bu ayarlar varsayılan olarak güvenli değildir. Özellikle, BIR HTTPS bağlaması kullanılmadıkça, IPSec gibi diğer çözümler kullanılmadıkça Azure DevOps Server ile bağlantı aktarım sırasında şifrelenmez. Bu nedenle, kötü amaçlı aktörlerin iletişimin içeriklerini izleme veya değiştirme durumlarını bile karşı savunmasız hale gelirler. Çoğu şirket güvenlik duvarının arkasındaki bir intranette Azure DevOps Server bu sorunlar bir ölçüde azaltılabilir ve Azure DevOps Server azaltılabilir. Ancak bu senaryolarda bile veri kaynağından Azure DevOps Server kod, iş öğesi verileri ve genellikle ek güvenlikten yararlanabilecek diğer bilgileri içerir.

Ayrıca TFS 2017'de kablo üzerinden taşıyıcı belirteçler 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 olduğu kullanıcıların kimliğine bürünmek için kullanılabilir.

Tüm bu durumların ardından, dağıtımlarda HTTPS bağlamalarının kullanımının daha güçlü bir şekilde Azure DevOps Server karar verdik.

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 paket halinde öneren ve en yaygın olarak kullanılanlara inandığımız çeşitli ayar grupları sağlanır. Bu ayar gruplarının hiçbirinin uygun olduğu senaryolarda, ayarlar Site Ayarlarını Düzenle iletişim kutusu kullanılarak Ayarlar özelleştirilebilir.

Varsayılan ayar grubu

Varsayılan ayar grubu, önceki sürümlerde kullanılan ayarların aynısını Azure DevOps Server. Yukarıda listelenen tüm nedenlerle, bu ayarlar hala yeni dağıtımlar için varsayılan Azure DevOps Server vardır. Mevcut dağıtımlar için, mevcut ayarları korumaya çalışacağız ve bu da genellikle Varsayılan ayar grubunun seçili olmasıyla sonuçlanacaktır.

Yeniden yönlendirme ayar grubu ile HTTPS ve HTTP.

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

  • Ana Bilgisayar Adı olarak makinenin tam etki alanı adı (FQDN) ile 443 bağlantı noktası üzerinde bir HTTPS bağlaması.
  • Ana Bilgisayar Adı olarak makinenin FQDN'sinde yeniden 80 bağlantı noktası üzerinde bir HTTP bağlaması.

Bağlantı noktası 80'de HTTP bağlaması yalnızca son kullanıcılara kolaylık sağlamak amacıyla eklenir. Yeniden yönlendirme, tüm trafiğin 443 bağlantı noktası üzerinde HTTPS bağlaması kullanılarak bitmelerini sağlayacak şekilde yapılandırılır. Bu ayar grubunun Genel URL'si https://fully-qualified-domain-name şeklindedir. Varsayılan olarak, bu ayar grubu yeni otomatik olarak imzalanan sertifikalar sağlar ve https bağlaması için bunları kullanır. Üretim TFS dağıtımları için genellikle otomatik olarak imzalanan sertifikaların kullanılması önerilmez. Otomatik olarak imzalanan sertifikaların ne zaman uygun olduğu ve hangi diğer 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 bağlantı noktası üzerinde makinenin FQDN'sine Ana Bilgisayar Adı olarak tek bir HTTPS bağlaması sağlar. Bu ayar grubunun Genel URL'si yine şeklindedir ve otomatik olarak https://fully-qualified-domain-name imzalanan sertifikalar varsayılan olarak sağlanmıştır.

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

HTTPS ve HTTP (yeniden yönlendirme ile) ayar grubunu kullanırken, HTTP genel URL'si kullanılması önerilmez. Modern tarayıcıların çoğu karışık HTTP ve HTTPS içeriğini varsayılan olarak güvenli değildir ve boş sayfalar gösterir. 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 durum süresi dolmuş SSL sertifikasına sahip bir siteye göz atma deneyimine 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 ilgi çekici bir konu olan daha geniş bir ortak anahtar altyapısı (PKI) konusuyla yakından ilişkilidir. Buradaki karmaşıklığın hepsini kapsayacak şekilde değil, daha çok dağıtımlar için HTTPS bağlamalarını yapılandırmak için üst düzey seçeneklere Azure DevOps Server kullanacağız. Birçok kuruluşun sertifika dağıtmayla ilgili belirli ilkeleri vardır, bu nedenle bir dağıtımda hangi sertifikanın Azure DevOps Server karar vermenin ilk adımı genellikle kuruluş düzeyinde bilgi teknolojisi grubuyla konuşmaktır.

Seçeneklere şunlar dahildir:

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

Otomatik olarak imzalanan sertifikalar

Otomatik olarak imzalanan sertifikalar, çok kolay sağlanması ve Azure DevOps Server için deneme sürümü dağıtımları için yararlıdır. Bu dağıtımlar, Azure DevOps Server dağıtımları için daha az uygundur ve genel İnternet'e Azure DevOps Server dağıtımlar için kullanılması önerilmez. Otomatik olarak imzalanan sertifikalar genellikle ortadaki adam saldırılarına karşı duyarlıdır. Ayrıca, kök sertifikaları her bir istemci makinesine yüklenene kadar sertifika uyarılarına ve hatalarına neden olacakları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 otomatik olarak imzalanan sertifikalar oluşturduklarında, biri sunucu üzerinde Güvenilen Kök Sertifika Yetkilileri deposuna yerleştirilen, ikincisi ise sunucu üzerinde Kişisel deposuna yerleştirilen ve Azure DevOps Server tarafından kullanılan ilk tarafından imzalanan iki sertifika oluşturacak. Bu şekilde ayarlama, ortadaki adam saldırılarının olasılığının en düşük olduğu ve yukarıda gösterilene benzer sertifika hatalarından kaçınmak için yeni bir sertifikayı tüm istemcilere dağıtmaya gerek kalmadan HTTPS bağlamada kullanılan sertifikanın rotasyona olanak sağlar.

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

  • Sertifikayı sunucuya el ile dışarı aktarın ve ardından her istemciye içeri aktarın.
  • Sertifikayı dışarı aktarma için Windows 8 / Windows Server 2012 ve sonraki işletim sistemlerinde kullanılabilen Export-Certificate powershell cmdlet'ini kullanarak. İçeri Aktarma Sertifikası daha sonra her istemcide içeri aktarma için kullanılabilir.
  • İstemcilere grup ilkesi otomatikleştirmek için bir uygulama kullanma.

İç ve dış Sertifika Yetkilileri

Birçok büyük kuruluş kendi ortak anahtar altyapısına sahip ve kendi Sertifika Yetkililerinden sertifikalar veserletir. Genellikle, bu durumda, bu yetkililerin güvenilir kök sertifikaları istemci makinelerine zaten dağıtılacaktır, bu nedenle sertifikalar için ek sertifikalar Azure DevOps Server. Kuruluşta kendi ortak anahtar altyapısı varsa bu, dağıtım dağıtımınız için iyi bir Azure DevOps Server olabilir.

Diğer seçenekler uygun veya kullanılabilir olduğunda, sertifikalar bir dış Sertifika Yetkilisi'den (CA) (genellikle bir maliyetle) elde edilir. Sertifika İmzalama İsteği oluşturma ile başlayan bu işleme ilişkin yönergelerçoğu CA web sitesinde bulunabilir. Bazı önemli notlar:

  • Sertifika isteğinde sağlanan Ortak Ad'ın, genel URL'sinde istediğiniz ana bilgisayar adıyla eşle eş olduğundan emin olun ( örneğin, tfs.contoso.com.
  • Şifreleme Hizmeti Sağlayıcısı Özellikleri'ne Microsoft RSA SChannel Şifreleme Sağlayıcısı 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ı yükseltilmesi sırasında genel URL'nin değiştirilmesinin son kullanıcıları etkileyiştirecek olduğu da unutmayın. Yine de HTTP'den HTTPS bağlamalara dönüştürmeyi öneriyoruz, Visual Studio istemci bağlantılarının yeniden kurulması gerekir, eski yer işaretleri artık düzgün çözümlemeyecek vb. Bu nedenle, önemli kesintileri önlemek için bu tür değişikliği dağıtım Azure DevOps Server koordine etmek önemlidir.