36968

Захист мережевого сервісу (засобами ОС Windows 2003 Server, OC Linux)

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

Информатика, кибернетика и программирование

Типове ім'я принципіалу виглядає так root dmin@GRINDER.COM що означає ім'я primry nme root характеристику instnce який належить сектору GRINDER.conf [libdefults] defult_relm = GRINDER.COM kdc і dmin сервер для GRINDER.

Украинкский

2013-09-23

259.5 KB

2 чел.

Захист мережевого сервісу

(засобами ОС Windows 2003 Server, OC Linux)

Мета: навчитися встановлювати і налаштовувати мережеву систему аутентифікації користувачів Kerberos на прикладі Linux Ubuntu.

Теоретичні відомості

Розглянемо принцип роботи системи. Протокол описаний у RFC 1510 (tools.ietf.org/html/rfc1510) і RFC 4120 (tools.ietf.org/html/rfc4120). Нині клієнтські компоненти для роботи з Kerberos є у більшості сучасних операційних систем. Для підтвердження достовірності використовується довірена третя сторона, яка володіє секретними ключами усіх суб'єктів і що бере участь в попарній перевірці достовірності.

Коли клієнт намагається отримати доступ до ресурсу, він посилає запит, що містить відомості про себе і про запрошувану послугу. Увесь процес відбувається в три етапи, у відповідь контролер Kerberos (Key Distribution Center, KDC) видає квиток, що засвідчує користувача TGT (ticketgranting ticket). Кожен квиток має обмежений термін життя, що знижує інтерес до його перехоплення. Тому однією з вимог до системи Kerberos є синхронізація часу між усіма учасниками. При подальшому зверненні до інших сервісів вводити пароль вже не треба.

Кожен учасник системи Kerberos як служба, так і користувач іменуються принципіал (principial). Кожен принципіал має ім'я і пароль. Типове ім'я принципіалу виглядає так root/admin@GRINDER.COM, що означає ім'я (primary name) root, характеристику (instance), який належить сектору GRINDER.COM. Такий підхід дозволяє розрізняти декілька служб, що працюють на одному комп'ютері, і серед однотипних служб вибирати потрібну. Уся схема роботи від користувача прихована. При зверненні до ресурсу він, як і раніше, вводить тільки свій логін і пароль.

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

Хід роботи

 

1. Встановлюємо NTP

Перш ніж встановити Kerberos, необхідно налаштувати службу синхронізації часу (NTP – Network Time Protocol), без якої не можлива нормальна робота Kerberos.

$ sudo apt-get install ntp

Всі налаштування виконуються в одному файлі.

$ sudo mcedit /etc/ntp.conf

 

driftfile /var/lib/ntp/ntp.drift

statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats

filegen loopstats file loopstats type day enable

filegen peerstats file peerstats type day enable

filegen clockstats file clockstats type day enable

 

# сервери, з якими будемо синхронізовувати час

server ntp.ubuntulinux.org

server pool.ntp.org

server time.nist.gov

 

# використовуємо локальний час у випадку невдачі

server 127.127.1.0

fudge 127.127.1.0 stratum 13

 

restrict default kod notrap nomodify nopeer noquery

 

# локальні користувачі можуть здійснювати запит часу

restrict 127.0.0.1 nomodify

 

# вмикаємо broadcast

broadcast 192.168.1.255

 

# прослуховування часу в мережі

disable auth

broadcastclien

 

Перезапускаємо сервер.

$ sudo /etc/init.d/ntp restart

* Stopping NTP server ntpd [ OK ]

* Starting NTP server ntpd [ OK ]

Тепер синхронізуємо час.

$ ntpq -p -c as && echo && ntptrace

2. Установка Kerberos

