Rocky Linux 8的初始服务器设置

介绍

当您首次创建新的Rocky Linux 8服务器时,作为基本设置的一部分,您应该采取一些配置步骤。这将提高服务器的安全性和可用性,并为后续操作打下坚实的基础。

步骤1 — 登录为Root用户

要登录服务器,您需要知道您的服务器的公共IP地址。您还需要密码,或者如果您安装了用于身份验证的SSH密钥,则需要root用户帐户的私钥。如果您尚未登录服务器,您可能希望查看我们的文档,了解如何使用SSH连接到您的Droplet,该文档详细介绍了该过程。

如果您尚未连接到服务器,请立即使用以下命令以root用户身份登录(请将命令中的突出显示部分替换为您服务器的公共IP地址):

  1. ssh root@your_server_ip

如果出现主机真实性警告,请接受。如果您使用密码验证,请提供您的root密码以登录。如果您使用的是受密码保护的SSH密钥,您可能会在每个会话的第一次使用该密钥时被提示输入密码。如果这是您首次使用密码登录服务器,您可能还会被提示更改root密码。

关于Root

root用户是Linux环境中的管理员用户,拥有非常广泛的权限。由于root账户的权限提升,您被建议不要经常使用它。这是因为root账户所具有的部分权力包括即使是意外地进行非常破坏性的更改。

因此,下一步是设置一个替代用户账户,其影响范围减小,用于日常工作。此账户仍然能够在必要时获得增加的权限。

步骤2 — 创建新用户

一旦您以root用户登录,您可以创建我们将从现在开始使用的新用户账户。

这个示例创建一个名为sammy的新用户,但你应该用任何你喜欢的用户名替换它:

  1. adduser sammy

接下来,为sammy用户设置一个强密码:

  1. passwd sammy

系统会提示你两次输入密码。完成后,你的用户就可以使用了,但首先我们将给这个用户额外的权限,以便使用sudo命令。这将允许我们在必要时以root身份运行命令。

第三步 —— 授予管理员权限

现在,我们有了一个具有普通帐户权限的新用户帐户。然而,我们有时可能需要执行管理员任务。

为了避免不得不退出我们的常规用户账户并以root账户重新登录,我们可以为我们的常规账户设置所谓的“超级用户”或root权限。这将允许我们的常规用户在每个命令前加上sudo一词以具有管理员权限。

要为我们的新用户添加这些权限,我们需要将新用户添加到wheel组中。默认情况下,在 Rocky Linux 8 上,属于wheel组的用户被允许使用sudo命令。

作为root用户,运行以下命令将您的新用户添加到wheel组(用您的新用户名替换突出显示的单词):

  1. usermod -aG wheel sammy

现在,以您的常规用户身份登录时,您可以在命令前输入sudo来以超级用户权限执行操作。

步骤 4 — 设置基本防火墙

防火墙为您的服务器提供了基本的安全级别。这些应用程序负责拒绝服务器上每个端口的流量,除了您明确批准的那些端口/服务。Rocky Linux 有一个名为firewalld的服务来执行此功能。一个名为firewall-cmd的工具用于配置firewalld防火墙策略。

注意:如果您的服务器正在运行DigitalOcean,您可以选择使用DigitalOcean云防火墙而不是firewalld。我们建议一次只使用一个防火墙,以避免可能难以调试的冲突规则。

首先安装firewalld

  1. dnf install firewalld -y

默认的firewalld配置允许ssh连接,因此我们可以立即启动防火墙:

  1. systemctl start firewalld

检查服务的状态以确保它已启动:

  1. systemctl status firewalld
Output
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago Docs: man:firewalld(1) Main PID: 13180 (firewalld) Tasks: 2 (limit: 5059) Memory: 22.4M CGroup: /system.slice/firewalld.service └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

请注意,它同时处于activeenabled状态,这意味着如果服务器重新启动,它将默认启动。

现在服务已经启动运行,我们可以使用firewall-cmd实用程序获取和设置防火墙的策略信息。

首先让我们列出已经允许的服务:

  1. firewall-cmd --permanent --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

要查看您可以按名称启用的附加服务,请输入:

  1. firewall-cmd --get-services

要添加应该允许的服务,请使用--add-service标志:

  1. firewall-cmd --permanent --add-service=http

这将添加http服务并允许传入的TCP流量到端口80。配置将在您重新加载防火墙后更新:

  1. firewall-cmd --reload

请记住,您必须显式打开防火墙(使用服务或端口),以允许您可能稍后配置的任何附加服务。

步骤 5 — 为您的常规用户启用外部访问

现在我们有了一个常规的非root用户供日常使用,我们需要确保我们可以使用它来SSH登录到我们的服务器。

注意:在验证您能够使用新用户登录并使用sudo之前,我们建议保持登录状态为root。这样,如果出现问题,您可以作为root进行故障排除并进行任何必要的更改。如果您使用的是DigitalOcean Droplet并且在root SSH连接中遇到问题,您可以使用DigitalOcean控制台登录到Droplet

为您的新用户配置SSH访问的过程取决于您服务器的root账户是使用密码还是SSH密钥进行身份验证。

如果根账户使用密码身份验证

如果您使用密码登录到您的root账户,那么SSH已启用密码身份验证。您可以通过打开新的终端会话并使用SSH与您的新用户名登录到新用户账户:

  1. ssh sammy@your_server_ip

输入您的常规用户密码后,您将登录成功。请记住,如果您需要以管理员权限运行命令,请在命令前键入sudo,如下所示:

  1. sudo command_to_run

每个会话第一次使用sudo时(以及之后的一段时间),都会提示您输入常规用户密码。

为增强服务器安全性,我们强烈建议设置 SSH 密钥,而不是使用密码身份验证。请按照我们的指南在 Rocky Linux 8 上设置 SSH 密钥学习如何配置基于密钥的身份验证。

如果根帐户使用 SSH 密钥身份验证

如果您已经使用 SSH 密钥登录到您的根帐户,则 SSH 的密码身份验证已禁用。您需要将您的公钥副本添加到新用户的~/.ssh/authorized_keys文件中,以成功登录。

由于您的公钥已经在服务器上的帐户的~/.ssh/authorized_keys文件中,我们可以复制该文件和目录结构到我们的新用户帐户。

使用rsync命令以正确的所有权和权限复制文件是最简单的方法。这将复制root用户的.ssh目录,保留权限,并修改文件所有者,一条命令即可完成。请确保修改下面命令中的突出显示部分以匹配您的常规用户名:

注意: rsync 命令对以斜杠结尾的源和目标处理方式与没有斜杠结尾的不同。在使用下面的 rsync 时,请确保源目录(~/.ssh没有包含尾部斜杠(检查确保您没有使用 ~/.ssh/)。

如果您意外地在命令中添加了尾部斜杠,rsync 将会将 账户的 ~/.ssh 目录的内容复制到 sudo 用户的主目录中,而不是复制整个 ~/.ssh 目录结构。文件会位于错误的位置,SSH 将无法找到并使用它们。

  1. rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

现在,在本地计算机的新终端中,使用您的非 用户打开一个新的 SSH 会话:

  1. ssh sammy@your_server_ip

您应该已经登录到新用户帐户,而无需使用密码。记住,如果您需要以管理员权限运行命令,请在其之前输入 sudo,就像这样:

  1. sudo command_to_run

当每个会话的第一次(以及之后定期)使用 sudo 时,您将会被提示输入您的常规用户密码。

结论

到目前为止,您的服务器已经有了一个坚实的基础。您现在可以在服务器上安装任何您需要的软件。

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-8