Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по администрированию программного обеспечения. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
662 Кб
Скачать

Лабораторный практикум

но выполнять любые действия в системе, а значит, любая ошибка или неправильное действие может повредить систему, уничтожить данные и привести к другим печальным последствиям. Поэтому категорически не рекомендуется регистрироваться в системе под именем root для повседневной работы. Работать в root следует только тогда, когда это действительно необходимо: при настройке и обновлении системы или восстановлении после сбоев.

Именно root обладает достаточными полномочиями для создания новых учетных записей.

Одновременный доступ к системе. То, что Linux – многополь-

зовательская и многозадачная система, проявляется не только в разграничении прав доступа, но и в организации рабочего места. Каждый компьютер, на котором работает Linux, предоставляет возможность зарегистрироваться и получить доступ к системе нескольким пользователям одновременно. Даже если в распоряжении всех пользователей есть только один монитор и одна системная клавиатура, эта возможность небесполезна: одновременная регистрация в системе нескольких пользователей позволяет работать по очереди без необходимости каждый раз завершать все начатые задачи (закрывать все окна, прерывать исполнение всех программ) и затем возобновлять их. Более того, ничто не препятствует зарегистрироваться в системе несколько раз под одним и тем же входным именем. Таким образом, можно получить доступ к одним и тем же ресурсам (своим файлам) и организовать параллельную работу над несколькими задачами.

Виртуальные консоли. Характерный для Linux способ организации параллельной работы пользователей – виртуальные консоли.

Виртуальные консоли, virtual console – это несколько парал-

лельно выполняемых операционной системой программ, предоставляющих пользователю возможность зарегистрироваться в системе в текстовом режиме и получить доступ к командной строке.

Во многих дистрибутивах Linux одна из виртуальных консолей по умолчанию не может быть использована для регистрации пользователя, однако она не менее, если не более, полезна.

Графические консоли. Впрочем, как ни широки возможности текстового режима, Linux ими не ограничена. Возможна работа в графическом режиме. В этом случае, после идентификации пользователя (правильно введенного имени пользователя и пароля) на экране появится не приглашение командной строки, а графическая рабочая среда. Как именно она будет выглядеть, зависит от того, какая система используется и как она настроена.

11

Практикум по администрированию программного обеспечения

Кроме того, что несколько пользователей (или несколько «копий» одного и того же пользователя) могут работать параллельно на разных виртуальных консолях, они могут параллельно зарегистрироваться и работать в разных графических средах. Обычно в стандартно настроенной Linux-системе можно организовать не менее трех графических консолей, работающих одновременно. Переключаться между ними можно при помощи сочетаний клавиш

Ctrl+Alt+F1 – Ctrl+Alt+F6.

Чтобы переключиться из графического режима в одну из текстовых виртуальных консолей, достаточно нажать комбинацию клавиш Ctrl+Alt+FN, где «N» – номер необходимой виртуальной консоли.

Работа в Linux при помощи командной строки напоминает диалог с системой: пользователь вводит команды (реплики), получая от системы ответные реплики, содержащие сведения о произведенных операциях, дополнительные вопросы к пользователю, сообщения об ошибках или просто согласие выполнить следующую команду.

Простейшая команда в Linux состоит из одного «слова» – названия программы, которую необходимо выполнить.

В Ubuntu открыть терминал можно следующими способами: набрав «терминал» в строке поиска, или комбинацией клавиш

CTRL+ALT+T.

Основы управления терминалом. Начнём с копирования/вставки. Стандартные сочетания клавиш CTRL+C и CTRL+V в терминале не работают, вместо них используются CTRL+Insert и Shift+Insert

или же сочетания с Shift: CTRL+ Shift +C и CTRL+ Shift +V.

