-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Declare a cipher unsupported for direct AD integration #3549
Conversation
The PR preview for 5552a68 is available at theforeman-foreman-documentation-preview-pr-3549.surge.sh The following output files are affected by this PR: |
Hi @adamruzicka and @lhellebr, can you please review? Looking at the Jira (see this PR's description), I'm wondering whether we should also mention a specific Windows Server version that this applies to. |
More of a questions than suggestions:
|
I'm not sure if that would be feasible. We were operating under the assumption that as long as both sides can agree on a cipher, it should work, until now we never really had to care about such low level details. Apparently there is a bug in the net-ldap/ruby-openssl/openssl or AD (or both) which makes the connections using this particular cipher occasionally break. Listing all that is supported would be better, if we actually knew. On a stock rhel9,
Now this is where it gets interesting. Both sides have a list of allowed ciphers and they agree on one to use. Even with stock settings, If it works ootb, should we maybe reword this to state that this is only relevant when applying security hardening?
openssl does indeed handle this. The connection won't be established if both sides can't agree on connection parameters. |
I know, but perhaps Satellite should disable it since it's known now not to be supported? |
I don't think it is worth the effort. As far as I know we've only had one or two people run into this over the last ten years. We may reconsider in the future if people start running into it again, but for now I'd say having it documented is good enough |
Looking at https://ciphersuite.info/cs/TLS_DHE_RSA_WITH_AES_256_GCM_SHA384/ it's declared weak, so IMHO it's best to disable it. From reading this change itself, it's not obvious to me how I (as a user) would disable it. The linked KB article is also unclear. Do I need to perform any action on the client (=Satellite) or Server (=LDAP) side? |
On either end should be enough. On the ldap side, you have to do whatever you have to do, depending on the implementation you have. On client side (and on el*, no idea how this works on debian), you change |
FYI: I think you can disable it system wide on RHEL 8 using https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/security_hardening/using-the-system-wide-cryptographic-policies_security-hardening#customizing-system-wide-cryptographic-policies-with-subpolicies_using-the-system-wide-cryptographic-policies (though https://www.redhat.com/en/blog/configuring-rhel-8-compliance-crypto-policy-related-cipher-block-chaining is IMHO a bit more concrete). Given it's a weak cipher, I'd expect it to be safe. Edit: to be explicit: don't modify the default policy but rather refine it by removing a single cipher. |
That might be a good thing to do in general, but it still wouldn't address the original issue where the user modified the default policy to explicitly include this problematic cipher by hand. From brief testing on one of my machines, you can craft a configuration in crypto policy backends that will win over the subpolicy |
At first I didn't see there was a customer case attached (because I wasn't logged in), so I assumed this cipher was enabled by default. For those non-Red Hatters reading along: this really is a case where the user manually enabled an insecure cipher that led to problems. There's only a limited amount we can do and we can't possibly enumerate all cases where the user did something that breaks. On the other hand, it led to problems and reading the case this is a relatively common occurrence. Now I wonder how to best deal with this. I'd love to understand why users add this insecure cipher to their configuration and also don't follow the documentation on how to refine the policy properly. |
7691e5c
to
5baf3d2
Compare
Thanks for all the comments! I added another sentence to (hopefully) clarify that the cipher being enabled is a result of user actions and that in such situations, it needs to be disabled on either side. I'm not adding any details on how exactly to disable the cipher because it being enabled is not the default state. This is not exactly a mainstream scenario so I'd prefer not to overdo how much information we provide. Let's assume that if users enabled it at some point, they can figure out how to disable it (I know that's not the safest of assumptions to make, but I think it might just be good enough in this situation). |
Well, unless I'm misreading what I'm seeing, it is enabled by default. On a fresh RHEL9 machine:
but it is pretty low on the list. |
There is an error that users encounter when the cipher is enabled and used:
@adamruzicka Do you think it would be better to turn this around and document the error? So, more or less: "If you hit the following error, make sure that this cipher is disabled." Would that be a more suitable approach than the note that this PR currently proposes? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think documenting exact errors is a good thing for troubleshooting. Sysadmins are trained in doing so (whether they know it or not). Today we mostly do so in KCS articles, but I think we should preempt errors if we know about them.
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Outdated
Show resolved
Hide resolved
In general yes, but I'm afraid you can get the same error in other scenarios so it is not 100% reliable. |
Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]>
Based on the feedback, I tried to come up with something that would help both prevent the issue and troubleshoot it. Can you please re-review? Is this helpful, or did I just create a horrible catdog and should just revert back to the note? |
6f42072
to
1a6807a
Compare
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Outdated
Show resolved
Hide resolved
...on/modules/proc_configuring-the-active-directory-authentication-source-on-projectserver.adoc
Outdated
Show resolved
Hide resolved
Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]>
@adamruzicka @ekohl @lhellebr Do you think that the current state is good enough? Is this something you feel comfortable approving? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is good. Long term I'd like to use th ERF error codes more. We used to maintain https://projects.theforeman.org/projects/foreman/wiki/ErrorCodes to make troubleshooting easier
Dear writers, can I get a style review? |
--------- Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]> (cherry picked from commit 3be4471)
--------- Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]> (cherry picked from commit 3be4471)
--------- Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]> (cherry picked from commit 3be4471)
--------- Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]> (cherry picked from commit 3be4471)
--------- Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]> (cherry picked from commit 3be4471)
--------- Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]> (cherry picked from commit 3be4471)
--------- Co-authored-by: Ewoud Kohl van Wijngaarden <[email protected]> (cherry picked from commit 3be4471)
What changes are you introducing?
I'm adding a note about the TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 cipher suite being unsupported. For Satellite, I'm also adding a link to a KBase solution.
Why are you introducing these changes? (Explanation, links to references, issues, etc.)
https://issues.redhat.com/browse/SAT-25882 reports errors in user environments that rely on the cipher.
Anything else to add? (Considerations, potential downsides, alternative solutions you have explored, etc.)
N/A
Checklists
Please cherry-pick my commits into: