Skip to content
Pages in Guides

Compliance: controls and the frameworks that switch them on

Compliance as controls, and the frameworks (ENS, ISO/IEC 27001, NIS2, CIS, SOC 2, GDPR) that switch them on, the clause each control serves and what stays organisational.

Explanation Updated View as Markdown

Noust does not ship a "compliant" mode. It ships controls, each one a technical thing a server can require, and frameworks, which are presets that turn on the controls that help with a standard and say which clause each serves. Nothing is on unless you choose it.

What a framework is, and is not

A framework turns on the technical controls that help with a standard: sessions that end, backups that are encrypted, a second person for a root-equivalent change. That is a part of what the standard asks, and never all of it. Every standard here also asks for things no setting can do - a risk analysis, a policy somebody approves, people who are trained, suppliers who are managed, an audit by somebody else. Each framework below lists what stays organisational, and what is technical but not enforced by Noust. Neither Noust nor this page says that a server, or an organisation, is compliant: only your auditor can.

A control appears in a framework only where Noust can name the clause it serves. Where a framework leaves a number to the organisation (how long a session may idle), the value is Noust's reading of a reasonable limit and the row says so; where the framework fixes the number (CIS 4.3's fifteen minutes) the row says that instead.

How they combine

  • Controls are the unit. Each has its own setting. By default every one is as permissive as Noust has always been.
  • Frameworks are presets over the controls. Enabling one turns on what it names.
  • More than one at once. ENS together with ISO/IEC 27001 is common in Spain. The value of each control is the strictest any enabled framework asks.
  • You may tighten, never loosen. A control's own setting counts on top of the frameworks: set it stricter and it is stricter; set it looser than an enabled framework asks and the framework's value applies. Disable the framework first to loosen it.
  • security.profile: ens-medium (and any spelling of it, failing strict as it always did) keeps working and means ENS MEDIA is enabled.
noust compliance status                     what is on, and what forces what
noust compliance frameworks                 the frameworks and what each turns on
noust compliance show iso-27001             one framework's clauses, in full
noust compliance enable ens-media iso-27001 turn frameworks on (shows what changes first)
noust compliance disable iso-27001          turn one off (sudo mode in the console, audited)
noust compliance controls                   every control, its value and who forces it
noust compliance set change_reasons on      a control's own setting
noust compliance check [--framework X]      per framework, clause by clause

The console has the same under Settings > Compliance. Disabling a framework, or loosening a control, asks for sudo mode and is recorded in the audit trail; turning one on does not.

The controls

Access and accounts

Control What it does Default Setting Stricter
roles_split No role holds both governing the server (accounts, security settings, the audit trail) and running it. Nothing is cut from a role for it: the roles are judged as they are defined, and the one that joins them is reported until the operator splits it. off security.roles_split on is stricter
separation_of_duties One person cannot hold the account that runs the server and the one that governs it, and an auditor holds nothing else, unless a documented exception is recorded. off security.separation_of_duties on is stricter
single_role_per_account An account has one function: it may hold several roles as long as together they do not join governing the server with running it, and a person with two duties holds two accounts. off security.single_role_per_account on is stricter
sso_no_admin An identity provider never hands out the admin role, by default or by group: a person grants it. off security.sso_no_admin on is stricter
second_factor Every account enrols an authenticator or a passkey before it can do anything else. Where nothing asks for it, an account may set it up later, until the console is published on a public name. off security.second_factor on is stricter
approvals Root-equivalent actions, servers and role changes wait for a second person to approve them. off approval.enabled on is stricter
restricted_tokens An API token belongs to an account, cannot act in sudo mode and never holds root-equivalent, account or security permissions. off security.restricted_tokens on is stricter
token_max_days The longest life of an API token, in days; an expiry becomes mandatory. no limit auth.tokens.max_days (its default is not a choice: noust compliance set token_max_days records one in auth.tokens.enforce_max_days, and it then limits without a framework) a smaller number is stricter
master_token What the master token may do once accounts exist: the console as break-glass, or only get a person back in. break_glass security.master_token last choice is stricter
sudo_password Confirming sudo mode asks for the account's password as well as a second factor. off auth.sudo.require_password on is stricter
sudo_idle_minutes How long sudo mode stays open without an elevated action in it. 15 minutes auth.sudo.idle_minutes a smaller number is stricter
sudo_max_minutes The longest sudo mode lasts from its confirmation, however busy the session. 120 minutes auth.sudo.max_minutes a smaller number is stricter
session_idle_minutes A console session unused this long is over. 30 minutes auth.session.idle_minutes a smaller number is stricter
session_absolute_hours A session ends this long after sign-in, however active it is. 12 hours auth.session.absolute_hours a smaller number is stricter
lockout_threshold Consecutive refused sign-ins that lock an account. 5 attempts auth.lockout.threshold a smaller number is stricter
lockout_minutes How long that lock lasts at least. 15 minutes auth.lockout.minutes a larger number is stricter
password_min_length Shortest password accepted. 12 characters auth.password.min_length a larger number is stricter
access_review_days How often accounts and roles must be reviewed; noust ens access-review records it. no limit security.access_review_days (judged by noust compliance check, nothing refuses) a smaller number is stricter
stale_account_days An account unused this long is reported as stale. no limit security.stale_account_days (judged by noust compliance check, nothing refuses) a smaller number is stricter

