使用Rocky Linux 9进行初始服务器设置

介绍

当您首次创建新的Rocky Linux 9服务器时,作为初始设置的一部分,您应该尽早完成一些配置步骤。这将提高服务器的安全性和可用性,并为您打下坚实的基础。

第一步——以Root身份登录

要登录到您的服务器,您需要知道服务器的公共IP地址。您还需要密码,或者如果您安装了用于身份验证的SSH密钥,需要根用户帐户的私钥。如果您还没有登录到服务器,您可能希望按照我们关于如何使用SSH连接到vServer的文档进行操作,该文档详细介绍了此过程。

如果您还没有与服务器连接,请使用以下命令以root用户身份登录(将命令中的高亮部分用您的服务器的公共IP地址替换):

  1. ssh root@your_server_ip

 

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

关于Root的内容

在Linux环境中,超级用户是具有管理员权限的用户,其权限非常广泛。由于超级用户账户具有更高的权限,不建议你经常使用它。这是因为超级用户账户具备进行非常具有破坏性的改变的能力,即使是意外发生的。

因此,下一步是为日常工作建立一个权限范围较小的备用用户账户。当需要时,该账户仍然可以获得增加的特权。

第二步——创建一个新用户

一旦您以root身份登录,您可以创建一个新的用户帐户,以后将使用该帐户进行登录。

这个例子创建了一个叫做sammy的新用户,但你可以用你喜欢的任何用户名替换它。

  1. adduser sammy

 

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

  1. passwd sammy

 

您将被提示两次输入密码。完成后,您的用户将准备好使用,但首先您将为该用户提供额外的权限以使用sudo命令。这将允许您在必要时以root用户身份运行命令。

第三步 — 授予管理员权限

现在,您拥有一个具有普通账户权限的新用户账户。然而,有时您可能需要执行行政任务。

为了避免需要注销常规用户并切换到根账户,你可以为常规账户设置“超级用户”或根权限。这样一来,你的常规用户就可以在每个命令前加上sudo来以管理员权限运行命令。

要为您的新用户添加这些特权,您需要将新用户添加到wheel组。在Rocky Linux 9上,默认情况下属于wheel组的用户允许使用sudo命令。

以root用户身份运行以下命令,将你的新用户名替换成”highlighted word”并将其添加至wheel组中。

  1. usermod -aG wheel sammy

 

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

第四步-设置防火墙

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

Note

注意:如果您的服务器在Silicon Cloud上运行,您可以选择使用Silicon Cloud云防火墙而不是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 Tue 2022-09-13 18:26:19 UTC; 1 day 2h ago Docs: man:firewalld(1) Main PID: 15060 (firewalld) Tasks: 4 (limit: 10938) Memory: 28.1M CPU: 6.127s CGroup: /system.slice/firewalld.service └─15060 /usr/bin/python3 -s /usr/sbin/firewalld –nofork –nopid

请注意,此选项是激活且启用的,这意味着如果服务器重新启动,它将默认启动。

既然服务已经开始运行了,你可以使用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登录到您的服务器。

Note

注意:在验证您可以使用新用户登录并使用sudo之前,您应该以root身份保持登录。这样,如果出现问题,您可以作为root进行故障排除并进行任何必要的更改。如果您正在使用Silicon Cloud vServer并且在root SSH连接上遇到问题,您可以使用Silicon Cloud控制台登录到vServer。

根据您的服务器根帐户是使用密码还是SSH密钥进行身份验证,为您的新用户配置SSH访问的过程会有所不同。

如果根账户使用密码验证方式

如果您使用密码登录到根帐户,则SSH已启用密码身份验证。您可以通过打开新的终端会话,并使用新的用户名通过SSH连接到新的用户帐户。

  1. ssh sammy@your_server_ip

 

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

  1. sudo command_to_run

 

在每次会话开始时(以及之后一段时间),当您首次使用sudo时,系统会提示您输入常规用户密码。

为了增强服务器的安全性,你应该设置SSH密钥来取代密码认证。请按照Rocky Linux 9上设置SSH密钥的指南来学习如何配置基于密钥的认证。

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

如果你使用SSH密钥登录到root帐户,那么SSH的密码验证就被禁用了。你需要将公钥的副本添加到新用户的~/.ssh/authorized_keys文件中才能成功登录。

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

最直接的方法是使用rsync命令复制文件,并保持正确的所有权和权限。这将一次性复制root用户的.ssh目录,保留权限并修改文件所有者。确保将下方命令中的高亮部分更改为您的常规用户名。

Note

提示:rsync命令对以斜线结尾的源和目标进行不同处理。当使用下面的rsync命令时,请确保源目录(~/.ssh)不包含斜线结尾(检查一下您是否使用了~/.ssh/)。
如果不小心在命令中添加了斜线结尾,rsync将会把根帐户的~/.ssh目录的内容复制到sudo用户的主目录,而不是复制整个~/.ssh目录结构。文件将会位于错误的位置,SSH将无法找到和使用它们。
  1. rsync –archive –chown=sammy:sammy ~/.ssh /home/sammy

 

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

  1. ssh sammy@your_server_ip

 

你应该使用新用户账户登录,无需使用密码。请记住,如果需要以管理员权限运行命令,请在命令前加上sudo,如下所示:

  1. sudo command_to_run

 

在每次会话开始时(以及之后的一段时间里),当使用sudo命令时,您需要输入您的常规用户密码。

结论

在此时,你已经为你的服务器打下了坚实的基础。现在你可以安装你所需的任何软件在你的服务器上。例如,你可以开始安装 Nginx 网页服务器。

bannerAds