Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 4. Безопасность Вперед

Пакет MIT Kerberos V5-1.6

Знакомимся с пакетом MIT Kerberos V5

Пакет MIT Kerberos V5 представляет собой свободную реализацию протокола Kerberos 5. Kerberos является сетевым протоколом аутентификации. В состав входят централизованная база данных аутентификации и приложения для работы с серверами или сервисами, использующими протокол Kerberos. Благодаря этому протокол Kerberos можно использовать для регистрации в системе и для шифрованного обмена данными как во внутренних сетях, так и в интернете.

Информация о пакете

  • Загрузка (HTTP): http://web.mit.edu/kerberos/www/dist/krb5/1.6/krb5-1.6-signed.tar
  • Контрольная сумма MD5: a365e39ff7d39639556c2797a0e1c3f4
  • Размер загружаемого пакета: 12,0 MB
  • Оценочный размер требуемого дискового пространства: 124 MB
  • Оценочное время сборки: 1,4 SBU

Зависимости пакета MIT Kerberos V5

Необязательные

Linux-PAM-1.1.5 (для программы login, использующей xdm), OpenLDAP-2.4.23 и DejaGnu-1.5 (требуется для запуска тестового набора)

Замечание

В вашей системе потребуется какое-нибудь средство синхронизации времени (например, NTP-4.2.4p7), поскольку Kerberos не будет выполнять аутентификацию, если есть разница во времени между клиентом и сервером KDC, использующими протокол Kerberos.

Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/mitkrb

Установка пакета MIT Kerberos V5

Пакет MIT Kerberos V5 поставляется в виде файла TAR, в котором находится пакет, сжатый в формате TAR, и отдельный PGP-файл ASC. Вам прежде, чем начинать сборку пакета, нужно распаковать полученный файл tar, а затем распаковать находящийся в нем архив tar.

После того, как распакуете дистрибутив, и если у вас есть установленный пакет GnuPG-1.4.11, вы можете проверить подлинность пакета с помощью следующей команды:

gpg - -verify krb5-1.6.tar.gz.asc

Выполните сборку пакета MIT Kerberos V5 с помощью следующих команд:

cd src &&
./configure CPPFLAGS="-I/usr/include/et -I/usr/include/ss" \
            --prefix=/usr \
            --sysconfdir=/etc/krb5 \
            --localstatedir=/var/lib \
            --with-system-et \
            --with-system-ss \
            --enable-dns-for-realm \
            --mandir=/usr/share/man &&
make

После установки пакета следует выполнить набор регрессионных тестов.

Теперь в роли пользователя root выполните:

make install &&

mv -v /usr/bin/ksu /bin &&
chmod -v 755 /bin/ksu &&
mv -v /usr/lib/libkrb5.so.3* /lib &&
mv -v /usr/lib/libk5crypto.so.3* /lib &&
mv -v /usr/lib/libkrb5support.so.0* /lib &&

ln -v -sf ../../lib/libkrb5.so.3.3 /usr/lib/libkrb5.so &&
ln -v -sf ../../lib/libk5crypto.so.3.1 /usr/lib/libk5crypto.so &&
ln -v -sf ../../lib/libkrb5support.so.0.1 /usr/lib/libkrb5support.so &&

