Skip to content

Commit ab05d6e

Browse files
committed
Fixes #36325 - Support key-algorithm in omshell
EL 8.2 introduced support for specifying key-algorithm in omshell[1] and Debian stable also supports this. If unspecified, it defaults to the insecure HMAC-MD5. Especially on FIPS (where MD5 is forbidden) this is problematic. [1]: https://access.redhat.com/errata/RHBA-2021:1623
1 parent 70073c0 commit ab05d6e

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

config/settings.d/dhcp_isc.yml.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
# Specifies TSIG key name and secret
1919
#:key_name: secret_key_name
2020
#:key_secret: secret_key
21+
# This needs to match the server configuration
22+
#:key_algorithm: HMAC-MD5
2123

2224
#:omapi_port: 7911
2325

modules/dhcp_common/isc/omapi_provider.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ class IscOmapiProvider < ::Proxy::DHCP::Server
66
include Proxy::Util
77
attr_reader :omapi_port, :key_name, :key_secret
88

9-
def initialize(server, omapi_port, subnets = nil, key_name = nil, key_secret = nil, service = nil, free_ips_service = nil)
9+
def initialize(server, omapi_port, subnets = nil, key_name = nil, key_secret = nil, service = nil, free_ips_service = nil, key_algorithm = nil)
1010
super(server, subnets, service, free_ips_service)
1111
# TODO: verify key name and secret
1212
@key_name = key_name
1313
@key_secret = key_secret
14+
@key_algorithm = key_algorithm
1415
@omapi_port = omapi_port
1516
end
1617

@@ -67,6 +68,7 @@ def om
6768
end
6869

6970
def om_connect
71+
omcmd("key-algorithm #{@key_algorithm}") if @key_algorithm
7072
omcmd("key #{@key_name} \"#{@key_secret}\"", true) if @key_name && @key_secret
7173
omcmd "server #{name}"
7274
omcmd "port #{@omapi_port}"

modules/dhcp_isc/configuration_loader.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def load_dependency_injection_wirings(container, settings)
4242
container.dependency :dhcp_provider, (lambda do
4343
Proxy::DHCP::CommonISC::IscOmapiProvider.new(
4444
settings[:server], settings[:omapi_port], settings[:subnets], settings[:key_name], settings[:key_secret],
45-
container.get_dependency(:subnet_service), container.get_dependency(:free_ips))
45+
container.get_dependency(:subnet_service), container.get_dependency(:free_ips), settings[:key_algorithm])
4646
end)
4747
end
4848

0 commit comments

Comments
 (0)