середа, 11 липня 2012 р.

Не работает в Linux chattr

Много статей в Интернете пестрят советами про chattr +s, который добавляет чуток безопасности, позволяя немного забыть про файловые шредеры. Видно авторы статей не проверяют работу бита +s, хотя в man chattr написано, что работа бита +s не гарантируется. Да и не работает бит +s до сих пор, хотя ядро линукс уже стало 3.5, а обещали в версии ядра 3.3 что будет работать.

Когда-нибудь в далёком будущем, возможно, secure bit заработает и тогда можно немного усилить безопасность и присвоить атрибут +s для каталога с важной информацией так:

sudo chattr +sR ~/Документы

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

  • не каждый использует shred -uz имя_файла для безопасного удаления файла, который сделает несколько итераций, заполняя старое содержимое случайными данными, и на прощание скроет свою работу, заполнив всё нулями.
  • в скриптах обычно используется rm, который просто удаляет файлы. Но можно сделать себе алиас на shred и удалять более безопасно.

Настоящий шредер лучше всего, но его нужно не забывать вызывать для удаления файла, а chattr +s работает "автоматом".

Нужно проверить на тестовом файле, что всё работает как надо и вы не сидите в неведении.

Создаём тестовый файл.

for i in {10001..10200}; do echo "$i test line" >> testfile.txt; done

Получаем информацию о файле, точнее о стартовом LBA адресе (begin_LBA).

sync && sudo hdparm --fibmap testfile.txt

Читаем данные со стартового LBA адреса файла, замените [begin_LBA] на свой из вывода предыдущей команды:

sync && sudo hdparm --read-sector [begin_LBA] /dev/sda

Заметьте что нужно использовать обобщённое имя, в моём случае /dev/sda, а не точное имя раздела, например /dev/sda2.

Теперь удалите файл.

rm testfile.txt

Сбросьте файловые буфера и синхронизируйте свою файловую систему.

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

Повторяем чтение со стартового адреса:

sync && sudo hdparm --read-sector [begin_LBA] /dev/sda

Вы должны видеть нули! Если вы видите, что-то отличное от нулей, то значит не работает бит +s - secure delete.

Нет ничего хуже, чем видимость безопасности!

Есть много параметров у chattr, один из них +i (неизменяемый = immutable), который не позволит удалить, переместить или переименовать файл даже root`у. Это бывает иногда полезно.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments