NAME

kerberos - LCFG kerberos component

SYNOPSIS

kerberos METHOD [ARGS]

DESCRIPTION

An LCFG component that is used to configure and manage the MIT Kerberos service on clients and servers.

METHODS

The non-standard component methods are described below.

start

On a client builds the client configuration and also creates the host key if requested to do so and not already done. On a slave builds the slave configuration and also creates the stash file if not already done. On a master builds the master configuration and also creates the master database if not already done. With the -f option on a slave or master will forcibly destroy the existing configuration and database and re-create from scratch. Starts the kdc server on a master and slave, the kpropd client on a slave, the kadmin process on a master and a keyserver process on a master and/or slave if requested.

The creation of the client host key and the slave stash file require input from the user and should not be executed when there isn't a user connected to stdin. The creation of the master database also requires input from the user and for reasons of security should only be run directly from the machine's console.

push

On a master propagates the current database to the slaves. This method should be called automatically at a regular frequency via the cron component.

run

Extract local passwords from the keyserver (if enabled).

save

On a server (master or slave) backs up the current Kerberos database as a K5 dump file. The directory the backups are saved to is specified in the backup resource. The backup files should be kept at the same level of security as the original live data. The backups can be safely taken while the service is live. This method is normally invoked automatically at a regular time interval via the cron component.

load

On a server (master or slave) loads the current Kerberos database from dump files produced via the save method. Takes one optional argument which is a timestamp. With no argument the load is done from the most recent dump file in the directory specified in the backup resource. The timestamp argument has the syntax [CC[YY[MM[DD[HH[MM]]]]]]]. For example, 200202 would load from the most recent dump file from Feb 2002, or 2002021211 would load from the most recent dump file for Feb 12 2002 during the 1100 hours period. Invoking this method destroys the existing database and recreates it from the saved data.

suspend

On an offline client (a normally disconnected machine such as a laptop) destroys any credential cache files in /tmp.

check

On a master or slave checks whether the root partition is filling up. When there is no free scratch space the server will continue to respond to incoming authentication requests but with bogus information and in the case of the master the service will not fall back to the slaves. This method would normaly be called automatically at a regular frequency via the cron component.

RESOURCES

The non-standard component resources are described below.

GENERAL CONFIGURATION

The following resources control the configuration of clients and servers.

type

Indicates the type of the machine. This can be either client, offline, master or slave. Master and slave configure the relevant KDCs, offline indicates that the machine is a client which spends time disconnected, and so shouldn't attempt to do updates when the start method is called.

realm

The Kerberos realm that the machine inhabits.

CLIENT CONFIGURATION

The following resources control the configuration of clients.

lifetime

Ticket lifetime (also used by the Krb5 PAM module as the renew lifetime).

tktenctypes

Supported encryption types for tickets.

tgsenctypes

Supported encryption types for the ticket granting service.

dns_lookup_kdc

If set to true will look up the KDC using DNS SRV records so it does not need to be explictly specified.

dns_lookup_realm

If set to true will look up the default realm using DNS SRV records so it does not need to be explictly specified.

kdc

The addresses (in the form of machine:port) of KDCs for the default realm. Only necessary if DNS SRV records are not being used to provide this information.

randomize

If true the client will randomize the KDC list before adding it to the configuration file. Use this option with care. Having a KDC other than the master first in this list can cause problems when new services are being installed, as the newly created keys won't be available immediately on the slaves.

admin

The address (in the same form as the kdc address) of the admin server for the default realm.

domain

The default domain of this machine.

domainmap

A space seperated list of tags for mapping domains to realms.

mapdomain_tag

The name of the domain to map, if missing uses default domain.

maprealm_tag

The name of the realm to map to, if missing uses default realm.

hostkeyless

If set, disables the creation of a host key for this host. This can be used for lightweight clients, but may have dramatic effects on machines that run Kerberized services, or that require the host key for machine based authentication. Use with extreme care.

realms

A list of additional realms.

name_key

The extra realm name.

admin_key

The extra realm admin server address.

domain_key

The extra realm domain.

kdcs_key

The extra realm kdc addresses.

PAM CONFIGURATION

The following resources (in conjunction with some of the above) control the configuration of the Kerberos PAM service.

forwardable

Set to true if the tickets requested by the Kerberos PAM module should be forwardable. Also makes tickets acquired through kinit forwardable if set to true.

krb4convert

Set to true if the Kerberos PAM module should automaticaly convert Kerberos V tickets to Kerberos IV ones.

maxtimeout
timeoutshift
initialtimeout

Control the timeouts in establishing the connection to the KDC. See the pam_krb5 manpage for more details.

