Commit Graph

138 Commits

Author SHA1 Message Date
Rob Crittenden
802483813a Always do a chkconfig --add/--del on install/uninstall
This makes a from-tree installation work. We also do this in the rpm spec file.
Contributed by Pieter D.J. Krul
2008-02-08 15:17:20 -05:00
Rob Crittenden
97d9c235dd Set the license uniformly to GPLv2 only. 2008-02-04 15:15:52 -05:00
Rob Crittenden
6935d94c14 Fix two typos 2008-02-05 16:50:12 -05:00
Rob Crittenden
5a96618f5d Use file to store the current CA serial number
No longer create a PKCS#12 file that contains the CA
No longer send the entire CA to each replica, generate the SSL certs on master
Fix number of bugs in ipa-replica-install and prepare
Produce status output during replica creation
2008-02-05 12:23:53 -05:00
Rob Crittenden
00e3a81266 Use correct variable for domain when restoring a file.
Resolves 430724
2008-01-31 10:24:22 -05:00
Rob Crittenden
946ef21426 Include some additional information when installing IPA.
Remove 8080 as a port that needs to be opened
bz 430088
2008-01-25 17:08:36 -05:00
Rob Crittenden
5c58015fbe Fix misspelling of the word indices. 2008-01-25 13:29:49 -05:00
Mark McLoughlin
11266d039f Re-factor the ipa_webgui and ipa_kpasswd instance code
The ipa_webgui and ipa_kpasswd instance code is identical
and I want to add another similar instance down the line,
so re-factor the code into a service.SimpleServiceInstance
class.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-22 11:58:06 +00:00
Mark McLoughlin
5fd10b5f98 Initialise DsInstance.pkcs12_info
DsInstance.pkcs12_info isn't currently initialised in
the constructore so, e.g. __enable_ssl() assumes that
create_instance() has initialised it.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-22 11:58:06 +00:00
Mark McLoughlin
b01ea25988 Small refactor of dsinstance.config_dirname()
If, in future, we change the server ID so that it's not
derived from the realm name, there's a fair few places
that need to be changed.

Make that easier by having config_dirname() take the
server ID rather than the realm name. That makes sense
anyway so we don't have to realm_to_serverid() so
much.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-22 11:57:59 +00:00
Mark McLoughlin
ee7c818bde Remove questions from ipaserver.dsinstance
Let's assume that all ipaserver.dsinstance could be used
somewhere where asking questions on stdout/stdin is not
approriate and re-factor the code to be suitable in
those situations too.

