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


 

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

74498. Компьютерные информационные технологии (КИТ) 126.5 KB
  Информационно телекоммуникационный рынок По принятой в настоящее время в мире терминологии рынок компьютерных технологий носит название ИКТ рынок информационно телекоммуникационный рынок. ИКТ рынок в свою очередь делится: рынок информационных технологий ИТ рынок телекоммуникационный рынок ТЛК рынок ИТ рынок включает следующие сегменты: компьютерное и аппаратное обеспечение офисное аппаратное обеспечение программное обеспечение и услуги по их обслуживанию. ТКЛ рынок включает услуги предоставления связи...
74499. ИНФОРМАЦИОННЫЕ СИСТЕМЫ. ПОНЯТИЕ ЭКОНОМИЧЕСКОЙ ИНФОРМАЙЦИИ 92 KB
  К ЭИ относятся сведения которые циркулируют в экономической системе о процессах производства материальных ресурсах процессах управления производством финансовых процессах а также сведения экономического характера которыми обмениваются между собой различные системы управления. Уточним понятие экономической информации на примере системы управления промышленным предприятием. Структура системы управления Система управления предприятием должна обеспечить требуемое состояние производства Zt план выпуска продукции используя вход X t...
74500. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ 112 KB
  Примерами ОС являются MS DOS практически не используется OS 2 семейство Unix семейство Windows. Операционные системы можно классифицировать по различным признакам: По числу параллельно решаемых на компьютере задач ОС разделяют: однозадачные например MS DOS; многозадачные OS 2 UNIX Windows Linux...
74501. Корпоративные информационные системы. Понятие реинжиниринга бизнес- процессов 204 KB
  Другими словами, реинжиниринг бизнес-процессов (РБП, англ. business process reengineering, BPR) в отличие от известных в последние десятилетия многочисленных методов постепенного совершенствования работы компаний
74502. Технологии искусственного интеллекта 231.5 KB
  Основные области применения ИИ: Доказательства теорем; Игры; Распознавание образов; Принятие решений; Адаптивное программирование; Сочинение машинной музыки; Обработка данных на естественном языке; Обучающиеся сети нейросети В экономике в настоящее время получают широкое распространение принятие решений и нейросети. Отметим что в настоящее время используются такие модели представления знаний как продукционная модель основанная на построении правил ЕСЛИ ТО; фреймовая модель в которой описывается один концептуальный объект а...
74503. СЕТЕВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ 516.5 KB
  Основное назначение концентратора это объединять между собой компьютеры в сегменты а затем сегменты в в единую сети. Сегментом называе6тся обособленная группа компьютеров в сети. Технология соединения сегментов сети с помощью коммутаторов switch появилась в 1990 году для решения проблемы повышения пропускной способности сети. Использование коммутаторов позволяет избежать проблем коллизий в сети Ethernet так как наличие портов и буферизация данных не позволяет распространяться коллизии по всей сети.
74504. Понятие глобальной компьютерной сети Интернет 155.5 KB
  Понятие глобальной компьютерной сети Интернет 24 октября 1995 года Федеральный сетевой совет FNC США единодушно одобрил резолюцию определяющую термин Интернет Это определение разрабатывалось при участии специалистов в области сетей и в области прав на интеллектуальную собственность. Интернет это глобальная информационная система которая: логически взаимосвязана пространством глобальных уникальных адресов основанных на Интернетпротоколе IP или на последующих расширениях или преемниках IP; способна поддерживать коммуникации с...
74505. Модель OSI. Принцип взаимодействия компьютеров в сети 211 KB
  В модели OSI все протоколы сети делятся на семь уровней: физический канальный сетевой транспортный сеансовый представительный и прикладной Рис. Основной задачей канального уровня является прием кадра из сети и отправка его в сеть. Кадр может быть доставлен по сети к другому компьютеру только в том случае если протокол соответствует той топологии для которой он был разработан. Сетевой уровень Network lyer служит для образования единой системы объединяющей несколько сетей причем эти сети могут быть различной топологии...
74506. История развития компьютерных сетей. Глобальные и локальные сети 263 KB
  История развития компьютерных сетей Компьютерные сети являются логическим результатом эволюции развития компьютерных технологий. Такие многотерминальные централизованные системы внешне напоминали локальные вычислительные сети до создания которых в действительности нужно было пройти еще большой путь. Терминалы в этом случае соединялись с компьютером через телефонные сети с помощью специальных устройств модемов. Компьютеры получили возможность обмениваться данными в автоматическом режиме что является базовым механизмом любой компьютерной сети.