On 09/26/2011 08:54 AM, Rob Crittenden wrote:
Simo Sorce wrote:
On Mon, 2011-09-26 at 11:22 +0200, Martin Kosek wrote:
On Mon, 2011-09-26 at 08:31 +0200, Martin Kosek wrote:
On Sun, 2011-09-25 at 23:05 -0400, Rob Crittenden wrote:
Martin Kosek wrote:
On Fri, 2011-09-23 at 14:12 -0400, Rob Crittenden wrote:
Always require SSL in the Kerberos authorization block.

This also corrects a slight bug where if add is True then we always
re-update the file.

rob

ACK. Pushed to master, ipa-2-1.

Martin


Sorry guys, this breaks things pretty badly. We need to be able to allow some non-SSL access to parts of /ipa to fetch configuration and return
errors, etc. for those clients that don't trust our CA yet.

Here is a working change, not fully tested yet:

diff --git a/install/conf/ipa.conf b/install/conf/ipa.conf
index 2339387..09b4b7a 100644
--- a/install/conf/ipa.conf
+++ b/install/conf/ipa.conf
@@ -42,10 +42,17 @@ WSGIScriptReloading Off
     SetHandler None
</Location>

+# Ensure SSL is enabled in our APIs
+<Location "/ipa/xml">
+  NSSRequireSSL
+</Location>
+<Location "/ipa/json">
+  NSSRequireSSL
+</Location>
+

   # Protect /ipa with Kerberos
<Location "/ipa">
-  NSSRequireSSL
     AuthType Kerberos
     AuthName "Kerberos Login"
     KrbMethodNegotiate on
@@ -114,6 +121,7 @@ Alias /ipa/ui "/usr/share/ipa/ui"
   # migration related pages
   Alias /ipa/migration "/usr/share/ipa/migration"
<Directory "/usr/share/ipa/migration">
+    NSSRequireSSL
       AllowOverride None
       Satisfy Any
       Allow from all


Ouch, we can fix it right when you log in. The change looks good, we
will just have to update the conf version in case somebody already
installed this IPA version.

I was also thinking if /crl shouldn't be secured too but from what I
seen in world's common CAs, these are not secured either.

Martin


Since Rob may not be here today, and since I think this should be fixed
fast, I am sending the patch based on Rob's mail. I just bumped config
file version so that it is updated for configured IPA instances.

IPA server, client and replica installation and WebUI worked for me.

This patch seems to defeat the purpose as we are still allowing krb auth
on locations that do not enforce ssl.

NACK.

Simo.


Simo's concern is that if you enable the fake basic auth and go to an HTTP page you could expose your credentials. Probably worth testing with something like the LiveHTTPHeaders extension. Go to the webui then grab the CA or something in /ipa/config and see if it sends the Authorized header.

The only other solution I see is to duplicate the krb block for each of our three authenticated uris: /ipa/ui, /ipa/xml and /ipa/json.

rob

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


/ipa/ui should not require Kerberos, just the RPC calls. However, we need to be able to fetch that code from either port 80 or 443, I I think it needs to be covered by both the SSL and non SSL blocks.

In general the only thing that should require SSL nad thus Kerberos is the password migration paget and the RPC urls (/ipa/xml and /ipa/json) the rest should be accessable via both SSL and non SSL, but should not require authentication.

Any certificates should be safely fetchable from outside of SSL. Most important is the CA, as you will not have SSL enabled when you fetch that the first time or you'll be in the bad situation of having to accept an "invalid" cert before accepting the CA.


But yes, Kerberos without SSL is bad, especially if the end user enables basic auth as a fallback.





_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to