i.e. make check_existing_installation() return a list of
server IDs and make check_ports() return an (unsecure,
secure) tuple indication which ports are in use.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-22 08:03:06 +00:00
Rob Crittenden
042fb11fa1 Fix issues reported by rpmlint.
- Removing shebangs (#!) from a bunch of python libraries
- Don't use a variable name in init scripts for the lock file
- Keep the init script name consistent with the binary name, so renamed
  ipa-kpasswd.init to ipa_kpasswd.init
- Add status option to the init scripts
- Move most python scripts out of /usr/share/ipa and into the python
  site-packages directories (ipaserver and ipaclient)
- Remove unnecessary sys.path.append("/usr/share/ipa")
- Fix the license string in the spec files
- Rename ipa-webgui to ipa_webgui everywhere
- Fix a couple of issues reported by pychecker in ipa-python
2008-01-18 16:20:36 -05:00
Mark McLoughlin
4a162f6fc8 Add ipa-server-install --uninstall
Add a --uninstall option to ipa-server-install which tries to
restore the system to the way it was before ipa-server-install
was run using the state backed up through sysrestore.py.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-11 11:57:36 +00:00
Rob Crittenden
c7f3c746cc Backup system state in ipa-server-install
This patch adds a sysrestore module which allows ipa-server-install
code to backup any system state so that it can be restored again
with e.g. ipa-server-install --uninstall.

The idea is that any files ipa-server-install modifies gets backed
up to /var/cache/ipa/sysrestore/ while any "meta" state, like
whether a service is enabled with chkconfig, is saved to
/var/cache/ipa/sysrestore.state.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-14 12:43:26 -05:00
Mark McLoughlin
8b3024080b Use tempfile.mkdtemp() rather than hardcoded tmpdir
httpinstance.py currently uses a hardcoded /tmp/ipa temporary
directory. Make it use tempfile.mkdtemp() instead.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-11 10:36:25 +00:00
Mark McLoughlin
ae099fe006 Refactor some krbinstance templating code
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-11 10:36:25 +00:00
Mark McLoughlin
ff6c720026 Use service.py helpers
In dsinstance.py, there's one place we could use the
service.py helpers where we don't currently.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-11 10:36:25 +00:00
Mark McLoughlin
9161dcbbdc Add service.is_enabled() helper
Add a simple helper to check whether a service is enabled.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-11 10:36:25 +00:00
Mark McLoughlin
bfb4564f9d Add service.is_running() helper
Add a simple helper to check whether a service is running
and make ipa-server-install use it to check whether ntpd
is running.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2008-01-11 10:36:25 +00:00
Rob Crittenden
db2e5b26b7 Use a more obvious name for the subject of the IPA self-signed CA 2008-01-04 11:22:43 -05:00
Karl MacMillan
19bdd1f166 - Enable ssl for replication.
- Add replication management script that allows listing
  adding, and deleting replicas.
0001-01-01 00:00:00 +00:00
Simo Sorce
ed50c663e8 Big changeset that includes the work around keytab management.
Following the changelog history from my dev tree, some comments are useful imo

------------------------------------------------------

user:        Simo Sorce <ssorce@redhat.com>
date:        Fri Dec 21 03:05:36 2007 -0500
files:       ipa-server/ipa-slapi-plugins/ipa-pwd-extop/test-get-keytab.c
description:
Remove remnants of the initial test tool

changeset:   563:4fe574b7bdf1
user:        Simo Sorce <ssorce@redhat.com>
date:        Fri Dec 21 02:58:37 2007 -0500
files:       ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c
description:
Maybe actually encrypting the keys will help :-)

changeset:   562:488ded41242a
user:        Simo Sorce <ssorce@redhat.com>
date:        Thu Dec 20 23:53:50 2007 -0500
files:       ipa-server/ipa-install/share/Makefile.am ipa-server/ipa-install/share/default-aci.ldif
description:
Fixes

changeset:   561:4518f6f5ecaf
user:        Simo Sorce <ssorce@redhat.com>
date:        Thu Dec 20 23:53:32 2007 -0500
files:       ipa-admintools/Makefile ipa-admintools/ipa-addservice
description:
transform the old ipa-getkeytab in a tool to add services as the new
ipa-getkeytab won't do it (and IMO it makes more sense to keep the
two functions separate anyway).

changeset:   559:25a7f8ee973d
user:        Simo Sorce <ssorce@redhat.com>
date:        Thu Dec 20 23:48:59 2007 -0500
files:       ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c
description:
Bugfixes

changeset:   558:28fcabe4aeba
user:        Simo Sorce <ssorce@redhat.com>
date:        Thu Dec 20 23:48:29 2007 -0500
files:       ipa-client/configure.ac ipa-client/ipa-client.spec ipa-client/ipa-client.spec.in ipa-client/ipa-getkeytab.c
description:
Configure fixes
Add ipa-getkeytab to spec
Client fixes

changeset:   557:e92a4ffdcda4
user:        Simo Sorce <ssorce@redhat.com>
date:        Thu Dec 20 20:57:10 2007 -0500
files:       ipa-client/Makefile.am ipa-client/configure.ac
description:
Try to make ipa-getkeytab build via autotools

changeset:   556:224894175d6b
user:        Simo Sorce <ssorce@redhat.com>
date:        Thu Dec 20 20:35:56 2007 -0500
files:       ipa-admintools/ipa-getkeytab ipa-client/ipa-getkeytab.c
description:
Messed a bit with hg commands.
To make it short:
- Remove the python ipa-getkeytab program
- Rename the keytab plugin test program to ipa-getkeytab
- Put the program in ipa-client as it should be distributed with the client
  tools

changeset:   555:5e1a068f2e90
user:        Simo Sorce <ssorce@redhat.com>
date:        Thu Dec 20 20:20:40 2007 -0500
files:       ipa-server/ipa-slapi-plugins/ipa-pwd-extop/test-get-keytab.c
description:
Polish the client program

