提高 Linux 用户帐户安全性的 5 种方法

保护 Linux 服务器和系统的第一步也是最关键的一步是防止恶意方进行不必要的访问。 适当的用户帐户控制是增强系统安全性的众多方法之一。

强化的用户帐户可防止系统免受最常见的水平或垂直权限提升攻击方法。 因此,作为 Linux 系统管理员,您还负责通过有效的安全技术保护您的服务器。

本文介绍了一些基本的用户帐户安全控制,以防止不必要的访问并修复可能导致系统入侵的漏洞。

1. 限制 Root 帐户访问

默认情况下,每个 Linux 系统安装都会设置一个 root 帐户,任何人都可以通过 SSH 从外部访问。 但是,通过 SSH 访问 root 帐户或系统内的多用户访问可能会导致拒绝问题。

例如,攻击者可以暴力破解以 root 用户身份登录并访问系统。

要限制来自 Linux 系统内部/外部的不必要的 root 访问,您可以:

  • 添加另一个用户并为其授予 root 权限
  • 禁用 SSH root 登录

创建一个新的超级用户

授予 sudo 或普通 Linux 用户帐户的 root 权限,将用户添加到 sudo 分组如下:

usermod -aG sudo username

现在使用 su 命令切换到用户帐户,并通过发出只有 root 用户可以访问的命令来验证其 root 权限:

su - username
sudo systemctl restart sshd

启用 sudo 权限提供了一些良好的安全优势,例如:

  • 您不需要与普通用户共享 root 密码。
  • 它可以帮助您检查普通用户运行的所有命令,这意味着它将命令执行的人员、时间和地点的详细信息存储在 /var/log/安全 文件。
  • 此外,您还可以编辑 /etc/sudoers 文件来限制普通用户的超级用户权限。 你可以使用命令 苏 -l 检查用户当前的 root 权限。

禁用 Root SSH 登录

要在您的系统上禁用 root SSH 访问,首先,打开主配置文件。

sudo vim /etc/ssh/sshd_config

现在取消注释以下行以将 root 登录权限设置为

PermitRootLogin no

Save 文件并重新启动 sshd 通过键入服务:

sudo systemctl restart sshd

现在,每当您尝试以 root 用户身份 SSH 进入系统时,您都会收到以下错误消息:

Permission denied, please try again.

2.设置帐户的到期日期

另一种控制不必要访问的有效方法是为临时使用的帐户设置到期日期。

例如,如果实习生或员工需要访问系统,您可以在帐户创建期间设置到期日期。 这是一种预防措施,以防您在离开组织后忘记手动删除或删除帐户。

使用 查奇 使用 grep 实用程序的命令来获取用户的帐户到期详细信息:

chage -l username| grep account

输出:

Account expires : never

如上所示,它没有输出过期日期。 现在使用 用户模式 命令与 -e 标志来设置到期日期 YYYY-MM-DD 使用上面的 chage 命令格式化并验证更改。

usermod -e 2021-01-25 username
chage -l username| grep account

3. 提高账户密码安全性

实施强密码策略是保护用户帐户的一个重要方面,因为弱密码使攻击者能够通过暴力破解、字典或彩虹表攻击轻松侵入您的系统。

选择一个易于记忆的密码可能会提供一些便利,但它也为攻击者提供了借助在线可用工具和词汇表猜测密码的机会。

设置密码到期日期

此外,Linux 内部提供了一些默认选项 /etc/logins.defs 允许您设置帐户密码时效的文件。 使用 查奇 命令和 grep 密码到期详细信息如下:

chage -l username | grep days
变量默认值用法理想价值
PASS_MAX_DAYS9999使用密码的默认天数取决于您的帐户设置类型40
PASS_MIN_DAYS0防止用户立即更改密码5
PASS_MIN_LEN5强制用户设置一定长度的密码15
PASS_WARN_AGE0警告用户在被迫更改密码之前更改密码7

对于正在使用的账户,您可以通过 查奇 命令将 PASS_MAX_DAYS、PASS_MIN_DAYS 和 PASS_WARN_AGE 设置为 40、5 和 7。

chage -M 40 -m 5 -W 7 username

密码哈希

加强帐户密码安全性的另一种方法是将密码哈希存储在 /etc/shadow 文件中。 哈希是一种单向数学函数,它将密码作为输入并输出不可逆的字符串。

早些时候,在 Linux 系统上,每当用户输入密码登录时,系统都会生成其哈希值并与存储在 /etc/passwd 文件。

但是passwd文件权限访问有一个问题,就是任何有系统访问权限的人都可以读取文件,用彩虹表破解hash。

因此,Linux 现在将哈希值保存在 /etc/影子 具有以下访问权限集的文件:

ls -l /etc/shadow
---------- 1 root root 1626 Jan 7 13:56 /etc/shadow

您仍然可以使用旧的存储哈希的方式安装 Linux。 您可以通过运行 pwconv 命令,这样它就会自动将密码哈希保存到 /etc/影子 文件。 同样,您可以启用其他方法(/etc/passwd 文件)使用 pwunconv 命令。

4.删除未使用的用户帐户

不良行为者可以通过更新该帐户并使其看起来像合法用户来利用系统中未使用和过期的帐户。 要在用户离开组织时删除非活动帐户和相关数据,首先,查找与该用户相关的所有文件:

find / -user username

然后,如上所述禁用帐户或设置到期日期。 不要忘记备份用户拥有的文件。 您可以选择将文件分配给新所有者或将其从系统中删除。

最后,使用 userdel 命令删除用户帐户。

userdel -f username

5. 限制对特定用户组的远程访问

如果您在 Linux 机器上托管 Web 服务器,您可能需要只允许特定用户远程 SSH 进入系统。 OpenSSL 允许您通过交叉检查用户是否属于特定组来限制用户。

为此,创建一个名为 ssh_gp, 添加要授予组远程访问权限的用户,并列出用户组信息,如下所示:

sudo groupadd ssh_gp
sudo gpasswd -a username ssh_gp
groups username

现在,打开 OpenSSL 主配置文件以包含允许的用户组 ssh_gp.

sudo vim /etc/ssh/sshd_config
AllowGroups ssh_gp

请记住取消注释该行以确保成功包含组。 完成后,保存并退出文件并重新启动服务:

sudo systemctl restart sshd

在 Linux 上维护用户帐户安全

如今,大多数组织都在 Linux 上托管 Web 服务器、防火墙和数据库等关键基础架构,任何内部组件的入侵都会对整个基础架构构成重大威胁。

鉴于设置的重要性,管理和保护用户帐户是 Linux 管理员面临的基本挑战。 本文列出了帐户管理员必须采取的一些安全措施,以保护系统免受未受保护的用户帐户造成的潜在威胁。