Библиотека сайта rus-linux.net
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. Обратите внимание, что можно использовать только один файл, но вы можете объединить в один файл большое количество отдельных файлов. В конфигурационном файле, представленном ниже, предполагается, что вы установили словарь в |
В роли пользователя 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. Требуются правильно сконфигурированные файлы |
ktutil | это программа управления файлами keytab, используемыми в протоколе Kerberos |
kvno | выдает номера версий ключей для записей Kerberos |
login.krb5 | программа login, использующая протокол Kerberos |
rcp | клиентская программа rcp, использующая протокол Kerberos |
rlogin | клиентская программа rlogin, использующая протокол Kerberos |
rsh | клиентская программа rsh, использующая протокол Kerberos |
telnet | клиентская программа telnet, использующая протокол Kerberos |
telnetd | является сервером telnet, использующий протокол Kerberos |
| содержит функции интерфейса программирования общего сервиса безопасности (Generic Security Service Application Programming Interface - GSSAPI), с помощью которых для тех, кто обращается за сервисом, можно обычным образом реализовывать безопасный сервис, поддерживаемый рядом основных механизмов и технологий и, следовательно, обеспечивающий переносимость приложений на уровне исходного кода переносимости приложений в различных средах. |
| содержит административные функции аутентификации и проверки паролей, которые требуются клиентским программам Kerberos 5 |
| содержит административные функции аутентификации и проверки паролей, которые требуются серверам Kerberos 5 |
| является библиотекой Kerberos 5, реализующей доступ к базе данных аутентификации/авторизации |
| является библиотекой Kerberos 5 общего назначения |
Перевод сделан с варианта оригинала, датированного 2011-11-09 17:37:35 +0000
Предыдущий раздел: | Оглавление | Следующий раздел: |
Пакет libcap2-2.22 | Пакет nettle-2.4 |