скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыКонтрольная работа: Безпека в мережевій операційній системі FreeBSD

У табл. 1.2 приведені приклади деяких дій над файлами і мінімальні права доступу, необхідні для виконання цих операцій.


Таблиця 1.2. Приклади прав доступу

Команда Зміст дії Мінімальні права доступу
для звичайного файлу для каталогу, що містить файл
cd /u/andrei Перейти в каталог /u/andrei x
Is /u/andrei/* .с Вивести усі файли із суффиксом з цього каталогу г
Is -s /u/andrei/*.с Вивести додаткову інформацію про ці файли (розмір) —— гх
cat report.txt Вивести на екран вміст файлу report.txt г х
cat » report.txt Додати дані у файл report.txt W х
runme.sh Виконати програму runme х х
runme Виконати скрипт командного інтерпретатора runme. Sh гх х
rm runme Видалити файл runme у поточному каталозі XW

Отже, для виконання операції над файлом мають значення клас доступу, до якого належить користувач, і права доступу, установлені для цього класу. Оскільки для кожного класу встановлюються окремі права доступу, усього визначено 9 прав доступу, по 3 на кожен клас.

Операційна система робить перевірку прав доступу при створенні, відкритті (для читання або запису), запуску на виконання або видаленні файлу. При цьому виконуються наступні перевірки:

1. Якщо операція запитується суперкористувачем, доступ дозволяється. Ніяких додаткових перевірок не робиться. Це дозволя адміністратору мати необмежений доступ до усієї файлової системи.

2. Якщо операція запитується власником файлу, то:

а) якщо необхідне право доступу визначене (наприклад, при операції читання файлу встановлене право на читання для власника-користувача даного файлу), доступ дозволяється,

б) в противному випадку доступ забороняється.

3. Якщо операція запитується користувачем, що є членом групи, що є власником файлу, то:

а) якщо необхідне право доступу визначене, доступ дозволяється,

б) в противному випадку доступ забороняється.

4. Якщо необхідне право доступу для інших користувачів (other) установлено, доступ дозволяється, у противному випадку доступ забороняється.

Система проводить перевірки в зазначеній послідовності. Наприклад, якщо користувач власником файлу, то доступ визначається винятково з прав власника-користувача, права власники-групи не перевіряються, навіть якщо користувач є членом власника-групи. Щоб проілюструвати це, розглянемо наступне:

--—rw-r-- 2 andy group 65 Dec 22 19:13 filel

Навіть якщо користувач andy є членом групи group, він не зможе ні прочитати, н змінити уміст файлу filel. У той же час всі інші члени цієї групи мають таку можливість. У даному випадку, власник файлу має найменші права доступу до нього. Зрозуміло, розглянута ситуація носить гіпотетичний характер, оскільки користувач andy у будь-який момент може змінити права доступу до даного файлу як для себе (власника), так і для групи, і всіх інших користувачів у системі.

Додатков атрибути файлу

Ми розглянули основні атрибути, що керують доступом до файлу. Існує ще кілька атрибутів, що змінюють стандартне виконання різних операцій. Як і у випадку прав доступу, ці атрибути по-різному інтерпретуються для каталогів і інших типів файлів.

Додатков атрибути також встановлюються утилітою chmod(l), але замість кодів 'г', 'w' чи 'х' використовуються коди з табл. 1.3. Наприклад, для установки атрибута SGID для файлу filel необхідно виконати команду

$ chmod g+s filel'.

У табл. 1.3 приведені додаткові атрибути для файлів, і показано, як вони нтерпретуються операційною системою.

Таблиця 1.3. Додаткові атрибути для звичайних файлів
Код Назва Значення
t Sticky bit Зберегти образ виконуваного файлу в пам'яті після завершення виконання
S Set UID, SUID Установити UID процесу при виконанні
S SetGID, SGID Установити GID процесу при виконанні
1 Блокування Установити обов'язкове блокування файлу

Установка атрибута Sticky bit (справжня назва — save text mode) рідко використовується в сучасних версіях FREEBSD для файлів. У ранніх версіях цей атрибут застосовувався з метою зменшити час завантаження програм, що часто запускаються, (наприклад, редактора або командного інтерпретатора). Після завершення виконання задачі її образ (тобто код і дані) залишалися в пам'яті, тому наступні запуски цієї програми займали значно менше часу.

Атрибути (чи прапори) SUID і SGID дозволяють змінити права користувача при запуску на виконання файлу, що має ці атрибути. При цьому привілеї будуть змінен (зазвичай розширені) лише на час виконання і тільки у відношенні цієї програми.

Як правило програма, що запускається, дістає права доступу до системних ресурсів на основі прав доступу користувача, що запустив програму. Установка прапорів SUID і SGID змінює це правило, призначаючи права доступу виходячи з прав доступу власника файлу. Таким чином, запущений виконуваний файл, яким володіє суперкористувач, дістає необмежені права доступу до системних ресурсів, незалежно від того, хто його запустив. При цьому установка SUID приведе до спадкування прав власника-користувача файлу, а установка SGID власника-групи.

Як приклад використання цієї властивості розглянемо утиліту passwd(l), що дозволя користувачу змінити свій пароль. Очевидно, що зміна пароля повинна привести до зміни зміни певних системних файлів (файлу пароля /etc/passwd чи /etc/shadow,або бази даних користувачів, якщо використовується додатковий захист системи). Зрозуміло, що надання права на запис у ці файли всім користувачам системи є аж ніяк не кращим рішенням. Установка SUID для програми passwd(l) (точніше, на файл /usr/bin/passwd — файл утиліти, що виконується, passwd(l)) дозволяє добірно дозволити це протиріччя. Оскільки власником файлу /usr/bin/passwd є суперкористувач (його ім'я в системі — root), то хто б н запустив утиліту passwd(l) на виконання, під час роботи даної програми він тимчасово дістає права суперкористувача, тобто може робити запис у системн файли, захищені від інших користувачів.

$ Is -IPa /usr/bin/passwd

-r-sr-sr-x 3 root sys 15688 Oct 25 1995 /usr/bin/passwd*

Зрозуміло, що вимоги по безпеці для такої програми повинні бути підвищені. Утиліта passwd(J) повинна робити зміну пароля тільки користувача, що запустив її, і не дозволяти ніякі інші операції (наприклад, виклик інших програм).

Блокування файлів дозволяє усунути можливість конфлікту, коли дві чи більш задач одночасно працюють з тим самим файлом.

Однак повернемося до обговорення додаткових атрибутів для каталогів (табл. 1.4).


Таблиця 1.4. Додаткові атрибути для каталогів

Код Назва Значення
t Sticky bit Дозволяє користувачу видаляти тільки файли, якими він чи володіє має права на запис
S Set GID, SGID Дозволяє змінити правило установки власника групи створюваних файлів, аналогічно реалізованому в BSD FreeBSD

Під час обговорення прав доступу відзначалося, що надання права на запис у каталог дає досить великі повноваження. Маючи таке право, користувач може видалити з каталогу будь-який файл, навіть той, власником якого він не є й у відношенн якого не має ніяких прав. Установка атрибута Sticky bit для каталогу дозволя установити додатковий захист файлів, що знаходяться в каталозі. З такого каталогу користувач може видалити тільки файли, якими він володіє, чи на який він має явне право доступу на запис, навіть при наявності права на запис у каталог. Прикладом може служити каталог /tmp, що є відкритим на запис для всіх користувачів, але в який може виявитися небажаної можливість видалення користувачем чужих тимчасових файлів.

Атрибут SGID також має інше значення для каталогів. При установці цього атрибута для каталогу знову створені файли цього каталогу будуть успадковувати власника-групу по власнику-групі каталогу. У такий спосіб для FREEBSD верс System V вдається імітувати поводження систем версії BSD, для яких таке правило спадкування діє за замовчуванням.

Подивитися наявність додаткових атрибутів можна за допомогою докладного списку файлів:

$ Is –1

drwxrwxrwt -r-sr-sr-x 5 sys 3 root sys 367 sys 15688 Dec 19 Oct 25 20:29 /tmp 1995 /usr/bin/passwd


Таблиця 1.5. Операції зміни атрибутів файлу

Операція Команда/системний виклик Кому дозволено
Зміна прав доступу chmod(1) Власник
Зміна додаткового атрибута Sticky bit chmod(1) Суперкористувач
Зміна додаткового атрибута SGID chmod(1) власник, причому його GID також повинний збігатися з ідентифікатором групи файлу

Користувач системи

Зараз же наша задача — розібратися, яку інформацію зберігає система про користувача. Для цього розглянемо фрагмент файлу /etc/passwd:

root :x:0:l:0000-Adinin( 0000) : /: /bin/bash daemon:х:1:1:0000-Admin(0000):/:

bin:x:2:2:OOOO-Admin(OOOO):/usr/bin:

sys:x:3:3:0000-Admin(0000) :/:

adm:x:4:4:0000-Admin(0000):/var/adm:

lp:x:71:8:0000-lp(0000):/usr/spool/lp:

uucp:x:5:5:0000-uucp(0000):/usr/lib/uucp:

nobody:x:60001:60001:uid no body:/:

andy:x:206:101:Andrei Robachevsky:/home/andy:/bin/bash

Кожен рядок файлу є записом конкретного користувача і має наступний формат:

name-.passwd-encod:UID:GID:comments:home-dir:shell всього сім полів (атрибутів), розділених двокрапками.


Розглянемо докладніше кожний з атрибутів:

name Реєстраційне ім'я користувача. Це ім'я користувач вводить у відповідь на запрошення системи login. Для невеликих систем ім'я користувача досить довільне. У великих системах, у яких зареєстровані сотн користувачів, вимоги унікальності змушують застосовувати визначені правила вибору імен.
Password-encod

Пароль користувача в закодованому виді. Алгоритми кодування відомі, але вони не дозволяють декодировать пароль. При вході в систему пароль, що набирається, кодується, і результат порівнюється з полем Password-encod. У випадку збігу користувачу дозволяється ввійти в систему.

Навіть у закодованому виді доступність пароля представляє деяку небез-пеку, тому часто пароль зберігають в окремому файлі.

Користувач, у даному полі якого є символ * , ніколи не зможе потрапити в систему. Як правило такий пароль мають псевдокористувачі.

UID Ідентифікатор користувача є внутрішнім представленням користувача в системі. Цей ідентифікатор успадковується задачами, що запуска користувач, і файлами, що він створює. По цьому ідентифікаторі система перевіряє користувальницькі права (наприклад, при запуску програми чи читанн файлу). Суперкористувач має UID == 0, що дає йому необмежені права в системі.
GID Визначає ідентифікатор первинної групи користувача. Цей дентифікатор відповідає ідентифікатору у файлі /etc/group, що містить ім'я групи і повний список користувачів, що є її членами. Приналежність користувача до групи визначає додаткові права в системі. Група визнача загальні для всіх членів права доступу і тим самим забезпечує можливість спільної роботи (наприклад, спільного використання файлів).
comments Як правило, це повне "реальне" ім'я користувача. Це поле може містити додаткову інформацію, наприклад, телефон або адрес електронної пошти. Деякі програми (наприклад, flnger(l) і поштов системи) використовують це поле.
home-dir Домашній каталог користувача. При вході в систему користувач виявляється в цьому каталозі. Як правило, користувач має обмежен права в інших частинах файлової системи, але домашній каталог і його підкаталоги визначають область файлової системи, де він є повноправним хазяїном.
shell Ім'я програми, що FREEBSD використовує як командного нтерпретатора. При вході користувача в систему FREEBSD автоматично запустить зазначену програму. Звичайно це один зі стандартних командних інтерпретаторів /bin/sh (Bourne shell), /bin/csh (C shell) чи /bin/ksh (Kom shell), що дозволяють користувачу вводити команди і запускати задачі. В принципі, у цьому полі може бути зазначена будь-яка програма, наприклад, командний нтерпретатор з обмеженими функціями (restricted shell), клієнт системи керування базою даних чи навіть редактор. Важливо те, що, завершивши виконання цієї задачі, користувач автоматично вийде із системи. Деякі системи мають файл /etc/shells, що містить список програм, що можуть бути використан як командний інтерпретатор.

Паролі

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

Призначити або змінити пароль можна командою passwd(l). Звичайний користувач може змінити свій пароль, адміністратор може призначити пароль будь-якому користувачу.

Перед запуском програми passwd(l) варто тримати в голові загальне правило вибору пароля: пароль повинний добре запам'ятовуватися і бути важким для підбору.

Не рекомендується записувати пароль, його необхідно запам'ятати. Власне прізвище, кличка улюбленого собаки, рік і місяць народження, безумовно легкі для запам'ятовування, але такі паролі неважко підібрати. Багато систем пропонують пароль, згенерований самою системою. Передбачається, що він зовсім позбавлений якого-небудь змісту, тобто не містить імен, і звань і взагалі яких-небудь вимовних слів. Хоча система пропонує його у вигляді, зручному для запам'ятовування, це не завжди допомагає.

Багато систем вимагають, щоб пароль задовольняв наступним вимогам:

·     довжина пароля не повинна бути менше шести символів;

·      пароль повинний включати принаймні 2 алфавітних символи й одну цифру або спеціальний символ;

·     пароль повинний містити хоча б 3 символи, що не зустрічалися у вашому попередньому паролі.

Паролі відіграють значну роль у забезпеченні безпеки системи. Загальні рекомендації, адресовані насамперед адміністраторам, можна звести до наступного:

1. У системі не повинне існувати незахищених користувальницьких входів. Це відноситься як до користувальницьких входів без пароля, так і до входів користувачів, що залишили систему. Якщо користувач тривалий час не працює в системі, видалите його чи запис хоча б захистите його вхід символом '*' у поле пароля.

2. Якщо система допускає, установіть мінімальну довжину пароля. У залежності від вимог безпеки в системі це число може варіюватися від 8 до 12.

3. Завжди змінюйте пароль у наступних випадках:

якщо хто-небудь довідався ваш пароль.

якщо користувач більше не працює у вашій системі, усі паролі, що він знав, повинний бути змінений.

якщо міняється адміністратор системи, повинні бути змінені всі системні паролі.

якщо у вас з'явилася підозра, що файл паролів був зчитаний по мережі, буде розумним перемінити всі паролі в системі.

4. Пароль адміністратора повинний періодично мінятися, незалежно від обставин.

5. Це може показатися дивним, але не варто змушувати користувачів змінювати парол надто часто. Швидше за все, у цьому випадку користувач вибере не кращий пароль. Але змінювати паролі усе-таки випливає. Частота зміни залежить від ступеня приступності вашої системи (ізольована станція, сервер з мережним доступом, наявність мережних екранів).

Не применшуйте роль паролів у системі.

Стандартн користувачі і групи

Після установки FreeBSD звичайно вже містить кілька зареєстрованих користувачів. Перелічимо основні з них (у різних версіях системи UID цих користувачів можуть незначно відрізнятися):



Ім'я

Користувач
Root Суперкористувач, адміністратор системи, UID=0. Користувач з цим ім'ям має необмежені повноваження в системі. Для нього не перевіряються права доступу, і в такий спосіб він має вс "важелі" для керування системою. Для виконання більшості функцій адміністрування потрібно вхід саме з цим ім'ям. Слід зазначити, що root — це тільки ім'я. Насправді значення має UID. Любою користувач з UID=0 ма повноваження суперкористувача
Adm Псевдокористувач, що волод файлами системи ведення журналів
Bin Звичайно це власник усіх файлів, що виконуються, що є командами FreeBSD
Cron Псевдокористувач, що волод відповідними файлами, від імені якого виконуються процеси підсистеми запуску програм за розкладом
ip чи lpd Псевдокористувач, від імені якого виконуються процеси системи друкування, що володіє відповідними файлами
News Псевдокористувач, від імені якого виконуються процеси системи телеконференцій
Nobody Псевдокористувач, використовуваний у роботі NFS
Uucp Псевдокористувач підсистеми FreeBSD -to- FreeBSD copy (uucp), що дозволяє передавати поштові повідомлення файли між FreeBSD -хостами

Нова система також містить ряд передвстановлених груп. Оскільки групи, як правило, менш важливі, приведемо лише дві категорії:

Ім'я Група
root чи wheel Адміністративна група, GID=0
User чи users чи staff Група, у яку за замовчуванням включаються всі звичайн користувачі FreeBSD

Завдання на роботу

1. Ввійти в мережу під ім'ям root

2. Створити свій особистий об'єкт myname і домашню директорію

          2.1 Створимо користувача myname

          2.2 Створити домашн директорії

          2.3 Переконатися в створенні директорій

          2.4 Перевірити їх права доступу

3. Призначити користувачу myname групі myname права, необхідні для зміни інформації

          3.1 Забрати усі права доступу

          3.2 Призначити права доступу, для того щоб користувач і група myname одержали право на можливість зміни інформації в об'єкті

4. Призначити користувачу myname групі myname права, необхідні для того, щоб вони могли запускати файли, що виконуються

5. Призначити користувачу myname групі myname права, необхідні для того, щоб вони могли проглядати директорію

6. Вийти з мережі

7. Ввійти в мережу під ім'ям myname

8.

          8.1 Перевірити права доступу директорій folder і mydir

          8.2 Переконатися, що в користувача myname є права тільки на директорію folder

9. Видалити всі створені об'єкти

          9.1 Видалити користувача myname


Страницы: 1, 2


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.