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








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

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

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

Пакет Heimdal-1.4

Знакомимся с пакетом Heimdal

Пакет Heimdal является свободной реализацией пакета Kerberos 5, который движется к совместимости с MIT Kerberos 5 и который имеет обратную совместимость с Kerberos 4. Kerberos является протоколом сетевой аутентификации. Он, главным образом, предназначен для сохранения целостности паролей в любой ненадежной сети (например, в интернете). Приложения, использующие протокол Kerberos, работают непосредственно с сайтами, которые поддерживают протокол Kerberos, который гарантирует, что пароли не будут украдены или скомпрометированы. Установка пакета Kerberos внесет изменения в механизмы аутентификации, используемые в вашей сети, и перезапишет на новые некоторые программы и демоны пакетов Shadow, Inetutils и Qpopper. Полный список всех файлов и команд, которые будут заменены, смотрите в http://anduin.linuxfromscratch.org/files/BLFS/svn/heimdal-overwrites.

Известно, что пакет правильно собирается и работает на платформе LFS-SVN-20101029.

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

  • Загрузка (HTTP): http://www.h5l.org/dist/src/heimdal-1.4.tar.gz
  • Загрузка (FTP): ftp://ftp.pdc.kth.se/pub/heimdal/src/heimdal-1.4.tar.gz
  • Контрольная сумма MD5: 31d08bbf47a77827fe97ef3f52b4c9c4
  • Размер загружаемого пакета: 6,0 MB
  • Оценочный размер требуемого дискового пространства: 205 MB
  • Оценочное время сборки: 3,9 SBU (дополнительно 2,3 SBU для запуска тестового набора)

Дополнительные загрузки

Зависимости пакета Heimdal

Необходимые для сборки инструментальных средств серверной стороны

Berkeley DB-4.8.26

Рекомендуемые

OpenSSL-1.0.0e

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

OpenLDAP-2.4.23, SQLite-3.7.8, X Window System, libcap2 и libcap-ng (с этим патчем, если версия ядра Linux >=2.6.36)

Замечание

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

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

Установка пакета Heimdal

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

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

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

patch -Np1 -i ../heimdal-1.4-otp_fixes-1.patch &&
sed -i 's|/var/heimdal|/var/lib/heimdal|' \
       `grep -lr "/var/heimdal" doc kadmin kdc lib` &&

./configure --prefix=/usr \
            --sysconfdir=/etc/heimdal \
            --libexecdir=/usr/sbin \
            --localstatedir=/var/lib/heimdal \
            --datadir=/var/lib/heimdal \
            --with-hdbdir=/var/lib/heimdal \
            --with-readline=/usr \
            --enable-kcm &&
make &&

install -v -m755 -d doc/html                                    &&
make -C doc html                                                &&
mv -v doc/heimdal.html doc/html/heimdal                         &&
mv -v doc/hx509.html   doc/html/hx509                           &&
makeinfo --html --no-split -o doc/heimdal.html doc/heimdal.texi &&
makeinfo --html --no-split -o doc/hx509.html   doc/hx509.texi   &&
makeinfo --plaintext       -o doc/heimdal.txt  doc/heimdal.texi &&
makeinfo --plaintext       -o doc/hx509.txt    doc/hx509.texi

Если у вас уже есть установленный пакет teTeX-3.0 или TeX Live-20100722 и вы хотите создать документацию в формате PDF и Postscript, сделайте изменения в директории doc и выполните одну из следующих или все следующие команды:

pushd doc                        &&
texi2pdf            heimdal.texi &&
texi2dvi            heimdal.texi &&
dvips -o heimdal.ps heimdal.dvi  &&
texi2pdf            hx509.texi   &&
texi2dvi            hx509.texi   &&
dvips -o hx509.ps   hx509.dvi    &&
popd

Чтобы проверить результаты, выполните команду make -k check. Известно, что тест check-iprop не проходит, но все остальные тесты должны пройти.

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

make install &&

install -v -m755 -d /usr/share/doc/heimdal-1.4        &&
install -v -m644    doc/{heimdal,hx509}.{html,txt} \
                    doc/{init-creds,layman.asc}    \
                    /usr/share/doc/heimdal-1.4        &&
cp      -v -R       doc/html \
                    destdir/usr/share/doc/heimdal-1.4 &&

mv -v /bin/login          /bin/login.SHADOW &&
mv -v /bin/su             /bin/su.SHADOW    &&
mv -v /usr/bin/{login,su} /bin              &&
ln -v -sf ../../bin/login /usr/bin          &&

for LINK in   \
    lib{otp,kafs,krb5,hx509,sqlite3,asn1,roken,crypto,wind}; do
        mv -v     /usr/lib/${LINK}.so.* /lib &&
        ln -v -sf ../../lib/$(readlink  /usr/lib/${LINK}.so) \
                  /usr/lib/${LINK}.so