Accountability and the audit trail

Control What it does Default Setting Stricter
change_reasons Every change from the command line, and every approval request, says why. off security.change_reasons on is stricter
exception_reasons A decision that lowers protection - building as root, accepting a risk, a privileged container, an incident freeze - says why. off security.exception_reasons on is stricter
audit_retention_days The least number of days audit events are kept. 90 days audit.retention_days a larger number is stricter
audit_fail_closed A change is refused while the audit trail cannot be written. off audit.on_failure on is stricter
external_audit_sink The audit trail is sent to a destination off the machine (syslog, or journald forwarded). off security.external_audit_sink (judged by noust compliance check, nothing refuses) on is stricter
audit_review_days How often the audit log must be reviewed; noust audit review records it. no limit security.audit_review_days (judged by noust compliance check, nothing refuses) a smaller number is stricter
log_shipping_tls Logs leave the server only over TLS. off security.log_shipping_tls on is stricter

Backups

Control What it does Default Setting Stricter
backup_encryption Backups leave the server only encrypted. optional backup.encryption last choice is stricter
backup_verify_days How often a backup is proved restorable; 0 turns it off where no framework asks. 7 days backup.verify_days a smaller number is stricter
backup_max_age_hours The newest backup of an application must be younger than this. 26 hours security.backup_max_age_hours (judged by noust compliance check, nothing refuses) a smaller number is stricter
backup_offsite At least one backup is kept apart, in a different place from the server. off security.backup_offsite (judged by noust compliance check, nothing refuses) on is stricter

Network and host

Control What it does Default Setting Stricter
tls_certificate The console serves a certificate of the organisation's PKI, not a self-signed one. any security.tls_certificate (judged by noust compliance check, nothing refuses) last choice is stricter
certificate_min_days A certificate expiring sooner than this many days is a finding. 30 days security.certificate_min_days (judged by noust compliance check, nothing refuses) a larger number is stricter
explicit_allowlist A console reachable beyond loopback names who may connect. off security.explicit_allowlist (judged by noust compliance check, nothing refuses) on is stricter
console_exposure Whether noust console expose may publish the console on a public name. allowed security.console_exposure last choice is stricter
database_remote_listen Whether a database engine may listen beyond loopback. allowed security.database_remote_listen last choice is stricter
server_terminal Whether Noust may open a root shell on the server in the browser. allowed security.server_terminal last choice is stricter
terminal_idle_minutes A console terminal with nothing typed this long is ended. 120 minutes terminal.idle_minutes a smaller number is stricter
terminal_max_minutes The longest a console terminal lasts in all. 720 minutes terminal.max_minutes a smaller number is stricter
mounts_read_only A server path bound into an application is read-only. off security.mounts_read_only on is stricter
db_write_root_equivalent Writing SQL from the console needs the root-equivalent permission. off security.db_write_root_equivalent on is stricter

The frameworks

ENS BÁSICA

Spain's National Security Scheme, category BÁSICA: the measures of Annex II that apply to the lowest category.

Reference: Real Decreto 311/2022, Annex II.

Enable it with noust compliance enable ens-basica. It asks of 16 control(s); 12 of them ask for more than the default.

Control Value Clause Note
single_role_per_account on op.acc.1.2: A separate identifier for each profile of the same person
restricted_tokens on op.acc.1.3: A unique identifier for every entity that accesses the system
op.acc.4.2: Least privilege
token_max_days 90 days op.acc.6.4: Credentials are changed periodically The period is the organisation's; 90 days is Noust's.
master_token recovery op.acc.6.r8.1: Two factors from or through uncontrolled zones
lockout_threshold 5 attempts op.acc.6.8: Authentication attempts are limited, then the account locks the default already; the floor cannot be lowered
lockout_minutes 15 minutes op.acc.6.8: Authentication attempts are limited, then the account locks the default already; the floor cannot be lowered
password_min_length 12 characters op.acc.6.r1.2: Minimum password complexity and robustness the default already; the floor cannot be lowered The same as the default; the floor cannot be lowered.
access_review_days 90 days op.acc.4.4: Access rights are reviewed periodically
stale_account_days 90 days op.acc.1.4: Accounts are disabled when no longer needed
external_audit_sink on op.mon.3.1: An automatic collection of security events
log_shipping_tls on mp.com.2.1: Encrypted channels outside the security domain
backup_max_age_hours 26 hours mp.info.6.1: Backups allow recovering lost data the default already; the floor cannot be lowered
explicit_allowlist on op.acc.4.5: A specific remote-access policy with express authorisation
mp.com.1.1: A perimeter protection separates the internal network from outside
console_exposure refused mp.com.1.1: A perimeter protection separates the internal network from outside
op.acc.4.5: A specific remote-access policy with express authorisation
database_remote_listen refused mp.com.1.1: A perimeter protection separates the internal network from outside
mounts_read_only on op.acc.2.3: Access to operating-system components and configuration is controlled

