Як зробити файли захищеними?


24

Як зробити якийсь файл, що містить важливі захищені дані? Наприклад, припустимо, що у мене є важливі файли, чи є якийсь метод або стратегія, щоб зробити такий файл більш захищеним на Ubuntu? Я навіть хочу, щоб деякі файли запитували пароль, коли хтось намагається його відкрити. Чи впливає це на версію Ubuntu з точки зору політики безпеки? Чи можу я використовувати будь-який алгоритм шифрування зовні? З повагою


що ти маєш на увазі під захисним? Ви хочете ускладнити зміни або видалення файлу?
Занна

Захисний в сенсі, ніхто не може отримати доступ до нього без мого дозволу або навіть легко видалити будь-які зміни. АБО потрібен пароль, щоб відкрити його хитромудро.
Avani badheka

ти маєш на увазі просто chown rootі chmod go-rwx?
njzk2

Щоб вимагати пароль, використовуйте зашифрований диск або файл зображення диска, який не виходить автоматично.
Джошуа

Відповіді:


32

Найкращий у вас метод chattr +i {file}. Це встановлює незмінний атрибут, і тоді файл не може бути змінений, видалений, перейменований або жорстке посилання, створене будь-ким, включаючи root.

Єдина людина, яка може редагувати файл, - це root. (S) він повинен скасувати це, видаливши незмінний біт: chattr -i {file}і потім може зробити все, що потрібно з файлом. Встановлення + i знову блокує файл від будь-якої модифікації.

Це не завадить форматувати розділ, де зберігається файл. Це запобіжить крадіжку файлу.


Ви можете навіть зробити це на повній точці монтажу, якщо хочете:

chattr +i -R /discworld

зробить весь "світ диска" і все, що в ньому, незмінним ( chattr -i -R /discworldскасувати його;))



Я хотів би змінити, видалити, перейменувати і т.д. можна лише під корінь. Навіть якщо root не може змінитися, він буде читати лише для всіх, чого я не хочу в своїй справі.
Avani badheka

@Avanibadheka root може зробити chattr -i перед редагуванням, а потім зробити chattr + i знову, щоб заблокувати його.
Rinzwind

1
Ви також можете назавжди (до перезавантаження) видалити можливість змінити будь-який незмінний біт із системи.
rackandboneman

Це навіть неможливо скопіювати? Отже, файл cat> вихід або dd не працюють?
Конерак

1
Незмінний файл можна скопіювати (якщо він не встановлений як chmod a-r). Дивіться, наприклад, мій журнал терміналів, наприклад, тест.
Руслан

18

Не роблячи нічого особливого, ви можете ускладнити читання, зміну або видалення файлу іншим, видаляючи дозволи для всіх, крім власника. Зробіть root власником файлу і помістіть його всередину каталогу, до якого тільки root має доступ ...

sudo mkdir /home/secret     #this directory will be owned by root, no need to chown
sudo chmod 700 /home/secret

перемістіть ( sudo mv file /home/secret) свій файл туди і зробіть

sudo chown root: /home/secret/file
sudo chmod 600 /home/secret/file

chmodі chownприймати кілька аргументів: chmod 600 file1 file2абоchmod 600 file*

крім цього, використовуйте шифрування ...


3
Можливо, простіше зрозуміти, якщо ви використовуєте дозволи на використання символів замість восьмери. Тож було б, наприклад, "chmod go-rwx" видалити права читання, запису та виконання дозволів з групи та інших. Дивіться сторінку chmod man.
jamesqf

12

Досить безпечним способом захисту документів є шифрування (за умови, що ви знищите оригінал та правильно зберігаєте зашифровану версію).

Дозволи (як це запропоновано в інших відповідях) можна обійти (див. Це ).

Тому рекомендую правильно зашифрувати файл. Ось як:

(Про метод графічного інтерфейсу див. У кінці цієї відповіді)

Переконайтесь, що ви gpgвстановили.

Наприклад, для шифрування файлу з назвою Important_File.txtвикористовуйте

$ gpg -c Important_File.txt

Тепер введіть пароль (це буде використано пізніше, коли потрібно буде його прочитати).

Тепер ви отримаєте файл, наприклад, ім'я оригіналу та .gpgрозширення Important_File.txt.gpg.

Видаліть оригінальний файл і збережіть .gpgверсію. Отримати оригінальний файл з диска може бути просто, якщо ви не використовуєте захищенийshred утиліту (яка все ще не працюватиме на SSD-накопичувачах або SD-картах):

$ shred Important_File.txt

Тепер ми маємо лише Important_File.txt.gpgз собою.

Щоразу, коли вам потрібно це прочитати, просто

$ gpg Important_File.txt.gpg

