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

RCv2

.pdf
Скачиваний:
62
Добавлен:
14.04.2015
Размер:
997.9 Кб
Скачать

Лабораторная работа №2

Знакомство с системой разграничения прав доступа на базе Linux. Цель работы:

1.Изучить права доступа

2.Изучить понятия пользователя и группы

3.Приобрести навыки управления пользователями и их правами с помощью графических и консольных утилит.

Теоретические основы лабораторной работы. Часть 1.

Права доступа — совокупность правил, регламентирующих порядок и условия доступа субъекта к объектам информационной системы (информации, её носителям, процессам и другим ресурсам) установленных правовыми документами или собственником, владельцем информации.

Права доступа определяют набор действий (например, чтение, запись, выполнение), разрешённых для выполнения субъектам (например, пользователям системы) над объектами данных. Для этого требуется некая система для предоставления субъектам различных прав доступа к объектам. Это система разграничения доступа субъектов к объектам,котораярассматриваетсявкачествеглавногосредствазащиты от несанкционированного доступа к информации.

ВLinux каждый объект обладает собственным идентификатором,

атакже правами доступа, применяемыми к данному идентификатору. Свой идентификатор есть у пользователя - UID, у группы - GID, у файла - inode. Понятие инода было изучено ранее, в лабораторной работе №1. Сам по себе inode является, не только идентификатором объекта

– файла или каталога. Кроме этого он содержит в себе информацию об этом файле или каталоге. Например, такую, как принадлежность к

владельцу/группе, тип файла и права доступа к файлу.

Чтобы увидеть права доступа к файлу или каталогу, его тип и владельцев, а также, если необходимо, и сам номер inode, необходимо выполнитькомандуls–li.Врезультатебудутвыведеныстрокипримерно такого содержания:

22089 drwxr-xr-x 2 root root 3072 Ноя 15 14:15 bin

Рассмотрим эту строку по частям:

10

%% 22089 – номер инода

%% drwxr-xr-x – права доступа (описаны ниже) %% 2 – количество жестких ссылок на инод %% root – имя владельца файла

%% root – имя группы владельца файла %% 3072 – размер файла %% Ноя 15 14:15 – время создания файла

%% bin – имя файла или каталога

Для каждого объекта файловой системы в Linux существует три основных типа прав разграничения доступа: право на чтение (r от read), запись (w от write) и выполнение (x от execution). В полномочия записи входят также возможности удаления и изменения объекта. Эти полномочия указываются отдельно для владельца файла, членов группы

файла и для всех остальных пользователей.

Выше было показано, каким образом представлены правила разграничения доступа для определенного инода. Если бы мы захотели поставить право на чтение, запись и исполнение и для владельца, и для группы,идляобычныхпользователей,тозаписьправдоступавыглядела бы так: rwx rwx rwx. Иными словами:

d

r

w

x

r

w

x

r

w

x

Тип файла

Чтение для владельца

Запись для владельца

Исполнение для владельца

Чтение для групп Запись для группы

Исполнения для группы

Чтение для остальных пользователей

Запись для остальных пользователей

Исполнение для остальных пользователей

 

Кроме указанного выше символьного представления прав доступа,

существует так же и числовое представление:

 

 

 

 

 

 

Владелец

 

Группа

Остальные

 

Буквенное

 

 

rwx

 

r-x

 

r--

Числовое (Двоичное)

 

111

 

101

 

100

 

Итоговое

 

 

7

 

5

 

4

Вприведеннойтаблицепоказано,чтоеслиправодоступасуществует, ему соответствует 1, если нет – 0. При переводе полученных трех чисел в восьмеричную систему можно получить 3 числа от 0 (если прав нет) до 7 (полный набор прав).

11

Часть 2. Основные команды для управления правами доступа

$sudo su – получить права суперпользователя

$sudo [команда] – выполнить команду от имени суперпользователя

sudo nano text.txt

$useradd [имя пользователя] – создать пользователя

$usermod [опции] [имя пользователя] – изменить запись пользователя. Подробное описание опций есть в man-файле.

$userdel [имя пользователя] – удалить пользователя

$ id [имя пользователя] – узнать идентификатор пользователя

Управление правами доступа осуществляется с помощью команды chmod; управление владельцем файла – с помощью команды chown.

