Linux için şifrelenmiş salt okunur bir dosya sistemi var mı?


14

Ben sadece yazma modunda monte edilebilen Linux için şifrelenmiş bir dosya sistemi arıyorum, yani bir şifre vermeden monte edebilmelisiniz, ancak yine de dosyaları yazabiliyor / ekleyebiliyorsunuz, ancak ne yapmalısınız? yazdığınız dosyaları veya zaten dosya sistemindeki dosyaları okuyamazsınız. Dosyalara erişim yalnızca dosya sistemi parola ile bağlandığında verilmelidir. Bunun amacı, dosyaların kendiliğinden açıklanmasına gerek kalmadan yalnızca yazılı olan, ancak hiçbir zaman değiştirilmeyen günlük dosyaları veya benzer veriler yazmaktır. Dosya izinleri burada yardımcı olmuyor çünkü sistem tamamen tehlikeye atılmış olsa bile verilere erişilemez olmasını istiyorum.

Linux'ta böyle bir şey var mı? Yoksa, şifrelenmiş günlük dosyaları oluşturmak için en iyi alternatif ne olabilir?

Şu anki geçici çözümüm, verilerin çalışmasını basitçe gpg --encryptoluşturuyor, ancak bu çok hantal, dosya sistemine bir bütün olarak kolayca erişemediğiniz için, her dosyayı gpg --decryptmanuel olarak yönlendirmeniz gerekiyor.


3
İstediğini yapabileceğine inanıyorum syslog. Bu, günlük mesajlarının oluşturulmasını, onları depolayan sistemden ayırır, böylece mesajı oluşturan uygulamaların depolandıkları yere erişimleri olmaz. Günlükler ayrı bir sunucuda bile olabilir (ve sıklıkla).
mpez0

Bir adım daha ileri gitmek ve sadece onu oluşturan süreç için değil, hatta kök için bile veriye erişilememek istiyorum. Bu, gpg ile ortak anahtar şifrelemesinin yaptığı şeydir, ancak dosya sistemi düzeyinde bunu yapmanın bir yolunu arıyorum.
Grumbel

Yanıtlar:


4

... sistem tamamen tehlikeye atılmış olsa bile verilere erişilememesini istiyorum.

Bu mümkün değil. Sistem tamamen tehlikeye atılmışsa şifreleme anahtarları da dahil olmak üzere üzerindeki "tanım gereği" her şeye erişilebilir.

Şifreleme sistem güvenliğinin aşılmasına karşı korunmada işe yaramaz, sistem çalışırken verileri şifreleme / şifresini çözme anahtarları şifrelenmiş verilerle aynı sistemdeyse. Örneğin, bir LUKS dosya sisteminiz varsa ve birisi sisteminize kök erişimi ederse, anahtarları RAM'den çekmek mümkündür - çünkü dosya sisteminin şifresini çözmek için RAM'de yaşamak zorundadırlar. Sizin durumunuzda, bir dosyayı her şifrelediğinizde parolanızı yazıyorsanız, korunursunuz (sisteminizde bir keylogger bulunmadığını varsayarak), aynı durumdaysanız ve sisteminizi tehlikeye atan bir kişi bunu bulabilir ve tüm şifrelemenizi geri alın.

Korumak istediğiniz verileri sistem dışında göndermeniz gerekir + kesinlikle kökün ona ulaşmasını istemiyorsanız, sistemdeki bir aracı ortama yazmayın. rsysloggünlüğe kaydetme konusunda bunu açıkça destekler ve OpenVPN ile kaynak ve lavabo arasındaki bağlantıyı şifreleyebilirsiniz stunnel. Eminim başka "tek yönlü" transfer seçenekleri var.



"Dosya sisteminin şifresini çözmek için RAM'de yaşamak zorunda oldukları için" bu, LUKS için özellikle doğru olabilir, ancak genel olarak değil: asimetrik kripto tam olarak bu amaç için tasarlanmıştır (ortak anahtarı tutan biri şifreleyebilir, ancak şifresini çözemez)
Clément

3

Yanlış yöne gidiyormuşsun gibi geliyor bana. Yazabileceğiniz ancak okuyamayacağınız bir dosya istiyorsanız, dosya izinleri aradığınız şeydir.


$ touch log
$ chmod 222 log
$ echo test > log
$ cat log
cat: log: Permission denied

Tabii ki, bu dosya şifreli bir dosya sisteminde olabilir.


Dosya sistemini, kullanıcıların izinleri değiştirmesine izin vermeyerek belirli bir umask ile bağlayabilirsiniz.
nos

Ve sadece dosyanın (veya süper kullanıcının) sahibi izni değiştirebilir.
gorilla

Bence OP kendisini saldıran bir saldırgana karşı bile korumaya çalışıyor.
Clément

1
umask 0477 && touch file && echo test > file && cat file

yararlı olabilir. Geçerli işlemde oluşturulan tüm dosyalar 0200 moduna sahip olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.