freeipa/install
Alexander Bokovoy 3692a1c57f trusts: harden trust-fetch-domains oddjobd-based script
When ipa-getkeytab is used to fetch trusted domain object credentials,
the fetched entry has always kvno 1. ipa-getkeytab always adds a key to
keytab which means older key versions will be in the SSSD keytab and
will confuse libkrb5 ccache initialization code as all kvno values are
equal to 1. Wrong key is picked up then and kinit fails.

To solve this problem, always remove existing
/var/lib/sss/keytabs/forest.keytab before retrieving a new one.

To make sure script's input cannot be used to define what should be
removed (by passing a relative path), make sure we retrieve trusted
forest name from LDAP. If it is not possible to retrieve, the script
will issue an exception and quit. If abrtd is running, this will be
recorded as a 'crash' and an attempt to use script by malicious user
would be recorded as well in the abrtd journal.

Additionally, as com.redhat.idm.trust-fetch-domains will create
ID ranges for the domains of the trusted forest if they don't exist,
it needs permissions to do so. The permission should be granted only
to cifs/ipa.master@IPA.REALM services which means they must have
krbprincipalname=cifs/*@IPA.REALM,cn=services,... DN and be members of
cn=adtrust agents,cn=sysaccounts,... group.

Solves https://bugzilla.redhat.com/show_bug.cgi?id=1250190

Ticket https://fedorahosted.org/freeipa/ticket/5182

Reviewed-By: Tomas Babej <tbabej@redhat.com>
2015-08-18 18:48:12 +02:00
..
certmonger Modernize 'except' clauses 2015-08-12 18:17:23 +02:00
conf Provide Kerberos over HTTP (MS-KKDCP) 2015-06-24 10:43:58 +02:00
ffextension webui: append network.negotiate-auth.trusted-uris 2014-09-11 09:41:51 +02:00
html webui: add Kerberos configuration instructions for Chrome 2015-07-27 13:50:49 +02:00
migration Replace dict.has_key with the 'in' operator 2015-08-12 18:17:23 +02:00
oddjob trusts: harden trust-fetch-domains oddjobd-based script 2015-08-18 18:48:12 +02:00
po Replace dict.has_key with the 'in' operator 2015-08-12 18:17:23 +02:00
restart_scripts Modernize 'except' clauses 2015-08-12 18:17:23 +02:00
share Added CLI param and ACL for vault service operations. 2015-08-17 08:10:59 +02:00
tools winsync-migrate: Expand the man page 2015-08-17 17:50:34 +02:00
ui webui: add LDAP vs Kerberos behavior description to user auth types 2015-08-10 14:54:16 +02:00
updates trusts: harden trust-fetch-domains oddjobd-based script 2015-08-18 18:48:12 +02:00
wsgi Modernize 'except' clauses 2015-08-12 18:17:23 +02:00
configure.ac trusts: add support for one-way trust and switch to it by default 2015-07-08 01:56:52 +02:00
Makefile.am trusts: add support for one-way trust and switch to it by default 2015-07-08 01:56:52 +02:00
README.schema Add some basic rules for adding new schema 2010-08-27 13:40:37 -04:00

Ground rules on adding new schema

Brand new schema, particularly when written specifically for IPA, should be
added in share/*.ldif. Any new files need to be explicitly loaded in
ipaserver/install/dsinstance.py. These simply get copied directly into
the new instance schema directory.

Existing schema (e.g. in an LDAP draft) may either be added as a separate
ldif in share or as an update in the updates directory. The advantage of
adding the schema as an update is if 389-ds ever adds the schema then the
installation won't fail due to existing schema failing to load during
bootstrap.

If the new schema requires a new container then this should be added
to install/bootstrap-template.ldif.