Создание файла настройки сервера



Теперь необходимо создать все записи сервисов, которые были определены для каждого компьютера. Используем для этого команду ext_srvtab. Будет создан файл, который должен быть скопирован или перемещен безопасным способом в каталог /etc/kerberosIV каждого Kerberos клиента. Этот файл должен присутствовать на каждом сервере и клиенте, он необходим для работы Kerberos.

# ext_srvtab grunt

Enter Kerberos master key:

 

Current Kerberos master key version is 1.

 

Master key entered. BEWARE!

Generating 'grunt-new-srvtab'....

Эта команда создаст временный файл, который должен быть переименован в srvtab, чтобы серверы смогли обратиться к нему. Используйте команду mv(1) для перемещения его в исходной системе:

# mv grunt-new-srvtab srvtab

Если файл предназначен для клиентской системы, и сеть не безопасна, скопируйте client-new-srvtab на съемный носитель и перенесите файл с его помощью. Убедитесь, что переименовали его в srvtab в каталоге /etc/kerberosIV клиента, и что режим доступа к нему 600:

# mv grumble-new-srvtab srvtab

# chmod 600 srvtab

Пополнение базы данных

Теперь необходимо добавить в базу данных пользователей. Во-первых, создадим запись для пользователя jane. Используйте команду kdb_edit:

# kdb_edit

Opening database...

 

Enter Kerberos master key:

 

Current Kerberos master key version is 1.

 

Master key entered. BEWARE!

Previous or default values are in [brackets] ,

enter return to leave the same, or new value.

 

Principal name: jane

Instance:

 

<Not found>, Create [y] ? y

 

Principal: jane, Instance: , kdc_key_ver: 1

New Password:           <---- enter a secure password here

Verifying password

 

New Password:           <---- re-enter the password here

Principal's new key version = 1

Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?

Max ticket lifetime (*5 minutes) [ 255 ] ?

Attributes [ 0 ] ?

Edit O.K.

Principal name:       <---- null entry here will cause an exit

Тестирование всей системы

Во-первых, запустите даемоны Kerberos. При правильном редактировании файла /etc/rc.conf они запустятся автоматически при перезагрузке. Это необходимо только на сервере Kerberos. Клиенты Kerberos получат все необходимые данные из каталога /etc/kerberosIV.

# kerberos &

Kerberos server starting

Sleep forever on error

Log file is /var/log/kerberos.log

Current Kerberos master key version is 1.

 

Master key entered. BEWARE!

 

Current Kerberos master key version is 1

Local realm: EXAMPLE.COM

# kadmind -n &

KADM Server KADM0.0A initializing

Please do not use 'kill -9' to kill this job, use a

regular kill instead

 

Current Kerberos master key version is 1.

 

Master key entered. BEWARE!

Теперь для получения доступа через созданного пользователя jane используйте kinit:

% kinit jane

MIT Project Athena (grunt.example.com)

Kerberos Initialization for "jane"

Password:

Попробуйте просмотреть имеющиеся данные с помощью klist:

% klist

Ticket file: /tmp/tkt245

Principal: jane@EXAMPLE.COM

 

Issued      Expires     Principal

Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM

Теперь попробуйте изменить пароль с помощью passwd(1), чтобы убедиться, что даемон kpasswd может получить информацию из базы данных Kerberos:

% passwd

realm EXAMPLE.COM

Old password for jane:

New Password for jane:

Verifying password

New Password for jane:

Password changed.

Включение su

Kerberos позволяет назначить каждому пользователю, который нуждается в привилегиях root, свой собственный пароль su(1). Необходимо добавить учётную запись, которой разрешено получать root доступ через su(1). Это делается путем связывания учётной записи root с пользовательской учётной записью. Создадим в базе данных Kerberos запись jane.root с помощью kdb_edit:

# kdb_edit

Opening database...

 

Enter Kerberos master key:

 

Current Kerberos master key version is 1.

 

Master key entered. BEWARE!

Previous or default values are in [brackets] ,

enter return to leave the same, or new value.

 

Principal name: jane

Instance: root

 

<Not found>, Create [y] ? y

 

Principal: jane, Instance: root, kdc_key_ver: 1

New Password:               <---- enter a SECURE password here

Verifying password

 

New Password:               <---- re-enter the password here

 

Principal's new key version = 1

Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?

Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Keep this short!

Attributes [ 0 ] ?

Edit O.K.

Principal name:             <---- null entry here will cause an exit

Теперь проверим работоспособность этой записи:

# kinit jane.root

MIT Project Athena (grunt.example.com)

Kerberos Initialization for "jane.root"

Password:

Необходимо добавить пользователя к root файлу .klogin:

# cat /root/.klogin

jane.root@EXAMPLE.COM

Теперь попробуйте выполнить su(1):

% su

Password:

и посмотрите на имеющиеся данные:

# klist

Ticket file: /tmp/tkt_root_245

Principal: jane.root@EXAMPLE.COM

 

Issued      Expires     Principal

May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM

Использование других команд

В примере выше мы создали запись (principal) jane с доступом к root (instance). Она основана на пользователе с таким же именем, как и идентификатор, что принято Kerberos по умолчанию; <principal>.<instance> в форме <username>.root позволяет использовать su(1) для доступа к root, если соответствующие записи находятся в файле .klogin домашнего каталога root:

# cat /root/.klogin

jane.root@EXAMPLE.COM

Подобно этому, если в файле .klogin из домашнего каталога пользователя есть строки в форме:

% cat ~/.klogin

jane@EXAMPLE.COM

jack@EXAMPLE.COM

это позволит любому с идентификатором EXAMPLE.COM, кто аутентифицировался как jane или jack (с помощью команды kinit, см. выше) получить доступ к учётной записи пользователя jane или файлам этой системы (grunt) через rlogin(1), rsh(1) или rcp(1).

Например, jane может входить в другую систему используя Kerberos:

% kinit

MIT Project Athena (grunt.example.com)

Password:

% rlogin grunt

Last login: Mon May 1 21:14:47 from grumble

Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994

   The Regents of the University of California. All rights reserved.

 

FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995

Или jack входит в учётную запись jane's на этом же компьютере (файл .klogin jane настроен как показано выше, и в Kerberos настроена учётная запись jack):

% kinit

% rlogin grunt -l jane

MIT Project Athena (grunt.example.com)

Password:

Last login: Mon May 1 21:16:55 from grumble

Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994

   The Regents of the University of California. All rights reserved.

FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995

Kerberos5

Все релизы FreeBSD после FreeBSD-5.1 включают поддержку только Kerberos5. Таким образом, Kerberos5 это единственная включаемая в поставку версия и его конфигурация похожа на KerberosIV во многих аспектах. Эта информация применима только к Kerberos5 из релизов после FreeBSD-5.0. Пользователи, желающие использовать пакет KerberosIV, могут установить его из порта security/krb4.

Kerberos это дополнительная сетевая система/протокол, позволяющая пользователям авторизоваться через защищенные сервисы на защищенном сервере. Такие сервисы как удаленный вход, удаленное копирование, защищенное копирование файлов между системами и другие задачи с высоким риском становятся допустимо безопасными и более контролируемыми.

Kerberos может быть описана как прокси система идентификации-проверки. Она также может быть описана как защищенная внешняя система аутентификации. Kerberos предоставляет только одну функцию — защищенную аутентификацию пользователей сети. Он не предоставляет функций авторизации (что разрешено делать пользователям) или функций аудита (какой пользователь что делает). После того, как клиент и сервер использовали Kerberos для идентификации, они могут зашифровать все соединения для гарантирования собственной безопасности и целостности данных.

Следовательно крайне рекомендуется использовать Kerberos с другими методами безопасности, предоставляющими сервисы авторизации и аудита.

Последующие инструкции могут использоваться в качестве руководства по настройке Kerberos, поставляемого с FreeBSD. Тем не менее, вам потребуется обратиться к соответствующим страницам справочника за полным описанием.

В целях демонстрации установки Kerberos, будут применены следующие обозначения:

• DNS домен (''зона'') example.org.

• Уникальный идентификатор Kerberos EXAMPLE.ORG.

Замечание: Используйте действующие имена доменов при настройке Kerberos даже если вы будете использовать его во внутренней сети. Это позволит избежать проблем с DNS и гарантирует возможность связи с Kerberos под другими идентификаторами.

История

Kerberos был создан MIT в качестве решения проблем с безопасностью сети. Протокол Kerberos использует стойкую криптографию, так что клиент может идентифицироваться на сервере (и обратно) через незащищенное сетевое соединение.

Kerberos это и имя сетевого протокола аутентификации и общий термин для описания программ, где он реализован (например, Kerberos telnet). Текущая версия протокола 5 описана в RFC 1510.

Доступно несколько свободных реализаций этого протокола, работающих на множестве операционных систем. Massachusetts Institute of Technology (MIT), где Kerberos был первоначально разработан, продолжает разрабатывать собственный пакет Kerberos. Он обычно использовался в США как криптографический продукт, и в этом качестве попадал под действие ограничений на экспорт. MIT Kerberos доступен в виде порта (security/krb5). Heimdal Kerberos это другая реализация версии 5, которая разрабатывалась исключительно вне США для обхода экспортных ограничений (и поэтому часто включалась в некоммерческие реализации UNIX). Heimdal Kerberos доступен в виде порта (security/heimdal), его минимальный комплект включен в базовую установку FreeBSD.

В целях получения наибольшей аудитории, в этих инструкциях предполагается использование Heimdal включаемого в FreeBSD.

Настройка Heimdal KDC

Центр распространения ключей (Key Distribution Center, KDC) это централизованный сервис аутентификации, предоставляемый Kerberos — это компьютер, который предоставляет доступ через Kerberos. KDC считается доверяемым всеми другими компьютерами с определенным идентификатором Kerberos и поэтому к нему предъявляются высокие требования безопасности.

Имейте ввиду, что хотя работа сервера Kerberos требует очень немного вычислительных ресурсов, из соображений безопасности для него рекомендуется отдельный компьютер, работающий только в качестве KDC.

Перед началом настройки KDC, убедитесь что в файле /etc/rc.conf содержатся правильные настройки для работы в качестве KDC (вам может потребоваться изменить пути в соответствии с собственной системой):

kerberos5_server_enable="YES"

kadmind5_server_enable="YES"

Затем приступим к редактированию файла настройки Kerberos, /etc/krb5.conf:

[libdefaults]

default_realm = EXAMPLE.ORG

[realms]

EXAMPLE.ORG = {

   kdc = kerberos.example.org

   admin_server = kerberos.example.org

}

[domain_realm]

.example.org = EXAMPLE.ORG

Обратите внимание что в файле /etc/krb5.conf подразумевается наличие у KDC полного имени kerberos.example.org. Вам потребуется добавить CNAME (синоним) к файлу зоны, если у KDC другое имя.

Замечание: Для больших сетей с правильно настроенным сервером BIND DNS пример выше может быть урезан до:

[libdefaults]

default_realm = EXAMPLE.ORG

Со следующими строками, добавленными в файл зоны example.org:

_kerberos._udp IN SRV 01 00 88 kerberos.example.org.

_kerberos._tcp IN SRV 01 00 88 kerberos.example.org.

_kpasswd._udp  IN SRV 01 00 464 kerberos.example.org.

_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org.

_kerberos      IN TXT EXAMPLE.ORG

Замечание: Чтобы клиенты могли найти сервисы Kerberos, необходимо наличие или полностью настроенного /etc/krb5.conf или минимально настроенного /etc/krb5.conf и правильно настроенного DNS сервера.

Создадим теперь базу данных Kerberos. Эта база данных содержит ключи всех основных хостов, зашифрованных с помощью главного пароля. Вам не требуется помнить этот пароль, он хранится в файле (/var/heimdal/m-key). Для создания главного ключа запустите kstash и введите пароль.

Как только будет создан главный ключ, вы можете инициализировать базу данных с помощью программы kadmin с ключом -l (означающим ''local''). Этот ключ сообщает kadmin обращаться к файлам базы данных непосредственно вместо использования сетевого сервиса kadmind. Это помогает решить ''проблему курицы и яйца'', когда обращение идет к еще не созданной базе данных. Как только вы увидите приглашение kadmin, используйте команду init для создания базы данных идентификаторов.

Наконец, оставаясь в приглашении kadmin, создайте первую запись с помощью команды add. Оставьте неизменными параметры по умолчанию, вы всегда сможете изменить их позже с помощью команды modify. Обратите внимание, что вы всегда можете использовать команду ? для просмотра доступных параметров.

Пример создания базы данных показан ниже:

# kstash

Master key: xxxxxxxx

Verifying password - Master key: xxxxxxxx

 

# kadmin -l

kadmin> init EXAMPLE.ORG

Realm max ticket life [unlimited]:

kadmin> add tillman

Max ticket life [unlimited]:

Max renewable life [unlimited]:

Attributes []:

Password: xxxxxxxx

Verifying password - Password: xxxxxxxx

Теперь пришло время запустить сервисы KDC. Выполните команды /etc/rc.d/kerberos start и /etc/rc.d/kadmind start для запуска сервисов. Заметьте, что ни один из поддерживающих Kerberos даемонов на этот момент запущен не будет, но у вас должна быть возможность убедиться в том, что KDC функционирует путем получения списка доступа для пользователя, которого вы только что самостоятельно создали из командной строки самого KDC:

% k5init tillman

tillman@EXAMPLE.ORG's Password:

 

% k5list

Credentials cache: FILE:/tmp/krb5cc_500

   Principal: tillman@EXAMPLE.ORG

 

Issued      Expires     Principal

Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG


Дата добавления: 2018-10-26; просмотров: 171; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!