Чтение онлайн

ЖАНРЫ

Linux: Полное руководство

Аллен Питер В.

Шрифт:

Для организации массива уровня RAID 1 нужно выделить два раздела и изменить тип этих разделов на Linux raid autodetect. Обратите внимание, я написал «два раздела», а не «два диска», так как конфигурируется программный контроллер. Конечно, лучше, чтобы эти разделы располагались на разных дисках, в противном случае от нашего массива будет мало толку.

Если ваше ядро поддерживает RAID, при загрузке системы вы должны увидеть примерно следующее:

md driver 0.90.0 MAX_MD_DEVS=256, MAX_REAL=12

raid5: measuring checksumming speed

raid5: MMX detected, trying high-speed MMX checksum routines

 pII_mmx : 980.694 MB/sec

 p5_mmx : 999.744 MB/sec

 8regs : 753.237 MB/sec

 32regs : 444.246 MB/sec

using fastest function: p5_mmx (999.744 MB/sec)

md.c: sizeof(mdp_super_t) = 4096

Partition check:

hda: hda1 hda2 < hda5 hda6 hda7 hda8 >

autodetecting RAID arrays

autorun ...

... autorun DONE.

Теперь

отредактируйте файл
/etc/raidtab
.

Листинг 10.2. Примерный файл /etc/raidtab для уровня 1

# Имя устройства RAID

raiddev /dev/md0

# Уровень

raid-level 1

chunk-size 8

persistent-superblock 1

# Число дисков в массиве

nr-raid-disk 2

# Число дисков, которые будут использоваться в качестве замены,

# если один из дисков выйдет из строя

nr-spare-disk 0

# Определяем первый диск RAID

device /dev/hdb1

raid-disk 0

# Определяем второй диск RAID

device /dev/hdc1

raid-disk 1

После этого нужно создать устройство

/dev/md0
, для чего выполните следующую команду:

# mkraid /dev/md0

В некоторых случаях нужно будет использовать дополнительные параметры, о которых вы можете прочитать в справочной системе (

man mkraid
). Если инициализация прошла успешно, в файле
/proc/mdstat
вы увидите примерно следующее:

Personalities: [raid1]

read_ahead 1024 sectors

md0: active raid1 hdc1[1] hdb1[0]

10.6. Как найти, спрятать и безвозвратно уничтожить данные

Просмотреть содержимое ASCII-файла нетрудно, но что, если вам нужно узнать, что находится в двоичном файле неизвестного формата? Можно использовать шестнадцатеричный просмотрщик hexdump, который в зависимости от указанных ключей выводит содержимое файла в десятичном (-d), восьмеричном (-о) или каноническом ASCII+шестнадцатеричном (-С) виде:

$ hexdump -С /sbin/init | less

...

0000013001 00 00 00 47 4e 55 00 00 00 00 00 02 00 00 00 |...GNU.........|

...

Но таким способом

искать в двоичном файле текстовые фрагменты не слишком удобно. Утилита strings извлекает из файла последовательности печатных символов длиной не меньше указанной (по умолчанию 4 символа). В качестве файла можно указать весь дисковый раздел:

$ strings -n 18 /dev/hda4 | grep "образец для поиска"

Особенности файловой системы ext2 подсказывают, что данные можно хранить и не в файлах. В самом деле, файловая система адресует блоки размером 1, 2 или 4 Кб, но что если «хвост» файла не занимает блока целиком? Это место, «резерв» (slack), остается неиспользованным. Существуют утилиты, позволяющие записывать данные в «резервы», читать эти данные и затирать их, если необходимо. Эти данные будут невидимы для файловой системы, недоступны для обычного использования и необнаружимы средствами проверки целостности файла (integrity checkers). Таким способом можно хранить секретные данные.

Одна из таких утилит — bmap (

ftp://ftp.scyld.com/pub/forensic_computing/bmap
).

Например, вот как эта команда записывает данные в «резерв», созданный файлом /

etc/passwd
:

# echo "здесь спрятана строка" | bmap --mode putslack /etc/passwd

А вот так эта команда показывает данные:

# bmap --mode slack /etc/passwd

getting from block 887048

file size was: 9428

slack size: 2860

block size: 4096

здесь спрятана строка

Для затирания «резерва» (удаления скрытой информации) используется команда:

# bmap --mode wipeslack /etc/passwd

Предотвратить восстановление удаленных файлов с конфиденциальной информацией можно, забив нулями освободившиеся блоки. Самый простой способ сделать это состоит в использовании стандартной Linux-утилиты dd. Вытереть пустое место на разделе

/home
можно так:

$ dd if=/dev/zero of=/home/bigfile

$ sync

$ rm /home/bigfile

$ sync

Утилита shred из пакета

coreutils
, входящего в подавляющее большинство дистрибутивов Linux, затирает файл перед его удалением, несколько раз записывая на его место случайные данные. К сожалению, ее применение имеет смысл не на всех файловых системах, а только на тех, которые переписывают файл «на месте». Файловые системы со включенным журналированием (п. 2.2.2), избыточностью (RAID), кэширующие и сжатые не позволяют удалить файл без возможности его восстановления.

Остатки конфиденциального файла могут уцелеть в аварийном дампе памяти, страницах памяти, выгруженных на диск (раздел подкачки), так что в целях дополнительной безопасности следует затирать весь раздел

/swap
и (на всякий случай) раздел с
/tmp
. Утилита shred разрешает указывать в качестве файла, подлежащего затиранию, файл устройства (например,
/dev/hda4
).

На сайте The Hacker's Choice (

www.thc.org
) можно скачать пакет THCSecureDelete, а также узнать побольше о безопасности данных и борьбе с ней.

Поделиться с друзьями: