Files
ansible-collection-hardening/roles/ssh_hardening/meta/argument_specs.yml
T
MoritzandSebastian Gumprich 1b0576695e feat: workflow for roles readme (#705)
* chore: added aar_doc config

Signed-off-by: Nemental <[email protected]>

* feat: added initial state of roles readme workflow

Signed-off-by: Nemental <[email protected]>

* fix: runs on

Signed-off-by: Nemental <[email protected]>

* fix: install poetry

Signed-off-by: Nemental <[email protected]>

* feat: loop over all roles and install peotry with pip

Signed-off-by: Nemental <[email protected]>

* fix: working dir for poetry run

Signed-off-by: Nemental <[email protected]>

* fix: cli path

Signed-off-by: Nemental <[email protected]>

* chore: scale down matrix loop for testing

Signed-off-by: Nemental <[email protected]>

* fix: poetry run for py execution command

Signed-off-by: Nemental <[email protected]>

* fix: work dir for poetry run

Signed-off-by: Nemental <[email protected]>

* fix: cli.py path

Signed-off-by: Nemental <[email protected]>

* fix: roles path

Signed-off-by: Nemental <[email protected]>

* feat: push readme

Signed-off-by: Nemental <[email protected]>

* fix: on push branch master

Signed-off-by: Nemental <[email protected]>

* fix: uncomment other roles

Signed-off-by: Nemental <[email protected]>

* chore: limit trigger to master and arguments

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

* fix: push branch name

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

* refactor: simplify steps

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

* style: linting and styling

Signed-off-by: Nemental <[email protected]>

* chore: trigger for pull request

Signed-off-by: Nemental <[email protected]>

* fix: push only if ref is master

Signed-off-by: Nemental <[email protected]>

* chore: output diff of generated README

Signed-off-by: Nemental <[email protected]>

* fix: push readme in pull request

Signed-off-by: Nemental <[email protected]>

* docs: role var description text

Signed-off-by: Nemental <[email protected]>

* fix: aar_doc roles path

Signed-off-by: Nemental <[email protected]>

* fix: git diff

Signed-off-by: Nemental <[email protected]>

* fix: fetch all history and changed diff branch

Signed-off-by: Nemental <[email protected]>

* fix: run diff only for pr

Signed-off-by: Nemental <[email protected]>

* fix: remove fetch-depth and switch to normal diff

Signed-off-by: Nemental <[email protected]>

* fix: remove diff and set push-branch

Signed-off-by: Nemental <[email protected]>

* fix: head_ref with default ref_name for push-branch

Signed-off-by: Nemental <[email protected]>

---------

Signed-off-by: Nemental <[email protected]>
Co-authored-by: Sebastian Gumprich <[email protected]>
2023-10-25 15:10:02 +02:00

362 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: false
type: bool
description: '`true` if SSH Port Tunneling is required.'
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: bool
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.