What stays organisational (no setting does it for you):

  • The security policy and its approval (org.1, org.2), the security roles and the committee (org.3, org.4).
  • The risk analysis and the categorisation of the system (op.pl.1, Annex I), and the declaration of applicability.
  • People: duties, awareness and training (mp.per).
  • Physical security of the premises and the equipment (mp.if), and the workstation (mp.eq).
  • Service continuity: impact analysis, plan, tests, alternative means (op.cont).
  • Suppliers and external services (op.ext) and certified components (op.pl.5).
  • Incident management and notification to the CCN-CERT (op.exp.7, op.exp.9), and the periodic security audit (art. 31).

ENS MEDIA

Spain's National Security Scheme, category MEDIA: what Noust has called the ens-medium profile since 3.1.

Reference: Real Decreto 311/2022, Annex II.

Enable it with noust compliance enable ens-media. It asks of 39 control(s); 34 of them ask for more than the default.

Control Value Clause Note
roles_split on op.acc.3.1: Development and operation do not fall on the same person
op.acc.3.2: Whoever authorises and whoever controls the use are different people
separation_of_duties on op.acc.3.1: Development and operation do not fall on the same person
op.acc.3.2: Whoever authorises and whoever controls the use are different people
single_role_per_account on op.acc.1.2: A separate identifier for each profile of the same person
sso_no_admin on op.acc.3.2: Whoever authorises and whoever controls the use are different people
second_factor on op.acc.6.r8.1: Two factors from or through uncontrolled zones Every account has held one since 3.1 under this category; the control keeps it.
approvals on op.acc.3.2: Whoever authorises and whoever controls the use are different people
op.exp.5.4: Relevant changes are approved beforehand
restricted_tokens on op.acc.1.3: A unique identifier for every entity that accesses the system
op.acc.4.2: Least privilege
token_max_days 90 days op.acc.6.4: Credentials are changed periodically The period is the organisation's; 90 days is Noust's.
master_token recovery op.acc.6.r8.1: Two factors from or through uncontrolled zones
sudo_password on op.acc.6.r6.1: Points where authentication is renewed, not just the session The measure asks for renewal points from category ALTA; MEDIA keeps what 3.1 decided.
sudo_idle_minutes 10 minutes op.acc.6.r6.1: Points where authentication is renewed, not just the session The number is Noust's.
sudo_max_minutes 30 minutes op.acc.6.r6.1: Points where authentication is renewed, not just the session The number is Noust's.
session_idle_minutes 15 minutes mp.eq.2.1: Locks after a prudent time of inactivity 'Prudent time' is the organisation's; 15 minutes is Noust's.
session_absolute_hours 8 hours mp.eq.2.1: Locks after a prudent time of inactivity
lockout_threshold 5 attempts op.acc.6.8: Authentication attempts are limited, then the account locks the default already; the floor cannot be lowered
lockout_minutes 15 minutes op.acc.6.8: Authentication attempts are limited, then the account locks the default already; the floor cannot be lowered
password_min_length 14 characters op.acc.6.r1.2: Minimum password complexity and robustness The number is Noust's.
access_review_days 90 days op.acc.4.4: Access rights are reviewed periodically
stale_account_days 90 days op.acc.1.4: Accounts are disabled when no longer needed
change_reasons on op.exp.5.1: Every change request is recorded with a reference
exception_reasons on op.exp.5.2: A change request carries enough information to authorise it
audit_retention_days 365 days op.exp.8.r3.1: The retention time of the records is defined The period is the organisation's; 365 days is Noust's.
audit_fail_closed on op.exp.8.1: An audit record of the activity is generated
external_audit_sink on op.mon.3.1: An automatic collection of security events
op.exp.8.r4.1: Records are accessible and deletable only by authorised staff
audit_review_days 7 days op.exp.8.r1.1: Activity records are reviewed periodically
log_shipping_tls on mp.com.2.1: Encrypted channels outside the security domain
backup_encryption required mp.si.2.1: Cryptographic mechanisms for confidentiality and integrity
backup_verify_days 7 days mp.info.6.r1.1: Backup and restore procedures are tested regularly the default already; the floor cannot be lowered The frequency is the organisation's; 7 days is Noust's.
backup_max_age_hours 26 hours mp.info.6.1: Backups allow recovering lost data the default already; the floor cannot be lowered
tls_certificate operator mp.com.2.r1.1: Algorithms and parameters authorised by the CCN
mp.com.3.r2.1: Authenticity of the other end, with authorised parameters
certificate_min_days 30 days mp.com.2.r1.1: Algorithms and parameters authorised by the CCN the default already; the floor cannot be lowered
explicit_allowlist on op.acc.4.5: A specific remote-access policy with express authorisation
mp.com.1.1: A perimeter protection separates the internal network from outside
console_exposure refused mp.com.1.1: A perimeter protection separates the internal network from outside
op.acc.4.5: A specific remote-access policy with express authorisation
database_remote_listen refused mp.com.1.1: A perimeter protection separates the internal network from outside
server_terminal refused op.acc.4.2: Least privilege
terminal_idle_minutes 10 minutes mp.eq.2.1: Locks after a prudent time of inactivity
terminal_max_minutes 60 minutes mp.eq.2.1: Locks after a prudent time of inactivity
mounts_read_only on op.acc.2.3: Access to operating-system components and configuration is controlled
db_write_root_equivalent on op.acc.4.2: Least privilege