done &&

mv -v     /usr/lib/$(readlink /usr/lib/libdb.so) \
          /usr/lib/libdb-?.so \
          /lib &&
ln -v -sf ../../lib/$(readlink /usr/lib/libdb.so) \
          /usr/lib/libdb.so &&

ldconfig

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

install -v -m644 doc/{heimdal,hx509}.{dvi,ps,pdf} \
                 /usr/share/doc/heimdal-1.4

Если вы хотите использовать библиотеку CrackLib-2.8.18 для того, чтобы в базе данных KDC можно было пользоваться стойкими паролями, выполните в роли пользователя root следующие команды:

sed -e 's|/usr/pkg|/usr|' \
    -e 's|/usr/lib/cracklib_dict|/lib/cracklib/pw_dict|' \
    -e 's|/var/heimdal|/var/lib/heimdal|' \
        lib/kadm5/check-cracklib.pl \
     > /bin/krb5-check-cracklib.pl &&

chmod -v 755 /bin/krb5-check-cracklib.pl

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

sed -i ... `grep -lr "/var/heimdal" doc kadmin kdc lib`: Эта команда используется для изменения жестко закодированных ссылок в файлах документации с /var/heimdal на /var/lib/heimdal, что соответствует стандарту FHS.

--libexecdir=/usr/sbin: Этот переключатель указывает, что программы-демоны должны быть установлены в директорий /usr/sbin.

Совет

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

--localstatedir=/var/lib/heimdal, --datadir=/var/lib/heimdal и --with-hdbdir=/var/lib/heimdal: Эти параметры используются для того, чтобы база данных KDC и связанные с ней файлы были размещены в директории /var/lib/heimdal.

--with-readline=/usr: Этот параметр следует использовать для того, чтобы скрипт configure правильно находил установленный пакет Readline.

--enable-kcm: Этот параметр разрешает собирать менеджер Kerberos Credentials Manager.

--with-sqlite3=/usr: Этот параметр следует использовать для того, чтобы скрипт configure правильно находил установленный пакет Sqlite3.

--with-openldap=/usr и --enable-hdb-openldap-module: Эти параметры следует использовать для того, чтобы при сборке модуля, который во время работы в качестве базы данных использует LDAP, скрипт configure правильно находил установленный пакет OpenLDAP.

mv ... ...SHADOW, mv ... /bin и ln ... /usr/bin: Программы login и su, устанавливаемые пакетом Heimdal, находятся в директории /bin. На программу login делается символическая ссылка, поскольку пакет Heimdal ожидает найти эту программу в директории /usr/bin. Прежде, чем делать перемещение, нужно сохранить старые исполняемые файлы из пакета Shadow для того, чтобы их можно было восстановить в случае, если после того, как пакет Heimdal будет установлен и настроен, у вас возникнут проблемы при входе в систему.

for LINK in ...; do ...; done, mv ... /lib и ln ... /usr/lib/libdb.so: На программы login и su, ранее перемещенные в директорий /lib, делаются ссылки из библиотек Heimdal, а также из библиотек, устанавливаемых в пакетах OpenSSL и Berkeley DB. Эти библиотеки также перемещаются в директорий /lib для того, чтобы они соответствовали стандарту FHS и на тот случай, если директорий /usr, расположенный в отдельном разделе, не будет смонтирован.

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

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

