/dev/hda3 /home ext3 rw,errors=remount-ro 0 0
Посмотрим на четвертый параметр. В нем содержатся опции монтирования, которыми можно управлять для повышения безопасности системы. Они перечислены через запятую. В нашем примере это rw, errors=remount-ro
. В качестве опций монтирования дополнительно можно использовать:
□ noexec
— запрет выполнения файлов. Если вы уверены, что в разделе не должно быть исполняемых файлов, то можно использовать эту опцию. Например, в некоторых системах директория /home должна хранить только документы. Чтобы хакер не смог записать в этот раздел свои программы, с помощью которых будет происходить взлом, добавьте этот параметр. Точнее сказать, программы поместить можно будет, а запустить — нет;
□ nosuid
— запрещает использование программ с битами SUID и SGID. В разделе /home их быть не должно, поэтому можно явно запретить применение привилегированных программ. О SUID- и SGID-программах мы поговорим в разд. 4.5;
□ nodev
— запрещает использование файлов устройств;
□ nosymfollow
— запрещает использование мягких ссылок.
Опции nodev
и nosymfollow
не сильно влияют на безопасность, но могут пригодиться.
Использование параметра noexec
— бесполезное занятие и абсолютно не защищает систему от профессионального хакера, потому что опытный взломщик сможет запустить программу, если для выполнения разрешен хотя бы один раздел. А таковым всегда является раздел с директорией /bin и другие каталоги, которые содержат необходимые для работы программы.
Допустим, что ваш сайт разрабатывается с использованием языка Perl. Если его интерпретатор доступен для выполнения, то взломщик сможет запускать сценарии программ Perl в любом разделе, в том числе и с установленным параметром noexec
. Если для запуска сценария использовать командную строку, то вы получите сообщение о нарушении прав доступа. Но программа выполнится, если написать следующую команду:
perl file.pl
Несмотря на то, что file.pl
находится в разделе, в котором запрещены исполняемые файлы, ошибки не будет, потому что запускается разрешенная программа perl
, которая в свою очередь читает файл (дозволенная операция) и выполняет его в своем адресном пространстве.
Вспомните описание файла mtab, где для CD-ROM стоит запрет на использование SUID- и SGlD-программ. То же самое необходимо сделать, как минимум, с разделами /home и /tmp. Тогда пользователи не смогут создавать в своих директориях привилегированные программы, что позволит предотвратить большое количество возможных атак.
Итак, давайте попробуем смонтировать CD-ROM в другую директорию. Для этого сначала создадим ее:
mkdir /mnt/cd
Теперь выполним команду
mount /dev/cdrom /mnt/cd
Если на вашем компьютере установлено две ОС — Windows и Linux, то диск, скорее всего, содержит файловую систему FAT32 или NTFS. Следующие команды позволяют подключить FAT32 к Linux:
mkdir /mnt/vfat
mount -t vfat /dev/hda3 /mnt/vfat
Первая команда создает директорию /mnt/vfat, куда будет подключаться диск с FAT32.
Во второй команде происходит монтирование диска /dev/hda5. Будем считать, что как раз он и принадлежит Windows. Ключ -t
позволяет указать тип подключаемой файловой системы. Это обязательно. Для CD-ROM мы этого не делали только потому, что вся необходимая информация есть в файле /etc/fstab. Файловая система указана в параметре vfat
. Это имя для FAT32, которое используется в Linux.
Более подробно о работе команды можно узнать на страницах документации (man mount
).
Когда вы подключили к файловой системе CD-ROM, то это устройство блокируется, и диск нельзя вытащить, пока он не будет размонтирован. Для этого используется команда umount
.
Например, следующая команда позволяет размонтировать CD-ROM:
umount /dev/cdrom
Перед использованием дискет их нужно отформатировать. В ОС Linux для этого используется команда fdformat
.
По ходу изложения данной книги мы иногда будем устанавливать различные программы, часть из них поставляется в виде архивов tar.gz. Чаще всего это программы, хранимые в исходных кодах. Для разархивирования такого файла нужно выполнить команду:
tar xzvf имяфайла.tar.gz
Как правило, после выполнения команды в текущей директории будет создан каталог с таким же именем, как у архива (только без расширения). В нем вы сможете найти все распакованные файлы.
К работе с архивами мы вернемся в гл. 13, когда будем рассматривать резервирование данных. Сейчас же нам достаточно уметь распаковывать пакеты, чтобы устанавливать дополнительные программы и утилиты сторонних разработчиков.
В настоящее время большинство программ поставляются уже не в исходных кодах, а в виде RPM-пакетов. Их установка намного проще, т.к. программы в них уже скомпилированы. Если вы используете МС, то выберите RPM-пакет и нажмите клавишу <Enter>. Таким образом вы войдете в него как в директорию и увидите содержимое.
Каждый пакет обязательно содержит исполняемый файл install. Запустите его для установки программы.
Если вы не используете МС, то для установки нового пакета можно выполнить команду:
rpm -i пакет
Для обновления уже установленного пакета можно выполнить команду с параметром -U
:
rpm -U пакет
Для того чтобы видеть ход инсталляции, можно указать еще и ключ -v
. Таким образом, команда установки будет выглядеть следующим образом:
rpm -iv пакет
Иногда необходимо знать каталог, в котором расположена программа. Для этого используется команда which
с именем программы в качестве параметра, которая проверит основные каталоги, содержащие исполняемые файлы. Например, чтобы определить, где находится программа просмотра содержимого каталогов ls
, выполните следующую команду:
which ls
В результате вы увидите путь /bin/ls. Если ваша ОС поддерживает псевдонимы (alias) команд, то можно будет увидеть и его. Таким образом, после выполнения команды на экране выведется:
alias ls='ls -color=tty' /bin/ls
3.1.2. Безопасность файлов
В гл. 4 мы будем подробно говорить о правах доступа. Это основа обеспечения безопасности, но и только, и надеяться на это нельзя. Необходимы дополнительные инструменты сохранения целостности системы, или, по крайней мере, вы должны следить за изменениями основных объектов ОС — файлами. В них хранится информация, а именно она необходима взломщикам. Хакеры стремятся прочитать, изменить или даже уничтожить информацию, поэтому вы должны уметь ее контролировать.
Самый простейший способ контроля — наблюдение за датой редактирования. Допустим, что взломщик проник в вашу систему в 10:30. Чтобы узнать, что было изменено злоумышленником, можно запустить поиск всех файлов, у которых дата корректировки больше этого времени. Вроде легко, но не очень эффективно, потому что дату можно изменить с помощью команды touch
. В общем виде команда выглядит следующим образом:
touch параметры ММДДччммГГ файл
Прописными буквами показаны параметры даты, а строчными — время. Формат немного непривычный, но запомнить можно. Год указывать необязательно, в этом случае будет использоваться текущий.