Глава 13. Kerberos

Kerberos - сетевой протокол проверки подлинности, созданный в MIT (Массачусетском технологическом институте). Вместо передачи паролей в открытом виде, в нём используется шифрование с ключами. Kerberos предоставляет дополнительный уровень безопасности системы, и сильно усложняет перехват паролей пользователей злоумышленниками. За дополнительной информацией о работе Kerberos, обратитесь к Официальному справочному руководству по Red Hat Linux.

Настройка сервера Kerberos 5

Если вы собираетесь применять Kerberos, вам следует начать с установки сервера (серверов). Если вам нужно установить подчиненный сервер, подробности установки отношений между главным и подчиненным сервером вы найдёте в Kerberos 5 Installation Guide (Руководстве по установке Kerberos 5) (в каталоге /usr/share/doc/krb5-server-<version-number>).

Чтобы установить сервер Kerberos:

  1. Перед установкой Kerberos 5 убедитесь в том, что на вашем сервере работает DNS и синхронизация времени. Уделите особое внимание синхронизации времени между сервером Kerberos и его различными клиентами. Если часы на сервере и клиенте расходятся более чем на 5 минут (это значение по умолчанию в Kerberos 5, но может быть изменено), клиенты Kerberos не смогут пройти проверку подлинности на сервере. Эта синхронизация нужна для предотвращения возможности использования атакующим старого аутентификатора, чтобы замаскироваться под легального пользователя.

    Вам следует настроить сеть клиент/сервер, поддерживающую Network Time Protocol (NTP), воспользовавшись Red Hat Linux, даже если вы не используете Kerberos. Для облегчения установки в Red Hat Linux 7.2 включен пакет ntp. Обратитесь к ресурсу http://www.eecis.udel.edu/~ntp за дополнительной информацией о NTP.

  2. Установите пакеты krb5-libs, krb5-server и krb5-workstation на выделенном компьютере, где вы собираетесь запускать KDC. Этот компьютер должен быть защищен - если возможно, на нём не следует запускать никаких служб, кроме KDC.

    Если для администрирования Kerberos вы предпочитаете использовать графические средства, установите пакет gnome-kerberos. Он содержит графический инструмент krb5 управления билетами, и графическую программу gkadmin управления сферами Kerberos.

  3. Измените файлы конфигурации /etc/krb5.conf и /var/kerberos/krb5kdc/kdc.conf, отразив в них имя сферы и сопоставление домена сфере. Простую сферу можно построить, заменив вхождения EXAMPLE.COM и example.com именем вашего домена (убедитесь в том, что регистр символов в этих именах сохранён), а имя KDC kerberos.example.com именем вашего сервера Kerberos. Согласно соглашению, все имена сфер записываются в верхнем регистре, а все DNS - имена узлов и доменов - в нижнем. Дополнительные подробности формата этих файлов, вы найдёте в соответствующих man страницах.

  4. Создайте базу данных, выполнив в приглашении оболочки команду kdb5_util.

    /usr/kerberos/sbin/kdb5_util create -s

    Команда create создаёт базу данных для хранения ключей вашей сферы Kerberos. Ключ -s указывает команде создать "тайный" файл, в котором хранится главный ключ сервера. Если "тайного" файла, из которого можно прочитать ключ не существует, сервер Kerberos (krb5kdc) будет запрашивать у пользователя пароль главного сервера (который используется для воссоздания ключа) при каждом запуске.

  5. Измените файл /var/kerberos/krb5kdc/kadm5.acl. Этот файл используется демоном kadmind для определения учётных записей, имеющих доступ к базе данных Kerberos и их уровень доступа. Во многих организациях можно обойтись всего одной строкой:

    */admin@EXAMPLE.COM  *

    Большинство пользователей будут представлены в базе данных одной учётной записью (с именем экземпляра NULL (пусто), например joe@EXAMPLE.COM). В этой конфигурации, пользователи со второй учётной записью, имеющей имя экземпляра admin (например, joe/admin@EXAMPLE.COM) смогут получить полную власть над базой данных сферы Kerberos.

    Когда на сервере запущен kadmind, любой пользователь сможет обратиться к своим службам, выполнив kadmin или gkadmin на любом из клиентов или серверов сферы. Однако, только пользователи, перечисленные в файле kadm5.acl смогут каким-либо образом изменить базу данных, не считая изменения собственных паролей.

    ЗамечаниеЗамечание
     

    Программы kadmin и gkadmin связываются с сервером kadmind по сети, они используют Kerberos для выполнения проверки подлинности. Конечно же, перед тем как вы сможете подключиться к серверу по сети и управлять им, вы должны создать первую учётную запись. Создайте первую учётную запись с помощью команды kadmin.local, которая специально разработана для выполнения на сервере KDC и не использует Kerberos для проверки подлинности.

    Введите следующую команду kadmin.local на терминале KDC чтобы создать первую учётную запись:

    /usr/kerberos/sbin/kadmin.local -q "addprinc username/admin"
  6. Запустите Kerberos, выполнив следующие команды:

    /sbin/service krb5kdc start
    /sbin/service kadmin start
    /sbin/service krb524 start
  7. Добавьте учётные записи ваших пользователей, воспользовавшись командой addprinc программы kadmin или пунктом меню Principal => Add (Добавить) в gkadmin. kadminkadmin.local на главном KDC) - программы командной строки для администрирования Kerberos. Помимо этой, в программе kadmin есть много других команд. За дополнительной информацией обратитесь к странице man kadmin.

  8. Проверьте, выдаёт ли сервер билеты. Сначала запустите kinit для получения билета и сохранения его в файле кэша учётных данных. Затем с помощью klist просмотрите список учётных данных в кэше и с помощью kdestroy удалите из кэша содержащиеся в нём учётные данные.

    ЗамечаниеЗамечание
     

    По умолчанию, программа kinit пытается проверить вашу подлинность с тем именем пользователя и паролем, с которым вы сначала вошли в систему (но не на сервер Kerberos). Если имя пользователя в системе не соответствует учётной записи в базе данных Kerberos, вы получите сообщение об ошибке. Если это произойдет, просто передайте программе kinit имя вашей учётной записи в качестве аргумента командной строки (kinit principal).

После выполнения описанных вышедействий, вас сервер Kerberos должен быть запущен и работать. Теперь вы должны настраивать ваших клиентов Kerberos.