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


 

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

34723. Денежная система Древнерусского государства 15.01 KB
  происходит дальнейшее усложнение денежной системы. общерусская денежновесовая система как бы разделилась на две местные системы северную и южную. В основу северной системы была положена норма веса принятая в торговле с Западной Европой. Гривна этой системы равнялась 5119 г серебра и являлась древнейшим элементом возникше.
34724. Мера веса и объема в удельных княжествах 12.94 KB
  Основными мерами веса являлись большая96 золотников и малая48 золотников гривенка. В новгородских летописях появляется новая единица весапочка служившая при взвешивании благородных металлов и драгоценных камней. Продолжают употребляться крупные единицы весаберковец равный 10 пудам; пуд; а так же новая мера капь=4 пудам= 65.
34725. Изменение единиц площади, длины и расстояния в удельных княжествах 15.91 KB
  Сохраняется старое деление крупных единиц на мелкие: локоть или стопа = 2 пядям или ногам; сажень = 4 локтям = 8 пядям.и сажень в 174 см. Малой пяди в 19 см соответствовал локоть в 38 см й сажень в 152 см. Помимо указанных размеров саженей локтей и пядей в употреблении была и сажень в 216 см образовавшаяся на основании пяди с кувырком в 27 см1.
34726. Дифференциация денежной системы Руси периода феодальной раздробленности 18.37 KB
  Таким образом гривна из счетной денежной единицы гривны кун превратилась в гривну серебра. По источникам можно проследить что стоимость гривны серебра была в четыре раза больше стоимости гривны кун. Вес этой гривны 195 2045 г. Основные единицы гривны сеЬёрорусской и южнорусской денежных систем существовали в виде слитков.
34727. Метрологическая деятельность Московского государства по унификации системы измерений 16.43 KB
  Если в период феодальной раздробленности можо было наблюдать различие в местных мерах то в Русском централизованном государстве правительство стремится создать единые общегосударственные меры обязательные к употреблению по всей стране. Это мероприятие диктовалось централизаторской политикой правительства. Необходимость введения единых мер и веса диктовалась и экономическими соображениями.
34728. Меры длины и расстояния централизованного государства 15.5 KB
  начинает употребляться новая единица длины аршин. Аршин мера восточного происхождения но точного прототипа аршина среди восточных мер нет. Распространение аршина проходит от центра к окраинам. господствовал аршин.
34729. Меры поверхности в централизованном государстве. Сошное письмо 19.08 KB
  Официальный размер казенной десятины определился и 2400 кнадратпых сажен 80 сажеп длины и 30 сажан ширины. Наряду с казенной десятиной на частновладельческих землях встречалась десятина и большей площади 80 сажен длины и 40 ширины т. 3200 квадратных сажен. Попадалась десятина и в 2500 квадратных сажен по 50 сажен в длину и ширину.
34730. Меры веса и объема централизованного государства 16.98 KB
  В XVI XVII вв. Вместе с тем Торговая книга называет и другие весовые единицы ансыръ или фунт: В документах XVI XVII вв. В течение XVII в. Новой мерой по сравнению с предыдущим периодом является четверик появившийся в начале XVII в.
34731. Единицы длины, расстояния и площади в Российской империи 17.9 KB
  Образованной для разработки мероприятий по уточнению мер и организации поверочного дела а также обмеры подлинной линейки начала XVIII в. которой пользовался Петр I свидетельствуют что меры длины в первой половине XVIII в. омимо аршина и сажени в XVIII XIX вв. В XVIII в.