RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

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

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

Heimdal-0.6.3

Введение в Heimdal

Heimdal является свободной реализацией Kerberos 5, которая нацелена на совместимость с MIT krb5 и обратную совместимость с krb4. Kerberos это протокол сетевой аутентификации. Обычно он сохраняет целостность паролей в любой недоверительной сети (например, в интернет). Керберизованные приложения работают совместно с сайтами, поддерживающими Kerberos, для подтверждения того, что пароли не могут быть украдены. Установка Kerberos произведет изменения в механизмах аутентификации в Вашей сети и перепишет некоторые программы и демоны из пакетов Coreutils, Inetutils, Qpopper и Shadow.

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

Дополнительно

Зависимости Heimdal

Требуемые

OpenSSL-0.9.7e и Berkeley DB-4.3.27.

Опционально

Linux-PAM-0.78, OpenLDAP-2.2.20, X (X.org-6.8.2 или XFree86-4.4.0), cracklib-2.7 и krb4.

[Замечание]

Замечание

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

Установка Heimdal

Перед установкой пакета Вы можете захотеть сохранить программу ftp из пакета Inetutils. Это потому, что при использовании программы ftp из пакета Heimdal при соединении с некерберизованными ftp-серверами работа может быть некорректной. Она позволит соединяться (позволяя Вам знать, что передача пароля производится в виде обычного текста), но будут проблемы при приеме и передаче. Выполните следующие команды как пользователь root.


mv /usr/bin/ftp /usr/bin/ftpn

Если Вы планируете скомпоновать пакет Heimdal с библиотекой cracklib, то должны применить патч:


patch -Np1 -i ../heimdal-0.6.3-cracklib-1.patch

Установим Heimdal запуском следующих команд:


patch -Np1 -i ../heimdal-0.6.3-fhs_compliance-1.patch &&
./configure --prefix=/usr --sysconfdir=/etc/heimdal \
            --datadir=/var/lib/heimdal --localstatedir=/var/lib/heimdal \
            --libexecdir=/usr/sbin --enable-shared \
            --with-openssl=/usr --with-readline=/usr &&
make

А теперь, как пользователь root:


make install &&
mv /bin/login /bin/login.shadow &&
mv /bin/su /bin/su.shadow &&
mv /usr/bin/{login,su} /bin &&
ln -sf ../../bin/login /usr/bin &&
mv /usr/lib/lib{otp.so.0*,kafs.so.0*,krb5.so.17*,asn1.so.6*} \
   /usr/lib/lib{roken.so.16*,crypto.so.0*,db-4.3.so} /lib &&
ln -sf ../../lib/lib{otp.so.0{,.1.4},kafs.so.0{,.4.0},db-4.3.so} \
   /usr/lib &&
ln -sf ../../lib/lib{krb5.so.17{,.3.0},asn1.so.6{,.0.2}} /usr/lib &&
ln -sf ../../lib/lib{roken.so.16{,.0.3},crypto.so.0{,.9.7}} \
   /usr/lib &&
ldconfig

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

--libexecdir=/usr/sbin: Этот ключ положит программы демонов в /usr/sbin.

[Замечание]

Замечание

Если Вы захотите сохранить все существующие демоны из пакета Inetutils, установите демоны Heimdal в /usr/sbin/heimdal (или куда захотите). Поскольку эти программы будут вызываться из скриптов (x)inetd или rc, то не имеет значения, куда они будут установлены, поскольку они корректно описаны в файле /etc/(x)inetd.conf и rc-скриптах. Если Вы выберете что-то отличное от /usr/sbin, то можете захотеть переместить некоторые из пользовательских программ (например, kadmin) в /usr/sbin вручную, при этом они будут находиться в пути поиска по умолчанию для привилегированного пользователя.

mv ... .shadow; mv ... /bin; ln -sf ../../bin...: Программы login и su, установленные Heimdal, относятся к каталогу /bin. Программа login является ссылкой потому, что Heimdal ожидает найти ее в /usr/bin. Старые файлы перед этим сохраненяются перемещением для поддержания функций sane.

mv ... /lib; ln -sf ../../lib/lib... /usr/lib: Программы login и su, установленные Heimdal, компонуются с библиотеками Heimdal и с библиотеками, предоставляемыми пакетами Open SSL и Berkeley DB. Эти библиотеки перемещены в /lib для совместимости с FHS и для случая, когда /usr размещен на отдельном разделе, который может быть не всегда смонтирован.

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

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

