uVersion
Türkçe
İndir →

Wiki

TLS parmak izi

Sunucu kurulumda kendinden imzalı bir sertifika oluşturur. Her istemci ilk bağlantıda parmak izini onaylar.

Güvenli mi? Evet. Tüm bağlantılar ve tüm dosya aktarımları şifrelenir: ağdaki hiç kimse, iş istasyonlarınız ile sunucunuz arasında geçen şeyleri okuyamaz. Verileriniz kendi altyapınızda kalır: hiçbir şey üçüncü bir tarafta barındırılmaz, hiçbir şey uVersion üzerinden geçmez. Yalnızca kendi kimlik bilgilerine sahip ekip üyeleriniz erişebilir. Ve bağlantıda olağan dışı bir şey olursa, yazılım bunu fark eder ve sessizce geçmesine izin vermek yerine anında engeller.

uVersion, varsayılan olarak tüm bağlantıları HTTPS ile şifreler; alan adı da satın alınmış bir sertifika da gerekmez. Sunucu sertifikasını ilk başlatmada oluşturur, yönetici bunun parmak izini ekiple paylaşır ve her iş istasyonu bunu bir kez onaylar. Bu, TOFU modelidir: ilk temasta güven, tıpkı SSH'nin ilk seferinde bir makinenin parmak izini doğrulatması gibi. Sonrasında istemci her bağlantıda parmak izini karşılaştırır ve değişmiş bir sunucuyla konuşmayı reddeder.

Sunucu parmak izi mi, sağlama toplamı mı? İkisi de SHA-256'dır ve herkesi asıl şaşırtan da budur. Sunucu parmak izi sunucunuzun sertifikasını tanımlar: iş istasyonlarınızın bağlandığı makineyi tanımaya yarar. Sağlama toplamı ise indirilen bir dosyanın bozulmadan geldiğini doğrular. Bu sayfa yalnızca ilkinden söz eder.

İşlem iki aşamalıdır: parmak izini sunucuda bir kez bulmak, ardından her iş istasyonunda onaylamak, iş istasyonu başına bir kez. Bu sayfanın geri kalanı başvuru niteliğindedir; bir şey değiştiği gün okunur.

Parmak izini bulma

Kurulumun sonunda, yönetici parolasının yanında gösterilir. Ardından, en kolaydan en el yordamına kadar üç yolla yeniden bulunabilir.

1. Bir tarayıcıdan, hiçbir şey kurmadan

Sunucu, kimlik doğrulama gerektirmeyen bir bilgi sayfası sunar: https://SUNUCUNUZ:8443/api/server-info adresini açın. Ne sudo, ne SSH erişimi, ne de bir uVersion hesabı: açık ara en kısa yol budur.

Tarayıcı önce bir güvenlik uyarısı gösterir. Bu normaldir ve beklenir: sertifika kendinden imzalıdır, hiçbir genel makam onu tanımaz. Siteye geçmeye devam edin.

Sunucu adresinin ilk açılışında tarayıcının güvenlik uyarısı; kendinden imzalı sertifikaya rağmen devam etmeyi sağlayan bağlantı ya da düğme ile birlikte.

Ardından görünen sayfa ham bir veri bloğudur. Parmak izi, tls_fingerprint alanının değeridir: iki nokta üst üste ile ayrılmış onaltılık bayt dizisi. Ekibe ileteceğiniz şey, tam olarak bu dizenin bütünüdür.