changeset:   554:0a5b19a167cf
user:        Simo Sorce <ssorce@redhat.com>
date:        Thu Dec 20 18:53:49 2007 -0500
files:       ipa-server/ipa-install/share/default-aci.ldif ipa-server/ipa-install/share/default-keytypes.ldif ipa-server/ipa-install/share/kdc.conf.template ipa-server/ipa-install/share/kerberos.ldif ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c ipa-server/ipa-slapi-plugins/ipa-pwd-extop/test-get-keytab.c ipa-server/ipaserver/krbinstance.py
description:
Support retrieving enctypes from LDAP
Filter enctypes
Update test program

changeset:   553:f75d7886cb91
user:        Simo Sorce <ssorce@redhat.com>
date:        Thu Dec 20 00:17:40 2007 -0500
files:       ipa-server/ipa-slapi-plugins/ipa-pwd-extop/test-get-keytab.c
description:
Fix ber generation and remove redundant keys

changeset:   552:0769cafe6dcd
user:        Simo Sorce <ssorce@redhat.com>
date:        Wed Dec 19 19:31:37 2007 -0500
files:       ipa-server/ipa-slapi-plugins/ipa-pwd-extop/test-get-keytab.c
description:
Avoid stupid segfault

changeset:   551:1acd5fdb5788
user:        Simo Sorce <ssorce@redhat.com>
date:        Wed Dec 19 18:39:12 2007 -0500
files:       ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c
description:
If ber_peek_tag() returns LBER_ERROR it may just be that we are at the
end of the buffer. Unfortunately ber_scanf is broken in the sense that
it doesn't actually really consider sequence endings (due probably to the fact
they are just representation and do not reflect in the underlieing DER
encoding.)

changeset:   550:e974fb2726a4
user:        Simo Sorce <ssorce@redhat.com>
date:        Wed Dec 19 18:35:07 2007 -0500
files:       ipa-server/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c ipa-server/ipa-slapi-plugins/ipa-pwd-extop/test-get-keytab.c
description:
First shot at the new method
2007-12-21 11:37:19 -05:00
Karl MacMillan
2855e9d40a Correct serial number for ds certs. 0001-01-01 00:00:00 +00:00
Karl MacMillan
ac0fb8ea52 Convert replication to use the new cert infrastructure and
correctly issue certs from the same authority. Also remove
support for read-only replicas since that work will not
be finished and tested for 1.0.
0001-01-01 00:00:00 +00:00
Karl MacMillan
6d9974dd95 Simplify kerberos calling. 0001-01-01 00:00:00 +00:00
Mark McLoughlin
42f4b72c16 Refactor keytab creation
There's a few places where we spawn of kadmin to add/modify
principals and create keytabs.

Refactor all that code into installutils.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2007-12-18 18:03:34 +00:00
Mark McLoughlin
4814c0d3f6 Restart ipa-webgui in create_instance()
Just in case there is an existing ipa-webgui running
before ipa-server-install, restart the instance rather
than just starting it.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2007-12-17 12:00:33 +00:00
Mark McLoughlin
4b4b0b4376 Fix error caused by creation steps patch merge
Merging the "host keytab" and "creation steps" patchs left
a stray old-style call to Service.step()

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2007-12-17 10:17:24 +00:00
Simo Sorce
2faa288218 Add host keytab creation for masters 2007-12-13 16:44:57 -05:00
Mark McLoughlin
6976f92862 Refactor krbinstance and dsinstance creation steps
Creation steps are currently done with:

  self.start_creation(2, "Create foo")
  self.step("do foo")
  self.foo()
  self.step("do bar")
  self.bar()
  self.done_creation()

This patch refactors that into the much more
straightforward:

  self.step("do foo", self.foo)
  self.step("do bar", self.bar)
  self.start_creation("Create foo")

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2007-12-13 09:31:28 +00:00
Mark McLoughlin
c049d2d821 Don't template files which don't contain variables
The following files hav no template variables, so don't
bother templating them:

  - memberof-conf.ldif
  - referint-conf.ldif
  - dna-conf.ldif
  - certmap.conf.template

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2007-12-13 09:31:28 +00:00
Mark McLoughlin
065827d6e1 Refactor dsinstance ldap modify code
Just a patch to refactor lots of similar code in
dsinstance and krbinstance using a simple helper
method.

