Библиотека сайта rus-linux.net
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
Необходимые для сборки инструментальных средств серверной стороны
Рекомендуемые
Необязательные
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 в директорий |
--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/*
Подробнее о конфигурировании
ЗамечаниеВся настройка, описываемая ниже, должна выполнять в роли пользователя |
Конфигурирование основного сервера 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 | проверка файла |
xnlock | это программа, которая действует как безопасный скрин сейвер (screen saver) в рабочих станциях, работающих с X |
| предоставляет функции ASN.1 и DER для кодирования и декодирования билетов TGT протокола Kerberos |
| содержит функции интерфейса программирования общего сервиса безопасности (Generic Security Service Application Programming Interface - GSSAPI), с помощью которых для тех, кто обращается за сервисом, можно обычным образом реализовывать безопасный сервис, поддерживаемый рядом основных механизмов и технологий и, следовательно, обеспечивающий переносимость приложений на уровне исходного кода переносимости приложений в различных средах. |
| является библиотекой доступа к базе данных аутентификации/авторизации Heimdal Kerberos 5 |
| содержит административные функции аутентификации и проверки паролей, которые требуются клиентским программам, использующим Kerberos 5 |
| содержит административные функции аутентификации и проверки паролей, которые требуются серверам, использующим Kerberos 5 |
| содержит функции, необходимые для аутентификации в файловой системе AFS |
| является библиотекой Kerberos 5 общего назначения |
| содержит функции, необходимые для аутентификации с использованием одноразовых паролей |
| библиотека, в которой находятся функции, совместимые с Kerberos 5 |
Перевод сделан с варианта оригинала, датированного 2011-12-05 22:58:00 +0000
Предыдущий раздел: | Оглавление | Следующий раздел: |
ПакетGPGME-1.3.1 | Пакет libcap2-2.22 |