RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Beyond Linux From Scratch. Версия 6.0

Глава 4. Безопасность

MIT krb5-1.4

Введение в MIT krb5

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

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

Зависимости MIT krb5

Опционально

xinetd-2.3.13 (только серверные сервисы), Linux-PAM-0.78 (для xdm-основанных регистраций) и OpenLDAP-2.2.20 (альтернатива базе данных паролей krb5kdc).

[Замечание]

Замечание

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

Установка MIT krb5

MIT krb5 поставляется в TAR-файле, содержащем сжатый пакет и присоединенный PGP ASC файл.

Если у Вас установлен GnuPG-1.4.0, Вы можете аутентифицировать пакет следующей командой:


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

Соберем MIT krb5 запуском следующих команд:


cd src &&
./configure --prefix=/usr --sysconfdir=/etc \
            --localstatedir=/var/lib --enable-dns \
            --enable-static --mandir=/usr/share/man &&
make

Установим MIT krb5, выполнив следующие команы как пользователь root:


make install &&
mv /bin/login /bin/login.shadow &&
cp /usr/sbin/login.krb5 /bin/login &&
mv /usr/bin/ksu /bin &&
mv /usr/lib/libkrb5.so.3* /lib &&
mv /usr/lib/libkrb4.so.2* /lib &&
mv /usr/lib/libdes425.so.3* /lib &&
mv /usr/lib/libk5crypto.so.3* /lib &&
mv /usr/lib/libcom_err.so.3* /lib &&
ln -sf ../../lib/libkrb5.so.3 /usr/lib/libkrb5.so &&
ln -sf ../../lib/libkrb4.so.2 /usr/lib/libkrb4.so &&
ln -sf ../../lib/libdes425.so.3 /usr/lib/libdes425.so &&
ln -sf ../../lib/libk5crypto.so.3 /usr/lib/libk5crypto.so &&
ln -sf ../../lib/libcom_err.so.3 /usr/lib/libcom_err.so &&
ldconfig

Описание команд

--enable-dns: Этот ключ позволяет областям быть разрешенными, используя DNS-сервер.

--enable-static: Этот ключ соберет статические библиотеки в дополнение к разделяемым библиотекам.


mv /bin/login /bin/login.shadow
cp /usr/sbin/login.krb5 /bin/login
mv /usr/bin/ksu /bin

Сохраним команду login из пакета Shadow, переместим ksu и login в /bin.


mv /usr/lib/libkrb5.so.3* /lib
mv /usr/lib/libkrb4.so.2* /lib
mv /usr/lib/libdes425.so.3* /lib
mv /usr/lib/libk5crypto.so.3* /lib
mv /usr/lib/libcom_err.so.3* /lib
ln -sf ../../lib/libkrb5.so.3 /usr/lib/libkrb5.so
ln -sf ../../lib/libkrb4.so.2 /usr/lib/libkrb4.so
ln -sf ../../lib/libdes425.so.3 /usr/lib/libdes425.so
ln -sf ../../lib/libk5crypto.so.3 /usr/lib/libk5crypto.so
ln -sf ../../lib/libcom_err.so.3 /usr/lib/libcom_err.so

Программы login и ksu скомпонованы с этими библиотеками, хотя мы переместили эти библиотеки в /lib для возможности регистрации без монтирования /usr.

Конфигурация MIT krb5

Файлы конфигурации

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

Конфигурационная информация

Настройка Kerberos

Создадим файл конфигурации Kerberos следующей командой:


cat > /etc/krb5.conf << "EOF"
# Begin /etc/krb5.conf

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

[realms]
[LFS.ORG] = {
   kdc = [belgarath.lfs.org]
   admin_server = [belgarath.lfs.org]
}

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

[logging]
kdc = SYSLOG[:INFO[:AUTH]]
admin_server = SYSLOG[INFO[:AUTH]]
default = SYSLOG[[:SYS]]
# End /etc/krb5.conf
EOF

Вам потребуется установить Ваш домен и собственное имя хоста вместо имен [belgarath] и [lfs.org].

default_realm должен быть именем Вашего домена, измененным на ALL CAPS. Оно не обязательно, но Heimdal и MIT рекомендуют его.

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

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

Секция [domain_realm] отображает домен на область.

Создадим базу данных KDC:


kdb5_util create -r [LFS.ORG] -s

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


kadmin.local
kadmin:addprinc [loginname]

Сервер KDC и любая машина, запустившая керберизованный демон сервера, должны иметь установленный ключ хоста:

kadmin:
addprinc -randkey host/[belgarath.lfs.org]

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


kadmin:ktadd host/[belgarath.lfs.org]

При этом должен быть создан файл в /etc с именем 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.keytab
ktutil:l

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

В этом месте, если все прошло удачно, Вы можете почувствовать достаточную уверенность в установке и настройке пакета.

Установите стартовый скрипт /etc/rc.d/init.d/kerberos , включенный в пакет blfs-bootscripts-6.0.


make install-kerberos
Использование керберизованных клиентских программ

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

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

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

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

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

Для дополнительной информации проконсультируйтесь в Документации по krb-1.4, на которой основаны вышеописанные инструкции.

Содержание

Установленные программы: compile-et, ftp, ftpd, gss-client, gss-server, k5srvutil, kadmin, kadmin.local, kadmind, kadmind4, kdb5_util, kdestroy, kinit, klist, klogind, kpasswd, kprop, kpropd, krb5-send-pr, krb5-config, krb524d, krb524init, krb5kdc, kshd, ksu, ktutil, kvno, login.krb5, rcp, rlogin, rsh, sclient, sim_client, sim_server, sserver, telnet, telnetd, uuclient, uuserver, v5passwd, v5passwdd. Установленные библиотеки: libcom_err.[so,a], libdes425.[so,a], libgssapi.[so,a], libgssrpc.[so,a], libkadm5clnt.[so,a], libkadm5srv.[so,a], libkdb5.[so,a], libkrb5.[so,a], libkrb4.[so,a]. Установленные каталоги: /usr/include/kerberosIV и /var/lib/krb5kdc.

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

compile_et

Преобразует листинг таблицы имен кодов ошибок в исходный C-файл.

ftp

Керберизованный FTP-клиент.

ftpd

Керберизованный FTP-сервер.

k5srvutil

Утилита манипуляции таблицей ключей хоста.

kadmin

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

kadmind

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

kdb5_util

Утилита базы данных KDC.

kdestroy

Удаляет текущую установку билетов.

kinit

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

klist

Читает и отображает текущие билеты в кэше.

klogind

Сервер, отвечающий на запросы rlogin .

kpasswd

Программа для изменения паролей Kerberos 5.

kprop

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

kpropd

Получает посылку базы данных kprop и записывает ее как локальную базу данных.

krb5-config

Дает информацию о том, как скомпонованы программы с библиотеками.

krb5kdc

Сервер протокола Kerberos 5.

kshd

Сервер, отвечающий на запросы rsh .

ksu

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

ktutil

Программа для управления таблицами ключей Kerberos.

kvno

Печатает номера версий ключей законов Kerberos.

login.krb5

Керберизованная программа регистрации.

rcp

Керберизованная клиентская программа rcp.

rlogin

Керберизованная клиентская программа rlogin.

rsh

Керберизованная клиентская программа rsh.

telnet

Керберизованная клиентская программа telnet.

telnetd

Керберизованный сервер telnet.

libcom_err.[so,a]

Включает Kerberos-библиотеку кодов ошибок.

libgssapi.[so,a]

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

libkadm5clnt.[so,a]

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

libkadm5srv.[so,a]

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

libkdb5.[so,a]

Библиотека доступа к базе данных аутентификации/авторизации Kerberos 5.

libkrb5.[so,a]

Библиотека общего назначения Kerberos 5.

Последнее обновление 2005-02-10 13:19:10 -0700.

Поиск

 

Найди своих коллег!