Потім введіть пароль, який ви встановили в першій команді. Ви отримаєте оригінал Important_File.txt.

ПРИМІТКА . Це захистить лише вміст зашифрованого .gpgфайлу від читання будь-яким (використовуючи шифрування), але кожен може його видалити, скопіювати або перемістити ! Для базового захисту від цього використовуйте методи дозволу інших відповідей у ​​зашифрованому .gpgфайлі.

Метод графічного інтерфейсу (GUI)

Встановіть додаток Seahorse.

Потім це можна зробити з програми Files:

Скріншот шифруючих файлів GNOME


1
"Єдиний безпечний спосіб захисту документів - шифрування" Я не згоден. Акт шифрування не є надійним, що робить його захищеним. Це - соціальна частина після цього. Якщо ви створюєте команду readme поруч із зашифрованим файлом із написом "це пароль: 11212324234", ви можете зашифрувати все, що потрібно захистити, це не так.
Rinzwind

1
@Rinzwind Відредаговано. У будь-якому випадку, з таким рівнем дурості нічого не забезпечено.
UniversallyUniqueID

Оновлено в очікуванні ;-)
Rinzwind

Зауважте, що ви можете отримати простий вихідний незашифрований файл, якщо ви видалите його з пилу ( rmабо видалите з файлового менеджера). Вам потрібно буде перезаписати його, щоб зробити його неможливим, наприклад, використовуючи shred. Це також марно на SSD та флеш-накопичувачі, хоча ...
Байт командир

@ByteCommander Спасибі, я додав це до відповіді.
UniversallyUniqueID

9

Просто встановіть дуже суворий дозвіл 600, щоб тільки власник міг читати та писати його (якщо вам потрібні дозволи на виконання, це було б 700).

Ви також можете це зробити графічно - просто клацніть правою кнопкою миші на файл, виберіть Properties > Permissions > Setі встановіть всі, але на ownerполе ні до чого.

Дивіться малюнок як приклад:

фото


Гей, я думаю, що ваша відповідь отримала б користь від скріншота, який показує, як це зробити з графічним інтерфейсом.
grooveplex

Готово, дякую :) (але моя система є італійською мовою ...)
dadexix86

@Zanna гарне спостереження (я змінив відповідь)
dadexix86

8

Якщо ви єдиний користувач у системі, і ніхто не може обґрунтовано отримати доступ до вашого комп'ютера без ваших дозволів, ви можете просто заблокувати доступ за допомогою цієї команди відповідно до відповіді Zanna :

sudo chown root:root /my/secret/file.txt
sudo chmod 600 /my/secret/file.txt

У цьому випадку файл може читати та / або записувати лише rootкористувач. Це вважається "досить безпечним", якщо ніхто не може завантажувати ваш комп'ютер без вашого дозволу або піднімати ваш жорсткий диск. У rootцьому випадку ми використовуємо користувача, оскільки rootкористувач може завжди читати файли, навіть якщо вони не мають дозволу. Використовуючи root користувача, ми застосовуємо це лише один користувач може отримати доступ до нього.

Якщо ви хочете позначати файл як незмінний будь-яким способом, формою чи формою, ви можете використовувати iатрибут, щоб позначити файл як незмінний . У цьому випадку дозволи файлу заблоковані і не можуть бути змінені ні за яких обставин. Тим самим ви можете виконати таку команду, щоб зробити файл незмінним та захистити його від видалення та зміни дозволу:

sudo chattr +i /my/secret/file.txt

Якщо ви хочете змінити його, замінити +iз , -iщоб розблокувати файл тимчасово. Дивіться відповідь Rinzwind для більш глибокого перегляду.

Тепер, якщо інші люди мають доступ до вашого комп'ютера (віддалений sudoдоступ або будь-яка форма фізичного доступу), це моментально розпадається. Зловмисник може використовувати rootповноваження, щоб прочитати файл, вставити живий USB або просто витягнути жорсткий диск.

Тому нам потрібно зашифрувати файл. Я особисто вважаю за краще використовувати "контейнери для файлів", щоб ви могли більше вставляти туди і змусити її рости по мірі необхідності. chattr +iвсе-таки рекомендується, щоб файл не був випадково видалений (або змінений). Нарешті, якщо ви використовуєте зашифроване зображення, ви можете встановити дозволи, щоб інші могли отримати доступ до дуже обмеженого підмножини файлів, коли диск встановлений, що робить його гарним для сервера. Цей посібник спочатку був доступний тут і був адаптований для використання тут.

По-перше, ви хочете створити образ диска для свого використання. У цьому прикладі ми зробимо це 5 Гб.

dd if=/dev/zero bs=1M count=5000 of=~/NSA-Data-Dump-20161012.img

Потім нам потрібно зробити ваше зображення зашифрованим:

sudo cryptsetup luksFormat ~/NSA-Data-Dump-20161012.img

Тут ви будете мати вибір, щоб ввести бажаний пароль шифрування. Після цього нам потрібно відкрити блок необроблених блоків:

sudo cryptsetup luksOpen ~/NSA-Data-Dump-20161012.img my-secret-device

Зараз у нас є розшифрований контейнер для файлів, але файлової системи немає, і це так само непотрібно. Давайте виправимо це:

sudo mkfs.ext4 /dev/mapper/my-secret-device

Тепер нам потрібно місце для монтажу нашої нової перегородки. У цьому випадку я буду це робити /crypt. Я користувач 1000, тому я збираюся встановити свій розділ, щоб дозволити мені (і root) читати / писати з нього.

sudo mkdir /crypt
sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000

Тепер я можу використовувати свій інструмент файлів для навігації /cryptі можу зберігати там усі свої чутливі файли. Щойно я закінчу, мені потрібно буде відключити і зашифрувати свій розділ.

sudo umount /crypt
sudo cryptsetup luksClose my-secret-device

Тепер я збираюся встановити відповідні розділи для мого файлу зображень, таким чином, щоб до нього могли отримати доступ лише я та root, і що це більше не можна змінювати.

chmod 400 ~/NSA-Data-Dump-20161012.img
sudo chattr +i ~/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

Мої зашифровані дані будуть доступні на /crypt і вони залишатимуться лише для читання і доступні лише мені та root.

Якщо я хочу змінити файл, мені потрібно змінити дозволи та встановити:

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

Тепер вам потрібно бути обережними, тому що якщо користувач має root на своїй системі, він може змінювати / знищувати ваш зашифрований розділ, роблячи його марним. Вони також можуть красти дані з накопичувача, але лише тоді, коли він відкритий. Однак вони не можуть вкрасти дані або навіть побачити, що ці дані існують, не відкривши їх явно. Таким чином, ваш обов’язок переконатися, що ваша система є достатньо захищеною, щоб не було користувачів мережі root під час відкриття зашифрованого тома.


TL; DR :

  1. Зробіть оберіг:

    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
    
  2. Заповніть сховище:

    sudo mkdir /crypt
    sudo mount /dev/mapper/my-secret-device /crypt -o umask=0700,gid=1000,uid=1000
    
  3. Замкніть склепіння:

    sudo umount /crypt
    sudo cryptsetup luksClose my-secret-device
    
  4. Заморозити сховище:

    chmod 400 ~/NSA-Data-Dump-20161012.img
    sudo chattr +i ~/NSA-Data-Dump-20161012.img
    
  5. Відкрити сховище:

    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
    

Звичайно, користувач із кореневим доступом може також замінити cryptsetupте, що реєструє будь-які введені паролі ...
Хаген фон Ейтцен

@HagenvonEitzen Так, на комп'ютерах немає нічого такого, як "справді безпечний". Там є момент, коли ви проводите лінію.
Каз Вулф

7

Ви можете використовувати encfs для шифрування каталогу .

В основному вам потрібно створити 2 каталоги: 1, в якому будуть зберігатися зашифровані дані, і 1, де ви отримаєте доступ до цих даних:

mkdir ~/.encrypted
mkdir ~/private

Потім виконайте виконання (вам потрібно виконувати цей рядок щоразу, коли ви хочете 'змонтувати' каталог):

encfs ~/.encrypted/ ~/private/

Якщо ви не знаєте більше про це, просто натисніть ENTER щоб перейти зі стандартними налаштуваннями (запитували лише перший раз).

Потім введіть свій пароль, і він буде встановлений.

До ваших даних безпечно буде доступний лише ваш користувач ~/private/(ви можете майже ігнорувати їх~/.encrypted )

Щоб відключити його:

sudo umount ~/private/

або

fusermount -u ~/private/

Просто як це.


3

Ви можете зашифрувати дані за допомогою криптовалюти, що дійсно є дуже хорошим додатком і може забезпечити безпеку вашого файлу. Ви можете встановити його за допомогою:

sudo apt-get update
sudo apt-get install cryptkeeper

Зазвичай я рекомендую вам зашифрувати папку з іменем, починаючи з . оскільки розміщення її перед назвою файлу приховає її. Це невелика хитрість, але вона працює.

Щоб приховати папку, використовуйте Ctrl+ hабо навпаки.


1
Клавіш Ctrl + h застосовується для якої програми? Це lsточно не буде працювати .
Мелебій

Ctrl-H принаймні працює для Наутілуса (і вилки його, як Немо). Щодо інших файлових менеджерів, я не можу сказати. Під час використання lsви можете використовувати -aперемикач для показу всіх (тобто включаючи прихованих) файлів.
s3lph
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.