
- •В.В. Бакланов
- •Защитные механизмы
- •Операционной системы
- •Екатеринбург
- •Оглавление
- •Введение
- •1. Пользователи и их права
- •Учетные записи пользователей и работа с ними
- •Video::18:
- •Ivanov:X:1002:101::/home/ivanov:/bin/bash
- •1.2. Процедура регистрации и ее безопасность
- •VI /etc/passwd
- •Initrd /boot/initrd.Img–2.6.18–5–686
- •Права доступа к файлам
- •Комбинированные права доступа
- •1.5. Решение практических задач на разграничение доступа
- •Использование механизма sudo
- •2. Безопасное управление процессами
- •2.1. Общие сведения о процессах
- •Virtual memory (kbytes, -V) unlimited
- •2.2. Средства наблюдения за процессами
- •2.3. Переменные окружения
- •2.4. Способы автоматического запуска и остановки программ
- •Id:3:initdefault:
- •Id:3:initdefault:
- •2.5. Периодически запускаемые процессы
- •2.6. Запуск и остановка программ в интерактивном и фоновом режимах
- •2.7. Средства взаимодействия между процессами
- •2.8. Перенаправление ввода/вывода
- •2.9. Файловая система /proc как «зеркало» процессов
- •2.10. Терминальный режим и консольные атаки
- •16:10:12 Up 15 min, 4 users, load average: 0,00, 0,00, 0,01
- •Ivanov tty2 - 16:07 3:08 0.01s 0.01s -sh
- •Ivanov tty2 2008-11-05 16:07
- •2.11. Сокрытие процессов
- •2.12. Аудит событий и его безопасность
- •3. Работа с объектами файловой системы
- •3.1. Действия над обычными файлами
- •3.2. Работа со специальными файлами устройств
- •255 Heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
- •255 Heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
- •255 Heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
- •16 Heads, 32 sectors/track, 988 cylinders, total 505856 sectors
- •3.3. Монтирование файловых систем
- •3.4. Копирование и запись данных
- •2,0,0 200) 'Ata ' 'wdc wd3200bevt-2' '11.0' Disk
- •1000,0,0 100000) 'Hl-dt-st' 'dvdram gma-4082n' 'pt06' Removable cd-rom
- •3.5. Использование «жестких» и символических ссылок
- •4. Безопасность файловых систем ext*fs
- •4.1. Архитектура файловых систем ext*fs
- •Inode count: 438048
- •Inodes per group: 8112
- •Inode blocks per group: 507
- •Inode: 131329 (0x00020101)
- •Indirect block:
- •131329 Drwxr-xr-X 2 root root 4096 Мар 18 17:42
- •Inode: 527744 (0x00080d80)
- •Indirect block:
- •0X024f9040 73 79 6e 63 0a 00 00 00 : 00 00 00 00 00 00 00 00 sync............
- •4.2. Временные отметки файлов
- •4.3. Алгоритмы логического удаления и восстановления файлов
- •Сетевые возможности операционных систем linux
- •5.1. Контроль и настройка сетевых интерфейсов
- •Inet addr:192.168.0.4 Bcast:192.168.0.255 Mask:255.255.255.0
- •Interrupt:5 Base address:0x4000
- •Inet addr:127.0.0.1 Mask:255.0.0.0
- •Ifconfig eth0 -arp
- •Inet addr:192.168.0.4 Bcast:192.168.0.255 Mask:255.255.255.0
- •Interrupt:5 Base address:0x4000
- •Ifconfig eth0 promisc -arp
- •Iwconfig ath0 mode adhoc channel 1 essid “abcd”
- •5.2. Разведка сети
- •5.3. Перехват и анализ сетевого трафика
- •Лабораторный практикум
- •Общие требования
- •Памятка обучаемым
- •Выполнение работы
- •Лабораторная работа № 2 «Исследование архитектуры файловых систем ext*fs»
- •Контрольные вопросы
- •Контрольные вопросы
- •Лабораторная работа № 4 «Реализация политики разграничения доступа средствами ос Linux»
- •Временная нейтрализация парольной защиты
- •Контрольные вопросы
- •Лабораторная работа № 5 «Исследование процессов в ос Linux» Подготовка к работе
- •Наблюдение за файловой системой /proc
- •Просмотр и анализ информации о процессах
- •Управление процессами
- •Работа с консолями
- •Работа с каналами
- •Исследование опасных команд
- •Контрольные вопросы
- •ЛаборАторная работа № 6 «Исследование сетевых возможностей ос Linux»
- •Ifconfig eth0 –arp
- •Контрольные вопросы
- •Лабораторная работа № 7 «Исследование беспроводной сети WiFi под управлением ос Linux»
- •Interrupt:19
- •Inet addr:127.0.0.1 Mask:255.0.0.0
- •Iwconfig ath0 channel 1 essid "abcd"
- •Iwlist ath1 scan
- •Iwconfig ath0 key off
- •Iwconfig ath0 key 0123-4567-89ab-cdef
- •Контрольные вопросы
- •Лабораторная работа № 8 «Наблюдение и аудит в ос Linux»
- •Библиографический список
3. Работа с объектами файловой системы
В файловых системах ОС Linux основным логическим объектом является файл. Все объекты, включая устройства ввода/вывода информации и каналы межпроцессного взаимодействия, называются файлами. Определено семь функциональных типов файлов:
-
обычные файлы;
-
каталоги;
-
символические ссылки;
-
именованные каналы;
-
сокеты;
-
файлы символических устройств;
-
файлы блочных устройств.
Внутренняя структура обычного файла для операционной системы совершенно безразлична, и файл воспринимается ею как простая последовательность байтов. Для операционной системы Linux не имеют значения расширения имён файлов, по которым можно судить об их типе. Расширение имени файла в ОС UNIX, в том числе и Linux, не предусмотрено по причине того, что символ «.» входит в состав имени файла наравне с другими символами. Точнее, пользователи могут присваивать файлам имена, содержащие точки и символы, напоминающие характерные для ОС семейства Windows расширения, но только для своего удобства.
Таким образом, внутренняя структура файла в ОС Linux целиком зависит от пользовательской программы. Исключение составляют собственно исполняемые файлы формата ELF (Executable and Linking Format), так как они непосредственно исполняются центральным процессором и запускаются при наличии установленного признака исполняемости. Они имеют по нулевому смещению от начала стандартную четырехбайтную сигнатуру, которая называется «магическим числом» файла.
В остальных случаях файл с установленным признаком исполняемости считается текстовым, содержащим строки с командами оболочки. Если первой строкой такого текстового файла является строка вида #!/bin/sh (допускается наличие пробелов после «!»), то первые два символа являются «магической комбинацией», а /bin/sh есть программа, которая будет запущена с передачей ей всех последующих строк файла. Если в первой строке отсутствует вышеописанное, то строки файла последовательно обрабатывает оболочка, обслуживающая данный терминал. Установленный признак исполняемости является необходимым, но не достаточным условием. Любому файлу можно установить сигнатуру исполняемости, но результат его запуска на исполнение будет зависеть от его содержимого.
Одна из утилит ОС Linux, именуемая file, умеет различать довольно много разновидностей файлов по их «магическим числам» и некоторым иным признакам внутреннего формата.
3.1. Действия над обычными файлами
Ранее уже рассматривались способы создания обычных файлов. Для копирования файлов предназначается команда cp (copy). Это универсальная команда, с помощью которой можно выполнить несколько действий:
-
создание копии файла с другим именем в том же каталоге
cp -arg file1 file2;
-
копирование файла с прежним именем в другой каталог
cp -arg file1 <dir>;
-
копирование файлов каталога <dir1> в каталог <dir2>
cp -arg <dir1> <dir2>.
В качестве наиболее часто используемых аргументов задаются:
-i – при наличии в месте назначения файла с таким именем будет выдан запрос на его переписывание;
-f – при наличии в месте назначения файла с таким именем он переписывается без запроса;
-p – сохраняется режим доступа к скопированному файлу, его владелец, группа владельца и временные отметки (без этого параметра файл переходит в собственность копирующего, права доступа устанавливаются согласно маске доступа, а временные отметки обновляются);
–R – выполняется рекурсивное копирование с учетом всех вложенных файлов и подкаталогов;
–a – аналог комбинации -pR с дополнительным копированием символических ссылок, что позволяет создать точную копию каталога.
Для копирования файла необходимо иметь право его чтения. Нужен еще доступ в два каталога – тот, где находится исходный файл, и тот, куда надлежит поместить его копию. Для копирования файла необходимо иметь права чтения и поиска в каталоге, откуда происходит копирование. Скопировать файл можно только в тот каталог либо на то устройство, на которое имеется право записи и поиска.
При необходимости копирования всех файлов из каталога задается маска с использованием символов-звёздочек. Команда
cp /home/* /mnt/abcd
производит копирование всех файлов из домашнего каталога в примонтированный каталог abcd.
Файлы создаются, изменяются и удаляются в файловой системе в соответствии с правилами этой системы, поэтому при копировании файла из одной файловой системы в другую неизменными остаются сами данные, а метаданные файла и всё, что с ними связано, будет зависеть от типа файловой системы, в которую копируется файл.
Логическое удаление файлов и каталогов обеспечивается утилитой
rm -arg <file_name> <dir>
В качестве аргументов можно указать:
–f – для безусловного (без дополнительных запросов и подтверждений) удаления файла. При обычном удалении файла система выводит запрос на удаление, который необходимо подтвердить символом y (yes) и Enter,
-d – для удаления непустого каталога,
-r – для рекурсивного удаления внутренних каталогов.
Удаление пустого каталога поддерживается командой
rmdir <dir>
Для гарантированного удаления файла с многократным (до 25 раз) стиранием inode и блоков данных псевдослучайными комбинациями в большинстве версий Linux имеется утилита
shred –arg <file_name>
Используемые командой стирания аргументы:
-v – показывать ход стирания,
-n раз – число повторов (25 раз по умолчанию),
-s – очистить N байт,
-x – не округлять размеры файлов до следующего целого блока,
-u – обрезать и удалять файл после перезаписи.
Перемещение файла – это комбинация двух команд: копирования файла в другой каталог и удаления исходного файла, но только в случае перемещения файла из одной файловой системы в другую. Если же файл перемещается в пределах одной файловой системы, то перемещения данных не происходит, а все изменения касаются только его метаданных.
Перемещение указанного файла в другой каталог производится командой
mv –arg <file_name> <dir>
В ОС Linux команда переименования файлов отсутствует как таковая, поскольку команда перемещения mv превосходно справляется с изменением имени файла
mv file1 file2