addressless

Set to true if the user should be given addressless tickets, that is ones that can be used from behind a NAT or on a dialup host.

validate

Set to true if the user's TGT should be validated against a local service before allowing the user to login. Setting this to false opens the machine up to a number of network based attacks.

KEY EXTRACTION

The following resources control the automatic creation and extraction of host keys from the KDC to keytabs. This is not the only place that this may occur, individual services may perform their own key extraction.

keys

A list of the keys to extract. These are assumed to be principal names, the actual key extracted will be key/hostname@default_realm. If the keytab_key resource has no value these will be extracted to the default keytab.

keytab_key

The keytab to extract key to.

keytabuid_key

The UID or username to own the keytab for key. Note that if the same keytab is used for multiple keys, then the last key to be extracted will determine the ownership of the keytab. Defaults to root.

keytabgid_key

The GID or groupname to own the keytab for key. Defaults to root.

SERVER CONFIGURATION

The following resources control the configuration of master and slave KDCs.

slaves

List of FQDNs of machines that slave from this one.

master

List(!) of FQDNs that this machine will accept KDC propagation requests from. There should obviously only be one machine active at propagating at any one time, but this allows for easy recovery from a dead master KDC.

masterkeytype

The type of the KDC master key. Do not change this on a running KDC, unless you are aware of exactly what you are doing.

supenctypes

Encryption types that should be created for keys in the KDC.

kdcenctypes

Encryption types supported for authentication to the KDC.

acls

List of ACL rules for the kadmin server, used as keys for the acl_tag resource.

acl_tag

Kadmin ACL list entry for tag. Together with the acls resource, this builds the ACL control file. Entries are as described in the kadmind(5) manpage.

directory

If the KDC type is a master and this resource has a value the physical content of /var/kerberos/krb5kdc is relocated into the given directory and a symbolic link is made from /var/kerberos/krb5kdc to the new location. This is only ever done once as part of the buildmaster method.

kdclog

Location that the KDC should log to.

adminlog

Location that the Admin Server should log to.

backup

Directory where the master servers database snapshot save files are stored.

backup_rotate

Maximum number of snapshot save files to retain, the most recent N-1 of these are always held and N or more over this are always removed.

xinetd

If set to true run the kpropd on demand via xinetd (this must be separately configured, ideally using the lcfg-xinetd component) rather than stopping and starting the daemon when the kdc service is stopped and started.

maxrenewablelife

Specifies the maximum time period that a ticket may be renewed for in this realm.

DISKSPACE CHECK CONFIGURATION

diskspace_warning

Maximum diskspace percentage used before starting to send warning messages. Default is 90%.

diskspace_emergency

Maximum diskspace percentage used before trying to increase space by continually deleting log files. Default is 95%.

diskspace_failsafe

Maximum diskspace percentage used before giving up and stopping the server (requests automatically fall back to any configured slave servers if this is the master). Default is 99%.

diskspace_mail

Email addresses to send reports from the check method to.

LOCAL AUTHENTICATION

The following resources control the configuration of local authentication for operation when disconnected (or no route to KDC).

rootpwd

A lauth crypted string containing the root password for the machine. This will probably eventually go away, in favour of extracting this directly from the KDC.

keyserver

If true run the kdcpwdserver (must also be either a master or slave) to allow remote extraction of hashed passwords for local users.

keyserverhost

The host to contact for remote extraction of hashed passwords, the host running the kdcpwdserver process.

localusers

A space separated list of those users who are allowed to log in to this machine when it is disconnected. This is used both on the client (to decide whether to extract keys) and on the key server (via an LCFG spanning map).

CROSS-REALM AUTHENTICATION

CROSS-REALM AUTHENTICATION EXAMPLE

SPANNING MAP CONFIGURATION

FILES

/etc/krb5.conf
/etc/krb5.keytab
/var/kerberos/krb5kdc/kdc.conf
/var/kerberos/krb5kdc/kadm5.acl
/var/kerberos/krb5kdc/kpropd.acl
/etc/localpasswd
/etc/localusers.conf

PLATFORMS

Fedora3,Fedora5

SEE ALSO

kdb5_util, kadmin.local, kprop, pwdclient, kdcpwdserver

AUTHOR

DICE Infrastructure Unit <inf-unit@inf.ed.ac.uk>

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 346:

You forgot a '=back' before '=head2'

Around line 348:

'=item' outside of any '=over'

Around line 404:

You can't have =items (as at line 410) unless the first thing after the =over is an =item

Around line 468:

You can't have =items (as at line 474) unless the first thing after the =over is an =item