Kerberos и LDAP Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:руководство_по_ubuntu_server:авторизация_по_сети:kerberos_and_ldap [2012/06/14 14:37]
[Настройка OpenLDAP]
wiki:руководство_по_ubuntu_server:авторизация_по_сети:kerberos_and_ldap [2012/06/14 21:05] (текущий)
[Ссылки]
Строка 101: Строка 101:
 ====Настройка первичного KDC==== ====Настройка первичного KDC====
  
-With OpenLDAP ​configured it is time to configure the KDC.+С настроенным ​OpenLDAP ​самое время настроить ​KDC.
  
-    First, install ​the necessary packages, from a terminal enter:+ 1. Сначала установим необходимые пакетывведя из терминала:​ 
 +<​code>​sudo apt-get ​install ​krb5-kdc krb5-admin-server krb5-kdc-ldap</​code>​ 
 + 2. Теперь редактируем /​etc/​krb5.conf добавив следующие опции в соответствующие секции: 
 +<​code>​ 
 +[libdefaults] 
 +        default_realm = EXAMPLE.COM
  
-    sudo apt-get install krb5-kdc krb5-admin-server krb5-kdc-ldap+...
  
-    Now edit /etc/krb5.conf adding the following options to under the appropriate sections:+[realms] 
 +        EXAMPLE.COM = { 
 +                kdc = kdc01.example.com 
 +                kdc = kdc02.example.com 
 +                admin_server = kdc01.example.com 
 +                admin_server = kdc02.example.com 
 +                default_domain = example.com 
 +                database_module = openldap_ldapconf 
 +        }
  
-    [libdefaults] +...
-            default_realm = EXAMPLE.COM+
  
-    ​...+[domain_realm] 
 +        ​.example.com = EXAMPLE.COM
  
-    [realms] 
-            EXAMPLE.COM = { 
-                    kdc = kdc01.example.com 
-                    kdc = kdc02.example.com 
-                    admin_server = kdc01.example.com 
-                    admin_server = kdc02.example.com 
-                    default_domain = example.com 
-                    database_module = openldap_ldapconf 
-            } 
  
-    ​...+...
  