What stays organisational (no setting does it for you):

  • The security policy and its approval (org.1, org.2), the security roles and the committee (org.3, org.4).
  • The risk analysis and the categorisation of the system (op.pl.1, Annex I), and the declaration of applicability.
  • People: duties, awareness and training (mp.per).
  • Physical security of the premises and the equipment (mp.if), and the workstation (mp.eq).
  • Service continuity: impact analysis, plan, tests, alternative means (op.cont).
  • Suppliers and external services (op.ext) and certified components (op.pl.5).
  • Incident management and notification to the CCN-CERT (op.exp.7, op.exp.9), and the periodic security audit (art. 31).

ENS ALTA

Spain's National Security Scheme, category ALTA: MEDIA plus a backup kept apart.

Reference: Real Decreto 311/2022, Annex II.

Enable it with noust compliance enable ens-alta. It asks of 40 control(s); 35 of them ask for more than the default.

Control Value Clause Note
roles_split on op.acc.3.1: Development and operation do not fall on the same person
op.acc.3.2: Whoever authorises and whoever controls the use are different people
separation_of_duties on op.acc.3.1: Development and operation do not fall on the same person
op.acc.3.2: Whoever authorises and whoever controls the use are different people
single_role_per_account on op.acc.1.2: A separate identifier for each profile of the same person
sso_no_admin on op.acc.3.2: Whoever authorises and whoever controls the use are different people
second_factor on op.acc.6.r8.1: Two factors from or through uncontrolled zones Every account has held one since 3.1 under this category; the control keeps it.
approvals on op.acc.3.2: Whoever authorises and whoever controls the use are different people
op.exp.5.4: Relevant changes are approved beforehand
restricted_tokens on op.acc.1.3: A unique identifier for every entity that accesses the system
op.acc.4.2: Least privilege
token_max_days 90 days op.acc.6.4: Credentials are changed periodically The period is the organisation's; 90 days is Noust's.
master_token recovery op.acc.6.r8.1: Two factors from or through uncontrolled zones
sudo_password on op.acc.6.r6.1: Points where authentication is renewed, not just the session The measure asks for renewal points from category ALTA; MEDIA keeps what 3.1 decided.
sudo_idle_minutes 10 minutes op.acc.6.r6.1: Points where authentication is renewed, not just the session The number is Noust's.
sudo_max_minutes 30 minutes op.acc.6.r6.1: Points where authentication is renewed, not just the session The number is Noust's.
session_idle_minutes 15 minutes mp.eq.2.1: Locks after a prudent time of inactivity 'Prudent time' is the organisation's; 15 minutes is Noust's.
session_absolute_hours 8 hours mp.eq.2.r1.1: Open sessions are cancelled after a longer time
lockout_threshold 5 attempts op.acc.6.8: Authentication attempts are limited, then the account locks the default already; the floor cannot be lowered
lockout_minutes 15 minutes op.acc.6.8: Authentication attempts are limited, then the account locks the default already; the floor cannot be lowered
password_min_length 14 characters op.acc.6.r1.2: Minimum password complexity and robustness The number is Noust's.
access_review_days 90 days op.acc.4.4: Access rights are reviewed periodically
stale_account_days 90 days op.acc.1.4: Accounts are disabled when no longer needed
change_reasons on op.exp.5.1: Every change request is recorded with a reference
exception_reasons on op.exp.5.2: A change request carries enough information to authorise it
audit_retention_days 365 days op.exp.8.r3.1: The retention time of the records is defined The period is the organisation's; 365 days is Noust's.
audit_fail_closed on op.exp.8.1: An audit record of the activity is generated
external_audit_sink on op.mon.3.1: An automatic collection of security events
op.exp.8.r4.1: Records are accessible and deletable only by authorised staff
audit_review_days 7 days op.exp.8.r1.1: Activity records are reviewed periodically
log_shipping_tls on mp.com.2.1: Encrypted channels outside the security domain
backup_encryption required mp.si.2.r2.1: Backups are encrypted
backup_verify_days 7 days mp.info.6.r1.1: Backup and restore procedures are tested regularly the default already; the floor cannot be lowered The frequency is the organisation's; 7 days is Noust's.
backup_max_age_hours 26 hours mp.info.6.1: Backups allow recovering lost data the default already; the floor cannot be lowered
backup_offsite on mp.info.6.r2.1: One backup is kept apart, in a different place
tls_certificate operator mp.com.2.r1.1: Algorithms and parameters authorised by the CCN
mp.com.3.r2.1: Authenticity of the other end, with authorised parameters
certificate_min_days 30 days mp.com.2.r1.1: Algorithms and parameters authorised by the CCN the default already; the floor cannot be lowered
explicit_allowlist on op.acc.4.5: A specific remote-access policy with express authorisation
mp.com.1.1: A perimeter protection separates the internal network from outside
console_exposure refused mp.com.1.1: A perimeter protection separates the internal network from outside
op.acc.4.5: A specific remote-access policy with express authorisation
database_remote_listen refused mp.com.1.1: A perimeter protection separates the internal network from outside
server_terminal refused op.acc.4.2: Least privilege
terminal_idle_minutes 10 minutes mp.eq.2.1: Locks after a prudent time of inactivity
terminal_max_minutes 60 minutes mp.eq.2.1: Locks after a prudent time of inactivity
mounts_read_only on op.acc.2.3: Access to operating-system components and configuration is controlled
db_write_root_equivalent on op.acc.4.2: Least privilege