Note, there are some differences:
  - Some code used to call ldapmodify without -h 127.0.0.1
  - Some of the code used to just print an error rather than
    using logging.critical()
  - Some code used to log some extra debug

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2007-12-13 09:31:28 +00:00
Mark McLoughlin
7ba901d777 Only update key/value files if necessary
update_key_val_in_file() shouldn't try and write to
a file if the key is already set to the given value
in the file

Rationale here is that if we write these files out
while building a system image, ipa-server-install
shouldn't need to re-write them and, therefore,
they don't need to be writable.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2007-12-13 09:31:28 +00:00
Mark McLoughlin
2a036abe7a More ipautil fixing
Recently, dsinstance and krbinstance was fixed to
not import * from ipautil; do the same for the
rest of ipaserver.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2007-12-13 09:31:28 +00:00
Karl MacMillan
cf595511ff Move radius server components into a separate package. 0001-01-01 00:00:00 +00:00
Simo Sorce
88c0c7f321 from ipa.ipautil import * --> from ipa import ipautil 2007-12-12 13:15:56 -05:00
Simo Sorce
d76886ff4f - Better access control, make sure not even admins can read out passwords
- Insure admins can't locked out by mistake by inclusion in disabled groups
- Fix also minor error in krbinstance.py
2007-12-11 21:56:36 -05:00
Rob Crittenden
6390db3502 Add automatic browser configuration for kerberos SSO using javascript.
This uses the UniversalPreferencesWrite function to set the browser
preferences to allow negotiation and ticket forwarding in the IPA domain.
A self-signed certificate is generated to sign the javascript.
2007-12-12 09:36:32 -05:00
Karl MacMillan
1c3849eb57 User provided certs. 0001-01-01 00:00:00 +00:00
Karl MacMillan
7561d7c42d Remove radius from main install script and add
ipa-radius-install.
0001-01-01 00:00:00 +00:00
Simo Sorce
01131e2a37 Make sure we don't keep around old keys.
Fixes problem changing passwords seen only on servers where
re-installations where performed (and old secrets piled up)
2007-12-11 12:25:58 -05:00
Karl MacMillan
abdbc50683 Import correct httpinstance.py 0001-01-01 00:00:00 +00:00
Karl MacMillan
158b4e8ff4 Commit corrected certs.py 0001-01-01 00:00:00 +00:00
Karl MacMillan
3b4f0db73e Convert the setup of ssl from a shell script to a
python module. This is in preparation for user
supplied certs.
0001-01-01 00:00:00 +00:00
Karl MacMillan
d2378f13d0 Merge. 0001-01-01 00:00:00 +00:00
Rob Crittenden
b75d735b7e Add default e-mail domain to the IPA configuration 2007-12-10 11:53:00 -05:00
John Dennis
d53915954e merge 2007-12-04 10:08:08 -05:00
John Dennis
904b76059c merged radius work with latest mainline tip 2007-11-28 07:49:07 -05:00
John Dennis
9a8326c5c1 clean up radius client command line tools 2007-11-23 10:35:22 -05:00
John Dennis
d98686e967 Add radius profile implementations:
get_radius_profile_by_uid
  add_radius_profile
  update_radius_profile
  delete_radius_profile
  find_radius_profiles

Rewrite command line arg handling, now support pair entry, interactive
mode with auto completion, reading pairs from a file, better handling
of mandatory values, better help, long arg names now match attribute
name in pairs

Establish mappings for all attributes and names used in clients and
profiles

Add notion of containers to radius clients and profiles in LDAP

Move common code, variables, constants, and strings into the files
radius_client.py, radius_util.py, ipautil.py to eliminate redundant
elements which could get out of sync if modified and to provide access
to other code which might benefit from using these items in the
future.

Add utility functions:
  format_list()
  parse_key_value_pairs()

Add utility class:
  AttributeValueCompleter

Unify attribute usage in radius ldap schema
2007-11-21 13:11:10 -05:00