Ders 4.63: systemd kimlik bilgileriyle servis sırları
Bir hizmete veritabanı parolasını vermenin en hızlı yolu birim dosyasına bir Environment= satırı eklemektir ve bu aynı zamanda en çok sızdıran yollardan biridir: birim dosyaları herkesçe okunabilir, systemctl show değeri her kullanıcıya yazar ve süreç ortamı her alt sürece ve her çökme raporuna kopyalanır. systemd kimlik bilgileri bir sırrı tek bir hizmete /run/credentials altında yalnızca o hizmetin okuyabildiği bir dosya olarak verir ve diskte şifreli tutabilir. Laboratuvarda faturalama API'sinin parolasını ortada buluyor, onu değiştiriyor, yenisini systemd-creds ile şifreli saklıyor ve LoadCredentialEncrypted= ile yüklüyorsun.
17 dk
Bu derste öğreneceklerin
- Environment= ve /proc/PID/environ yoluyla açığa çıkan sırları bulmak
- Bir birim dosyasını ve systemctl show çıktısını kimin okuyabildiğini açıklamak
- Bir sırrı systemd-creds ile şifrelemek
- Onu bir ek parçada LoadCredentialEncrypted= ile yüklemek ve Environment='yi sıfırlamak
- Kimlik bilgisi dosyasını ve yeni ortamı doğrulamak
Temel terimler
- Environment=
- Değişkenleri hizmetin ortamına koyan birim ayarı; systemctl show aracılığıyla her kullanıcıya görünür.
- Kimlik bilgisi (credential)
- systemd'nin tek bir hizmete /run/credentials/UNIT içinde dosya olarak verdiği sır.
- systemd-creds encrypt
- Bir sırrı ana makine anahtarıyla ya da TPM ile mühürler; dosya başka makinede işe yaramaz.
- LoadCredentialEncrypted=
- Hizmet başlarken bir kimlik bilgisi dosyasının şifresini çözer ve hizmete verir.
- Sır döndürme
- Sızmış olabilecek bir sırrı yenisiyle değiştirmek; eski değeri gizlemek yetmez.
← Bir ad nasıl çözümlenir · Tüm dersler · İzin listelerine ve IOC'lere karşı özet taramaları →