如何为 Linux 用户账户设置密码过期策略

LinuxBeginner
立即练习

简介

本教程涵盖了Linux密码策略的关键方面,包括理解密码复杂性要求、配置密码过期设置以及监控和审计密码策略。对于系统管理员和安全专业人员来说,掌握这些技术对于维护Linux系统上用户账户的安全性和完整性至关重要。

理解Linux密码策略

Linux密码策略是一组规则和配置,用于管理Linux系统上用户密码的行为。这些策略对于维护用户账户的安全性和完整性、防止未经授权的访问以及确保符合组织安全标准至关重要。

对于系统管理员和安全专业人员来说,理解Linux密码策略的基本概念至关重要。本节将探讨密码策略的关键方面,包括密码复杂性要求、密码过期和密码历史记录。

密码复杂性要求

Linux密码策略通常包括密码复杂性规则,例如最小长度、字符组成(例如,要求大写、小写、数字和特殊字符的组合)以及对使用常见或容易猜测的密码的限制。这些要求有助于确保用户密码强大且能抵御暴力攻击。

要在Ubuntu 22.04上配置密码复杂性要求,你可以使用 pwquality 软件包。以下是将最小密码长度设置为8个字符,并要求至少一个大写、一个小写和一个数字字符的示例:

sudo apt update
sudo apt-get install libpam-pwquality
sudo sed -i 's/minlen = 8/minlen = 8/g' /etc/security/pwquality.conf
sudo sed -i 's/dcredit = -1/dcredit = -1/g' /etc/security/pwquality.conf
sudo sed -i 's/ucredit = -1/ucredit = -1/g' /etc/security/pwquality.conf
sudo sed -i 's/lcredit = -1/lcredit = -1/g' /etc/security/pwquality.conf

进行这些更改后,所有用户账户都将强制执行新的密码复杂性要求。

密码过期

Linux密码策略通常包括密码过期设置,要求用户在指定时间段后更改密码。这有助于降低密码泄露的风险,并确保用户凭证保持最新状态。

要在Ubuntu 22.04上配置密码过期设置,你可以使用 chage 命令。例如,要将用户 “john” 的密码过期期限设置为90天,你可以运行以下命令:

sudo chage -M 90 john

这会将用户 “john” 的最大密码使用期限设置为90天,之后用户将被提示更改密码。

密码历史记录

Linux中的密码历史记录策略会跟踪用户以前使用的密码,并防止他们在指定时间段内重复使用相同的密码。这有助于确保用户不会循环使用旧的、可能已泄露的密码。

要在Ubuntu 22.04上配置密码历史记录,你可以使用 libpam-pwhistory 软件包。以下是将密码历史记录设置为记住最后5个密码,并在365天内防止重复使用的示例:

sudo apt update
sudo apt-get install libpam-pwhistory
sudo sed -i 's/remember=5/remember=5/g' /etc/security/pwhistory.conf
sudo sed -i 's/enforce_for_root/enforce_for_root/g' /etc/security/pwhistory.conf
sudo sed -i 's/expire=365/expire=365/g' /etc/security/pwhistory.conf

进行这些更改后,所有用户账户都将强制执行新的密码历史记录策略。

配置密码过期设置

配置密码过期设置是管理用户账户和维护Linux系统安全的关键环节。通过实施密码过期策略,你可以确保用户凭证定期更新,降低密码泄露和未经授权访问的风险。

在本节中,我们将探讨如何使用 chage 命令在Ubuntu 22.04上配置密码过期设置。

设置密码过期期限

chage 命令允许你为用户账户设置最大密码使用期限,超过此期限后用户将被提示更改密码。要将用户 “john” 的密码过期期限设置为90天,你可以运行以下命令:

sudo chage -M 90 john

此命令将用户 “john” 的最大密码使用期限设置为90天。在此期限之后,用户将需要更改密码。

强制实施密码过期

为确保整个系统都实施密码过期策略,你可以为所有新用户账户配置默认的密码过期设置。这可以通过修改 /etc/login.defs 文件来完成,该文件包含用户账户的系统范围配置设置。

以下是将默认密码过期期限设置为90天的示例:

sudo sed -i 's/PASS_MAX_DAYS\s*99999/PASS_MAX_DAYS 90/g' /etc/login.defs

此更改将把90天的密码过期策略应用于系统上创建的所有新用户账户。

监控密码过期

要监控用户账户的密码过期状态,你可以使用带 -l 选项的 chage 命令。这将显示特定用户账户的当前密码过期设置。

例如,要检查用户 “john” 的密码过期详细信息,你可以运行以下命令:

sudo chage -l john

这将提供有关用户密码过期日期、密码过期前剩余天数以及其他相关详细信息。

通过配置和监控密码过期设置,你可以有效地管理用户账户安全,并确保用户凭证定期更新,从而降低未经授权访问和数据泄露的风险。

监控和审计密码策略

监控和审计密码策略对于确保Linux系统的持续安全性和合规性至关重要。通过定期审查和分析与密码相关的数据,你可以识别潜在漏洞、检测策略违规行为,并采取适当措施维护用户账户的完整性。

监控密码过期

要监控用户账户的密码过期状态,你可以使用带 -l 选项的 chage 命令。这将显示特定用户账户的当前密码过期设置。

例如,要检查用户 “john” 的密码过期详细信息,你可以运行以下命令:

sudo chage -l john

这将提供有关用户密码过期日期、密码过期前剩余天数以及其他相关详细信息。

你还可以使用以下脚本生成所有用户账户及其密码过期状态的报告:

#!/bin/bash

echo "Username,Password Expiration Date,Days Until Expiration"
for user in $(awk -F: '$3 >= 1000 {print $1}' /etc/passwd); do
  expiration_date=$(chage -l "$user" | grep "Password expires" | awk -F": " '{print $2}')
  days_until_expiration=$(chage -l "$user" | grep "days)" | awk -F")" '{print $1}')
  echo "$user,$expiration_date,$days_until_expiration"
done

此脚本将输出一个CSV格式的报告,其中包含每个用户账户的用户名、密码过期日期以及密码过期前剩余的天数。

审计密码策略

要审计Ubuntu 22.04系统上现有的密码策略,你可以查看管理与密码相关规则的配置文件和设置。

密码策略的主要配置文件是 /etc/security/pwquality.conf。你可以查看此文件中的设置,以确保密码复杂性要求符合你组织的安全标准。

此外,你可以使用 pwck 命令检查与密码相关的文件和设置的完整性。此命令将报告密码策略配置中的任何不一致或错误。

sudo pwck

此命令的输出将提供有关系统上与密码策略相关的任何问题或潜在安全风险的信息。

通过定期监控和审计密码策略,你可以维护Linux系统的安全性和合规性,确保用户账户得到妥善保护,并及时处理任何策略违规行为。

总结

Linux密码策略对于确保用户账户的安全性和完整性至关重要。通过理解密码复杂性要求、配置密码过期设置以及定期监控和审计密码策略,你可以有效降低未经授权访问的风险,并符合组织的安全标准。本教程为你提供了在Linux系统上实施和管理强大密码策略所需的知识和实际步骤。