Yetkiyi geri aldım ama hâlâ içeride: oturum ile yetki aynı şey değildir
Kullanıcının iznini kaldırdınız, hesabı kapattınız, ama o hâlâ iş yapabiliyor. Bozulan bir şey yok: erişimi kaldırmak ile oturumu bitirmek iki ayrı işlemdir.
AtlasPVE ·
Bu madde şunları karşılıyor
- proxmox kullanıcıyı sildim hala giriş yapıyor
- proxmox yetki kaldırdım hala erişiyor
- proxmox sürekli çıkış yapıyor
- proxmox oturum süresi ne kadar
- proxmox api token iptal etme
Bir kullanıcının iznini kaldırdınız. Belki hesabını tamamen kapattınız. Sonra fark ettiniz ki o kişi hâlâ bir şeyler yapabiliyor.
Bozulan bir şey yok. Giriş yapmak ile yetkili olmak iki ayrı andır ve aralarında bir boşluk vardır.
Giriş bir kez olur, yetki her seferinde sorulur
Giriş yaptığınızda sistem size bir bilet verir. Bilet şunu söyler: bu kişi kim olduğunu kanıtladı ve bu bilet şu saate kadar geçerli.
Yetki ise ayrı bir sorudur ve her istekte tekrar sorulur. Ama pratikte pek çok sistem, hız için, giriş anındaki izin haritasının bir kopyasını alır ve bir süre onu kullanır.
Buradan iki gecikme doğar.
Birincisi: izni kaldırdığınızda, açık duran bir oturum o kopyayı taşımaya devam edebilir. Değişiklik ancak oturum yenilendiğinde ona ulaşır.
İkincisi ve daha önemlisi: kullanıcıyı silmek ya da kapatmak, elindeki bileti yırtmaz. Bilet kendi kendine yeterlidir ve süresi dolana kadar geçerli kalır.
Kural: erişimi kaldırmak, oturumu bitirmek değildir
Bunlar iki ayrı işlemdir ve yalnızca birincisini yapmak arkada bir pencere bırakır.
Pencere sonsuz değildir, bilet bir gün geçerli değildir. Ama sıfır da değildir, ve acil bir durumda "biraz sonra kapanacak" cevabı yeterli olmaz.
Biri ayrıldığında ya da bir parola şüpheliyken
Sırayla üç şey yapın.
İzni kaldırın. Gerekliyse de hesabı kapatın.
Parolayı değiştirin. Bu, elindeki biletin yerine yenisini alma yolunu kapatır. Yalnız izni kaldırmak bunu yapmaz.
Erişim jetonlarını ayrıca kaldırın. En sık atlanan adım budur. Jeton bir oturum değildir: kendiliğinden sona ermez, siz silene kadar yaşar. Bir kullanıcının parolasını değiştirmek onun jetonlarını geçersiz kılmaz. Kullanıcıyı silerken jetonlarının ne olduğunu ayrıca kontrol edin.
Ve bir yanılgıyı da kapatalım: iki adımlı doğrulama burada size yardım etmez. O, giriş anını korur. Zaten açılmış bir oturumu ilgilendirmez.
Ters yön: neden sürekli çıkış yapıyorum
Aynı mekanizmanın öbür yüzü.
Biletin ömrü sınırlıdır ve arayüz siz sekmedeyken onu düzenli olarak yeniler. Sekmeyi kapatıp saatler sonra döndüğünüzde yenileme olmamıştır, bilet ölmüştür, yeniden giriş istenir. Bu bir arıza değil.
Az bilinen ikinci sebep daha ilginç: makinenin saati. Bilet bir zaman damgası taşır. Sunucunun saati kayarsa, henüz üretilmiş bir bilet "gelecekte" ya da "çoktan geçmiş" görünebilir. Belirti şaşırtıcıdır: parola doğrudur, giriş kabul edilir gibi olur, ve hemen ardından oturum düşer. Kimlik tarafında saat aramak akla gelmez, ama arayın.
Atlas ne yapıyor
Atlas'ta tarayıcıya giden çerez gerçek bilet değildir. Tarayıcı yalnızca anlamsız, rastgele bir kimlik taşır; asıl bilet sunucuda durur.
Farkı somut: bir tarayıcı açığı çerezi okusa bile eline biletin kendisi geçmez, yani onu başka bir yere taşıyıp orada kullanamaz. Yapabileceği tek şey, o oturum yaşarken o tarayıcıdan iş yapmaktır. Bu, sıfır risk demek değil ama tehdidin kapsamını daraltır.
Açık oturumlar diske yazıldığı için ürün güncellendiğinde kimse dışarı atılmaz. Yazma işlemi bilerek tek adımda yapılıyor: dosya yarım yazılsaydı, okuma tarafı onu tolere etse bile bütün açık oturumlar düşerdi.
Asıl anlatmaya değer olan, burada ölçülerek bulunan bir kusur.
Süresi geçmiş oturum kayıtları yalnızca bellekten temizleniyordu, dosyadan değil. Canlı bir makinede bakıldı: dosyada süresi geçmiş beş kayıt duruyordu ve her birinin içinde bir bilet vardı. Yeni bir giriş olana kadar da orada kalacaklardı, çünkü başka hiçbir şey o dosyayı yazmıyordu.
Kodun niyeti zaten onları tutmamaktı. Eksik olan tek şey yazma adımıydı.
Buradan çıkan ders, güvenlik kodu yazan herkes için geçerli: unutmanın iki yeri vardır. Bellekten silinen bir şey diskten silinmiş olmaz, ve ikisinden uzun yaşayan hep disktekidir. Bir şeyin saklanmaması gerektiğine karar verdiğinizde, ikinci soru hep aynıdır: nerede saklanıyor?
Kaynaklar
Proxmox'un kendi belgeleri. İngilizce, ve bu konuda son sözü onlar söyler.