Кстати, в большинстве руководств и инструкций вы встретите именно терминальные команды. Это связано с тем, что, графических оболочек очень много, и объяснить, как выполнить какое-то действие для каждой из них бывает очень непросто. А терминал – один для всех, и одна и та же команда работает во всех оболочках (естественно, кроме команд по настройке самой оболочки).

Однако часто всё-таки команды приходится набирать вручную, а не вставлять откуда-то. И вот тут на помощь приходит великолепное свойство терминала, называемое автодополнением. Наберите в терминале символы apt-g, а потом нажмите клавишу Tab. Терминал автоматически дополнит за вас команду. Кстати, apt-get – это основная консольная утилита управления пакетами. Если набранная часть команды не однозначно идентифицирует команду, то нажатие Tab два раза подряд выдаст список всех команд, начинающихся с введенной.

12

Лабораторный практикум

Автодополнение в терминале работает практически везде, и не только для команд, но также для их аргументов и имён файлов.

Терминал хранит историю введённых пользователем команд, которую вы можете листать в реальном режиме стрелками вверх и вниз на клавиатуре. Это очень удобно для повторного исполнения введённых ранее команд. Посмотреть всю историю можно коман-

дой history.

У каждой команды в истории есть номер, выполнить снова команду с определённым номером можно набрав в терминале восклицательный знак и номер нужной команды. Повторить предыдущую набранную команду можно просто написав два восклицательных знака !! Двигаться по истории набранных команд можно стрелочками вверх/вниз клавиатуры. Нажав один раз на стрелку вверх – терминал покажет последнюю набранную команду, два раза – предпоследнюю, и так далее. Если нужно вернуться назад – нажмите стрелочку вниз.

Полезно запомнить сочетание клавиш Ctrl+C. Данная команда прерывает выполнение процесса, что полезно в случае необходимости досрочно завершить выполнении любой набранной команды.

Практическое задание

1.Открыть терминал, описать интерфейс.

2.Открыть консоль, описать интерфейс.

3.Ознакомиться с командами: man, cat, less, date, echo, history, hostname, ls, pwd, tail, head, tree, wc, whoami. Описать использова-

ние и назначение команд.

Контрольные вопросы

1.Как работает терминал в OС Linux?

2.В чем отличие терминала и консоли?

3.Какие задачи администрирования можно решить через терминал?

4.Для чего нужен X-сервер, и как с ним взаимодействовать?

5.В чем отличие консоли в Linux и Windows?

Литература : 1, 2, 3, 4.

13

Практикум по администрированию программного обеспечения

2. ИССЛЕДОВАНИЕ ЗАГРУЗЧИКА GRUB2

Цель – ознакомиться с возможностям загрузчика, научиться администрировать загрузчик ОС Linux.

Формируемые компетенции или их части: ПК-10, ПК-37.

Теоретическая часть Для загрузки любых операционных систем, совместимых с

спецификацией Multiboot, среди которых Linux, FreeBSD, Solaris и

многие другие операционные системы, по умолчанию использует-

ся GRUB.

Однако функционал GRUB настолько широк, что о некоторые вообще говорят, что GRUB2 – это скорее маленькая операционная система, чем просто загрузчик.

Так, например, в GRUB существует консоль, в которой есть такие команды как cat и ls, с помощью которых уже можно получить начальное представление о системе и ее структуре.

Практически все современные системы могут грузится в различных уровнях (runlevel).

Список уровней для Linux

0 – Halt – Выключение.

1 – Single-User Mode – Режим для решения административных задач. 2 – Multi-User Mode Does not configure network interfaces / services –

Многопользовательский режим без использования интернета. 3 – Multi-User Mode with Networking – Обычный режим.

4 – Not used – Не используется.

5 – Start the system with display manager – обычный режим с графиче-

ским интерфейсом.

6 – Reboot – Перезагрузка.

Наиболее интересным с точки зрения безопасности является первый уровень Single-User Mode. Это режим, в котором пользователь получает права суперпользователя(root), причем в Ubuntu пароль для суперпользователя не запрашивается.