What stays organisational (no setting does it for you):

  • The security policy and its approval (org.1, org.2), the security roles and the committee (org.3, org.4).
  • The risk analysis and the categorisation of the system (op.pl.1, Annex I), and the declaration of applicability.
  • People: duties, awareness and training (mp.per).
  • Physical security of the premises and the equipment (mp.if), and the workstation (mp.eq).
  • Service continuity: impact analysis, plan, tests, alternative means (op.cont).
  • Suppliers and external services (op.ext) and certified components (op.pl.5).
  • Incident management and notification to the CCN-CERT (op.exp.7, op.exp.9), and the periodic security audit (art. 31).

Technical, and not enforced by Noust:

  • Suspending credentials after a period of non-use (op.acc.6.r7.1, from ALTA).
  • Automatic correlation of events and automatic response (op.exp.8.r5, op.mon.3.r1, from ALTA).
  • Qualified certificates as authentication (op.acc.6.r3, r4), where chosen instead of a second factor.

ISO/IEC 27001:2022

The international information security management standard: the technical controls of Annex A that a deployment tool can enforce.

Reference: ISO/IEC 27001:2022, Annex A.

Enable it with noust compliance enable iso-27001. It asks of 38 control(s); 33 of them ask for more than the default.

Control Value Clause Note
roles_split on A.5.3: Segregation of duties
separation_of_duties on A.5.3: Segregation of duties
single_role_per_account on A.8.2: Privileged access rights
sso_no_admin on A.8.2: Privileged access rights
second_factor on A.8.5: Secure authentication A.8.5 leaves the method to the organisation; a second factor is Noust's reading.
restricted_tokens on A.5.17: Authentication information
A.8.2: Privileged access rights
token_max_days 90 days A.5.17: Authentication information ISO/IEC 27001 prescribes no number; this one is Noust's reading.
master_token recovery A.8.2: Privileged access rights
sudo_password on A.8.2: Privileged access rights
A.8.5: Secure authentication
sudo_idle_minutes 10 minutes A.8.2: Privileged access rights ISO/IEC 27001 prescribes no number; this one is Noust's reading.
sudo_max_minutes 30 minutes A.8.2: Privileged access rights ISO/IEC 27001 prescribes no number; this one is Noust's reading.
session_idle_minutes 15 minutes A.8.5: Secure authentication ISO/IEC 27001 prescribes no number; this one is Noust's reading.
session_absolute_hours 8 hours A.8.5: Secure authentication ISO/IEC 27001 prescribes no number; this one is Noust's reading.
lockout_threshold 5 attempts A.8.5: Secure authentication the default already; the floor cannot be lowered ISO/IEC 27001 prescribes no number; this one is Noust's reading.
lockout_minutes 15 minutes A.8.5: Secure authentication the default already; the floor cannot be lowered ISO/IEC 27001 prescribes no number; this one is Noust's reading.
password_min_length 14 characters A.5.17: Authentication information ISO/IEC 27001 prescribes no number; this one is Noust's reading.
access_review_days 90 days A.5.18: Access rights ISO/IEC 27001 prescribes no number; this one is Noust's reading.
stale_account_days 90 days A.5.18: Access rights ISO/IEC 27001 prescribes no number; this one is Noust's reading.
change_reasons on A.8.32: Change management
exception_reasons on 6.1.3: Information security risk treatment (acceptance of residual risk)
audit_retention_days 365 days A.8.15: Logging ISO/IEC 27001 prescribes no number; this one is Noust's reading.
audit_fail_closed on A.8.15: Logging
external_audit_sink on A.8.15: Logging
audit_review_days 7 days A.8.15: Logging
A.8.16: Monitoring activities
ISO/IEC 27001 prescribes no number; this one is Noust's reading.
log_shipping_tls on A.8.24: Use of cryptography
backup_encryption required A.8.13: Information backup
A.8.24: Use of cryptography
backup_verify_days 7 days A.8.13: Information backup the default already; the floor cannot be lowered ISO/IEC 27001 prescribes no number; this one is Noust's reading.
backup_max_age_hours 26 hours A.8.13: Information backup the default already; the floor cannot be lowered ISO/IEC 27001 prescribes no number; this one is Noust's reading.
backup_offsite on A.8.13: Information backup
certificate_min_days 30 days A.8.24: Use of cryptography the default already; the floor cannot be lowered ISO/IEC 27001 prescribes no number; this one is Noust's reading.
explicit_allowlist on A.8.20: Networks security
console_exposure refused A.8.20: Networks security
A.8.21: Security of network services
database_remote_listen refused A.8.20: Networks security
A.8.22: Segregation of networks
server_terminal refused A.8.18: Use of privileged utility programs
terminal_idle_minutes 10 minutes A.8.5: Secure authentication
A.8.18: Use of privileged utility programs
ISO/IEC 27001 prescribes no number; this one is Noust's reading.
terminal_max_minutes 60 minutes A.8.5: Secure authentication
A.8.18: Use of privileged utility programs
ISO/IEC 27001 prescribes no number; this one is Noust's reading.
mounts_read_only on A.8.3: Information access restriction
db_write_root_equivalent on A.8.2: Privileged access rights