У репозитаріях пакетів дистрибутивів Linux вже є все необхідне. Хоча за бажанням можна встановити систему з початкових текстів. Дистрибутив Heimdal знайдете на FTP сервері Стокгольмського університету ftp://ftp.pdc.kth.se/pub/heimdal/src. Там же можна знайти готові пакети для деяких дистрибутивів. Версія від MIT знаходиться за адресою http://web.mit.edu/kerberos/. 
Команда "sudo apt-cache search kerberos" в Ubuntu видасть великий список пакетів, в якому можна знайти вирішення від MIT і Hemdail. (http://www.tux.in.ua/wp-content/uploads/2008/01/319.png)

Основні їх налаштування практично ідентичні. Також ці системи розуміють квитки, видані одне одним, хоча є і проблеми сумісності (про них тут не згадуватимемо). Для прикладу виберемо версію від МІТ.

$ sudo apt-get install krb5-admin-server krb5-kdc krb5-config krb5-user krb5-clients

Основні налаштування Kerberos проводяться у файлі /etc/krb5.conf.  Набивати його повністю не треба, можна використати готовий шаблон.

$ sudo cp /usr/share/kerberos-configs/krb5.conf.template /etc/krb5.conf

Тепер відкриваємо файл і починаємо підганяти під свої умови.

$ sudo mcedit /etc/krb5.conf

 

[libdefaults]

default_realm = GRINDER.COM

 

# kdc і admin сервер для GRINDER.COM

[realms]

GRINDER.COM = {

kdc = server.grinder.com

admin_server = server.grinder.com

}

 

# повідомляємо kdc, які вузли входять в область GRINDER.COM

# якщо область і домен співпадають, цю секцію можно опустити

[domain_realm]

grinder.com = GRINDER.COM

.grinder.com = GRINDER.COM

 

# відключаємо сумісність із 4 версією Kerberos

[login]

krb4_convert = false

krb4_get_tickets = false

 

Цей файл використовується як сервером, так і додатками, тому його можна практично без змін поширити а решту систем, що входять в один realms (якщо їх багато, можна використовувати службу DNS). Усі налаштування KDC здійснюються в /etc/krb5kdc/kdc.conf. Більшу частину параметрів можна залишити без змін, виправивши лише realms:

$ sudo mcedit /etc/krb5kdc/kdc.conf

 

[kdcdefaults]

kdc_ports = 750,88

 

[realms]

GRINDER.COM = {

database_name = /var/lib/krb5kdc/principal

admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab

acl_file = /etc/krb5kdc/kadm5.acl

key_stash_file = /etc/krb5kdc/stash

kdc_ports = 750,88

max_life = 10h 0m 0s

max_renewable_life = 7d 0h 0m 0s

master_key_type = des3-hmac-sha1

supported_enctypes = des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3

default_principal_flags = +preauth

}

 

Перезапускаємо KDC і сервер адміністрування.

$ sudo /etc/init.d/krb5-kdc restart

$ sudo /etc/init.d/krb5-admin-server restart

 

Стаорюємо принци піали і ключі

Спочатку слідж створити нову базу даних і наповнити її принципіалами. Тут можливі кілька варіантів, один з яких виклик kadmin з ключем –l. Можна використовувати спеціальні утиліти.

$ sudo kdb5_util create -s

Loading random data

Initializing database ‘/var/lib/krb5kdc/principal’ for realm ‘GRINDER.COM’,

master key name ‘K/M@GRINDER.COM’

You will be prompted for the database Master Password.

It is important that you NOT FORGET this password.

Enter KDC database master key:

Re-enter KDC database master key to verify:

 

Нову базу створено. Утиліта просить ввести пароль. Не забудьте його. Створимо принципіал, який буде потрібен для адміністративних цілей:

$ sudo kadmin.local -q «addprinc admin/admin»

Authenticating as principal root/admin@GRINDER.COM with password.

Enter password for principal «admin/admin@GRINDER.COM»:

Re-enter password for principal «admin/admin@GRINDER.COM»:

Principal «admin/admin@GRINDER.COM» created.

Authenticating as principal root/admin@GRINDER.COM with password.

Enter password for principal «admin/admin@GRINDER.COM»:

Re-enter password for principal «admin/admin@GRINDER.COM»:

Principal «admin/admin@GRINDER.COM» created.

 

Для додавання принципіалів для KDC, admin сервера, свого комп’ютера, користувачів скористаємось інтерактивним режимом роботи:

$ sudo kadmin.local -p admin/admin

Authenticating as principal admin/admin with password.

# зареєструвались, використавши принципіал адміністратора

# створюємо принципіал комп’ютера. Оскільки комп’ютер не буде вводити пароль, використовуємо випадковий пароль

kadmin.local: addprinc -randkey host/grinder.com

Principal «host/grinder.com@GRINDER.COM» created.

# тепер користувач

kadmin.local: addprinc grinder

Enter password for principal «grinder@GRINDER.COM»:

Re-enter password for principal «grinder@GRINDER.COM»:

Principal «grinder@GRINDER.COM» created.

# додамо принципіал комп’ютера в файл keytab, у якому зберігаються власні принципіали

kadmin.local: ktadd host/grinder.com

Entry for principal host/grinder.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.

Entry for principal host/grinder.com with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.

 

І так далі. Щоб мати можливість заходити віддалено на сервер з використанням Kerberos необхідно створити файл  .k5login (з крапкою), у який вписати ім’я принципіал.

$ echo grinder@GRINDER.COM > ~/k5login

3. Налаштовуємо робочу станцію

До складу обох варіантів Kerberos входять утиліти, призначенв для заміни стандартних системних утиліт на зразок /bin/login. Налаштування керберизації в рвзних дистрибутивах будуть відрізнятися. Хоча б тому, що у більшості систем використовується /sbin/init і достатньо в /etc/inittab замінити /bin/login на керберизований /usr/bin/login, після чого при реєстрації користувача спочатку буде іти звернення до Kerberos, а у випадку невдачі – до локальної бази /etc/passwd. В Ubuntu з 6.10 замість /sbin/init використовується нова система завантаження upstart, тому тут все дещо по-іншому.

 Для налаштування нам знадобляться пакети krb5-clients, krb5-user і libpam-krb5. Файл /etc/krb5.conf беремо з KDC. Потім приступаємо до налаштування PAM. У каталозі /etc/pam.d необхідно створити файл common-krb5 такого змісту:

auth sufficient /lib/security/pam_krb5.so use_first_pass

 

В самому кінці файлу /etc/pam.d/login є рядки, що описують методи аутентифікації.

 # Standard Un*x account and session

@include common-account

@include common-session

@include common-password

  Перед цими рядками додаємо іще один:

@include common-krb5

 

Якщо реєстрація в системі здійснюється у графічному менеджері (GDM в Ubuntu, KDM в KUbuntu, в файлах gdm і/або kdm), діємо аналогічно. До речі, в репозитаріїї є пакет kredentials, після встановлення якого в панелі задач з»явиться аплет, за допомогою якого можна керувати особистими квитками. Встановити його можна командою

$ sudo apt-get install kredentials

Після чого ярлик для запуску перейде в меню К.

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

PAGE  1


 

А также другие работы, которые могут Вас заинтересовать

66936. Ми у космос летимо. Заняття за інтересами 920 KB
  Мета. Закріпити вміння учнів працювати з технікою складання паперу «Орігамі». Виготовити моделі ракет, супутників, гратографії «Сузір’я», геометричну аплікацію, мозаїку «Чумацький шлях». Навчати працювати в групах, в парах та закріплювати вміння працювати з ножицями,...
66937. Рідна земля, живи! Виступ екологічної агітбригади 76.5 KB
  Мета: донести до людей значення екологічних проблем, зокрема, характерних для рідного краю; залучати учнів до агітаційної роботи з даного питання; виховувати любов до планети Земля, сприяти хоча б частковому вирішенню екологічної ситуації.
66938. Даруйте радість людям – і стане світ багатшим 53.5 KB
  Виховувати в учнів почуття доброти чуйності милосердя поваги до людей; формувати активну життєву позицію яка проявляється в дієвій допомозі людям; формувати в учнів уміння формулювати судження виховувати високі моральні якості. Добро спішіть творити люди. Живіть добро звершайте Та нагород за це не вимагайте.
66939. «Сумні дати серця» (сторінками життя Василя Стефаника) 120.5 KB
  Мета:познайомити учнів із життєвим шляхом українського письменника Василя Стефаника, розкрити трагізм його життя; розвивати чуйність, увагу, спостережливість; виховувати почуття патріотизму, любові до України, її синів. У додатку – презентація «Надто добрий знавець народної мужицької душі (життя і творчість В.Стефаника)».
66940. Професія педагога: «за» і «проти» 38.5 KB
  Слово суддям заключне слово класного керівника хід класної години Класний керівник: Сьогодні моє слово до вас мої вихованці. На нашому ринзі незвичайна і дуже відповідальна зустріч зустріч захисників і противників професії педагога. У правому куті команда захисників професії.
66941. Внеклассное мероприятие по английскому языку «Великобритания» 35.5 KB
  Thank you, and now I want you to know more about our teams. Let introduce with our teams. The competition consists of several tasks. The 1st task is to answer the questions about Great Britain. If your answer is correct the team will get one point. If your answer is wrong the second team will be allowed to give the answer.
66942. Досліджую свою оселю 72.5 KB
  Мета: вчити учнів досліджувати своє довкілля, робити висновки зі своїх досліджень, формувати у дітей уявлення про різноманітність архітектурних споруд, викликати інтерес до пізнання через дослідження, розвивати прагнення прикрасити, зробити комфортнішою свою оселю...
66943. Від пірамід до хмарочосів 1.16 MB
  Мета заходу: ознайомити учнів – випускників шкіл з професією будівельника, показати велич та красу цієї професії, довести, що професія будівельника – це постійний пошук та нескінченна творчість, допомогти дитині зробити професійний вибір відповідно своїм здібностям, інтересам, нахилам.
66944. Закріплення звукового значення букви «ґе». Опрацювання тексту «Ґави і Галаган» 76 KB
  Хід уроку Організаційний момент Вчитель Стали діти рівненько привітайте один одного посмішками починаємо наш урок читання. Рідну мову ми вивчаємо ЇЇ любимо не забуваємо Вчитель Як ми будемо працювати Учні Працюватимемо старанно. Щоб почути у кінці Що у нашім першім класі Діти просто молодці...