Леговището на Грундик

Kerberos: NFS и всички-всички-всички

Има няколко реализации на Cerberus, както отворени, така и затворени. Те са съвместими помежду си, но се различават по конфигурация (от страна на сървъра, за клиентите всичко по същество е същото и автоматично). Тази статия предполага изпълнение на MIT. В него KDC работи както в IPv4, така и в IPv6, а KADMIN само в IPv4.

Инсталиране на сървър Kerberos

В бъдеще ще планирам инсталацията за базирани на debian дистрибуции на Linux, но не трябва да има големи разлики в други системи. И така, първо трябва да инсталирате необходимите програми: те са в панелите krb5-admin-server и krb5-kdc. Krb5-клиентите също са полезни. По време на инсталацията можете да активирате генерирането на първоначални настройки. В резултат на това настройките ще бъдат генерирани приблизително както следва:

/etc/krb5kdc/kdc.conf:

И в /etc/krb5.conf (минус стандартната глупост):

Създаваме домейна си с командата krb5_newrealm. Когато бъдете помолени за парола, е важно да й дадете наистина силна парола. Почти никога повече няма да е необходимо, но е по-добре да го запишете някъде. След създаването на домейна услугите krb5-kdc и krb5-admin-server трябва да стартират нормално.

Тестваме производителността и в същото време добавяме администраторски потребител, използващ програмата kadmin.local (по-нататък в примерите входният текст е подчертан с получер шрифт, останалото е изходът на програмата):

Така че, ако всичко е успешно, можете да влезете в домейна на kerberos от този потребител. Главният билет се получава и актуализира от програмата кинит, можете да видите състоянието на получените билети от програмата klist. И двете програми не изискват никакви опции и автоматично отгатват всичко, което е необходимо.

Възможна грешка "kadmin: Липсващи параметри в krb5.conf, необходими за клиент на kadmin при инициализиране на интерфейса на kadmin"Най - вероятно означава, че в krb5.conf admin_server не е регистриран или името на регистрирания сървър не може да бъде разрешено чрез IPv4.

За да опростите конфигурацията на клиента, можете да регистрирате настройките на домейна на kerberos в DNS. За да направите това, създайте тези записи в зона, която има същото име като домейна на kerberos:

Това завършва настройката от страна на сървъра. Връзки за по-нататъшно проучване по въпроса за Цербер:

Инсталиране и конфигуриране на клиенти на Kerberos

Основна работа и основни принципи

Следните програми ще бъдат полезни за работа и конфигуриране:

  • кинит - получава главен билет от сървъра. Ако не посочите параметри, той ще получи билет за текущия потребител.
  • klist - показва списък на получените билети. С параметъра "-k" може да покаже съдържанието на ключовия файл.
  • kpasswd - позволява ви да промените паролата на акаунта на kerberos.
  • кадмин - програма за администриране на базата данни с акаунти, изисква администраторски права KADMIN (регистриран в /etc/krb5krc/kadm5.acl).

За удобна работа мога да препоръчам програмата kredentials в едноименния пакет - тя ви позволява бързо, лесно и чрез GUI да получавате и актуализирате билети. Ако тя се кълне в "не може да стартира aklog", което се случва, когато AFS не се използва, тогава създайте в / usr/local/bin файл аклог с права за изпълнение и съдържание:

И ако/когато използвате AFS, тогава този файл ще трябва да бъде изтрит.

Акаунтите са два вида - акаунти за услуги и акаунти на потребители. Потребителските записи са за (изненада) потребители и имат парола. Сервизните за автоматична работа, нямат парола, се състоят основно от ключове за криптиране. и за използването им от услугите се поставят в специални ключови файлове, клавишни таблици.

Акаунтите за услуги се създават по същия начин като потребителските акаунти, но с параметъра "-randkey":

За разлика от потребителските идентификационни данни, които се съхраняват изключително в KDC, идентификационните данни за услугата трябва да бъдат копирани в машината, която предоставя услугата. За това има следните подходи:

Първото е удобно, когато има достъп от колата до KADMIN, второто е, когато няма. Създаването на акаунт и запазването на ключ може, разбира се, да стане веднага, в една сесия.

Файловете на Keytab трябва да се съхраняват с подходящи разрешения, тъй като те не са криптирани. Съдържанието им може да бъде прегледано с помощната програма klist. Разделът на системния ключ се използва по подразбиране: /etc/krb5.keytab, обаче променливата на средата KRB5_KTNAME можете да разделите клавишните комбинации на различни програми в различни файлове.

И така, казах обща информация, а сега и подробности за различни услуги.

Протоколът samba/cifs, познат на мнозина, не е единственият протокол за отдалечен достъп до файлове. Например в unix света има напълно подобен NFS протокол. NFS има доста версии и реализации, но всъщност всички те са много близки и могат да бъдат разделени на две групи - със и без kerberos. Kerberos се поддържа от 4-та версия на протокола.

Пакети, които предоставят функционалността, която искате: nfs-често (за клиента) и nfs-kernel-server (за сървър).

За да могат собствениците на файлове на монтирани файлови системи да се показват нормално, а не като никой, във файла /etc/idmapd.conf а на сървъри и клиенти предписваме:

Параметърът "домейн»Трябва да е еднакво на всички машини.

За автоматично монтиране в / и т.н./fstab нещо подобно трябва да бъде посочено на клиента:

Можете да използвате следното, за да експортирате каталога (/ и т.н./износ на сървъра):

Нюанс: изисква се експортиране на root (fsid = 0) чрез gss/*, в противен случай възниква грешка като mount.nfs4: монтирането е неуспешно, причината е дадена от сървъра: Няма да възникне такъв файл или директория. пътят за експортиране няма да бъде локализиран от сървъра.

Параметърът sec допуска следните стойности (всяко следващо включва всички предишни):

Това е всичко и накрая още няколко връзки:

  • всичко работеше, но изведнъж спря изведнъж и казва, че разрешението е отказано или подобно:
    • ключовете са остарели и вероятно трябва да бъдат регенерирани (ако ключовете са създадени преди повече от година);
    • вероятно някой пакет NFS е актуализиран, трябва да се опитате да запазите едни и същи версии на всички машини, ако е възможно;
    • демоните на NFS трябва поне да могат да виждат директорията, за да могат да я монтират, т.е. се нуждаят от разрешения X по цялата верига на директории до тази, изисквана от никой потребител;
    • проверете имената на хостове,/etc/hosts, име на хост --fqdn и т.н.
  • съпоставянето на потребители с файлова система не работи: проверете дали домейните, посочени в /etc/idmap.conf, са еднакви; понякога idmap по някаква причина игнорира данните в конфигурацията, проверете кой домейн се опитва да използва (пише при стартиране). Опитайте да зададете системния домейн с командата име на домейн. Също така, грешни имена могат да бъдат кеширани, така че когато проверявате дали работи, не забравяйте да жонглирате nscd и, вероятно, nfs-common на сървъра (или имайте търпение

    /.ssh/config) "GSSAPIAuthentication да". Във файл

    Получаване на поща чрез IMAP, използвайки cyrus като пример:

    • Имена на услуги: imap и сито. И двете са необходими само за сървъра.
    • Правата за достъп до файла keytab трябва да са такива, че cyrus да може да чете този файл (Например чрез ACL: „setfacl -m g: sasl: r /etc/krb5.conf"Или ги поставете в отделен файл с правилния собственик чрез KRB5_KTNAME)
    • IN /etc/imap.conf уверете се, че има редове като този: “sasl_pwcheck_method: auxprop"И"области за вход: DOMAIN"(Може да има повече параметри, но те са задължителни), също така sasl_mech_list трябва или да отсъства, или да включва GSSAPI
    • Инсталирайте приставката gssapi за sasl/gssapi както на сървъра, така и на клиента (пакет libsasl2-modules-gssapi-mit)

    всичко-всичко-всичко

    Изпращане чрез SMTP, exim:

    • Име на услугата smtp
    • Уверете се, че Exim може да прочете ключовия файл (отново или дайте разрешения, или да го експортирате в отделен файл).
    • Добавяне към настройките (/etc/exim4/conf.d/auth/40_auth ако използвате конфигурация с интервал между файлове) следния автентификатор:
    • Необходимо е да инсталирате приставката gssapi за sasl/gssapi както на сървъра, така и на клиента (пакет libsasl2-modules-gssapi-mit)

    HTTP т.е. уеб

    Прокси, калмари:

    • Име на услугата като за http - HTTP
    • Файлът с ключове, разбира се, трябва да се чете от калмарите. Отново е желателно да поставите ключовете в отделен файл.
    • Настройка на калмари (/etc/squid3/squid.conf):

    • В debian всичко се прави по подразбиране, просто инсталирайте пакета libpam-krb5
    • Документацията гласи, че е достатъчно да направите следните редакции (повтарям - по подразбиране те се правят автоматично при инсталиране на пакета):

    XMPP, ejabberd:

    Все още не успях да конфигурирам. Извън кутията ejabberd не поддържа gssapi и състоянието на клиентската поддръжка също не е много ясно.

    Postgresql

    Postgrell трябва да се компилира с поддръжка на GSSAPI (по подразбиране в debian е).

    FTP, RSH, Telnet и др

    Тук бъдете дракони

    Заключение

    Може би ще пиша за LDAP по-късно.

    Чести грешки и проблеми: