当您首次创建新的 Rocky Linux 9 服务器时,您应该在初始设置中尽早执行一些配置步骤。这将提高服务器的安全性和可用性,并为您奠定坚实的基础。
第 1 步 — 以根用户身份登录
要登录到您的服务器,您需要知道服务器的公共 IP 地址。您还需要密码,或者,如果您安装了用于身份验证的 SSH 密钥,还需要根用户帐户的私钥。如果您还没有登录到您的服务器,您可能需要遵循我们关于如何使用 SSH 连接到您的 Droplet 的文档,其中详细介绍了这个过程。
如果您尚未连接到您的服务器,请使用以下命令以 root 用户身份登录(用您服务器的公共 IP 地址替换该命令的突出显示部分):
ssh root@your_server_ip
接受有关主机真实性的警告(如果出现)。如果您使用密码身份验证,请提供您的 root 密码以登录。如果您使用受密码保护的 SSH 密钥,则每次会话首次使用该密钥时,系统可能会提示您输入密码。如果这是您第一次使用密码登录服务器,系统可能还会提示您更改 root 密码。
关于 root
root 用户是 Linux 环境中的管理用户,拥有非常广泛的权限。由于 root 帐户的特权更高,因此不鼓励您定期使用它。这是因为 root 帐户固有的部分权力是能够进行非常具有破坏性的更改,即使是偶然的。
因此,下一步是设置一个替代用户帐户,以减少对日常工作的影响范围。此帐户在必要时仍将能够获得更高的权限。
第 2 步 — 创建新用户
以 root 身份登录后,您可以创建一个新的用户帐户,从现在开始您将使用该帐户登录。
此示例创建一个名为 sammy 的新用户,但您应该将其替换为您喜欢的任何用户名:
adduser sammy
接下来,为 sammy 用户设置一个强密码:
passwd sammy
系统将提示您输入密码两次。 这样做之后,你的用户就可以使用了,但首先你要给这个用户额外的权限来使用 sudo 命令。这将允许您在必要时以 root 身份运行命令。
第 3 步 — 授予管理权限
现在,您拥有一个具有常规帐户权限的新用户帐户。但是,您有时可能需要执行管理任务。
为避免注销您的常规用户并以根帐户重新登录,您可以为您的常规帐户设置所谓的“超级用户”或根权限。这将允许您的普通用户通过在每个命令前加上单词 sudo 来运行具有管理权限的命令。
要将这些权限添加到您的新用户,您需要将新用户添加到 wheel 组。默认情况下,在 Rocky Linux 9 上,属于 wheel 组的用户可以使用 sudo 命令。
作为 root,运行此命令将您的新用户添加到 wheel 组(用您的新用户名替换突出显示的词):
usermod -aG wheel sammy
现在,当以普通用户身份登录时,您可以在命令前键入 sudo 以使用超级用户权限执行操作。
第 4 步 — 设置防火墙
防火墙为您的服务器提供基本级别的安全性。这些应用程序负责拒绝流量到您服务器上的每个端口,但您明确批准的那些端口/服务除外。Rocky Linux 有一个名为 firewalld 的服务来执行此功能。一个名为 firewall-cmd 的工具用于配置 firewalld 防火墙策略。
首先安装firewalld:
dnf install firewalld -y
默认的 firewalld 配置允许 ssh 连接,因此您可以立即打开防火墙:
systemctl start firewalld
检查服务的状态以确保它已启动:
systemctl status firewalld
请注意,它既处于活动状态又处于启用状态,这意味着如果服务器重新启动,它将默认启动。
现在该服务已启动并正在运行,您可以使用 firewall-cmd 实用程序来获取和设置防火墙的策略信息。
首先让我们列出已经允许的服务:
firewall-cmd --permanent --list-all
要查看您可以按名称启用的其他服务,请键入:
firewall-cmd --get-services
要添加应允许的服务,请使用 –add-service 标志:
firewall-cmd --permanent --add-service=http
这将添加 http 服务并允许传入的 TCP 流量到端口 80。配置将在您重新加载防火墙后更新:
firewall-cmd --reload
请记住,您必须为以后可能配置的任何其他服务显式打开防火墙(带有服务或端口)。
第 5 步 — 为普通用户启用外部访问
现在您已经有了日常使用的常规非根用户,您需要确保可以使用它通过 SSH 连接到您的服务器。
为新用户配置 SSH 访问的过程取决于服务器的根帐户是使用密码还是 SSH 密钥进行身份验证。
如果root账户使用密码认证
如果您使用密码登录到您的 root 帐户,则会为 SSH 启用密码身份验证。您可以通过打开一个新的终端会话并使用 SSH 和您的新用户名来 SSH 到您的新用户帐户:
ssh sammy@your_server_ip
输入普通用户的密码后,您将登录。请记住,如果您需要以管理权限运行命令,请在它之前键入 sudo,如下所示:
sudo command_to_run
每次会话首次使用 sudo 时(以及之后定期),系统都会提示您输入常规用户密码。
为了增强服务器的安全性,您应该设置 SSH 密钥而不是使用密码身份验证。 按照本指南在 Rocky Linux 9 上设置 SSH 密钥,了解如何配置基于密钥的身份验证。
如果root账号使用SSH key认证
如果您使用 SSH 密钥登录到您的根帐户,则 SSH 的密码身份验证将被禁用。您需要将公钥的副本添加到新用户的 ~/.ssh/authorized_keys 文件中才能成功登录。
由于您的公钥已经在服务器上根帐户的 ~/.ssh/authorized_keys 文件中,您可以将该文件和目录结构复制到您的新用户帐户。
复制具有正确所有权和权限的文件的最直接方法是使用 rsync 命令。 这将复制 root 用户的 .ssh 目录,保留权限并修改文件所有者,所有这些都在一个命令中完成。 确保更改以下命令的突出显示部分以匹配您的常规用户名:
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
现在,回到本地机器上的新终端,与非 root 用户打开一个新的 SSH 会话:
ssh sammy@your_server_ip
您应该在不使用密码的情况下登录到新用户帐户。 请记住,如果您需要以管理权限运行命令,请在它之前键入 sudo,如下所示:
sudo command_to_run
每次会话首次使用 sudo 时(以及之后定期),系统都会提示您输入常规用户密码。