What stays organisational (no setting does it for you):

  • The management system itself: context, scope, leadership, policy, risk assessment, the statement of applicability, internal audit and management review (clauses 4 to 10).
  • People and physical controls (Annex A, themes 6 and 7).
  • Supplier relationships (A.5.19 to A.5.23) and incident management (A.5.24 to A.5.28).
  • Vulnerability and malware management on the hosts (A.8.7, A.8.8).
  • Certification, which only an accredited body grants.

NIS2

The EU directive on the security of network and information systems: the risk-management measures of article 21(2) a server can help with.

Reference: Directive (EU) 2022/2555, article 21.

Enable it with noust compliance enable nis2. It asks of 21 control(s); 16 of them ask for more than the default.

Control Value Clause Note
second_factor on Art. 21(2)(j): The use of multi-factor authentication or continuous authentication solutions
restricted_tokens on Art. 21(2)(i): Human resources security, access control policies and asset management
token_max_days 90 days Art. 21(2)(i): Human resources security, access control policies and asset management Article 21 names areas, not settings; this number is Noust's reading.
sudo_password on Art. 21(2)(j): The use of multi-factor authentication or continuous authentication solutions
sudo_idle_minutes 10 minutes Art. 21(2)(j): The use of multi-factor authentication or continuous authentication solutions Article 21 names areas, not settings; this number is Noust's reading.
sudo_max_minutes 30 minutes Art. 21(2)(j): The use of multi-factor authentication or continuous authentication solutions Article 21 names areas, not settings; this number is Noust's reading.
lockout_threshold 5 attempts Art. 21(2)(g): Basic cyber hygiene practices and cybersecurity training the default already; the floor cannot be lowered Article 21 names areas, not settings; this number is Noust's reading.
lockout_minutes 15 minutes Art. 21(2)(g): Basic cyber hygiene practices and cybersecurity training the default already; the floor cannot be lowered Article 21 names areas, not settings; this number is Noust's reading.
password_min_length 14 characters Art. 21(2)(g): Basic cyber hygiene practices and cybersecurity training Article 21 names areas, not settings; this number is Noust's reading.
access_review_days 90 days Art. 21(2)(i): Human resources security, access control policies and asset management Article 21 names areas, not settings; this number is Noust's reading.
stale_account_days 90 days Art. 21(2)(i): Human resources security, access control policies and asset management Article 21 names areas, not settings; this number is Noust's reading.
audit_retention_days 365 days Art. 21(2)(b): Incident handling Article 21 names areas, not settings; this number is Noust's reading.
audit_fail_closed on Art. 21(2)(b): Incident handling Article 21 names areas, not settings; this number is Noust's reading.
external_audit_sink on Art. 21(2)(b): Incident handling Article 21 names areas, not settings; this number is Noust's reading.
audit_review_days 7 days Art. 21(2)(f): Policies and procedures to assess the effectiveness of cybersecurity risk-management measures Article 21 names areas, not settings; this number is Noust's reading.
log_shipping_tls on Art. 21(2)(h): Policies and procedures regarding the use of cryptography and, where appropriate, encryption
backup_encryption required Art. 21(2)(h): Policies and procedures regarding the use of cryptography and, where appropriate, encryption
backup_verify_days 7 days Art. 21(2)(c): Business continuity, such as backup management and disaster recovery, and crisis management the default already; the floor cannot be lowered Article 21 names areas, not settings; this number is Noust's reading.
backup_max_age_hours 26 hours Art. 21(2)(c): Business continuity, such as backup management and disaster recovery, and crisis management the default already; the floor cannot be lowered Article 21 names areas, not settings; this number is Noust's reading.
backup_offsite on Art. 21(2)(c): Business continuity, such as backup management and disaster recovery, and crisis management
certificate_min_days 30 days Art. 21(2)(h): Policies and procedures regarding the use of cryptography and, where appropriate, encryption the default already; the floor cannot be lowered Article 21 names areas, not settings; this number is Noust's reading.

What stays organisational (no setting does it for you):

  • Governance: management approves and answers for the measures (art. 20).
  • Risk analysis and security policies (art. 21(2)(a)), supply-chain security (d), secure development and vulnerability handling (e), training (g).
  • Reporting a significant incident: early warning in 24 hours, notification in 72, final report in a month (art. 23).
  • Registration with the authority, and the national transposition that applies to you.

CIS Controls v8, IG1

The Center for Internet Security's essential cyber hygiene (Implementation Group 1): the safeguards of IG1 a deployment tool can enforce.

Reference: CIS Critical Security Controls v8.

Enable it with noust compliance enable cis-ig1. It asks of 7 control(s); 7 of them ask for more than the default.

Control Value Clause Note
single_role_per_account on 5.4: Restrict administrator privileges to dedicated administrator accounts
second_factor on 6.5: Require MFA for administrative access the framework fixes this number
session_idle_minutes 15 minutes 4.3: Configure automatic session locking on enterprise assets the framework fixes this number
access_review_days 90 days 5.1: Establish and maintain an inventory of accounts the framework fixes this number Validate the accounts at least quarterly.
stale_account_days 45 days 5.3: Disable dormant accounts the framework fixes this number
backup_encryption required 11.3: Protect recovery data The safeguard says encryption or separation, based on requirements.
backup_offsite on 11.4: Establish and maintain an isolated instance of recovery data