install -m644 -v ../doc/*.info* /usr/share/info &&
for INFOFILE in 425 5-admin 5-install 5-user; do
    install-info --info-dir=/usr/share/info \
                 /usr/share/info/krb$INFOFILE.info
    rm ../doc/krb$INFOFILE.info*
done &&

install -m755 -v -d /usr/share/doc/krb5-1.6 &&
cp -Rv ../doc/* /usr/share/doc/krb5-1.6

Предупреждение

В login.krb5 пароли Shadow не поддерживаются. В результате, когда сервер Kerberos становится недоступным, поиск файла /etc/passwd, который выполняется по умолчанию, приведет к неудаче, поскольку в процессе сборки системы LFS пароли были перенесены в/etc/shadow. Если пароли не вернуть обратно в /etc/passwd, то ввод указанных ниже команд, приведет к тому, что в систему будет невозможно войти.

После того, как будет рассмотрено (и понято) приведенное выше предупреждение, введите в роли пользователя root следующие команды, которые заменят существующую программу login на версию, использующую протокол Kerberos (исходная программа будет сохранена), и перенесут поддерживающие библиотеки туда, где они будут доступны в случае, если не смонтирована файловая система /usr:

mv -v /bin/login /bin/login.shadow &&
install -m755 -v /usr/sbin/login.krb5 /bin/login &&

mv -v /usr/lib/libdes425.so.3* /lib &&
mv -v /usr/lib/libkrb4.so.2* /lib &&

ln -v -sf ../../lib/libdes425.so.3.0 /usr/lib/libdes425.so &&
ln -v -sf ../../lib/libkrb4.so.2.0 /usr/lib/libkrb4.so &&

ldconfig

Чтобы протестировать установленный пакет, у вас должен быть также установлен пакет DejaGnu-1.4.4 и вы должны выполнить команду make check. Чтобы протестировать слой RPC, потребуется работающий демон portmap (смотрите пакет portmap-6.0), который будет прослушивать обычный сетевой интерфейс (но не localhost). Полную информацию о том, как запускать регрессионные тесты, смотрите в разделе "Testing the Build" ("Тестирование результата сборки") файла krb5-install.html в директории ../doc.

Пояснение команд

--enable-dns-for-realm: Этот параметр позволяет для разрешения ссылок в realms использовать сервер DNS.

--with-system-et: Этот параметр указывает, что при сборке пакета будут использоваться установленные в системе версии программ, поддерживающие работу с таблицами ошибок.

--with-system-ss: Этот параметр указывает, что при сборке пакета будут использоваться установленные в системе версии программ, поддерживающие работу с интерфейсом командной строки.

--localstatedir=/var/lib: Этот параметр указывает, что переменные Kerberos, в которых хранятся данные времени исполнения, будут находиться в директории /var/lib, а не в директории /usr/var.

mv -v /usr/bin/ksu /bin: Перемещает программу ksu в директорий /bin с тем, чтобы она была доступна в случае, если файловая система /usr не смонтирована.

mv -v ... /lib && ln -v -sf ...: Эти библиотеки перемещаются в директорий /lib с тем, чтобы они были доступны в случае, если файловая система /usr не смонтирована.

Конфигурировани пакета MIT Kerberos V5

Конфигурационные файлы

/etc/krb5/krb5.conf и /var/lib/krb5kdc/kdc.conf

Подробнее о конфигурировании

Конфигурирование протокола Kerberos

Совет

Чтобы сконфигурировать пакет так, чтобы он позволял использовать только стойкие пароли, вы должны рассмотреть вопрос об установке какого-нибудь словаря для проверки паролей. Подходящий для использования словарь описан в инструкциях по установке пакета CrackLib-2.8.18. Обратите внимание, что можно использовать только один файл, но вы можете объединить в один файл большое количество отдельных файлов. В конфигурационном файле, представленном ниже, предполагается, что вы установили словарь в /usr/share/dict/words.

В роли пользователя root создайте конфигурационный файл Kerberos с помощью следующих команд:

install -v -m755 -d /etc/krb5 &&
cat > /etc/krb5/krb5.conf << "EOF"
# Начало скрипта /etc/krb5/krb5.conf

[libdefaults]
    default_realm = <LFS.ORG>
    encrypt = true

[realms]
    <LFS.ORG> = {
        kdc = <belgarath.lfs.org>
        admin_server = <belgarath.lfs.org>
        dict_file = /usr/share/dict/words
    }

[domain_realm]
    .<lfs.org> = <LFS.ORG>

[logging]
    kdc = SYSLOG[:INFO[:AUTH]]
    admin_server = SYSLOG[INFO[:AUTH]]
    default = SYSLOG[[:SYS]]

# Завершение скрипта /etc/krb5/krb5.conf
EOF

Вам нужно вместо имен <belgarath> и <lfs.org> указать ваш домен и имя соответствующего хоста.

В качестве default_realm следует указать имя вашего домена, набранное ЗАГЛАВНЫМИ БУКВАМИ. Это не обязательно, но рекомендуется как для Heimdal, так и для MIT.

encrypt = true указывает, что нужно шифровать весь трафик между клиентами и серверами, использующими протокол Kerberos. Если это не нужно, то шифрование можно отключить. Если шифрование отключено, то вы можете зашифровать весь трафик, идущий от клиента к серверу, указав для этого переключатель, имеющийся в клиентской программе.

В параметрах [realms] клиентской программы указывается, где искать сервис аутентификации KDC.

В [domain_realm] указывается отображение домена в realm.

Создайте базу данных KDC:

kdb5_util create -r <LFS.ORG> -s

Теперь в базу данных надо добавить правила (пользователей). Сейчас просто введите имя обычного пользователя или root.

kadmin.local
kadmin: add_policy dict-only
kadmin: addprinc -policy dict-only <loginname>

На сервере KDC и на любой машине, на которой работают серверные демоны, использующие протокол Kerberos, должен быть установлен хост-ключ (host key):

kadmin: addprinc -randkey host/<belgarath.lfs.org>

После выбора значений, предложенных по умолчанию, вам потребуется экспортировать данные в файл keytab:

kadmin: ktadd host/<belgarath.lfs.org>

В результате в директории /etc/heimdal должен быть создан файл krb5.keytab (Kerberos 5). Этот файл должен иметь права доступа 600 (запись и чтение только для пользователя root). Файл keytab нужно хранить в месте, к которому запрещен общий доступ, поскольку это чрезвычайно важно для обеспечения общей безопасности установленного варианта Kerberos.

По существу вам потребуется добавлять в базу данных правила для серверного демона и извлекать их оттуда для файла keytab. Вы должны делать это точно также, как вы создавали правила для хоста. Ниже приведен пример:

kadmin: addprinc -randkey ftp/<belgarath.lfs.org>
kadmin: ktadd ftp/<belgarath.lfs.org>

Выйдите из программы kadmin (используйте команду quit или exit) и вернитесь в командную оболочку. Запустите вручную демон KDC просто для того, чтобы проверить результат установки:

/usr/sbin/krb5kdc &

Попытайтесь получить билет с помощью следующей команды:

kinit <loginname>

Вам будет предложено ввести созданный вами пароль. После того как вы получите ваш билет, вы можете увидеть его в списке при помощи следующей команды:

klist

Информация о билете должна быть показана на экране.

Чтобы проверить функции файла keytab, введите следующую команду:

ktutil
ktutil: rkt /etc/krb5/krb5.keytab
ktutil: l

Должен быть выдан список правил, используемых для хоста, а также должны быть указаны методы шифрования, применяемые для доступа к этим правилам.

Если все к этому моменту прошло успешно, то вы можете в известной степени считать, что вы разобрались в установке, настройке и конфигурировании этого пакета.

Установите инициализационный скрипт /etc/rc.d/init.d/kerberos, который входит в состав пакета blfs-bootscripts-20100825.

make install-kerberos

Клиентские программы, использующие протокол Kerberos

Чтобы использовать протокол с клиентскими программами (telnet, ftp, rsh, rcp, rlogin), вы сначала должны получить TGT. Используйте программу kinit чтобы получить билет. После того как вы получили билет, вы можете использовать протокол Kerberos для подключения программы к любому серверу, имеющемуся в сети. Если вы в программе не будете в качестве аргумента командной строки указывать другого пользователя, вам до тех пор, пока не истечет срок действия билета (по умолчанию один день), не будет задаваться запрос на подтверждение аутентификации.

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

Серверные программы, использующие протокол Kerberos

Для работы с серверными программами, в которых используется протокол Kerberos (telnetd, kpropd, klogind и kshd), вам потребуется выполнить два дополнительных конфигурационных шага. Во-первых, файл /etc/services должен быть обновлен так, чтобы в нем были указаны eklogin и krb5_prop. Во-вторых, для каждого сервера, который будет активирован, файл inetd.conf или xinetd.conf должен быть модифицирован так, чтобы были заменены сервера, принадлежащие пакету Inetutils-1.8.

Дополнительная информация

За дополнительной информацией обратитесь к документации Documentation for krb-1.6, на основе которой было разработаны инструкции, описанные выше.

Описание пакета

Установленные программы: ftp, ftpd, gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kdb5_ldap_util, kdb5_util, kdestroy, kinit, klist, klogind, kpasswd, kprop, kpropd, krb5-config, krb5-send-pr, krb524d, krb524init, krb5kdc, kshd, ksu, ktutil, kvno, login.krb5, rcp, rlogin, rsh, sclient, sim_client, sim_server, sserver, telnet, telnetd, uuclient, uuserver и v4rcp

Установленные библиотеки: libdes425.so, libgssapi_krb5.so, libgssrpc.so, libk5crypto.so, libkadm5clnt.so, libkadm5srv.so, libkdb5.so, libkdb_ldap.so, libkrb4.so, libkrb5.so и libkrb5support.so

Установленные директории: /etc/krb5, /usr/include/{gssapi,gssrpc,kerberosIV,krb5}, /usr/lib/krb5, /usr/share/{doc/krb5-1.6,examples,gnats} и /var/lib/krb5kdc

Краткое описание

ftp

клиент FTP, использующий протокол Kerberos

ftpd

демон FTP, использующий протокол Kerberos

k5srvutil

является утилитой, предназначенной для работы с файлами keytable

kadmin

является утилитой, предназначенной для внесения изменений в базу данных Kerberos

kadmind

является сервером, предназначенным для административного доступа к базе данных Kerberos

kdb5_util

является утилитой для доступа к базе данных KDC

kdestroy

удаляет текущий набор билетов

kinit

используется для аутентификации на сервере Kerberos правила и получения TGT (Ticket Granting Ticket - билет для получения билета), который затем может быть использован для получения билетов на другие услуги

klist

считывает и отображает текущие билеты в учетных данных кэша

klogind

является сервером, отвечающим на запросы rlogin

kpasswd

является программой, предназначенной для изменения паролей Kerberos 5

kprop

берет базу данных в указанном формате и преобразует его в поток записей в формате базы данных

kpropd

получает базу данных, отправленную с помощью kprop, и записывает ее в качестве локальной базы данных

krb5-config

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

krb5kdc

является сервером Kerberos 5

kshd

является сервером, который отвечает на запросы rsh

ksu

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

ktutil

это программа управления файлами keytab, используемыми в протоколе Kerberos

kvno

выдает номера версий ключей для записей Kerberos

login.krb5

программа login, использующая протокол Kerberos

rcp

клиентская программа rcp, использующая протокол Kerberos

rlogin

клиентская программа rlogin, использующая протокол Kerberos

rsh

клиентская программа rsh, использующая протокол Kerberos

telnet

клиентская программа telnet, использующая протокол Kerberos

telnetd

является сервером telnet, использующий протокол Kerberos

libgssapi_krb5.so

содержит функции интерфейса программирования общего сервиса безопасности (Generic Security Service Application Programming Interface - GSSAPI), с помощью которых для тех, кто обращается за сервисом, можно обычным образом реализовывать безопасный сервис, поддерживаемый рядом основных механизмов и технологий и, следовательно, обеспечивающий переносимость приложений на уровне исходного кода переносимости приложений в различных средах.

libkadm5clnt.so

содержит административные функции аутентификации и проверки паролей, которые требуются клиентским программам Kerberos 5

libkadm5srv.so

содержит административные функции аутентификации и проверки паролей, которые требуются серверам Kerberos 5

libkdb5.so

является библиотекой Kerberos 5, реализующей доступ к базе данных аутентификации/авторизации

libkrb5.so

является библиотекой Kerberos 5 общего назначения

Перевод сделан с варианта оригинала, датированного 2011-11-09 17:37:35 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Пакет libcap2-2.22   Пакет nettle-2.4