-    ​[domain_realm+[dbdefaults
-            .example.com EXAMPLE.COM+        ​ldap_kerberos_container_dn = dc=example,dc=com
  
 +[dbmodules]
 +        openldap_ldapconf = {
 +                db_library = kldap
 +                ldap_kdc_dn = "​cn=admin,​dc=example,​dc=com"​
  
-    ...+                # this object needs to have read rights on 
 +                # the realm container, principal container and realm sub-trees 
 +                ldap_kadmind_dn = "​cn=admin,​dc=example,​dc=com"​
  
-    [dbdefaults] +                ​# this object needs to have read and write rights on 
-            ldap_kerberos_container_dn = dc=example,​dc=com +                # the realm container, principal container and realm sub-trees 
- +                ldap_service_password_file = /​etc/​krb5kdc/​service.keyfile 
-    [dbmodules] +                ldap_servers = ldaps://​ldap01.example.com ldaps://​ldap02.example.com 
-            openldap_ldapconf = { +                ldap_conns_per_server = 5 
-                    db_library = kldap +        
-                    ldap_kdc_dn = "​cn=admin,​dc=example,​dc=com"​ +</​code>​ 
- +<​note>​Замените **example.com****dc=example,​dc=com****cn=admin,​dc=example,​dc=com** и **ldap01.example.com** на соответствующие домен, LDAP объект и LDAP сервер вашей сети.</​note>​ 
-                    # this object needs to have read rights on + 3. Далее используем утилиту **kdb5_ldap_util** для создания области
-                    # the realm container, principal container and realm sub-trees +<​code>​ 
-                    ldap_kadmind_dn = "​cn=admin,​dc=example,​dc=com"​ +sudo kdb5_ldap_util -D  cn=admin,​dc=example,​dc=com create -subtrees \ 
- +dc=example,​dc=com -r EXAMPLE.COM -s -H ldap://​ldap01.example.com 
-                    ​# this object needs to have read and write rights on +</​code>​ 
-                    # the realm container, principal container and realm sub-trees + 4. Создаем тайник для пароля,​ используемого для подключения к LDAP серверуЭтот пароль используется опциями **ldap_kdc_dn** и **ldap_kadmin_dn** в /​etc/​krb5.conf:​ 
-                    ldap_service_password_file = /​etc/​krb5kdc/​service.keyfile +<​code>​ 
-                    ldap_servers = ldaps://​ldap01.example.com ldaps://​ldap02.example.com +sudo kdb5_ldap_util -D  cn=admin,​dc=example,​dc=com stashsrvpw -f \ 
-                    ldap_conns_per_server = 5 +/​etc/​krb5kdc/​service.keyfile cn=admin,​dc=example,​dc=com 
-            +</​code>​ 
- + 5. Копируем сертификат ​CA из сервера ​LDAP: 
-    ​Change ​example.com,​ dc=example,​dc=com,​ cn=admin,​dc=example,​dc=com, and ldap01.example.com ​to the appropriate domain, LDAP object, and LDAP server for your network+<​code>​ 
- +scp ldap01:/​etc/​ssl/​certs/​cacert.pem . 
-    Next, use the kdb5_ldap_util ​utility to create the realm+sudo cp cacert.pem /​etc/​ssl/​certs 
- +</​code>​ 
-    sudo kdb5_ldap_util -D  cn=admin,​dc=example,​dc=com create -subtrees \ +и редактируем ​/​etc/​ldap/​ldap.conf ​для использования этого сертификата
-    dc=example,​dc=com -r EXAMPLE.COM -s -H ldap://​ldap01.example.com +<​code>​ 
- +TLS_CACERT /​etc/​ssl/​certs/​cacert.pem 
-    ​Create a stash of the password used to bind to the LDAP serverThis password is used by the ldap_kdc_dn ​and ldap_kadmin_dn ​options in /​etc/​krb5.conf:​ +</​code>​ 
- +<​note>​Сертификат также нужно скопировать на вторичный ​KDC чтобы позволить соединению к LDAP серверам использовать ​LDAPS.</​note>​
-    sudo kdb5_ldap_util -D  cn=admin,​dc=example,​dc=com stashsrvpw -f \ +
-    /​etc/​krb5kdc/​service.keyfile cn=admin,​dc=example,​dc=com +
- +
-    Copy the CA certificate from the LDAP server+
- +
-    scp ldap01:/​etc/​ssl/​certs/​cacert.pem . +
-    sudo cp cacert.pem /​etc/​ssl/​certs +
- +
-    And edit /​etc/​ldap/​ldap.conf ​to use the certificate+
- +
-    TLS_CACERT /​etc/​ssl/​certs/​cacert.pem +
- +
-    The certificate will also need to be copied to the Secondary ​KDC, to allow the connection to the LDAP servers using LDAPS. +
- +
-You can now add Kerberos principals to the LDAP database, and they will be copied to any other LDAP servers configured for replication. To add a principal using the kadmin.local utility enter:+
  
 +Вы можете добавить учетные записи Kerberos в LDAP базу и они будут скопированы на все LDAP сервера,​ настроенные на репликацию. Для добавления учетной записи с использованием утилиты kadmin.local введите:​
 +<​code>​
 sudo kadmin.local sudo kadmin.local
 Authenticating as principal root/​admin@EXAMPLE.COM with password. Authenticating as principal root/​admin@EXAMPLE.COM with password.
Строка 183: Строка 180:
 Re-enter password for principal "​steve@EXAMPLE.COM": ​ Re-enter password for principal "​steve@EXAMPLE.COM": ​
 Principal "​steve@EXAMPLE.COM"​ created. Principal "​steve@EXAMPLE.COM"​ created.
 +</​code>​
  
-There should now be krbPrincipalName,​ krbPrincipalKey,​ krbLastPwdChange, and krbExtraData ​attributes added to the uid=steve,​ou=people,​dc=example,​dc=com ​user objectUse the kinit and klist utilities to test that the user is indeed issued a ticket.+Теперь будут добавлены атрибуты ​krbPrincipalName,​ krbPrincipalKey,​ krbLastPwdChange ​и krbExtraData ​к объекту пользователя **uid=steve,​ou=people,​dc=example,​dc=com**Используйте утилиты **kinit** и **klist** для проверки,​ что пользователю действительно выдали билет.
  
-If the user object is already created the -x dn="​..." ​option is needed to add the Kerberos ​attributesOtherwise a new principal object will be created in the realm subtree.+<​note>​Если объект пользователя уже создан,​ потребуется опция **%%dn="​..."​%%** для добавления атрибутов ​Kerberos. ​Иначе будет создан новый объект учетной записи в поддереве области.</​note>​
  
 ====Настройка вторичного KDC==== ====Настройка вторичного KDC====
  
-Configuring a Secondary ​KDC using the LDAP backend is similar to configuring one using the normal ​Kerberos ​database.+Настройка вторичного ​KDC с использованием ​LDAP похожа на настройку обычной базы ​Kerberos.
  
-    First, ​install ​the necessary packagesIn a terminal enter:+ 1. Сначала установим необходимые пакеты. Введите в терминале:​ 
 +<​code>​sudo apt-get ​install ​krb5-kdc krb5-admin-server krb5-kdc-ldap</​code>​ 
 + 2Далее редактируем /​etc/​krb5.conf для использования LDAP: 
 +<​code>​ 
 +[libdefaults] 
 +       ​default_realm = EXAMPLE.COM
  
-    sudo apt-get install krb5-kdc krb5-admin-server krb5-kdc-ldap+...
  
-    Next, edit /etc/krb5.conf to use the LDAP backend:+[realms] 
 +        EXAMPLE.COM = { 
 +                kdc = kdc01.example.com 
 +                kdc = kdc02.example.com 
 +                admin_server = kdc01.example.com 
 +                admin_server = kdc02.example.com 
 +                default_domain = example.com 
 +                database_module = openldap_ldapconf 
 +        }
  
-    [libdefaults] +...
-            default_realm = EXAMPLE.COM+
  
-    ​...+[domain_realm] 
 +        ​.example.com = EXAMPLE.COM
  
-    [realms] +...
-            EXAMPLE.COM = { +
-                    kdc = kdc01.example.com +
-                    kdc = kdc02.example.com +
-                    admin_server = kdc01.example.com +
-                    admin_server = kdc02.example.com +
-                    default_domain = example.com +
-                    database_module = openldap_ldapconf +
-            }+
  
-    ...+[dbdefaults] 
 +        ldap_kerberos_container_dn = dc=example,​dc=com
  
-    ​[domain_realm+[dbmodules
-            .example.com EXAMPLE.COM+        ​openldap_ldapconf = { 
 +                db_library = kldap 
 +                ldap_kdc_dn = "​cn=admin,​dc=example,dc=com"
  
-    ...+                # this object needs to have read rights on 
 +                # the realm container, principal container and realm sub-trees 
 +                ldap_kadmind_dn = "​cn=admin,​dc=example,​dc=com"​
  
-    [dbdefaults] +                # this object needs to have read and write rights on 
-            ​ldap_kerberos_container_dn ​= dc=example,​dc=com+                # the realm container, principal container and realm sub-trees 
 +                ldap_service_password_file ​/​etc/​krb5kdc/​service.keyfile 
 +                ldap_servers = ldaps://​ldap01.example.com ldaps://​ldap02.example.com 
 +                ldap_conns_per_server = 5 
 +        } 
 +</​code>​ 
 + 3. Создаем тайник для пароля соединения с LDAP: 
 +<​code>​ 
 +sudo kdb5_ldap_util -D  cn=admin,dc=example,​dc=com ​stashsrvpw -f \ 
 +/​etc/​krb5kdc/​service.keyfile cn=admin,​dc=example,​dc=com 
 +</​code>​ 
 + 4. Теперь на первичном KDC копируем /​etc/​krb5kdc/​.k5.EXAMPLE.COM тайник с главным ключом на вторичный KDC. Убедитесь что копирование файла происходит через зашифрованное соединение,​ такое как scp или через физический носитель. 
 +<​code>​ 
 +sudo scp /​etc/​krb5kdc/​.k5.EXAMPLE.COM steve@kdc02.example.com:​~ 
 +sudo mv .k5.EXAMPLE.COM /​etc/​krb5kdc/​ 
 +</​code>​ 
 +<​note>​Снова замените **EXAMPLE.COM** на вашу актуальную область.</​note>​ 
 + 5. Возвращаемся на **вторичный KDC** чтобы только (пере)стартовать ldap сервер:​ 
 +<​code>​sudo service slapd restart</​code>​ 
 + 6. И в конце стартуем сервис **krb5-kdc**:​ 
 +<​code>​sudo /​etc/​init.d/​krb5-kdc start</​code>​ 
 + 7. Убедитесь,​ что два ldap сервера (и kerberos вдобавок) синхронизированы.
  
-    [dbmodules] +Теперь у вас в сети избыточные KDCи с избыточными ​LDAP серверами вы можете продолжать аутентифицировать пользователейесли один ​LDAP серверодин ​Kerberos ​сервер или один ​LDAP с одним ​Kerberos ​сервером станут недоступны.
-            openldap_ldapconf = { +
-                    db_library = kldap +
-                    ldap_kdc_dn = "​cn=admin,dc=example,​dc=com"​ +
- +
-                    # this object needs to have read rights on +
-                    # the realm container, principal container and realm sub-trees +
-                    ldap_kadmind_dn = "​cn=admin,​dc=example,​dc=com"​ +
- +
-                    # this object needs to have read and write rights on +
-                    # the realm container, principal container and realm sub-trees +
-                    ldap_service_password_file = /​etc/​krb5kdc/​service.keyfile +
-                    ldap_servers = ldaps://​ldap01.example.com ldaps://​ldap02.example.com +
-                    ldap_conns_per_server = 5 +
-            } +
- +
-    Create the stash for the LDAP bind password: +
- +
-    sudo kdb5_ldap_util -D  cn=admin,dc=example,​dc=com stashsrvpw -f \ +
-    /​etc/​krb5kdc/​service.keyfile cn=admin,​dc=example,​dc=com +
- +
-    Now, on the Primary KDC copy the /​etc/​krb5kdc/​.k5.EXAMPLE.COM Master Key stash to the Secondary KDC. Be sure to copy the file over an encrypted connection such as scp, or on physical media. +
- +
-    sudo scp /​etc/​krb5kdc/​.k5.EXAMPLE.COM steve@kdc02.example.com:​~ +
-    sudo mv .k5.EXAMPLE.COM /​etc/​krb5kdc/​ +
- +
-    Again, replace EXAMPLE.COM with your actual realm. +
- +
-    Back on the Secondary KDC, (re)start the ldap server only, +
- +
-    sudo service slapd restart +
- +
-    Finally, start the krb5-kdc daemon: +
- +
-    sudo /​etc/​init.d/​krb5-kdc start +
- +
-    Verify the two ldap servers (and kerberos by extension) are in sync. +
- +
-You now have redundant KDCs on your network, and with redundant ​LDAP servers you should be able to continue to authenticate users if one LDAP serverone Kerberos ​server, or one LDAP and one Kerberos ​server become unavailable.+
  
 ====Ссылки==== ====Ссылки====
  
-    The Kerberos Admin Guide has some additional details+  -- [[http://​web.mit.edu/​Kerberos/​krb5-1.6/​krb5-1.6.3/​doc/​krb5-admin.html#​Configuring-Kerberos-with-OpenLDAP-back_002dend|Kerberos Admin Guide]] содержит некоторые дополнительные детали
- +  -- Для дополнительной информации по **kdb5_ldap_util** смотрите [[http://​web.mit.edu/​Kerberos/​krb5-1.6/​krb5-1.6.3/​doc/​krb5-admin.html#​Global-Operations-on-the-Kerberos-LDAP-Database|главу 5.6]] и  [[http://​manpages.ubuntu.com/​manpages/​precise/​en/​man8/​kdb5_ldap_util.8.html|страницу руководства ​kdb5_ldap_util]]
-    For more information on kdb5_ldap_util ​see Section 5.6 and the kdb5_ldap_util ​man page+  -- Другой полезной ссылкой является [[http://​manpages.ubuntu.com/​manpages/​precise/​en/​man5/​krb5.conf.5.html|страница руководства krb5.conf]]
- +  -- Также смотрите [[https://​help.ubuntu.com/​community/​Kerberos#​kerberos-ldap|Kerberos ​и LDAP]] на Ubuntu wiki.
-    Another useful link is the krb5.conf ​man page+
- +
-    Also, see the Kerberos ​and LDAP Ubuntu wiki page. +
  
 ---- ----