Шрифт:
Интервал:
Закладка:
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, а также узнать побольше о безопасности данных и борьбе с ней.
Глава 11
Базовое конфигурирование сервера
11.1. Серверные технологии Linux
Каждая операционная система имеет свое «призвание». Операционную систему Windows NT Server предпочтительнее использовать как сервер рабочих групп сетей Microsoft. Система Novel! Netware лучше «смотрится» в роли файлового сервера и сервера печати. ОС UNIX первоначально разрабатывалась как интернет-сервер.
Средства для работы с Сетью встроены непосредственно в ядро этой операционной системы, а все необходимое программное обеспечение для организации сервера входит в состав дистрибутива. UNIX-система работает со всеми сетевыми протоколами (особенно с TCP/IP) лучше, чем любая другая операционная система для платформы Intel. Недаром говорят, что UNIX создан для сети, как птица для полета. Все перечисленные выше качества касаются также и ОС Linux.
Еще один важный аспект — документация системы. Все без исключения Unix-подобные системы очень хорошо документированы, и поэтому вся необходимая информация для настройки сервера, по сути, уже есть в вашем компьютере.
Где же применяются Linux-серверы? Прежде всего, это интернет-серверы. Вы можете спросить, почему именно Linux (Unix)? Почему не какая-нибудь другая операционная система, например, Windows NT (2000)? Давайте подумаем вместе. В начале 60-х годов по приказу Министерства обороны США была создана сеть Arpanet, которая и послужила в дальнейшем прототипом для создания Интернет. Как можно использовать NT-сервер в качестве интернет-сервера, если он был выпущен в 1996 году? А Интернет-то существовал с 70-х годов. И существовал именно благодаря Unix-системам. Так почему же не использовать для предоставления интернет-услуг родную операционную систему?
Многие правительственные и финансовые организации всего мира, например, Министерство иностранных дел Германии, используют Linux (SuSE Linux), а немецкий Dresdner Bank совместно с американской компанией CollabNet объявил о новой банковской информационной системе, построенной на основе Linux. И тут, как вы видите, дело не в деньгах — платить или не платить за Linux, а в заботе организаций о своей информационной безопасности и надежности своих серверов. Как объяснить клиенту, что его счет «будет закрыт», поскольку «программа выполнила недопустимую операцию»? Тут даже созданный журнал ошибок не поможет. Недавно открытый сайт президента России, к которому предъявляются повышенные требования надежности, безопасности и производительности, базируется именно на основе Red Hat Linux.
Второй отраслью применения Linux-серверов является создание кластеров для произведения параллельных вычислений. По определению кластер — это несколько компьютеров, объединенных вместе для совместного решения одной задачи. Объединение компьютеров, как правило, производится с помощью высокоскоростной сети. На сегодняшний день создано специальное программное обеспечение, позволяющее собрать кластер даже в домашних условиях, например, PVM (Parallel Virtual Machine).
Помимо всего вышеуказанного, существует еще множество направлений, где используются Linux-серверы: WWW-серверы, FTP-серверы, почтовики, шлюзы, можно даже эмулировать домен NT с помощью пакета Samba. При этом нужно учитывать то, что все необходимое программное обеспечение уже входит в ваш дистрибутив:
1. веб-сервер Apache
2. FTP-серверы wu-ftpd и ProFTPD
3. Агенты MTA (Mail Transfer Agant) sendmail и postfix
4. Поддержка сети Microsoft — пакет Samba
5. DHCP (Dynamic Host Configuration Protocol)-сервер, который используется для автоматического назначения IP-адреса рабочим станциям в сети
6. Прокси-сервер SQUID
7. Брандмауэр IpChains и/или IpTables
8. Сервер баз данных MySQL
9. DNS-сервер
10. Специальный прокси-сервер Socks5.
Подробно о настройке всех этих служб, а также о многом другом вы сможете прочитать в моей книге «Linux-сервер своими руками», третье издание которой вышло в 2005 году в издательстве «Наука и Техника».
11.2. Организация и состав Linux-сервера
Что такое сервер? С точки зрения пользователей сети, сервер — это удаленный компьютер, выполняющий некоторые функции, например, прием и отправку электронной почты. С точки зрения нас, администраторов, сервер — это программа, выполняющая определенные функции. Раз уж мы рассматриваем почтовый сервер, то на этом компьютере должна быть установлена специальная программа, которая будет отправлять и принимать сообщения.
Компьютер без этой программы (которую мы также будем называть сервером) — это просто рабочая станция. Мало просто установить операционную систему Linux, нужно еще установить программы-серверы, которые будут выполнять те самые функции, которых ждут от сервера.
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение