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


 

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

44932. Australia. Австралия 15.29 KB
  Australia is one of the most unusual and exotic countries of the world. A significant feature of modern Australian society is the representation of a lot of cultures drawn from many lands by its people
44933. Два способа установки ПО 22.78 KB
  В первом случае пакет ПО обычно поставляется в виде trgz архива во втором случае в виде rpm пакета но это не обязательно исполняемые модули также могут распространяться в виде trgz архива. Проще всего установить ПО представленное в виде rpm пакета содержащего исполняемые файлы. Программа rpm Название этой программы или команды является аббревиатурой от Redht Pckge Mnger. Программа rpm в некотором смысле аналогична программам типа setup wizrd для MS Windows.
44934. Влади́мир Андре́евич Фаво́рский 38.9 KB
  Фаворский вспоминает: Там я встретил целый ряд русских между прочим Истомина. Фаворский вспоминает: Бегали ещё в университет слушать профессоров Фуртвенглера и Фолля и к Молье слушать его лекции по анатомии Студенты Академии протестовали против нашего присутствия и выгоняли нас Молье услыша об этом возмутился и сказал что всякий кому интересно может слушать и мы слушали. Фаворский хорошо знал немецкий язык в отдельных случаях он даже исполнял роль переводчика на занятиях.
44935. Предмет и задачи методики преподавания РЯ 13.34 KB
  Методика РЯ опирается на лингвистические и психологические концепции о роли языка в социальном развитии о связи языка и сознания речи и мышления. Методика обеспечивает такую систему обучения языку которая строго соответствует современной теории лингвистики о сущности языка и его социальной функции быть важнейшим средством человеческого общения средством формирования мысли и ее выражения в языковом коде. Для решения своих задач методика выбирает оптимальные варианты в рамках классноурочной системы жестко ограниченного числа уроков и...
44936. Имя существительное 14.24 KB
  Род существительное не словоизменительная категория. Существительное относится к одному из трех родов. Род сущ. Или по значению выделяется корпус слов: плакса обжора умника род опред.
44938. New Zealand. Новая Зеландия 15.12 KB
  New Zealand, an independent state and a member of the Commonwealth, is situated south-east from Australia. The country consists of three large islands and also many small islands. New Zealand is a mountainous country.
44939. Подготовка к выходу в сеть 25.88 KB
  Для проверки воспользуйтесь командой [root] rpm q grep net или менеджером пакетов если вы работаете с KDE. Настройка интерфейса платы Ethernet локальной сети eth0 Для того чтобы настроить IP-адрес необходимо запустить команду ifconfig: [root] sbin ifconfig eth0 192. Вы должны увидеть чтото вроде следующего [root] netstt nr Kernel IP routing tble Destintion Gtewy Genmsk Flgs MSS Window irtt Ifce 10.0 UG 0 0 0 eth0 Для добавления или удаления статических маршрутов используйте команду route: [root] sbin route [f] операция [тип]...
44940. Методика обучения лексики и фразеологии 13.39 KB
  Этот раздел изучается в школе для того чтобы ученики получили представление о таких лексических понятиях как слово как единица языка лексическое значение слова функции слова синонимия омонимия антонимия многозначность представление о фразеологии. К практическим целям относятся: формирование лексических умений обогащение словарного запаса. Среди них особое значение имеют умения толковать лексическое значение слова фразеологизмы умения подбирать синонимы антонимы различить слово в прямом и переносном значении пользуясь...