Bir tarayıcıda açılmış /api/server-info sayfası: version, build_sha, self_signed olarak ayarlı tls_mode ve iki nokta üst üste ile ayrılmış onaltılık SHA-256 parmak izini taşıyan tls_fingerprint alanları.
Bu sayfa, sunucunun beyan ettiğini gösterir Yönetici siz olduğunuza göre, parmak izini ekibinize yayımlamak için idealdir. Tek başına bir doğrulama oluşturmaz: bağlantıyı ele geçiren biri kendi değerini geri gönderirdi. Koruyan şey, sunucunun gerçekten sunduğu parmak izi ile ona başka bir kanaldan (iç mesajlaşma, sözlü, ekip wiki'si) ilettiğiniz değeri her iş istasyonunun karşılaştırmasıdır. Komut satırı istemcisi zaten her ikisini de yapar ve ikisi farklı olduğunda sizi uyarır.

2. Sunucu günlüklerinden

Sunucu, parmak izini her başlatmada günlüklerine yeniden yazar. Bu yöntem, veri dizinini nereye koymuş olursanız olun çalışır:

# Linux (paquet .deb)
sudo journalctl -u uversion-server | grep "TLS fingerprint" | tail -1

# Docker
docker compose logs server | grep "TLS fingerprint" | tail -1

3. fingerprint dosyasında

Bu dosya sertifikanın yanına yazılır, yani config.toml dosyanızda göründüğü haliyle [tls] cert_path dizinine. Aşağıdaki yollar varsayılan değerlerdir: veri dizinini taşıdıysanız önce yapılandırmanızdaki cert_path değerini okuyun.

# Linux, dossier de donnees par defaut
sudo cat /var/lib/uversion/data/tls/fingerprint

# Windows
Get-Content "C:\ProgramData\uVersion\data\tls\fingerprint"

# Docker : chemin fixe par l'entrypoint, sur le volume de donnees
docker compose exec server cat /data/tls/fingerprint

İstemcide onaylama

İş istasyonu başına bir kez ve temelli. Yapılacak işlem araca göre değişir.

Masaüstü istemcisi

Oturum açma ekranını her zamanki gibi doldurun. Bu sunucuya ilk bağlanışta, sizi oturuma sokmak yerine bir Verify server identity penceresi açılır. Gösterilen parmak izini yöneticinizin paylaştığıyla karşılaştırın, eşleşiyorsa Trust this server düğmesine tıklayın: bağlantı hemen ardından kendiliğinden sürer. Farklıysa Cancel, ve nedenini sormaya gidin.

Masaüstü istemcisinin Verify server identity penceresi: sunucu adresi, tam olarak gösterilen SHA-256 parmak izi, sunucu sürümü ve TLS modu, ardından Cancel ve Trust this server düğmeleri.

CLI uversion

uversion trust https://uversion.example.com:8443          # interactif
uversion trust https://uversion.example.com:8443 --yes    # sans question (CI, script)
uversion trusted                                          # liste les serveurs epingles
uversion login <url>                                      # propose l'epinglage si besoin

uversion trust etkileşimlidir: ana makineyi, sunucu sürümünü, TLS modunu ve parmak izini gösterir, yöneticinin ilettiğiyle karşılaştırmayı hatırlatır, sonra bir y/N onayı bekler. Başka herhangi bir yanıt, hiçbir şey sabitlemeden iptal eder. --yes seçeneği bu soruyu atlar; bir betik veya sürekli tümleştirme içindir: kimse bakmadan sabitler, denetiminizdeki bir ağa saklayın.

uversion login, sunucu henüz sabitlenmemişken aynı onayı kendiliğinden sunar: bir iş istasyonunda genellikle öncesinde çalıştırılacak bir şey yoktur.

Unreal Engine eklentisi

Projeyi açmadan önce bir terminalde uversion trust <url> komutunu bir kez çalıştırın ya da önce masaüstü istemcisinden oturum açın: eklenti onun sabitlemesini (pin) izler. Editör içinde yerel bir iletişim kutusu ileride planlanıyor.

Rider eklentisi

Arka planda uversion kullanır. Bir kez uversion trust <url>, ve Rider geçer.

Parmak izi değişirse

İstemci bağlanmayı reddeder ve bunu açıkça bildirir. Refleksle yeniden onaylamayın: önce yöneticinizle, söz konusu bağlantıdan başka bir kanaldan doğrulayın. Üç olası açıklama vardır: sunucunun yeniden kurulması, sertifikanın kasıtlı olarak değiştirilmesi ya da iş istasyonlarınız ile sunucunuz arasına yerleşmiş biri. Açıklamayı aldıktan sonra:

  • Masaüstü istemcisi: uyarı iletişim kutusundaki Trust new fingerprint düğmesi.
  • CLI: uversion mistrust <url> ardından uversion login <url>.

Sertifikayı yeniden oluşturma

Sertifika varsayılan olarak on yıl geçerlidir: planlanacak hiçbir yenileme yoktur. Bir değişimi zorlamak için (şüphelenilen ele geçirilme, denetim gereği):

# Linux
sudo rm /var/lib/uversion/data/tls/cert.pem /var/lib/uversion/data/tls/key.pem
sudo systemctl restart uversion-server

# Windows
Remove-Item "C:\ProgramData\uVersion\data\tls\cert.pem"
Remove-Item "C:\ProgramData\uVersion\data\tls\key.pem"
Restart-Service uVersionServer

Sunucu başlatmada bir sertifika ve yeni bir parmak izi yeniden oluşturur. Ekibi uyarın ve parmak izini yeniden paylaşın: her iş istasyonu yeniden onaylamak zorunda kalacak.

Kendi sertifikanızı sağlama

İç PKI'niz ya da bir genel makam tarafından verilmiş kendi sertifikanızı yerleştirebilirsiniz. Etkinleştirilecek bir seçenek yoktur: başlatmada sunucu, [tls] cert_path ve [tls] key_path yollarında bulunan dosyaları yeniden kullanır ve parmak izini yeniden hesaplar. Bu yalnızca sunucunuzun bir DNS adı taşıması durumunda geçerlidir: hiçbir makam özel bir IP adresi için sertifika vermez.

Üç biçim kısıtı; her biri daha önce birinin bir akşamına mal olmuştur:

  • sertifika dosyası tam zinciri, yaprak önce olacak biçimde içerir (certbot'un fullchain.pem dosyası tam olarak bu biçimdedir);
  • özel anahtar şifrelenmemiş bir PEM'dir: bir parola cümlesiyle korunan anahtar çözülmez;
  • yeniden başlatmadan önce iki dosyayı da yerleştirin. Yalnızca birini bulursa sunucu durumu eksik sayar ve kalan dosyanın üzerine kendinden imzalı bir çift yeniden oluşturur.

Bunun iş istasyonları için değiştirdiği şey:

  • Tarayıcı: sunucuyu sertifikanın taşıdığı adla açtığınız sürece artık uyarı yok. IP adresiyle açtığınızda uyarı kalır.
  • Zaten sabitlenmiş iş istasyonları: parmak izi değişir, dolayısıyla her biri yukarıda anlatılan uyarıyı görür ve yeniden onaylamak zorunda kalır. Değişimden önce haber verin, yoksa tüm ekip aynı anda araya girme (interception) mesajıyla karşılaşır.
  • Yenilemeler: her yenileme parmak izini değiştirir ve bu töreni baştan başlatır; üstelik sertifika yalnızca sunucunun başlatılmasında yeniden okunur. 90 günlük genel bir sertifikayla bu, yılda altı kez tüm ekibin yeniden onaylaması demektir: bu maliyet giderilene kadar uzun bir süreyi yeğleyin.