Jika Anda adalah pengguna tunggal pada sistem, dan tidak ada yang dapat mengakses komputer Anda secara wajar tanpa izin, maka Anda dapat memblokir akses dengan menggunakan perintah ini, sesuai jawaban Zanna :
sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt
Dalam hal ini, file hanya dapat dibaca dan / atau ditulis oleh root
pengguna. Ini dianggap "cukup aman" jika tidak ada yang dapat mem-boot komputer Anda tanpa izin Anda, atau mengangkat hard drive Anda. Kami menggunakan root
pengguna dalam hal ini, karena root
pengguna selalu dapat membaca file, bahkan jika mereka tidak memiliki izin. Dengan menggunakan pengguna root, kami menegaskan bahwa hanya satu pengguna yang dapat mengaksesnya.
Jika Anda ingin menandai file sebagai tidak dapat diubah dengan cara, bentuk, atau bentuk apa pun, Anda dapat menggunakan i
atribut untuk menandai file sebagai tidak dapat diubah . Dalam hal ini, izin file dikunci dan tidak dapat diubah dalam keadaan apa pun. Dengan demikian, Anda dapat melakukan perintah berikut untuk membuat file tidak dapat diubah, dan melindunginya dari penghapusan dan perubahan izin:
sudo chattr +i /my/secret/file.txt
Jika Anda ingin mengubahnya, ganti +i
dengan a -i
untuk membuka kunci file sementara. Lihat jawaban Rinzwind untuk tampilan yang lebih mendalam.
Sekarang, jika orang lain memiliki akses ke komputer Anda (baik sudo
akses jarak jauh atau segala bentuk akses fisik), ini berantakan secara instan. Seorang penyerang dapat menggunakan root
kekuatan untuk membaca file Anda, memasukkan Live USB, atau hanya menarik hard drive Anda.
Karena itu, kita perlu mengenkripsi file. Saya pribadi lebih suka menggunakan "wadah file," sehingga Anda dapat lebih banyak menempel di sana dan membuatnya tumbuh sesuai kebutuhan. chattr +i
masih disarankan agar file tidak terhapus secara tidak sengaja (atau diubah). Terakhir, jika Anda menggunakan gambar yang dienkripsi, Anda dapat mengatur izin untuk membiarkan orang lain mengakses subset file yang sangat terbatas saat disk dipasang, menjadikannya baik untuk server. Panduan ini awalnya tersedia di sini , dan disesuaikan untuk digunakan di sini.
Pertama, Anda ingin membuat image disk untuk Anda gunakan. Dalam contoh ini, kita akan membuatnya 5 GB.
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
Kemudian, kami perlu membuat gambar Anda dienkripsi:
sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img
Anda akan memiliki pilihan di sini untuk memasukkan kata sandi enkripsi pilihan Anda. Setelah ini selesai, kita perlu mengekspos perangkat blok mentah:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
Saat ini, kami memiliki wadah file yang didekripsi, tetapi tidak ada sistem file, dan itu sama baiknya dengan tidak berguna. Mari kita perbaiki itu:
sudo mkfs.ext4 /dev/mapper/my-secret-device
Sekarang, kita membutuhkan tempat untuk memasang partisi baru kita. Dalam hal ini, saya akan meletakkannya di /crypt
. Saya pengguna 1000, jadi, saya akan mengatur partisi saya hanya mengizinkan saya (dan root) untuk membaca / menulis darinya.
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Sekarang, saya dapat menggunakan alat file saya untuk menavigasi /crypt
dan saya dapat menyimpan semua file sensitif saya di sana. Setelah selesai, saya harus melepas dan mengenkripsi ulang partisi saya.
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Sekarang, saya akan mengatur partisi yang sesuai pada file gambar saya, sehingga hanya saya dan root yang dapat mengaksesnya, dan itu tidak dapat diubah lagi.
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Setiap kali saya ingin membuka file ini untuk membaca, saya hanya perlu menjalankan dua perintah ini, yang saya dapat dengan mudah alias:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
Data terenkripsi saya akan tersedia di /crypt
dan itu akan tetap hanya-baca dan hanya dapat diakses oleh saya dan root.
Jika saya ingin mengubah file, saya perlu mengubah izin dan kemudian me-mount:
sudo chattr -i ~/NSA-Data-Dump-20161012.img
chmod 700 ~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro
Sekarang, Anda perlu berhati-hati di sini karena jika pengguna memiliki root pada sistem mereka, mereka dapat memodifikasi / menghancurkan partisi terenkripsi Anda, menjadikannya tidak berguna. Mereka juga dapat mencuri data dari drive, tetapi hanya ketika terbuka. Namun, mereka tidak dapat mencuri data atau bahkan melihat bahwa data ada tanpa Anda membukanya secara eksplisit. Karena itu, tugas Anda adalah memastikan bahwa sistem Anda cukup aman untuk tidak memiliki pengguna root daring saat Anda membuka volume terenkripsi Anda.
TL; DR :
Buat brankas:
dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mkfs.ext4 /dev/mapper/my-secret-device
Isi lemari besi:
sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
Kunci lemari besi:
sudo umount /crypt
sudo cryptsetup luksClose my-secret-device
Bekukan lemari besi:
chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/NSA-Data-Dump-20161012.img
Buka brankas:
sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000,ro