Михаил Флёнов - Linux глазами хакера
Параметр=3начение
Слева от знака равенства находится имя параметра, а справа — значение, которое надо установить.
Рассмотрим возможные параметры файла lilo.conf:
□ boot=/dev/hda — задает устройство, с которого происходит загрузка;
□ map=/boot/имя файла — карта загрузки. Если этот параметр опущен, то по умолчанию будет использоваться файл /boot/map;
□ timeout=300 — время ожидания в миллисекундах. Если за этот промежуток времени ничего не выбрано, то будет загружена ОС по умолчанию;
□ lba32 — позволяет использовать возможности lba32 (32-разрядная адресация блоков диска). Присутствие этого параметра может вызвать проблемы со старыми жесткими дисками без поддержки LBA (Logical Block Addressing, логическая адресация блоков);
□ default=linux-2.4.18 — определяет, что будет загружаться по умолчанию. В данном случае выбран образ linux-2.4.18;
□ image=/boot/vmlinuz-2.4.18-5asp — указывает на ядро Linux. Чаще всего эта строка выглядит как /boot/vmlinuz;
□ label=linux-2.4.18 — метка или текст, который будет появляться в окне загрузчика;
□ root=/dev/hda2 — диск, на котором расположена корневая файловая система;
□ read-only.
На данный момент этой информации нам хватит. Большинство из нерассмотренных опций уже устарели и могут понадобиться только при использовании очень старых компьютеров (такие мало у кого сохранились). По своему опыту могу сказать, что перечисленных параметров будет достаточно. При компиляции ядра мы отредактируем lilo.conf и дадим возможность загрузки по выбору.
Для корректировки файла достаточно открыть его в любом текстовом редакторе. Тут серьезных изменений не бывает, поэтому я использую редактор, встроенный в программу МС. Для этого запустите Midnight Commander. Скорей всего, текущим каталогом будет ваша папка, например /home/root. Нужно перейти в корневой каталог. Выберите самую первую папку /.. и нажмите клавишу <Enter>. Теперь вы окажетесь в папке /home. Повторите эту операцию и переместитесь в корневой каталог.
Теперь находим папку /etc и нажимаем клавишу <Enter>, чтобы войти в нее. Здесь ищем lilo.conf, выделяем его и нажимаем клавишу <F4>. Перед вами откроется простой текстовый редактор. Поменяйте нужные параметры. Нажмите клавишу <Esc> для выхода. Если данные были изменены, то программа выдаст запрос на сохранение. Соглашайтесь, если нужно принять исправления.
Если вы никогда не редактировали файлы, то попробуйте сделать это сейчас. Для примера можно изменить время ожидания выбора пользователем способа загрузки Linux: с жесткого диска или дискеты. Конечно же, с винчестера я загружаюсь намного чаще, включаю компьютер и ухожу готовить кофе. В дальнейшем мы не будем останавливаться на этом процессе так подробно.
В конфигурационных файлах Linux есть понятие комментария. Это текст, который программа просто игнорирует, и вы можете писать в нем любые пояснения или временно отключать какие-то параметры. Комментарий начинается с символа "#". Всем, что находится после этого символа, программа пренебрегает. Например:
# Это комментарий
boot=/dev/hda
timeout=300 # Это комментарий, показывает время загрузки
# lba32
default=linux-2.4.18 # Это комментарий, ОС по умолчанию
В этом примере первая строка начинается с символа "#", и она вся будет проигнорирована. В третьей строке комментарий стоит после указания параметра. Это значит, что сам параметр будет прочитан, а текст пояснения после него будет пропущен.
В четвертой строке перед lba32 стоит знак "#", значит этот параметр будет проигнорирован и воспринят как комментарий.
Пояснения очень удобны для того, чтобы временно отключать какие-либо опции. Вы можете просто удалить параметр и забыть, как он был написан, но если вы превратили его в комментарий, то для возврата достаточно убрать знак "#", и параметр заработает.
С помощью утилиты LILO можно защитить ваш компьютер от несанкционированной загрузки ОС. Это необходимо, потому что при старте системы можно выполнить команду уже на этапе загрузки. Если злоумышленник получил доступ к вашему компьютеру, то легко может войти в однопользовательском режиме с последующим взломом пароля root или реализовать команду.
Если при загрузке LILO отображается в виде простого текстового приглашения (характерно для дистрибутивов Red Hat), то необходимо ввести имя загружаемой системы (linux), потом ключевое слово init= и команду:
Linux Boot: linux init=команда
Чтобы хакер не смог запустить систему, необходимо защитить LILO с помощью пароля. Для этого в конфигурационном файле после ключевого слова image добавьте строку:
password=пароль
Вот пример задания пароля qwerty на загрузку:
image=/boot/vmlinuz-2.4.18-5asp
password=qwerty
initrd=/boot/initrd.2.4.18-5asp.img
label=linux-2.4.18
root=/dev/hda2
read-only
Если на вашем компьютере установлены разные варианты системы, то необходимо для каждого из них указывать пароль. В следующем примере LILO позволяет загружать два ядра, и для обоих вводится свой пароль:
image=/boot/vmlinuz-2.4.18-5asp
password=qwerty
initrd=/boot/initrd.2.4.18-5asp.img
label=linux-2.4.18
root=/dev/hda2
read-only
image=/boot/vmlinuz-2.6.2
password=123456
initrd=/boot/initrd.2.6.2.img
label=linux-2.6.2
root=/dev/hda2
read-only
О конфигурировании LILO с двумя ядрами мы поговорим в разд. 3.8.4.
Если добавить параметр password до описания image, то указанный пароль будет действовать для всех ОС и ядер, загружаемых с помощью LILO.
Но пароль запрещает только основную загрузку, а возможность выполнения команд при старте системы сохраняется. Чтобы сделать и это невозможным, добавьте в конфигурационный файл lilo.conf после объявления пароля строку С ключевым словом restricted:
image=/boot/vmlinuz-2.4.18-5asp
password=qwerty
restricted
initrd=/boot/initrd.2.4.18-5asp.img
label=linux-2.4.18
root=/dev/hda2
read-only
Чтобы внесенные в файл изменения вступили в силу, необходимо запустить в командной строке директиву lilo. Таким образом, новые параметры будут записаны в загрузочную область и начнут действовать при следующем старте системы.
3.2.3. init
С помощью LILO запускается программа загрузки ОС, которая настраивает все необходимое оборудование, загружает драйверы и монтирует жесткие диски. По окончании этого процесса с винчестера запускается программа init, которая завершает загрузку.
У программы init, как и у большинства других утилит Linux, есть свой конфигурационный файл, в котором можно производить определенные настройки (листинг 3.2). Этот файл называется inittab и расположен в папке /etc (полный путь /etc/inittab).
Листинг 3.2. Файл настройки программы inittab#
# inittab This file describes how the INIT process
# should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg,
# < [email protected]>
# Modified for RHS Linux by Marc Ewing and
# Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not
# have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
# id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
10:0:wait:/etc/rc.d/rc 0
11:1:rwait:/etc/rc.d/rc 1
12:2:wait:/etc/rc.d/rc 2
13:3:wait:/etc/rc.d/rc 3
14:4:wait:/etc/rc.d/rc 4
15:5:wait:/etc/rc.d/rc 5
16:6:wait:/etc/rc.d/rc 6
# Things to run in every runlevel.
ud::once:/sbin/update
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed,
# assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed
# and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in,
# cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5