/etc/heimdal/*

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

Замечание

Вся настройка, описываемая ниже, должна выполнять в роли пользователя root, если не указано иное.

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

Во многих командах, показанных ниже, используется тег <заменяемое>, с помощью которого указываются места, в которые вам надо вставить информацию, относящуюся к вашей сети. Убедитесь, что вы заменили все эти теги конкретной информацией, относящейся к вашей сети. Когда вы это выполните, угловых скобок не должно быть.

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

install -v -m755 -d /etc/heimdal &&
cat > /etc/heimdal/krb5.conf << "EOF" &&
# Начало /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

# Окончание /etc/heimdal/krb5.conf
EOF
chmod -v 644 /etc/heimdal/krb5.conf

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

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

encrypt = true указывает, что нужно шифровать весь трафик между клиентами и серверами, использующими протокол Kerberos. Если это не нужно, то шифрование можно отключить. Если шифрование отключено, то вы можете зашифровать весь трафик, идущий от клиента к серверу, указав для этого переключатель, имеющийся в клиентской программе. В параметрах [realms] клиентской программы указывается, где искать сервис аутентификации KDC. В [domain_realm] указывается отображение домена в realm.

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

install -v -m755 -d /var/lib/heimdal &&
kstash

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

kadmin -l

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

В ответ на приглашение kadmin>, введите следующую инструкцию:

init <EXAMPLE.COM>

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

add <loginname>

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

add --random-key host/<hostname.example.com>

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

ext host/<<hostname.example.com>

В результате в директории /etc/heimdal должен быть создан файл krb5.keytab. Этот файл должен иметь права доступа 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

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

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

Если вы хотите использовать библиотеку CrackLib-2.8.18 для того, чтобы пользоваться в базе данных KDC стойкими паролями, вы должны сделать две вещи. Во-первых, добавить в конфигурационный файл /etc/heimdal/krb5.conf следующие строки:

[password_quality]
    policies = builtin:external-check
    external_program = /bin/krb5-check-cracklib.pl

Затем вы должны установить Perl -модуль Crypt::Cracklib. Загрузить его можно с сайта CPAN. URL на момент написания этого раздела http://www.cpan.org/authors/id/D/DA/DANIEL/Crypt-Cracklib-1.5.tar.gz. Распакуйте архив tar и перейдите в только что созданный директорий, а затем введите следующую команду, которая в одном из файлов с исходным кодом укажет место, где должен располагаться словарь BLFS Cracklib:

sed -i 's|pw_dict|&\n\t\t/lib/cracklib/pw_dict|' Cracklib.pm

Затем используйте стандартные команды perl Makefile.PL; make; make test; make install.

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

make install-heimdal

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

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

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

Чтобы использовать программы Heimdal X, вам нужно добавить в файл /etc/services запись с указанием порта сервиса для сервера kxd. В базе данных IANA нет "стандартного номера порта" для сервиса "кх", поэтому вам следует выбрать неиспользуемый номер порта. Добавьте в файл services запись, аналогичную следующей (замените <49150> на выбранный вами номер порта):

kx              <49150>/tcp   # Heimdal kerberos X
kx              <49150>/udp   # Heimdal kerberos X

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

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

Установленные программы: afslog, ftp, ftpd, gss, hprop, hpropd, hxtool, iprop-log, ipropd-master, ipropd-slave, kadmin, kadmind, kauth, kcm, kdc, kdestroy, kdigest, kf, kfd, kgetcred, kimpersonate, kinit, klist, kpasswd, kpasswdd, krb5-check-cracklib.pl, krb5-config, kstash, ktutil, kx, kxd, login, mk_cmds-krb5, otp, otpprint, pagsh, pfrom, popper, push, rcp, rsh, rshd, rxtelnet, rxterm, string2key, su, telnet, telnetd, tenletxr, verify_krb5_conf и xnlock

Установленные библиотеки: hdb_ldap.{so,a}, libasn1.{so,a}, libgssapi.{so,a}, libhdb.{so,a}, libheimntlm.{so,a}, libhx509.{so,a}, libkadm5clnt.{so,a}, libkadm5srv.{so,a}, libkafs.{so,a}, libkdc.{so,a}, libkrb5.{so,a}, libotp.{so,a}, libroken.{so,a}, libsl.{so,a}, libss-krb5.{so,a} и wind.{so,a}

Установленные директории: /etc/heimdal, /usr/include/gssapi, /usr/include/kadm5, /usr/include/krb5, /usr/include/roken, /usr/share/doc/heimdal-1.4 и /var/lib/heimdal

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

afslog

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

ftp

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

ftpd

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

hprop

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

hpropd

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

iprop-log

используется для поддержки работы с журнальным файлом iprop.

ipropd-master

это демон, который работает на главном сервере KDC и постепенно передает изменения, делаемые в базе данных KDC, в подчиненные сервера KDC.

ipropd-slave

это демон, который работает на подчиненном сервере KDC и постепенно передает изменения, делаемые в базе данных KDC, из главного сервера KDC.

kadmin

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

kadmind

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

kauth

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

kcm

это процесс, использующий кэш учетных данных для билетов Kerberos

kdc

это сервер Kerberos 5

kdestroy

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

kf

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

kfd

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

kgetcred

получает билет для сервиса

kinit

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

klist

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

kpasswd

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

kpasswdd

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

krb5-config

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

kstash

запоминает в файле главный пароль KDC

ktutil

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

kx

это программа, которая осуществляет безопасное перенаправление соединений с X

kxd

демон для kx

login

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

otp

управление одноразовыми паролями

otpprint

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

pfrom

является скриптом, который запускает

push --from

popper

сервер POP-3, использующий протокол Kerberos

push

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

rcp

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

rsh

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

rshd

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

rxtelnet

запускает безопасное окно xterm с telnet для данного хоста и выполняет перенаправление соединений с X

rxterm

дистанционный безопасный запуск xterm

string2key

отображение пароля в ключ

su

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

telnet

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

telnetd

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

tenletxr

перенаправление обратно соединений с X

verify_krb5_conf

проверка файла krb5.conf на очевидные ошибки

xnlock

это программа, которая действует как безопасный скрин сейвер (screen saver) в рабочих станциях, работающих с X

libasn1.{so,a}

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

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

Перевод сделан с варианта оригинала, датированного 2011-12-05 22:58:00 +0000


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