Это детально рассмотрено в книге "Practical Unix and Internet Security", но я кратко изложу основные положения. Кто-то перезагружает Ваш сервер со специально подготовленной дискеты и передает payroll.db на некий ftp-сайт. Известны истории и про уборщиц, вытаскивавших шнур питания сервера из розетки, чтобы включить туда пылесос. Были и другие случаи, типа стоящего на полу сервера и лопнувшей батареи отопления... Так что сервер должен быть в закрытой комнате и желательно его поставить на какую-то приподнятую поверхность.
BIOS состоит из нескольких низкоуровневых компонентов, управляющих загрузкой компьютера и другими подобными задачами. Старые BIOS имеют универсальные пароли для доступа к системе, убедитесь, что у Вас такого нет. Bios может использоваться, чтобы настроить загрузку только с диска C:, что в общем хорошая мысль. Можно также использовать bios для блокировки floppy-дисковода. Также имеет смысл вылючить лишние последовательные порты, они едят лишние IRQ. Кстати, это упростит и настройку системы за счет уменьшения числа конфликтов IRQ и тому подобного. Есть программы, которые вытаскивают пароль из BIOS, одна такая есть на http://www.esiea.fr/public_html/Christophe.GRENIER, в версиях для DOS и Linux.
При загрузке с диска C: используется LILO (или другой загрузчик). LILO позволяет гибко настраивать загрузку системы, но это палка о двух концах. Вы можете при загрузке передать LILO параметры, с точки зрения защиты опасней всего "image-name single", который загружает Linux в однопользовательском режиме. В большинстве дистрибутивов это просто root shell без запроса пароля или каких-то других защитных механизмов.
delay=X
Этот параметр задает сколько секунд LILO ждет ввода пользователя перед загрузкой системы, заданной по умолчанию. Одно из требований защиты C2, чтобы этот интервал был установлен в 0, но на машине с двойной загрузкой (dual boot) этот номер не пройдет.
prompt
Вынуждает пользователя вводить параметры, LILO не будет загружать систему автоматически. Это может быть полезно на серверах как путь отключения перезагрузок без человеческого вмешательства, но обычно, если хакер имеет способность перезагрузить систему, он может и перезаписать MBR с новыми параметрами начальной загрузки. Если Вы добавляете опцию времени ожидания, система продолжит загружаться после того, как время ожидания выйдет.
restricted
Требует, чтобы использовался пароль, при передаче параметров начальной загрузки (типа "linux single"). Удостоверьтесь, что Вы используете этот параметр на каждом образе загрузки ядра.
password=
Требует чтобы пользователь ввел пароль, используемый вместе с restricted, также удостоверьтесь, что lilo.conf не доступен на чтение всем, или любой пользователь будет способен прочитать пароль.
Вот пример lilo.conf с одного из моих серверов.
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=100
default=linux
image=/boot/vmlinuz-2.2.5
label=linux
root=/dev/hda1
read-only
restricted
password=s0m3_pAsSw0rD_h3r3
Это загружает систему, использующую ядро /boot/vmlinuz-2.2.5, сохраненное на первом разделе первого жесткого диска с интерфейсом IDE, ключевое слово prompt обычно остановило бы автоматическую перезагрузку, однако оно задано для образа, так что не будет мешать загрузке в режиме linux но спросит пароль, если Вы введете linux single, Вам дается 10 секунд, чтобы ввести linux single, здесь и надо ввести пароль. В соединении с установкой BIOS на загрузку только с диска C: и парольной защитой система получается довольно защищенной. Попробуйте также объявить файл lilo.conf как immutable, используя команду chattr. Для установки immutable введите:
chattr +i /sbin/lilo.conf
Это предотвратит любые изменения (случайные или не очень) файла lilo.conf. Чтобы внести поправки в этот файл, снимите атрибут immutable:
chattr -i /sbin/lilo.conf
Только root имеет доступ к атрибуту immutable.
Written by Kurt Seifried |