What stays organisational (no setting does it for you):

  • Inventories of enterprise assets and software (controls 1 and 2).
  • Malware defences, email and browser protections, vulnerability management (controls 7, 9, 10).
  • Security awareness training (control 14), service-provider management (control 15).
  • An incident response process (control 17).

CIS Controls v8, IG2

CIS Controls v8, Implementation Group 2: IG1 and the safeguards of IG2 a deployment tool can enforce.

Reference: CIS Critical Security Controls v8.

It contains everything cis-ig1 asks.

Enable it with noust compliance enable cis-ig2. It asks of 11 control(s); 10 of them ask for more than the default.

Control Value Clause Note
single_role_per_account on 5.4: Restrict administrator privileges to dedicated administrator accounts
second_factor on 6.5: Require MFA for administrative access the framework fixes this number
session_idle_minutes 15 minutes 4.3: Configure automatic session locking on enterprise assets the framework fixes this number
access_review_days 90 days 5.1: Establish and maintain an inventory of accounts the framework fixes this number Validate the accounts at least quarterly.
stale_account_days 45 days 5.3: Disable dormant accounts the framework fixes this number
audit_retention_days 90 days 8.10: Retain audit logs the framework fixes this number the default already; the floor cannot be lowered At least 90 days.
external_audit_sink on 8.9: Centralize audit logs
audit_review_days 7 days 8.11: Conduct audit log reviews the framework fixes this number Weekly, or more often.
log_shipping_tls on 3.10: Encrypt sensitive data in transit
backup_encryption required 11.3: Protect recovery data
3.11: Encrypt sensitive data at rest
backup_offsite on 11.4: Establish and maintain an isolated instance of recovery data

What stays organisational (no setting does it for you):

  • Everything IG1 leaves organisational, and penetration testing (control 18).
  • Centralised account and access management beyond the server (5.6, 6.7).
  • Network monitoring and defence (control 13).

SOC 2, Security

The AICPA Trust Services Criteria for Security (the common criteria): the logical access, monitoring and change-management criteria a server can help with.

Reference: AICPA Trust Services Criteria (2017, revised points of focus 2022), CC6, CC7, CC8.

Enable it with noust compliance enable soc2-security. It asks of 24 control(s); 22 of them ask for more than the default.

Control Value Clause Note
roles_split on CC6.3: Role-based access, least privilege and segregation of duties
separation_of_duties on CC6.3: Role-based access, least privilege and segregation of duties
second_factor on CC6.1: Logical access security software, infrastructure and architectures The criteria name no method; a second factor is Noust's reading.
approvals on CC8.1: Change management
restricted_tokens on CC6.1: Logical access security software, infrastructure and architectures
CC6.3: Role-based access, least privilege and segregation of duties
token_max_days 90 days CC6.1: Logical access security software, infrastructure and architectures The criteria name no number; this one is Noust's reading.
master_token recovery CC6.1: Logical access security software, infrastructure and architectures
sudo_password on CC6.1: Logical access security software, infrastructure and architectures
session_idle_minutes 15 minutes CC6.1: Logical access security software, infrastructure and architectures The criteria name no number; this one is Noust's reading.
lockout_threshold 5 attempts CC6.1: Logical access security software, infrastructure and architectures the default already; the floor cannot be lowered The criteria name no number; this one is Noust's reading.
lockout_minutes 15 minutes CC6.1: Logical access security software, infrastructure and architectures the default already; the floor cannot be lowered The criteria name no number; this one is Noust's reading.
password_min_length 14 characters CC6.1: Logical access security software, infrastructure and architectures The criteria name no number; this one is Noust's reading.
access_review_days 90 days CC6.2: Registration and authorisation of users, and removal when access is no longer authorised The criteria name no number; this one is Noust's reading.
stale_account_days 90 days CC6.2: Registration and authorisation of users, and removal when access is no longer authorised The criteria name no number; this one is Noust's reading.
change_reasons on CC8.1: Change management
audit_retention_days 365 days CC7.2: Monitoring of system components for anomalies The criteria name no number; this one is Noust's reading.
audit_fail_closed on CC7.2: Monitoring of system components for anomalies
external_audit_sink on CC7.2: Monitoring of system components for anomalies
audit_review_days 7 days CC7.2: Monitoring of system components for anomalies The criteria name no number; this one is Noust's reading.
log_shipping_tls on CC6.7: Restriction of transmission, movement and removal of information
backup_encryption required CC6.1: Logical access security software, infrastructure and architectures
explicit_allowlist on CC6.6: Logical access security measures against threats from outside the system boundaries
console_exposure refused CC6.6: Logical access security measures against threats from outside the system boundaries
database_remote_listen refused CC6.6: Logical access security measures against threats from outside the system boundaries

What stays organisational (no setting does it for you):

  • The audit: a SOC 2 report is an independent auditor's opinion, not a setting.
  • The control environment, risk assessment and communication (CC1 to CC5).
  • Vendor management (CC9.2), human resources, physical access (CC6.4) and disposal (CC6.5).
  • Availability, confidentiality, processing integrity and privacy are other criteria; backups serve Availability (A1.2), so they are not part of this preset.

