Files
ansible-collection-hardening/roles/ssh_hardening/meta/argument_specs.yml
T
Sebastian Gumprich 85aa1b22b3 do not force type of ssh_gateway_ports (#765)
* do not force type of gatewayports-var

this way it can be a bool or a string. we also now test for it

Signed-off-by: Sebastian Gumprich <[email protected]>

* replace yum with dnf

Signed-off-by: Sebastian Gumprich <[email protected]>

---------

Signed-off-by: Sebastian Gumprich <[email protected]>
2024-05-31 12:20:00 +02:00

368 lines
15 KiB
YAML

---
argument_specs:
main:
short_description: The main entry point for the ssh hardening role.
version_added: 8.8.0
options:
network_ipv6_enable:
default: true
type: bool
description: '`false` if IPv6 is not needed. `ssh_listen_to` must also be
set to listen to IPv6 addresses (for example `[::]`).'
ssh_client_config_file:
default: /etc/ssh/ssh_config
description: path of the ssh client configuration file, e.g. `/etc/ssh/ssh_config.d/custom.conf`.
ssh_server_config_file:
default: /etc/ssh/sshd_config
description: path of the ssh server configuration file, e.g. `/etc/ssh/sshd_config.d/custom.conf`.
ssh_server_ports:
default: ['22']
type: list
description: ports on which ssh-server should listen.
ssh_client_port:
default: '22'
description: Specifies the port number to connect on the remote host.
ssh_listen_to:
default: [0.0.0.0]
type: list
description: one or more ip addresses, to which ssh-server should listen to.
Default is all IPv4 addresses, but should be configured to specific addresses
for security reasons
ssh_host_key_files:
default: []
type: list
description: Host keys for sshd. If empty ['/etc/ssh/ssh_host_rsa_key', '/etc/ssh/ssh_host_ecdsa_key',
'/etc/ssh/ssh_host_ed25519_key'] will be used, as far as supported by the
installed sshd version.
ssh_host_rsa_key_size:
default: 4096
type: int
description: Specifies the number of bits in the private host RSA key to create.
ssh_host_key_algorithms:
default: []
type: list
description: Host key algorithms that the server offers. If empty the default
list will be used. Otherwise overrides the setting with specified list of
algorithms. Check `man sshd_config`, `ssh -Q HostKeyAlgorithms` or other
sources for supported algorithms - make sure you check the correct version
ssh_client_host_key_algorithms:
default: []
type: list
description: Specifies the host key algorithms that the client wants to use
in order of preference. If empty the default list will be used. Otherwise
overrides the setting with specified list of algorithms. Check `man ssh_config`,
`ssh -Q HostKeyAlgorithms` or other sources for supported algorithms - make
sure you check the correct version!
ssh_client_alive_interval:
default: 300
description: specifies an interval for sending keepalive messages.
type: int
ssh_client_alive_count:
default: 3
description: Defines the number of acceptable unanswered client alive messages
before disconnecting clients.
type: int
ssh_permit_tunnel:
default: 'no'
description: Specifies whether tun(4) device forwarding is allowed. The argument
must be yes, point-to-point (layer 3), ethernet (layer 2), or no. Specifying
yes permits both point-to-point and ethernet.
choices:
- 'no'
- 'yes'
- point-to-point
- ethernet
ssh_remote_hosts:
default: []
type: list
description: one or more hosts and their custom options for the ssh-client.
Default is empty. See examples in `defaults/main.yml`
ssh_permit_root_login:
default: 'no'
description: Disable root-login. Set to `'without-password'` or `'yes'` to
enable root-login - The quotes are required!
ssh_allow_tcp_forwarding:
default: 'no'
description: Set to `'no'` or `false` to disable TCP Forwarding. Set to `'yes'`
or`True` to allow TCP Forwarding. If you are using OpenSSH >= 6.2 version,
you can specify `'yes'`, `'no'`, `'all'`, `'local'`or`'remote'`.
ssh_gateway_ports:
default: false
type: raw
description: Set to `false` to disable binding forwarded ports to non-loopback
addresses. Set to `true` to force binding on wildcard address. Set to `clientspecified`
to allow the client to specify which address to bind to.
ssh_allow_agent_forwarding:
default: false
type: bool
description: Set to `false` to disable Agent Forwarding. Set to `true` to
allow Agent Forwarding.
ssh_x11_forwarding:
default: false
type: bool
description: Set to `false` to disable X11 Forwarding. Set to `true` to allow
X11 Forwarding.
ssh_pam_support:
default: true
type: bool
description: Set to `true` if SSH has PAM support.
ssh_use_pam:
default: true
type: bool
description: Set to `false` to disable pam authentication.
ssh_gssapi_support:
default: false
type: bool
description: Set to `true` to enable GSSAPI authentication (both client and
server).
ssh_gssapi_delegation:
default: false
type: bool
description: Set to `true` to enable GSSAPI credential forwarding.
ssh_kerberos_support:
default: true
type: bool
description: Set to `true` if SSH has Kerberos support.
ssh_deny_users:
default: ''
description: if specified, login is disallowed for user names that match one
of the patterns.
ssh_allow_users:
default: ''
description: if specified, login is allowed only for user names that match
one of the patterns.
ssh_deny_groups:
default: ''
description: if specified, login is disallowed for users whose primary group
or supplementary group list matches one of the patterns.
ssh_allow_groups:
default: ''
description: if specified, login is allowed only for users whose primary group
or supplementary group list matches one of the patterns.
ssh_authorized_keys_file:
default: ''
description: change default file that contains the public keys that can be
used for user authentication
ssh_trusted_user_ca_keys_file:
default: ''
description: specifies the file containing trusted certificate authorities
public keys used to sign user certificates.
ssh_trusted_user_ca_keys:
default: []
type: list
description: set the trusted certificate authorities public keys used to sign
user certificates. Only used if `ssh_trusted_user_ca_keys_file` is set.
ssh_authorized_principals_file:
default: ''
description: specifies the file containing principals that are allowed. Only
used if `ssh_trusted_user_ca_keys_file` is set.
ssh_authorized_principals:
default: []
type: list
description: list of hashes containing file paths and authorized principals,
see `default_cstom.yml` for all options. Only used if `ssh_authorized_principals_file`
is set
ssh_print_motd:
default: false
type: bool
description: Set to `false` to disable printing of the MOTD.
ssh_print_pam_motd:
default: false
type: bool
description: Set to `false` to disable printing of the MOTD via pam (Debian
and Ubuntu).
ssh_print_last_log:
default: false
type: bool
description: Set to `false` to disable display of last login information.
sftp_enabled:
default: true
type: bool
description: Set to `false` to disable sftp configuration.
sftp_umask:
default: '0027'
description: Specifies the umask for sftp.
sftp_chroot:
default: true
type: bool
description: Set to `false` to disable chroot for sftp.
sftp_chroot_dir:
default: /home/%u
description: change default stp chroot location
ssh_client_roaming:
default: false
type: bool
description: enable experimental client roaming.
sshd_moduli_file:
default: /etc/ssh/moduli
description: path to the SSH moduli file.
sshd_moduli_minimum:
default: 2048
description: remove Diffie-Hellman parameters smaller than the defined size
to mitigate logjam.
type: int
ssh_challengeresponseauthentication:
default: false
type: bool
description: Specifies whether challenge-response authentication is allowed
(e.g. via PAM).
ssh_client_password_login:
default: false
type: bool
description: Set to `true` to allow password-based authentication with the
ssh client.
ssh_server_password_login:
default: false
type: bool
description: 'Set to `true` to allow password-based authentication to the
ssh server. You probably also need to change `sshd_authenticationmethods`
to include `password` if you set `ssh_server_password_login`: `true`.'
ssh_banner:
default: false
type: bool
description: Set to `true` to print a banner on login.
ssh_banner_path:
default: /etc/sshd/banner.txt
description: path to the SSH banner file.
ssh_client_hardening:
default: true
type: bool
description: Set to `false` to stop harden the client.
ssh_client_compression:
default: false
type: bool
description: Specifies whether the client requests compression.
ssh_compression:
default: false
type: bool
description: Specifies whether server-side compression is enabled after the
user has authenticated successfully.
ssh_login_grace_time:
default: 30s
description: specifies the time allowed for successful authentication to the
SSH server.
ssh_max_auth_retries:
default: 2
description: Specifies the maximum number of authentication attempts permitted
per connection.
type: int
ssh_max_sessions:
default: 10
description: Specifies the maximum number of open sessions permitted from
a given connection.
type: int
ssh_print_debian_banner:
default: false
type: bool
description: Set to `true` to print debian specific banner.
ssh_server_enabled:
default: true
type: bool
description: Set to `false` to disable the opensshd server.
ssh_server_hardening:
default: true
type: bool
description: Set to `false` to stop harden the server.
ssh_server_match_address:
default: ''
description: Introduces a conditional block. If all of the criteria on the
Match line are satisfied, the keywords on the following lines override those
set in the global section of the config file, until either another Match
line or the end of the file.
ssh_server_match_group:
default: ''
description: Introduces a conditional block. If all of the criteria on the
Match line are satisfied, the keywords on the following lines override those
set in the global section of the config file, until either another Match
line or the end of the file.
ssh_server_match_user:
default: ''
description: Introduces a conditional block. If all of the criteria on the
Match line are satisfied, the keywords on the following lines override those
set in the global section of the config file, until either another Match
line or the end of the file.
ssh_server_match_local_port:
default: ''
description: Introduces a conditional block. If all of the criteria on the
Match line are satisfied, the keywords on the following lines override those
set in the global section of the config file, until either another Match
line or the end of the file.
ssh_server_permit_environment_vars:
default: 'no'
description: "`yes` to specify that ~/.ssh/environment and environment= options\
\ in ~/.ssh/authorized_keys are processed by sshd. With openssh version\
\ 7.8 it is possible to specify a whitelist of environment variable names\
\ in addition to global 'yes' or 'no' settings."
ssh_server_accept_env_vars:
default: ''
description: Specifies what environment variables sent by the client will
be copied into the session's environment, multiple environment variables
may be separated by whitespace.
ssh_use_dns:
default: false
type: bool
description: Specifies whether sshd should look up the remote host name, and
to check that the resolved host name for the remote IP address maps back
to the very same IP address.
ssh_server_revoked_keys:
default: []
type: list
description: a list of revoked public keys that the ssh server will always
reject, useful to revoke known weak or compromised keys.
ssh_max_startups:
default: 10:30:60
description: Specifies the maximum number of concurrent unauthenticated connections
to the SSH daemon.
ssh_macs:
default: []
type: list
description: Change this list to overwrite macs. Defaults found in `defaults/main.yml`
ssh_kex:
default: []
type: list
description: Change this list to overwrite kexs. Defaults found in `defaults/main.yml`
ssh_ciphers:
default: []
type: list
description: Change this list to overwrite ciphers. Defaults found in `defaults/main.yml`
ssh_custom_options:
default: []
type: list
description: Custom lines for SSH client configuration.
sshd_custom_options:
default: []
type: list
description: Custom lines for SSH daemon configuration.
sshd_syslog_facility:
default: AUTH
description: The facility code that is used when logging messages from sshd.
type: str
sshd_log_level:
default: VERBOSE
description: the verbosity level that is used when logging messages from sshd.
sshd_strict_modes:
default: true
type: bool
description: Check file modes and ownership of the user's files and home directory
before accepting login.
sshd_authenticationmethods:
default: publickey
description: Specifies the authentication methods that must be successfully
completed for a user to be granted access. Make sure to set all required
variables for your selected authentication method. Defaults found in `defaults/main.yml`
ssh_custom_selinux_dir:
default: /etc/selinux/local-policies
description: directory where to store the ssh_password policy
ssh_hardening_enabled:
default: true
type: bool
description: Whether to run the hardening
ssh_host_certificates:
default: []
type: list
description: Host certificates to look for when starting sshd
ssh_ps59:
default: sandbox
description: Specifies whether sshd separates privileges by creating an unprivileged
child process to deal with incoming network traffic.