Skip to content
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

Installing Tentacle on a RHEL machine with Fips enabled and crypto policies restricting to TLS 1.2 still allows connections over TLS 1.0 and 1.1 #468

Open
1 task done
IsaacCalligeros95 opened this issue May 2, 2023 · 0 comments
Assignees
Labels
bug team/server-at-scale Represents the Server at Scale team under the Hosting & Execution Group

Comments

@IsaacCalligeros95
Copy link

IsaacCalligeros95 commented May 2, 2023

Team

  • I've assigned a team label to this issue

What happened?

When installing Tentacle on an RHEL 8 (tested 8.2) server, it doesn't appear the TLS settings are being applied as specified at a system level.
Using update-crypto-policies --set <policy> and using the DEFAULT policy should mean the tentacle port (e.g. 10933) will not use TLS 1.0 as listed here:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/security_hardening/using-the-system-wide-cryptographic-policies_security-hardening#switching-the-system-to-fips-mode_using-the-system-wide-cryptographic-policies

According to that configuration, only TLS 1.2 and above should be allowed system-wide, but when checking protocol levels available over the port, we're seeing TLS 1.0, 1.1, 1.2 still available.

Use the following to test the connection on the server itself after creating a new tentacle instance:

openssl s_client -connect localhost:10933 -quiet -tls1_2
openssl s_client -connect localhost:10933 -quiet -tls1_1
openssl s_client -connect localhost:10933 -quiet -tls1

Questions

Is there somewhere else this should be configured in RHEL to restrict tentacle communications or another way this should be done?

Why is Tentacle not respecting the OS-level settings? (Some discussion in slack threads linked)

Why does Tentacle specify TLS versions on the ServicePointManager, and is this still required?

Reproduction

Configure tentacle will not work as openssl cert generation is disabled with fips, run the below code to configure a tentacle

wget https://rpm.octopus.com/tentacle.repo -O /etc/yum.repos.d/tentacle.repo
yum install tentacle -y
# -- Generate a 100 year certificate with a compliant crypto scheme
openssl req -newkey rsa:4096  -x509  -sha512  -days 36500 -nodes -out certificate.pem -keyout privatekey.pem

# -- Convert pem to pfx
openssl pkcs12 -export -out generated.pfx -inkey privatekey.pem -in certificate.pem 

# -- Configure tentacle (replicating what the configure-tentacle script does - default settings used).
/opt/octopus/tentacle/Tentacle create-instance --instance "Tentacle" --config "/etc/octopus/Tentacle/tentacle-Tentacle.config"
/opt/octopus/tentacle/Tentacle import-certificate --instance "Tentacle" --from-file=generated.pfx
/opt/octopus/tentacle/Tentacle configure --instance "Tentacle" --app "/home/Octopus/Applications" --port 10933 --noListen False --reset-trust
/opt/octopus/tentacle/Tentacle configure --instance "Tentacle" --trust SERVERCERTIFICATETHUMBPRINT
/opt/octopus/tentacle/Tentacle service --install --start --instance "Tentacle"

openssl s_client -connect localhost:10933 -quiet -tls1_2
openssl s_client -connect localhost:10933 -quiet -tls1_1
openssl s_client -connect localhost:10933 -quiet -tls1

Will still listen over TLS 1 and 1.1.

Error and Stacktrace

NA

More Information

Internal slack discussion:
https://octopusdeploy.slack.com/archives/C27FNL3QW/p1682578455691219
https://octopusdeploy.slack.com/archives/CG9E93KLJ/p1682579067675749

Zendesk ticket threads:
https://octopus.zendesk.com/agent/tickets/96548
https://octopus.zendesk.com/agent/tickets/101467
https://octopus.zendesk.com/agent/tickets/103405
https://octopus.zendesk.com/agent/tickets/111245
https://octopus.zendesk.com/agent/tickets/119557

This may be caused by the ServicePointManager.SecurityProtocol in Tentacle

Workaround

NA

@evolutionise evolutionise added team/server-at-scale Represents the Server at Scale team under the Hosting & Execution Group bug and removed enhancement team/fire-and-motion labels May 8, 2023
@evolutionise evolutionise self-assigned this May 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug team/server-at-scale Represents the Server at Scale team under the Hosting & Execution Group
Projects
None yet
Development

No branches or pull requests

2 participants