Исследование уровня безопасности операционной системы Linux
атические данные или оболочка. Администрирование динамической части может
осуществляться как с помощью протокола FTP, так и с помощью специально
разработанного web-интерфейса. Статические данные может изменять только
привилегированный пользователь и только с помощью терминального доступа.
Задача: настройка защищенной конфигурации web-портала с использованием
средств разграничения прав доступа.
Реализация.
Допустим, что все файлы объекта защиты, то есть web-портала, находятся
в директории /www. В свою очередь, директория /www содержит каталоги ftp и
html: первый – для хранения и доступа к файлам по FTP протоколу, второй –
для доступа к файлам по протоколу HTTP. Для обеспечения эффективной защиты
файлы, находящиеся в каталоге /www, должны иметь доступ только на чтение
для пользователей nobody и ftpuser. Файлы, находящиеся в каталоге /www/ftp,
должны быть доступны на чтение и на запись как пользователю ftpuser, так и
пользователю nobody. В свою очередь, файлы каталога /www/html должны быть
доступны только пользователю nobody и с правами только на чтение.
Привилегированный пользователь всегда имеет право на чтение и на запись,
независимо от прав доступа, установленных для файла.
Учитывая, что оба пользователя nobody и ftpuser принадлежат одной
группе nogroup, права на каталог /www могут быть установлены следующим
образом:
[root@app /]# chmod 050 /www
[root@app /]# chown root:nogroup /www
[root@app /]# ls –l
…
d---r-x--- 1 root nogroup 4096 Фев 7 19:48 www
…
Первая команда устанавливает права только на чтение и вход в каталог
для пользователей группы-владельца каталога. Вторая команда меняет группу-
владельца каталога на группу nogroup. Третья команда позволяет просмотреть
сделанные изменения. Как видно из результата выполнения третьей команды,
каталог www теперь имеет права доступа для группы только на чтение и вход,
для пользователя-владельца и всех остальных какие-либо права отсутствуют
вообще.
Теперь, когда доступ в каталог www имеют оба системных пользователя,
необходимо разграничить права на внутренние каталоги www.
[root@app www]# chown –R ftpuser:nogroup /www/ftp
[root@app www]# chmod –R o-rwx /www/ftp
[root@app www]# chmod –R ug+rw /www/ftp
[root@app www]# chown –R nobody:root /www/html
[root@app www]# chmod –R go-rwx /www/html
[root@app www]# chmod –R u+r /www/html
[root@app www]# ls –l /www
drwxrwx--- 1 ftpuser nogroup 4096 Фев 7 19:55 ftp
dr-x------ 1 nobody root 4096 Фев 7 20:01 html
Первая команда меняет группу-владельца и пользователя-владельца для
каталога ftp, вторая – отменяет все права на операции с файлами для всех
остальных, третья – добавляет права на чтение и запись для пользователя-
владельца и группы-владельца. Ключ –R позволяет рекурсивно изменить
параметры у текущего каталога и всех подкаталогов и файлов, хранящихся в
нем. Следующая команда “chown –R nobody:root /www/html” позволяет изменить
пользователя-владельца для каталога html и всех его подкаталогов и файлов
на пользователя nobody. Команда “chmod –R go-rwx /www/html” отменяет все
права для группы-владельца и всех остальных. Далее команда “chmod –R u+r
/www/html” устанавливает права только на чтение для пользователя-владельца.
Последняя команда выводит результат выполненных операций на экран. Задача
выполнена!
Следует сделать маленькое замечание: все вышеприведенное верно только в
том случае, если маска создания файла по умолчанию при создании каталогов и
файлов была определена как 022 (umask 022). В противном случае действия,
которые необходимо предпринять для установки необходимых прав доступа,
зависят от конкретных настроек системы.
ПРИМЕР 3.
Исходные данные: ОС Linux RedHat 7.3 без графической оболочки.
Программное обеспечение – пакет lcap. В данном случае функциональное
назначение сервера существенной роли не играет.
Задача: произвести настройку комплексной защиты сервера с
использованием расширенных атрибутов (в частности, с помощью атрибута
immutable).
Реализация.
Для реализации поставленной задачи необходимо изначально определить,
какие файлы в процессе работы могут быть изменены, а какие могут быть
изменены только в специальном режиме, например, только в режиме
профилактики или обновлении программного обеспечения. В данном случае
специальный режим предполагает перевод системы в однопользовательский режим
работы.
В общем случае, в обычных условиях содержимое следующих каталогов
изменяться не должно, или может изменяться, но достаточно редко:
/boot /etc – в окончательно настроенной системе содержимое этих
каталогов изменяться не должно. За редким исключением содержимое каталога
/etc может меняться при перенастройке каких-либо программ или сервисов.
/bin – каталог содержит исполняемые файлы, которые могут быть изменены,
удалены или добавлены только при обновлении программного обеспечения.
/sbin – в каталоге хранятся исполняемые файлы системных программ,
большинство из которых доступно на выполнение только привилегированному
пользователю и также не должно изменяться во время работы системы.
/lib – каталог системных библиотек, которые также могут быть изменены
только при обновлении программных продуктов.
Следующие команды позволяют установить атрибут immutable для
вышеперечисленных директорий и для всех файлов, находящихся в них.
[root@app /]# chattr –R +i /boot /etc /bin /sbin /lib
[root@app /]# lsattr
---i---------- ./boot
…
---i---------- ./etc
-------------- ./root
---i---------- ./bin
-------------- ./initrd
---i---------- ./lib
…
---i---------- ./sbin
Параметр –R как и в предыдущих примерах используется для рекурсивной
установки атрибута для всех файлов и каталогов, расположенных ниже в
иерархии.
Каталог /usr имеет свою собственную иерархию. В этой иерархии следующие
каталоги должны иметь установленный флаг immutable:
/usr/bin /usr/sbin /usr/lib /usr/local/bin /usr/local/sbin
/usr/local/lib – перечисленные каталоги имеют то же значение, что и
одноименные каталоги корневой иерархии.
/usr/include /usr/local/include – оба каталога содержит заголовочные
файлы для компилируемых программ. Заголовочные файлы не должны изменяться
ни при каких условиях, ну разве только тогда, когда компьютер используется
для разработки программного обеспечения и в заголовочные файлы вносятся
изменения.
[root@app /]# chattr –R +i /usr/bin /usr/sbin /usr/lib /usr/include
[root@app /]# lsattr /usr
-------------- /usr/lost+found
---i---------- /usr/bin
---i---------- /usr/lib
-------------- /usr/libexec
---i---------- /usr/sbin
…
---i---------- /usr/include
-------------- /usr/local
---i---------- /usr/src
…
В завершение всех операций можно выполнить программу lcap с параметрами
CAP_LINUX_IMMUTABLE и CAP_SYS_RAWIO:
[root@app /]# lcap CAP_LINUX_IMMUTABLE
[root@app /]# lcap CAP_SYS_RAWIO
Также необходимо установить запуск этой команды в стартовые сценарии,
чтобы они выполнялись при каждой загрузке системы.
Приведенный пример, опять же, является не всегда применимым, все
зависит от конкретной конфигурации системы и конкретных условий ее
эксплуатации.
ПРИМЕР 4.
Исходные данные: ОС Linux RedHat 7.3 без графической оболочки.
Назначение - сервер приложений. Программное обеспечение – ядро версии
2.4.20, собранное с поддержкой пользовательских квот, пакет quota-3.11. Для
пользовательских каталогов выделен отдельный раздел /dev/hda3 объемом 25
Гбайт, смонтированный в директории /home.
Задача: организовать разделение дискового пространства между
пользователями с использованием механизма квот. Каждому пользователю
необходимо выделить по 10 Мбайт дискового пространства с максимальным
количеством возможных файлов – 1000.
Реализация.
Пользовательские квоты распространяются на отдельный раздел жесткого
диска и активизируются при загрузке системы. Для включения поддержки квот
необходимо в файле /etc/fstab для раздела /home добавить параметр usrquota
или grpquota, или оба этих параметра, если нужна поддержка квоты для
пользователей и групп одновременно. В данном случае для реализации
поставленной задачи необходим только параметр usrquota.
Строка файла /etc/fstab, относящаяся к разделу /home, после изменения
может иметь следующий вид:
/dev/hda3 /home ext2 default,usrquota 1 2
Поскольку версии ядер начиная с ветки 2.4 поддерживают новый формат
пользовательских квот, который обладает некоторыми преимуществами перед
старой версией, использование новой версии будет намного целесообразнее.
Вся последующая настройка производится с этим учетом.
Для активации пользовательских квот необходимо перезагрузить систему.
При загрузке необходимо выполнить проверку квотируемого раздела, что можно
сделать запуском программы quotacheck, а также включить механизм квот
выполнением программы quotaon. Эти обе программы имеют множество параметров
командной строки, о которых можно узнать из man-руководств, входящих в
пакет quota. Стандартная строка запуска этих программ, которая подходит для
большинства систем, может иметь вид:
quotacheck –aug
quotaon –aug
Параметр командной строки –a сообщает программе, что необходимо
выполнить проверку всех файловых систем
| | скачать работу |
Исследование уровня безопасности операционной системы Linux |