Таким образом, пользователь может получить права суперпользователя используя только установленное ПО.

Это не является ошибкой, так как упоминание данной возможности находится в официальных документах, но забывать про возможности GRUB при настройки системы безопасности нельзя.

14

Лабораторный практикум

Эксплуатирование режима одиночного пользователя

Рассмотрим порядок действий для второй версии GRUB, так как первая версия (версии с номером меньше одного) уже практически не используется и последовательность действий практически одинаковая.

1. Прежде всего необходимо попасть в меню GRUB2.

Для этого перезагрузим компьютер и в момент отображения стартового меню загрузчика нажмем на любую стрелочку для предотвращения автоматической загрузки.

Если загрузочное меню скрыто, то при загрузке необходимо нажать Escape или удерживать shift.

Мы увидим список доступных вариантов загрузки ОС.

2. Для редактирования параметров загрузки выберем нужную нам запись и нажмем «E». Появится консоль с примерно следующим содержимым:

recordfail

gfxmode $linux_gfx_mode insmod gzio

insmod part_msdos insmod ext2

set root=’(hd0,msdos1)’

search --no-floppy --fs-uuid --set=root ***

linux /boot/vmlinuz-3.2.0-33-generic root=UUID=*** ro quiet splash $vt_handoff

initrd /boot/initrd.img-3.2.0-33-generic

Это параметры загрузки ОС, в данном примере Ubuntu 12.04 с

ядром версии 3.2.0-33 и версией GRUB 1.99-21ubuntu3.5.

3.Выбираем строку, которая начинается со слова linux или

kernel.

4.Дописываем в конец параметр single, что как раз и означает одиночный режим.

linux /boot/vmlinuz-3.2.0-33-generic root=UUID=*** ro quiet splash single $vt_handoff

Quiet и splash означают соответственно графическую заставку

и«молчаливый режим».

Переменная $vt_handoff указывает на номер виртуальной кон-

соли (tty).

5) Загружаемся с новыми параметрами. Для этого жмем f10

или Ctrl+X.

15

Практикум по администрированию программного обеспечения

Врезультате попадаем в рутовую консоль безо всяких паролей

иненужных вопросов.

Измененные параметры после перезагрузки не сохраняются, а восстанавливаются согласно значениям по умолчанию, указан-

ным в файле /boot/grub/grub.cfg.

Защита ОС от данного метода несанкционированного до-

ступа. Для защиты можно установить пароль на редактирование через кнопку «E».

Пароль можно использовать в открытом виде или же использовать хеш-значение, синтаксис от этого не изменяется.

1)вычислим хеш используя grub-mkpasswd-pbkdf2

2)создадим файл с паролями sudo touch /etc/grub.d/05_ password

3)откроем файл на редактирование, и добавим туда следующие строки:

echo «Setting password protection…» >&2 cat << EOF

set superusers=«user»

password_pbkdf2 user1 grub.pbkdf2.sha512.продолжение Ваше-

го хэша

EOF

где user это любое имя поьзователя.

4)уберем права sudo chmod u+x,go-rw /etc/grub.d/05_password

5)Обновим update-grub.

В результате без знания пароля зайти в single режим нельзя.

Режим восстановления

Очень многие системы позволяют загружаться в так называемом режиме Recovery.

В этом режиме одним из вариантов работы является root режим, в котором мы опять оказываемся в терминале с полными правами.

По умолчанию GRUB кроме основных режимов загрузки создает режим восстановления, и таким образом не обязательно редактировать опции загрузки ОС.

Пути противодействия: защита конкретных пунктов меню, отключение создания recovery mode.

Наиболее простым является способ отключения режимов восстановления, так как этот режим практически не испльзуется.

Для этого необходимо в файл /etc/default/grub добавить строч-

ку GRUB_DISABLE_LINUX_RECOVERY=true и обновить GRUB командной update-grub.

