Configure a Proper Value for LoginGraceTime
🗓️ 25 Sep 2025 00:00:00Reported by Copyright (C) 2025 Greenbone AGType
openvas🔗 plugins.openvas.org👁 3 Views
# SPDX-FileCopyrightText: 2025 Greenbone AG
# Some text descriptions might be excerpted from (a) referenced
# source(s), and are Copyright (C) by the respective right holder(s).
#
# SPDX-License-Identifier: GPL-2.0-only
# ------------------------------------------------------------------
# METADATA
# ------------------------------------------------------------------
if(description)
{
script_oid("1.3.6.1.4.1.25623.1.0.130490");
script_version("2025-11-21T05:40:28+0000");
script_tag(name:"last_modification", value:"2025-11-21 05:40:28 +0000 (Fri, 21 Nov 2025)");
script_tag(name:"creation_date", value:"2025-09-25 13:12:42 +0000 (Thu, 25 Sep 2025)");
script_tag(name:"cvss_base", value:"0.0");
script_tag(name:"cvss_base_vector", value:"AV:L/AC:H/Au:S/C:N/I:N/A:N");
script_tag(name:"qod", value:"97");
script_name("Configure a Proper Value for LoginGraceTime");
script_category(ACT_GATHER_INFO);
script_copyright("Copyright (C) 2025 Greenbone AG");
script_family("Policy");
script_dependencies("compliance_tests.nasl", "compliance_os_check.nasl");
script_mandatory_keys("Compliance/Launch", "policy/ssh/login/eulerosvirtual");
script_xref(name:"Policy", value:"EulerOS Virtual: EulerOS Virtual Linux Security Configuration (v1.0.0): 3. Running and Services: 3.3 SSH: 3.3.16 Configure a Proper Value for LoginGraceTime (Recommendation)");
script_tag(name:"summary", value:"LoginGraceTime is used to limit the login time of a user. If a
user does not complete the login within the time specified by LoginGraceTime, the connection is
automatically disconnected. You are advised to set this field to a value less than or equal to 60,
in seconds.
If this field is set to a large value, attackers can use a large number of unfinished login
connections to consume server resources. As a result, administrators fail to log in to the system.
If the value is not explicitly configured in the configuration file, the system uses the default
value 120, in seconds.");
exit(0);
}
include("ssh_func.inc");
include("host_details.inc");
include("policy_reporting_module.inc");
title = "Configure a Proper Value for LoginGraceTime";
solution = "Open the /etc/ssh/sshd_config file, set the LoginGraceTime field to the time limit (in
seconds), and restart the sshd service.
# vim /etc/ssh/sshd_config
LoginGraceTime 60
# systemctl restart sshd";
check_type = "SSH_Cmd";
action = 'Run the command in the terminal:
# val=$(awk "/^LoginGraceTime/ {print \\$2}" /etc/ssh/sshd_config); if [ -z "$val" ]; then echo 120; else echo "$val"; fi';
expected_value = 'The output should be less than or equal to "60"';
# ------------------------------------------------------------------
# CONNECTION CHECK
# ------------------------------------------------------------------
if(!get_kb_item("login/SSH/success") || !sock = ssh_login_or_reuse_connection()){
report_ssh_error(title: title,
solution: solution,
action: action,
expected_value: expected_value,
check_type: check_type);
exit(0);
}
# ------------------------------------------------------------------
# CHECK : LoginGraceTime less than or equal 60
# ------------------------------------------------------------------
step_cmd = 'val=$(awk "/^LoginGraceTime/ {print \\$2}" /etc/ssh/sshd_config); if [ -z "$val" ]; then echo 120; else echo "$val"; fi';
actual_value = ssh_cmd(socket:sock, cmd:step_cmd, return_errors:TRUE, return_linux_errors_only:TRUE);
if(eregmatch(string: actual_value, pattern:"(No such file or directory|Permission denied|Command not found|Segmentation fault|service not found|is not running|syntax error near unexpected token|syntax error: unexpected end of file)", icase: TRUE)){
compliant = "incomplete";
comment = "Something went wrong during the audit check. Please try again.";
}else if(int(actual_value) <= int(60)){
compliant = "yes";
comment = "Check passed";
}else{
compliant = "no";
comment = "Check failed";
}
# ------------------------------------------------------------------
# REPORT
# ------------------------------------------------------------------
target = get_kb_item("policy/ssh/login/os-release");
comment = "Target: " + target + "\n" + comment;
report_audit(action: action,
actual_value: actual_value,
expected_value: expected_value,
is_compliant: compliant,
solution: solution,
check_type: check_type,
title: title,
comment: comment);
exit(0);
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
21 Nov 2025 00:00Current
6.9Medium risk
Vulners AI Score6.9