/etc/heimdal/*.

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

Конфигурация основного KDC-сервера

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


install -d /etc/heimdal &&
cat > /etc/heimdal/krb5.conf << "EOF"
# Begin /etc/heimdal/krb5.conf
[libdefaults]
default_realm = [EXAMPLE.COM]
encrypt = true

[realms]
[EXAMPLE.COM] = {
   kdc = [hostname.example.com]
   admin_server = [hostname.example.com]
   kpasswd_server = [hostname.example.com]
}

[domain_realm]
.[example.com] = [EXAMPLE.COM]

[logging]
kdc = FILE:/var/log/kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb.log
# End /etc/heimdal/krb5.conf
EOF

Вам потребуется установить домен и собственное имя хоста вместо имен [hostname] и [EXAMPLE.COM].

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

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

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

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

Сохраним основной пароль в файле ключей, используя следующие команды:


install -d -m 755 /var/lib/heimdal &&
kstash

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


kadmin -l

Теперь выберем параметры по умолчанию. Вы можете вернуться сюда позже и изменить их при необходимости. В приглашении kadmin> введите следующее заявление:


init [EXAMPLE.COM]

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


add [loginname]

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


add --random-key host/[hostname.example.com]

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


ext host/[hostname.example.com]

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

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


add --random-key ftp/[hostname.example.com]

(выберите параметры по умолчанию)


ext ftp/[hostname.example.com]

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


/usr/sbin/kdc &

Попробуйте получитьTGT (ticket granting ticket) при помощи следующей команды:


kinit [loginname]

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


klist

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

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


ktutil list

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

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

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


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

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

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

Для использования Heimdal программ для X Вам необходимо добавить вход в сервисный порт в файл /etc/services для сервера kxd. В базе данных IANA нет 'стандартизированного номера порта' для сервиса 'kx', поэтому Вы должны использовать свободный номер порта. Добавление входа в файл services похоже на содержание, описанное ниже (замените [49150] на выбранный Вами номер порта):


kx[49150]/tcp # Heimdal kerberos X
kx[49150]/udp # Heimdal kerberos X

За дополнительной информацией обратитесь к советам по Heimdal, на которых основаны вышеописанные инструкции.

Содержание

Установленные программы: afslog, dump_log, ftp, ftpd, hprop, hpropd, ipropd-master, ipropd-slave, kadmin, kadmind, kauth, kdc, kdestroy, kf, kfd, kgetcred, kinit, klist, kpasswd, kpasswdd, krb5-config, kstash, ktutil, kx, kxd, login, mk_cmds, otp, otpprint, pagsh, pfrom, popper, push, rcp, replay_log, rsh, rshd, rxtelnet, rxterm, string2key, su, telnet, telnetd, tenletxr, truncate-log, verify_krb5_conf и xnlock. Установленные библиотеки: libasn1.[so,a], libeditline.a, libgssapi.[so,a], libhdb.[so,a], libkadm5clnt.[so,a], libkadm5srv.[so,a], libkafs.[so,a], libkrb5.[so,a], libotp.[so,a], libroken.[so,a], libsl.[so,a] и libss.[so,a] . Установленные каталоги: /etc/heimdal, /usr/include/kadm5, /usr/include/ss и /var/lib/heimdal.

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

afslog

Получает AFS-символы для номеров ячеек.

ftp

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

ftpd

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

hprop

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

hpropd

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

ipropd-master

Демон, запускаемый на ведущем KDC-сервере, который размножает изменения в базе данных KDC на ведомых KDC-серверах.

ipropd-slave

Демон, запускаемый на ведомых KDC, который размножает изменения в базе данных KDC из ведущего KDC-сервера.

kadmin

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

kadmind

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

kauth

Символическая ссылка на программу kinit .

kdc

Сервер Kerberos 5.

kdestroy

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

kf

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

kfd

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

kgetcred

Получает билеты для сервиса.

kinit

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

klist

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

kpasswd

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

kpasswdd

Сервер изменения паролей Kerberos 5.

krb5-config

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

kstash

Сохраняет основной KDC-пароль в файле.

ktutil

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

kx

Программа, защищенно направляющая X-соединения.

kxd

Демон для kx.

login

Керберизованная программа login.

otp

Управляет одноразовыми паролями.

otpprint

Печатает список одноразовых паролей.

pfrom

Скрипт, запускающий push --from .

popper

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

push

Керберизованный POP почтовый исправленный клиент.

rcp

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

rsh

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

rshd

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

rxtelnet

Запускает защищенное окно xterm с telnet на указанном хосте и способствует X-соединениям.

rxterm

Запускает защищенный удаленный xterm .

string2key

Преобразует пароль в ключ.

su

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

telnet

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

telnetd

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

tenletxr

Направляет X-соединения назад.

verify_krb5_conf

Проверяет файл krb5.conf на возможные ошибки.

xnlock

Программа, которая используется как безопасный хранитель экрана для рабочих станций с запущенным X.

libasn1.[so,a]

Предоставляет функции ASN.1 и DER-кодирования и декодирования Kerberos TGT.

libeditline.a

Библиотека редактирования командной строки с историей команд.

libgssapi.[so,a]

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

libhdb.[so,a]

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

libkadm5clnt.[so,a]

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

libkadm5srv.[so,a]

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

libkafs.[so,a]

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

libkrb5.[so,a]

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

libotp.[so,a]

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

libroken.[so,a]

Библиотека, содержащая функции совместимости с Kerberos 5.

Последнее обновление 2005-02-04 11:58:22 -0700.

Поиск

 

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