16

Лабораторный практикум

Практическое задание

1.Описать возможности и принцип работы загрузчиков ОС.

2.Получить root доступ к linux системе, не зная пароля

3.Сконфигурировать GRUB2 таким образом, чтобы атака из задания 2 была невозможна.

Контрольные вопросы

1.Какие задачи решает загрузчик ОС?

2.Как администрировать опции загрузки ОС?

3.Какие угрозы безопасности можно реализовать через загрузчик ОС?

4.Сравните grub2 с аналогами.

5.Какие настройки необходимо произвести для защиты от угроз, реализуемых через загрузчик?

Литература : 1, 2, 3, 4.

3. ИССЛЕДОВАНИЕ ФАЙЛОВОЙ СИСТЕМЫ, УЧЕТНЫХ ЗАПИСЕЙ И ПРАВ ДОСТУПА

В ОС LINUX

Цель – ознакомиться со стандартом иерархии файловой системы, научиться изменять права доступа к данным в ОС Linux.

Формируемые компетенции или их части: ПК-12; ПК-37.

Теоретическая часть

FHS (англ. Filesystem Hierarchy Standard, «стандарт иерархии файловой системы») – стандарт, унифицирующий местонахождение файлов и каталогов с общим назначением в файловой системе UNIX. На данный момент большинство UNIX-подобных систем

втой или иной степени следует этим правилам.

ВUnix каждому файлу соответствует набор прав доступа, представленный в виде 9 битов режима. Он определяет, какие пользователи имеют право читать файл, записывать в него данные или выполнять его. Вместе с другими тремя битами, влияющими на запуск исполняемых файлов, этот набор образует код режима доступа к файлу. Двенадцать битов режима хранятся в 16-битовом

17

Практикум по администрированию программного обеспечения

поле индексного дескриптора вместе с 4 дополнительными битами, определяющими тип файла. Последние 4 бита устанавливаются при создании файлов и не подлежат изменению. Биты режима (далее права) могут изменяться либо владельцем файла, либо суперпользователем с помощью команды chmod.

Существует три пути управления доступом к файлу или каталогу. Было определено, что каждый файл должен иметь владельца (owner), группового владельца (group owner), а также может потребоваться доступ для всех остальных пользователей (everyone). Эти названия обычно приводятся как пользователь/группа/остальные(user/group/others) или коротко ugo. Реализация управления доступом к файлам и каталогам в Unix позволяет или запрещает доступ по трем флагам: флаг чтения (Read), флаг записи (Write), флаг выполнения (eXecute). Они представляются следующим образом:

flag

user

group

other

#

rwx

rwx

rwx

Флаг типа (flag) может быть одним из следующих:

Флаг

Описание

Отсутствие флага

lСимволическая ссылка (symbolic link)

dДиректория (directory)

bБлочное устройство (block device)

cСимвольное устройство (character device)

pКанал, устройство fifo (fifo device)

sUnix сокет (unix domain socket)

Права доступа. Посмотреть права доступа на объекты можно командой ls c ключем -l («л»). Также можно добавить ключ -a, для того, чтобы были отображены скрытые объекты.

Для назначения прав используются три группы флагов, первая определяет права для владельца, вторая – права для основной группы пользователя, третья – для всех остальных пользователей в системе.

Для файлов: r – право на чтение из файла; w – разрешает запись в файл (в частности перезапись или изменение); x – позволяет исполнить файл.

18

Лабораторный практикум

Для каталогов, флаги r w x имеют несколько отличный смысл: r – позволяет читать только имена файлов в каталоге; x – позволяет иметь доступ к самим файлам и их атрибутам (но не именам); w имеет смысл только в сочетании с x, и позволяет (в дополнение к x) манипулировать с файлами в каталоге (создавать, удалять и переименовывать). w без x – не имеет никакого эффекта.

Рассмотрим таблицу, чтобы было понятнее:

OCT

BIN

Mask

Права на файл

Права на каталог

0

000

- – -

отсутствие прав

отсутствие прав

1

001

- – x

права на выполнение

доступ к файлам и их атри-

бутам

2

010

- w -

права на запись

отсутствие прав

3

011

- w x

права на запись и

все, кроме доступа к име-

выполнение

нам файлов

4

100

r – -

права на чтение

только чтение имен файлов

5

101

r – x

права на чтение

чтение имен файлов и до-

и выполнение

ступ файлам и их атрибутам

6

110

r w -

права на чтение

только чтение имен файлов

и запись

7

111

r w x

полные права

все права

Для администрирования часто удобнее использовать не буквенное представление прав, а цифровое, в восьмеричном представлении (оно короче). Так, например, права на файл всем и вся, соответствуют записи 777 (что аналогично символьному представ-

лению rwxrwxrwx).

Существуют также специальные биты, такие как SUID, SGID и Sticky-бит. SUID, SGID влияют на запуск файла, а Stickyвлияет на определение владельца объектов в каталоге. При их применении необходимо использовать не три восьмеричных цифры, а 4. Зачастую, в различной технической литературе права обозначаются именно 4 цифрами, например 0744. Многие стараются не использовать специальные биты, сетуя на безопасность (и не без основательно), но, в некоторых ситуациях без них не обойтись. Поговорим о них несколько позже.

Для полноценного просмотра каталога, необходимы права на чтение каталога и доступ к файлам, а главное к их атрибутам, т. е. минимальные разумные права на каталог – 5 (r-x). Прав 4 (r–) хва-

19

Практикум по администрированию программного обеспечения

тит только на просмотр имен файлов, без атрибутов, т. е. не будут известны размер файла, права доступа, владелец.

На практике для каталогов используется только три режима: 7 (rwx), 5 (r-x) и 0 (–).

Очень любопытный режим доступа к каталогу – 3 (-wx): он позволяет делать в директории все, что угодно, но не позволяет прочитать имена объектов в директории. Т. е. если не известны названия объектов в этом каталоге, то сделать с ними ничего не возможно(дажеудалитьпомаске*,т.к.маскунекчемуприменять– имена недоступны).

В каталоге с режимом доступа 3 (-wx) можно создавать новые, переименовывать и удалять файлы и каталоги (если вы знаете их имя); читать, изменять, запускать файл (если достаточно на него прав, и опять же – вы знаете его имя). Можно даже менять права доступа на файлы и каталоги (если вы знаете имя). Однако если вы сможете перейти (по cd) в подкаталог такого каталога (а для этого вам опять нужно знать его имя), то все будет работать корректно (если конечно у этого подкаталога будет нормальный режим доступа).

Никакой рекурсивный поиск/удаление тоже не сможет получить доступ внутрь такого каталога – ему ведь нужны названия – а их из такого каталога – никак не получить.

Каталог полноценно не заменяет крипто-контейнер (т. е. может использоваться для хранения очень секретных данных). Имен объектов из такого каталога никак не получить, однако если попытаться создать объект с именем, которое уже существует, то такая операция закончится неудачей (т. е. мы получим подтверждение, что такое имя уже есть). Также можно пытаться открыть (как файл или как каталог) объект с произвольным именем, если такого имени нет, то мы получим ошибку. Безусловно, имя может быть очень длинным, и шансы угадать его могут быть невелики, но не надо забывать, что права доступа могут сменить как владелец каталога так root. Да и пути доступа могут сохраниться в различных логах и файлах истории.

Команда chmod. Права устанавливаются командой chmod. Команда chmod поддерживает установку прав как в восьмеричном представлении, так и в символьном (маска режима доступа).

Синтаксис команды прост:

chmod <опции> <права> <объект или регулярное выражение>

Из самых полезных и часто используемых опций можно выделить одну:

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]