вы создали какие-то разделы на отдельных дисках, то сможете настраивать и их. Я вам рекомендовал выделить таким образом раздел /home с пользовательскими директориями. Если вы так и сделали, то в файле может быть еще одна строка примерно следующего вида:
/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
).
umount
Когда вы подключили к файловой системе CD-ROM, то это устройство блокируется, и диск нельзя вытащить, пока он не будет размонтирован. Для этого используется команда
umount
.
Например, следующая команда позволяет размонтировать CD-ROM:
umount /dev/cdrom
fdformat
Перед использованием дискет их нужно отформатировать. В ОС Linux для этого используется команда
fdformat
.
tar
По ходу изложения данной книги мы иногда будем устанавливать различные программы, часть из них поставляется в виде архивов tar.gz. Чаще всего это программы, хранимые в исходных кодах. Для разархивирования такого файла нужно выполнить команду:
tar xzvf имяфайла.tar.gz
Как правило, после выполнения команды в текущей директории будет создан каталог с таким же именем, как у архива (только без расширения). В нем вы сможете найти все распакованные файлы.
К работе с архивами мы вернемся в гл. 13, когда будем рассматривать резервирование данных. Сейчас же нам достаточно уметь распаковывать пакеты, чтобы устанавливать дополнительные программы и утилиты сторонних разработчиков.