GDPR / RGPD, article 32

Security of processing under the General Data Protection Regulation: the technical measures of article 32(1) a server can help with.

Reference: Regulation (EU) 2016/679, article 32.

Enable it with noust compliance enable gdpr-32. It asks of 17 control(s); 13 of them ask for more than the default.

Control Value Clause Note
restricted_tokens on Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems
token_max_days 90 days Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
session_idle_minutes 15 minutes Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
session_absolute_hours 8 hours Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
lockout_threshold 5 attempts Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems the default already; the floor cannot be lowered Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
lockout_minutes 15 minutes Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems the default already; the floor cannot be lowered Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
password_min_length 14 characters Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
access_review_days 90 days Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems
Art. 32(1)(d): A process for regularly testing, assessing and evaluating the effectiveness of the measures
Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
stale_account_days 90 days Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
audit_review_days 7 days Art. 32(1)(d): A process for regularly testing, assessing and evaluating the effectiveness of the measures Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
log_shipping_tls on Art. 32(1)(a): Pseudonymisation and encryption of personal data
backup_encryption required Art. 32(1)(a): Pseudonymisation and encryption of personal data
backup_verify_days 7 days Art. 32(1)(c): The ability to restore the availability of and access to personal data in a timely manner
Art. 32(1)(d): A process for regularly testing, assessing and evaluating the effectiveness of the measures
the default already; the floor cannot be lowered Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
backup_max_age_hours 26 hours Art. 32(1)(c): The ability to restore the availability of and access to personal data in a timely manner the default already; the floor cannot be lowered Article 32 asks for measures appropriate to the risk, not for a number; this one is Noust's.
backup_offsite on Art. 32(1)(c): The ability to restore the availability of and access to personal data in a timely manner
console_exposure refused Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems
database_remote_listen refused Art. 32(1)(b): Ongoing confidentiality, integrity, availability and resilience of processing systems

What stays organisational (no setting does it for you):

  • The lawful basis, purposes, records of processing (art. 30) and impact assessments (art. 35).
  • Data-subject rights (art. 15 to 22), processor contracts (art. 28), the data protection officer (art. 37).
  • Notifying a breach to the authority and to the people affected (art. 33, 34).
  • Pseudonymisation of the data your applications hold (art. 32(1)(a)): Noust does not see inside them.

All of them side by side

What each framework asks of each control. A blank cell means it asks nothing.

Control ENS BÁSICA ENS MEDIA ENS ALTA ISO/IEC 27001:2022 NIS2 CIS Controls v8, IG1 CIS Controls v8, IG2 SOC 2, Security GDPR / RGPD, article 32
roles_split on on on on
separation_of_duties on on on on
single_role_per_account on on on on on on
sso_no_admin on on on
second_factor on on on on on on on
approvals on on on
restricted_tokens on on on on on on on
token_max_days 90 days 90 days 90 days 90 days 90 days 90 days 90 days
master_token recovery recovery recovery recovery recovery
sudo_password on on on on on
sudo_idle_minutes 10 minutes 10 minutes 10 minutes 10 minutes
sudo_max_minutes 30 minutes 30 minutes 30 minutes 30 minutes
session_idle_minutes 15 minutes 15 minutes 15 minutes 15 minutes 15 minutes 15 minutes 15 minutes
session_absolute_hours 8 hours 8 hours 8 hours 8 hours
lockout_threshold 5 attempts 5 attempts 5 attempts 5 attempts 5 attempts 5 attempts 5 attempts
lockout_minutes 15 minutes 15 minutes 15 minutes 15 minutes 15 minutes 15 minutes 15 minutes
password_min_length 12 characters 14 characters 14 characters 14 characters 14 characters 14 characters 14 characters
access_review_days 90 days 90 days 90 days 90 days 90 days 90 days 90 days 90 days 90 days
stale_account_days 90 days 90 days 90 days 90 days 90 days 45 days 45 days 90 days 90 days
change_reasons on on on on
exception_reasons on on on
audit_retention_days 365 days 365 days 365 days 365 days 90 days 365 days
audit_fail_closed on on on on on
external_audit_sink on on on on on on on
audit_review_days 7 days 7 days 7 days 7 days 7 days 7 days 7 days
log_shipping_tls on on on on on on on on
backup_encryption required required required required required required required required
backup_verify_days 7 days 7 days 7 days 7 days 7 days
backup_max_age_hours 26 hours 26 hours 26 hours 26 hours 26 hours 26 hours
backup_offsite on on on on on on
tls_certificate operator operator
certificate_min_days 30 days 30 days 30 days 30 days
explicit_allowlist on on on on on
console_exposure refused refused refused refused refused refused
database_remote_listen refused refused refused refused refused refused
server_terminal refused refused refused
terminal_idle_minutes 10 minutes 10 minutes 10 minutes
terminal_max_minutes 60 minutes 60 minutes 60 minutes
mounts_read_only on on on on
db_write_root_equivalent on on on

Something on this page is wrong or unclear? Report it on GitHub.

Help, contributing and the project’s policies are under Project.

Search the documentation

Type to search every page.

↑ ↓ to move, Enter to open, Esc to close