$chmod[группаправ][действиясправами][какиеправа][объект]

или

$chmod [права] [объект]

Здесь:

%% Группа прав: u – владелец, g – владелец-группа, o – остальные пользователи, a – все вышеперечисленные.

%% Действия с правами: + (добавить), - (убрать), = (присвоить указанное)

%% Какие права: r- чтение, w - запись, x - выполнение %% Объект: имя или путь к файлу

%% Права: числовое обозначение прав доступа – описано ранее

Примеры:

chmod a=rw file

chmod ugo=rw file1

chmod 766 file3

$chown user:group file – сменить владельцев файла на

12 user:group.

Часть 3. Дополнительные атрибуты файлов в Linux

В операционных системах Linux, кроме прав на чтение, запись и исполнение, существует три дополнительных атрибута: Sticky bit, SUID

и SGID.

Sticky bit – бит закрепления в памяти. Это бит используется, в основном,вкаталогахдлязащитыфайлов.Делатьзаписивтакойкаталог может любой пользователь, однако удалять он имеет право только те файлы, владельцем которых он является. Пример – директория /tmp.

SUID (Set User ID) – атрибут исполняемого файла, позволяющий запустить его с правами владельца. Если на исполняемый файл установлен бит suid, то при выполнении эта программа автоматически меняет "эффективный userID" на идентификатор того пользователя, который является владельцем этого файла. То есть, не зависимо от того - кто запускает эту программу, она при выполнении имеет права хозяина этого файла.

SGID(онжеSetGroupID)–аналогиченSUID,ноотноситсякгруппе. При этом, если для каталога установлен бит SGID, то создаваемые в нем объекты будут получать группу владельца каталога, а не пользователя.

Описанные выше специальные права используются редко, поэтому при вызове команды ls –l символ, обозначающий атрибуты, закрывает символ стандартных прав доступа. Пример: rwsrwsrwt, где первый s

– SUID, второй – SGID, t – Sticky (в данном случае t обозначает x, Т обозначает -).

Порядок выполнения работы

1.Откройте две консоли. В одной из них получите права суперпользователя.

2.Создайте пользователя «student».

3.Посмотрите какой идентификатор получил пользователь «stu-

dent».

4.Скопируйте какой-нибудь файл в домашний каталог пользователя «student», используя консоль с правами пользователя «student».

5.Просмотрите права доступа на домашний каталог пользователя

«student», используя команду ls –la.

6.Установите права в домашний каталог пользователя «student»

