<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    https://help.ubuntu.com/10.04/serverguide/kerberos.html

    Kerberos

    Kerberos is a network authentication system based on the principal of a trusted third party. The other two parties being the user and the service the user wishes to authenticate to. Not all services and applications can use Kerberos, but for those that can, it brings the network environment one step closer to being Single Sign On (SSO).

    This section covers installation and configuration of a Kerberos server, and some example client configurations.

    Overview

    If you are new to Kerberos there are a few terms that are good to understand before setting up a Kerberos server. Most of the terms will relate to things you may be familiar with in other environments:

    • Principal: any users, computers, and services provided by servers need to be defined as Kerberos Principals.

    • Instances: are used for service principals and special administrative principals.

    • Realms: the unique realm of control provided by the Kerberos installation. Usually the DNS domain converted to uppercase (EXAMPLE.COM).

    • Key Distribution Center: (KDC) consist of three parts, a database of all principals, the authentication server, and the ticket granting server. For each realm there must be at least one KDC.

    • Ticket Granting Ticket: issued by the Authentication Server (AS), the Ticket Granting Ticket (TGT) is encrypted in the user's password which is known only to the user and the KDC.

    • Ticket Granting Server: (TGS) issues service tickets to clients upon request.

    • Tickets: confirm the identity of the two principals. One principal being a user and the other a service requested by the user. Tickets establish an encryption key used for secure communication during the authenticated session.

    • Keytab Files: are files extracted from the KDC principal database and contain the encryption key for a service or host.

    To put the pieces together, a Realm has at least one KDC, preferably two for redundancy, which contains a database of Principals. When a user principal logs into a workstation, configured for Kerberos authentication, the KDC issues a Ticket Granting Ticket (TGT). If the user supplied credentials match, the user is authenticated and can then request tickets for Kerberized services from the Ticket Granting Server (TGS). The service tickets allow the user to authenticate to the service without entering another username and password.

    Kerberos Server

    Installation

    Before installing the Kerberos server a properly configured DNS server is needed for your domain. Since the Kerberos Realm by convention matches the domain name, this section uses the example.com domain configured in the section called “Primary Master”.

    Also, Kerberos is a time sensitive protocol. So if the local system time between a client machine and the server differs by more than five minutes (by default), the workstation will not be able to authenticate. To correct the problem all hosts should have their time synchronized using the Network Time Protocol (NTP). For details on setting up NTP see the section called “Time Synchronisation with NTP”.

    The first step in installing a Kerberos Realm is to install the krb5-kdc and krb5-admin-server packages. From a terminal enter:

    sudo apt-get install krb5-kdc krb5-admin-server
    

    You will be asked at the end of the install to supply a name for the Kerberos and Admin servers, which may or may not be the same server, for the realm.

    Next, create the new realm with the kdb5_newrealm utility:

    sudo krb5_newrealm
    

    Configuration

    The questions asked during installation are used to configure the /etc/krb5.conf file. If you need to adjust the Key Distribution Center (KDC) settings simply edit the file and restart the krb5-kdc daemon.

    1. Now that the KDC running an admin user is needed. It is recommended to use a different username from your everyday username. Using the kadmin.local utility in a terminal prompt enter:

      sudo kadmin.local
      Authenticating as principal root/admin@EXAMPLE.COM with password.
      kadmin.local: addprinc steve/admin
      WARNING: no policy specified for steve/admin@EXAMPLE.COM; defaulting to no policy
      Enter password for principal "steve/admin@EXAMPLE.COM": 
      Re-enter password for principal "steve/admin@EXAMPLE.COM": 
      Principal "steve/admin@EXAMPLE.COM" created.
      kadmin.local: quit
      

      In the above example steve is the Principal, /admin is an Instance, and @EXAMPLE.COM signifies the realm. The "every day" Principal would be steve@EXAMPLE.COM, and should have only normal user rights.

      [Note]

      Replace EXAMPLE.COM and steve with your Realm and admin username.

    2. Next, the new admin user needs to have the appropriate Access Control List (ACL) permissions. The permissions are configured in the /etc/krb5kdc/kadm5.acl file:

      steve/admin@EXAMPLE.COM        *
      

      This entry grants steve/admin the ability to perform any operation on all principals in the realm.

    3. Now restart the krb5-admin-server for the new ACL to take affect:

      sudo /etc/init.d/krb5-admin-server restart
      
    4. The new user principal can be tested using the kinit utility:

      kinit steve/admin
      steve/admin@EXAMPLE.COM's Password:
      

      After entering the password, use the klist utility to view information about the Ticket Granting Ticket (TGT):

      klist
      Credentials cache: FILE:/tmp/krb5cc_1000
              Principal: steve/admin@EXAMPLE.COM
      
        Issued           Expires          Principal
      Jul 13 17:53:34  Jul 14 03:53:34  krbtgt/EXAMPLE.COM@EXAMPLE.COM
      

      You may need to add an entry into the /etc/hosts for the KDC. For example:

      192.168.0.1   kdc01.example.com       kdc01
      

      Replacing 192.168.0.1 with the IP address of your KDC.

    5. In order for clients to determine the KDC for the Realm some DNS SRV records are needed. Add the following to /etc/named/db.example.com:

      _kerberos._udp.EXAMPLE.COM.     IN SRV 1  0 88  kdc01.example.com.
      _kerberos._tcp.EXAMPLE.COM.     IN SRV 1  0 88  kdc01.example.com.
      _kerberos._udp.EXAMPLE.COM.     IN SRV 10 0 88  kdc02.example.com. 
      _kerberos._tcp.EXAMPLE.COM.     IN SRV 10 0 88  kdc02.example.com. 
      _kerberos-adm._tcp.EXAMPLE.COM. IN SRV 1  0 749 kdc01.example.com.
      _kpasswd._udp.EXAMPLE.COM.      IN SRV 1  0 464 kdc01.example.com.
      
      [Note]

      Replace EXAMPLE.COM, kdc01, and kdc02 with your domain name, primary KDC, and secondary KDC.

      See Chapter 7, Domain Name Service (DNS) for detailed instructions on setting up DNS.

    Your new Kerberos Realm is now ready to authenticate clients.

    Secondary KDC

    Once you have one Key Distribution Center (KDC) on your network, it is good practice to have a Secondary KDC in case the primary becomes unavailable.

    1. First, install the packages, and when asked for the Kerberos and Admin server names enter the name of the Primary KDC:

      sudo apt-get install krb5-kdc krb5-admin-server
      
    2. Once you have the packages installed, create the Secondary KDC's host principal. From a terminal prompt, enter:

      kadmin -q "addprinc -randkey host/kdc02.example.com"
      
      [Note]

      After, issuing any kadmin commands you will be prompted for your username/admin@EXAMPLE.COM principal password.

    3. Extract the keytab file:

      kadmin -q "ktadd -k keytab.kdc02 host/kdc02.example.com"
      
    4. There should now be a keytab.kdc02 in the current directory, move the file to /etc/krb5.keytab:

      sudo mv keytab.kdc02 /etc/krb5.keytab
      
      [Note]

      If the path to the keytab.kdc02 file is different adjust accordingly.

      Also, you can list the principals in a Keytab file, which can be useful when troubleshooting, using the klist utility:

      sudo klist -k /etc/krb5.keytab
      
    5. Next, there needs to be a kpropd.acl file on each KDC that lists all KDCs for the Realm. For example, on both primary and secondary KDC, create /etc/krb5kdc/kpropd.acl:

      host/kdc01.example.com@EXAMPLE.COM
      host/kdc02.example.com@EXAMPLE.COM
      
    6. Create an empty database on the Secondary KDC:

      sudo kdb5_util -s create
      
    7. Now start the kpropd daemon, which listens for connections from the kprop utility. kprop is used to transfer dump files:

      sudo kpropd -S
      
    8. From a terminal on the Primary KDC, create a dump file of the principal database:

      sudo kdb5_util dump /var/lib/krb5kdc/dump
      
    9. Extract the Primary KDC's keytab file and copy it to /etc/krb5.keytab:

      kadmin -q "ktadd -k keytab.kdc01 host/kdc01.example.com"
      sudo mv keytab.kdc01 /etc/kr5b.keytab
      
      [Note]

      Make sure there is a host for kdc01.example.com before extracting the Keytab.

    10. Using the kprop utility push the database to the Secondary KDC:

      sudo kprop -r EXAMPLE.COM -f /var/lib/krb5kdc/dump kdc02.example.com
      
      [Note]

      There should be a SUCCEEDED message if the propagation worked. If there is an error message check /var/log/syslog on the secondary KDC for more information.

      You may also want to create a cron job to periodically update the database on the Secondary KDC. For example, the following will push the database every hour:

      # m h  dom mon dow   command
      0 * * * * /usr/sbin/kdb5_util dump /var/lib/krb5kdc/dump && /usr/sbin/kprop -r EXAMPLE.COM -f /var/lib/krb5kdc/dump kdc02.example.com
      
    11. Back on the Secondary KDC, create a stash file to hold the Kerberos master key:

      sudo kdb5_util stash
      
    12. Finally, start the krb5-kdc daemon on the Secondary KDC:

      sudo /etc/init.d/krb5-kdc start
      

    The Secondary KDC should now be able to issue tickets for the Realm. You can test this by stopping the krb5-kdc daemon on the Primary KDC, then use kinit to request a ticket. If all goes well you should receive a ticket from the Secondary KDC.

    Kerberos Linux Client

    This section covers configuring a Linux system as a Kerberos client. This will allow access to any kerberized services once a user has successfully logged into the system.

    Installation

    In order to authenticate to a Kerberos Realm, the krb5-user and libpam-krb5 packages are needed, along with a few others that are not strictly necessary but make life easier. To install the packages enter the following in a terminal prompt:

    sudo apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-config
    

    The auth-client-config package allows simple configuration of PAM for authentication from multiple sources, and the libpam-ccreds will cache authentication credentials allowing you to login in case the Key Distribution Center (KDC) is unavailable. This package is also useful for laptops that may authenticate using Kerberos while on the corporate network, but will need to be accessed off the network as well.

    Configuration

    To configure the client in a terminal enter:

    sudo dpkg-reconfigure krb5-config
    

    You will then be prompted to enter the name of the Kerberos Realm. Also, if you don't have DNS configured with Kerberos SRV records, the menu will prompt you for the hostname of the Key Distribution Center (KDC) and Realm Administration server.

    The dpkg-reconfigure adds entries to the /etc/krb5.conf file for your Realm. You should have entries similar to the following:

    [libdefaults]
            default_realm = EXAMPLE.COM
    ...
    [realms]
            EXAMPLE.COM = }                
                    kdc = 192.168.0.1               
                    admin_server = 192.168.0.1
            }
    

    You can test the configuration by requesting a ticket using the kinit utility. For example:

    kinit steve@EXAMPLE.COM
    Password for steve@EXAMPLE.COM:
    

    When a ticket has been granted, the details can be viewed using klist:

    klist
    Ticket cache: FILE:/tmp/krb5cc_1000
    Default principal: steve@EXAMPLE.COM
    
    Valid starting     Expires            Service principal
    07/24/08 05:18:56  07/24/08 15:18:56  krbtgt/EXAMPLE.COM@EXAMPLE.COM
            renew until 07/25/08 05:18:57
    
    
    Kerberos 4 ticket cache: /tmp/tkt1000
    klist: You have no tickets cached
    

    Next, use the auth-client-config to configure the libpam-krb5 module to request a ticket during login:

    sudo auth-client-config -a -p kerberos_example
    

    You will should now receive a ticket upon successful login authentication.

    Resources

    posted on 2012-12-19 18:15 ivaneeo 閱讀(2684) 評論(0)  編輯  收藏 所屬分類: GNU牛力
    主站蜘蛛池模板: 国产精品免费视频观看拍拍| 最近免费中文字幕大全免费版视频| 亚洲人成网站18禁止一区| 国产伦精品一区二区免费| 久久久亚洲AV波多野结衣| 免费无码又爽又刺激毛片| aaa毛片视频免费观看| 亚洲av永久综合在线观看尤物| 国产免费资源高清小视频在线观看| 波霸在线精品视频免费观看| 亚洲乱码中文字幕小综合| 免费国产美女爽到喷出水来视频| 中文字幕乱码一区二区免费| 亚洲色无码国产精品网站可下载| 亚洲中文字幕无码一久久区| a级毛片无码免费真人| 成人无码精品1区2区3区免费看| 亚洲一级毛片在线播放| 亚洲精品乱码久久久久久蜜桃不卡 | 在线看片免费人成视久网| 国产亚洲精品91| 亚洲黄色免费在线观看| 亚洲美女在线国产| 一二三四在线观看免费高清中文在线观看| 免费大片av手机看片| 亚洲av永久综合在线观看尤物| 亚洲色欲一区二区三区在线观看| 无码高潮少妇毛多水多水免费| 中文字幕免费在线看电影大全| 亚洲精品无码少妇30P| 久久久影院亚洲精品| 亚洲精品99久久久久中文字幕| 成人特黄a级毛片免费视频| 香港a毛片免费观看| 国产精品无码免费专区午夜| 久久亚洲精品高潮综合色a片| 亚洲精品自拍视频| 久久久久亚洲精品无码系列| 狠狠亚洲婷婷综合色香五月排名| 四虎永久成人免费| 大学生一级特黄的免费大片视频|