Wiki
TLS parmak izi
Sunucu kurulumda kendinden imzalı bir sertifika oluşturur. Her istemci ilk bağlantıda parmak izini onaylar.
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.
İş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.
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.
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.
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ındanuversion 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.pemdosyası 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.