используя команду chmod. (прим. # chmod 717 /home/student)

7.Проверьте сделанные изменения (Пункты 4 и 5).

8.Включите пользователя «student» в группу «root»,

используя команду usermod -G root student. Команда должна

13

быть выполнена с правами root.

9.Проверьте сделанные изменения при помощи команды id.

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

11.Удалите пользователя «student»

12.Изучитевозможностиуправленияправаминафайлыикаталоги при помощи графических утилит.

Описание лабораторной установки

1.Установленный VirtualBox

2.Ubuntu установленная на VirtualBox

3.Установка дополнительных пакетов не требуется

Оформление отчета

Отчет к лабораторной работе должен включать в себя следующие элементы:

1.Скриншоты работы каждой изученной команды

2.Комментарии к каждому скриншоту

3.Ответы на контрольные вопросы

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

1.Какой uid у пользователя student? В какие группы он входит?

2.Почему задание в п.4 не было выполнено?

3.Какие права доступа установлены на домашний каталог пользователя «student» в п.5 задания?

4.Какие права установлены на Вашем файле, скопированном в домашний каталог пользователя «student»? Сможет ли пользователь с правами student его просматривать? Изменять?

5.Удалилась ли домашняя папка пользователя «student» при удаление его учетной записи? Если нет, то почему?

6.Какое значение имеет право на запись для каталога?

7.Какое значение имеет право на исполнение для каталога?

8.Как разрешить программе исполняться?

9.Что такое бит suid? Что он делает?

10.Зачем нужны uid и gid?

Лабораторная работа №3

Знакомство с операциями создания задач в операционных системах на базе Linux.

Цель работы:

1. Изучить команды создания задач для операционной системы

14

2.

Изучить файл Crontab, а также его редактирование

Теоретические основы лабораторной работы.

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

Первый из них – демон Cron (в некоторых дистрибутивах – crond). Понятие демона было дано в предыдущих лабораторных работах. Запуск демона Cron обычно происходит в момент запуска операционной системы. После запуска демон ежеминутно проверяет свои таблицы на наличие задач, для каждой из которых указано время выполнения и непосредственно суть выполняемого действия. Основной конфигурационный файл демона Cron - /etc/crontab. Запустим его.

Перед нами появляется окно, в котором после нескольких закомментированных строк (с помощью символа #), идут строки примерно такого содержания:

SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

25 6 * * * root cd / && run-parts –report /etc/cron.daily

17 * * * * root test –x /usr/sbin/anacron || (cd / && run-parts –report / etc/cron.daily )

Каждая строка планировщика состоит из 7 полей. Первые 5 полей определяют периодичность или время выполнения команды (расписание). 6-e поле – имя «владельца» процесса. 7-е поле – описание самой запускаемой команды. Формат записи:

[минута] [час] [день месяца] [месяц] [день недели] [владелец] [процесс]

В полях, определяющих расписание, дозволительно использовать особые символы. Соответственно, допустимы следующие форматы записи:

Просто число Звездочка (*). Это означает все допустимые значения. Например,

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

Дефис (-) между

целыми числами обозначает диапазон чисел.

Например, 1-4 означает целые числа 1, 2, 3 и 4.

 

Список значений,

разделенных запятыми (,), обозначает

15

перечень. Например, перечисление 3, 4, 6, 8 означает четыре указанных целых числа.

Косая черта (/) используется для определения шага значений. Если после диапазона указать /<целое_число>. Например, значение минут 0-59/2, определяет, что задание будет запущено каждую вторую минуту.

Отдельно несколько слов следует сказать о способе задания месяца и дня недели. Месяц можно задавать либо числами от 1 до 12, либо тремя первыми буквами из названия (jan, feb, mar, apr и т.д.) День недели задается также либо числами от 0 до 6 (0 воскресенье), либо первыми буквами из названия (sun – sat).

Напоследок рассмотрим пример задач в файле Crontab:

# выполнить команду hello каждый вторник в 3:20

20 3 * * tue hello

# выполнить команду hello в первый день каждого месяца в 13:40

40 13 1 * * hello

15 10,13 * * 1,4 echo “Эта надпись выводится каждый понедельник и четверг в 10:15 и 13:15”

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

SHELL=/bin/bash

MAILTO=user

Перваяопределяетпутьккоманднойоболочке,вторая–пользователя, которому необходимо отправить отчет о выполнении. После них прописываются строки, определяющие задачи. Запись производится в том же формате, что и запись в файл Crontab.

После сохранения изменений достаточно воспользоваться командой crontab [имя файла], и задачи для исполнения, содержащиеся в этом файле будут добавлены.

Наконец третий способ связан с использованием команд at, atq, atrm. Перваяизних–командаatпривводевформатеat23:45,позволяетпосле этого выбрать задачи, которые будут выполняться в выбранный момент времени. Формат определения времени и даты выполнения отличается от аналогичного в файле crontab, с ним предлагается ознакомиться с

 

помощью документации man. Далее приведен пример создания

16

команд с помощью at:

 

at 23:45

>at echo “hello”

>at echo “hi”>>/usr/text.txt

>at ctrl+D

При этом каждая из команд получит свой номер. Увидеть этот номер можно, воспользовавшись командой atq. С помощью команды atrm осуществляется удаление выбранной задачи по указанному номеру

(прим. atrm 1).

Порядок выполнения работы

1.Ознакомитьсясработойфайлаcrontab.Создатьнесколькозадач, проследить за выполнением. Пример задачи – запись в какой-либо файл определенной строки по расписанию.

2.Изучить команды crontab, at, atq, atrm. Создать несколько задач, удалить пару из них. Проследить за выполнением.

Описание лабораторной установки

1.Установленный VirtualBox

2.Ubuntu установленная на VirtualBox

3.Установка дополнительных пакетов не требуется

Оформление отчета

Отчет к лабораторной работе должен включать в себя следующие элементы:

1.Скриншоты работы каждой изученной команды

2.Комментарии к каждому скриншоту

3.Ответы на контрольные вопросы

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

1.Как работают команды at, atq и atrm, и каково их назначение?

2.Каковы основные задачи демона cron?

3.Что содержит в себе файл crontab?

4.Как работает команда crontab?

5.Какой формат записи расписания команд в файле crontab?

Лабораторная работа №4

Настройка виртуальной локальной сети. Изучение методов сканирования nmap.

Цель работы:

1. Настроить с использованием средств Virtual Box виртуальную

локальную сеть.

17

2.Изучить методы сканирования Nmap.

3.Изучить основные правила настройки Netfilter.

Теоретические основы лабораторной работы Часть 1. Изучение средств сканирования Nmap.

Существует несколько средств сканирования Nmap, широко применяемых в настоящее время. Рассмотрим некоторые из них.

Ping-сканирование

Самым распространенным и простым способом сканирования является простое ping-сканирование, которое заключается в отправке ICMP пакетов на разные хосты. Хост, который активен, ответит на эти пакеты. Форма подачи запроса:

ping 192.168.58.103

Если хост активен, то будет периодически выводиться строка вида:

64 bytes from 192.168.58.103: icmp_seq=1 ttl=64 time=0,284mc

TCPConnect()

Второй доступный метод сканирования - TCP Connect. Он заключается в том, что сканирующая машина пытается установить соединение со сканируемой. Успешный результат говорит о том, что порт открыт, неудачный — о том, что он закрыт или фильтруется. Это сканирование легко обнаруживается по огромному количеству записей в log-файле неудачных попыток установления соединения и ошибок исполнения этой операции. Понятно, что средства защиты с максимальным быстродействием заблокируют адрес, вызывающий ошибки.

nmap –sT 192.168.58.103

TCP-SYN

БолеесовершеннымметодомсканированияявляетсяTCPSYN—так называемое «полуоткрытое сканирование». При вызове Nmap посылает SYN-пакет, как бы ради того, чтобы установить новое соединение. Если в ответе присутствуют флаги SYN илиACK, считается, что порт открыт. ФлагRSTговоритобобратном.Еслипришелответ,говорящийотом,что порт открыт, nmap незамедлительно отправляет RST пакет для сброса еще не установленного соединения. Сканирование осуществляется только при наличии прав суперпользователя (root).

nmap –sS 192.168.58.103

18

Сканирования FIN, Xmas Tree и NULL

Тем не менее, межсетевой экран или другие защитные средства могут ожидать приходящие SYN-пакеты. Из-за этого зачастую такой метод сканирования не дает результата. Поэтому существует еще целая группа возможных способов сканирования, альтернативных TCP SYN. Это FIN, Xmas Tree и NULL-сканирования. Большинство операционных систем по умолчанию, согласно рекомендациям, должны ответить на такие пакеты, прибывшие на закрытые порты флагом RST. Важная деталь: ни одна операционная система семейства Windows никогда не ответит RST пакетом на пришедший FIN, XmasTree или NULL пакет. Используя этот факт даже при подобных, в общем-то, не особо детальных сканированиях можно предположить, как минимум семейство операционных систем.

nmap –sF 192.168.58.103

nmap –sX 192.168.58.103

nmap –sN 192.168.58.103

Сканирование протоколов IP

Метод заключается в том, что хосту передаются IP пакеты без заголовков для каждого протокола сканируемого хоста. Если получено сообщение, говорящее о недоступности протокола, то этот протокол не поддерживается хостом. В противном случае — поддерживается.

nmap –sO 192.168.58.103

ACK-сканирование

ACK сканирование заключается в передаче ACK пакетов на сканируемый порт. Если в ответ приходит RST пакет, порт классифицируется как нефильтруемый. Если нет ответа или пришел ответ в форме ICMP-сообщения о недоступности порта, порт считается фильтруемым.Этотметодникогданепокажетсостояниепорта«открыт».

nmap –sA192.168.58.103

TCPWindow

TCP Window — похоже на ACK сканирование, однако по значениям поля Initial Window TCP-пакета пришедшего в ответ, можно определить открытые порты.

nmap –sW 192.168.58.103

RPC-сканирование

RPC-сканированиеиспользуетсядляопределенияпрограммы, 19

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