It is possible to use a certificate instead of the conventional public-key pair to authenticate the client host.
The endpoint identity check, where the server verifies that the certificate actually belongs to the client that is attempting host-based authentication, is performed according to the following rules:
One of the DNS subject alternative names in the client certificate must
match the client's fully qualified domain name obtained by doing a
reverse lookup on the client's IP address. The alternative names may
have an asterisk (*
) as the first component, in which case
only the domain part is checked.
If the client's IP address cannot be reverse-mapped, the IP address is compared to the certificate's IP subject alternative names.
If the above checks do not produce a positive result, the certificate's subject name is checked. If it has a CN component that matches the client's reverse-mapped fully qualified domain name or IP address, the certificate is accepted.
To enable host-based authentication with certificates on Client
,
make the following settings in the Connection Broker configuration on the client side:
Add the following line in the ssh-broker-config.xml
file:
<authentication-methods> <auth-hostbased /> ... </authentication-methods>
Also other authentication methods can be listed. Place the least interactive method first (this means usually the host-based method).
Enroll a certificate for Client
. See
User Authentication with Certificates for more information.
The certificate must contain a dns
extension which
contains the fully qualified domain name (FQDN) of Client
.
Note | |
---|---|
The private key associated with the certificate needs to be stored with an empty passphrase. |
Define the private key and certificate in
ssh-server-config.xml
on Client
:
<params> <hostkey> <private file="/etc/ssh2/hostcert" /> <x509-certificate file="/etc/ssh2/hostcert.crt" /> </hostkey> ... </params>
If Tectia Server is not installed on Client
, create the
configuration file manually and save it in the /etc/ssh2
directory.
Do the following as the server administrator:
Specify the CA certificate in the
ssh-server-config.xml
file:
<cert-validation> <ca-certificate name="exa-ca1" file="/etc/ssh2/exa-ca1.crt" /> ... </cert-validation>
In the ssh-server-config.xml
file, under
the authentication-methods
element, add an
auth-hostbased
element and define the selectors. For example:
<authentication-methods> <authentication name="hostbased-block"> <auth-hostbased require-dns-match="no" /> <authentication action="allow" name="hostbased-cert-allow"> <selector> <host-certificate field="ca-list" pattern="exa-ca1" /> <host-certificate field="issuer-name" pattern="C=FI, O=SSH, CN=*" /> <host-certificate field="serial-number" pattern="123456" /> <host-certificate field="altname-ip" pattern="10.0.1.10" /> <host-certificate field="altname-fqdn" pattern="*.ssh.com" /> </selector> </authentication> <authentication action="deny" /> </authentication> </authentication-methods>
The host-based authentication with certificates can be restricted using the following
field
attributes in the selector
:
ca-list
: The pattern is a comma-separated
list of CA names. The names that are defined in the
ca-certificate
element are used.
issuer-name
: The pattern is the required
certificate issuer name in LDAP DN (distinguished name) string
format. The issuer name may contain glob patterns ('*' and '?') but
only in the component values, not names. For example, "C=FI,
O=SSH, CN=*"
is a legal pattern, but "C=FI, *=SSH,
CN=TestCA"
is not).
subject-name
: The pattern is the
required subject name in LDAP DN (distinguished name) string
format. Matching is done in similar manner as with the issuer name
described above.
serial-number
: The pattern is the
required serial number of the certificate. A combination of issuer
name and serial number can be used to uniquely identify a
certificate.
altname-email
: The pattern is the e-mail
address that must be present in the certificate as a subject
alternative name.
altname-upn
: The pattern is the principal
name that must be present in the certificate as a subject alternative
name.
altname-ip
: The pattern is the IP address
that must be present in the certificate as a subject alternative name.
Also a range of addresses can be given (for example,
10.1.0.11-10.1.0.61
or 10.1.0.0/8
).
altname-fqdn
: The pattern is a list of fully
qualified domain names (FQDN) that may contain glob patterns ('*' and '?').
One of the listed domain names must match with a subject alternative name of
type FQDN in the certificate.
In addition to matching to the selectors, the certificate must pass the endpoint identity check, described in detail in Using Certificates .
Using the Tectia Server Configuration tool, host-based authentication can be configured on the Authentication page. See Authentication.
Run ssh-server-ctl
to take the new
configuration in use. See ssh-server-ctl(8).
Click Apply to take the new settings in use.