如何保护 Rocky Linux 8

对于我们在生产环境中启动的任何服务器,安全性都是一个重要的考虑因素。 最新版本的 Rocky Linux 8 具有强大的安全功能。 但是,并非所有这些都处于活动状态或默认配置正确,因此全新安装始终容易受到黑客攻击和入侵攻击。

在本指南中,我们将了解在服务器上执行的一些重要任务,用于初始设置和基本服务器强化。

先决条件

  • 云平台上的全新 Rocky Linux 8 服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 更新我们的服务器

在开始之前,通过 SSH 或位于此处的 VNC 控制台登录到我们的 Rocky Linux 8 服务器:https://cloud.atlantic.net/

登录后,我们需要在服务器上安装最新的安全补丁和更新。 运行以下命令来更新它们。

dnf update -y

服务器被设置为最小安装,以避免安装不必要的软件包并闲置。 我们可以通过运行以下命令来安装一些基本软件包:

dnf install wget git curl bind-utils tree net-tools -y

第 2 步 – 更改默认根密码

当我们启动新服务器时,我们的服务器会自动设置安全密码。 但是,建议此后每 60-90 天更改一次我们的 root 密码,以确保其安全。 我们应该创建一个至少包含 8 个字符的 root 密码,包括小写字符、大写字符和数字。

我们可以使用以下命令更改 root 密码:

passwd root

第 3 步 – 使用 sudo 权限创建新用户

默认情况下,root 是许多 Linux 操作系统(包括 Rocky Linux 8)的默认管理员用户,因此建议创建一个具有 sudo/root 权限的新用户并将其用于日常管理任务。 通常,黑客会针对 root 用户,因为他们知道它是默认的管理员用户。 创建具有 root 权限的新用户将提高服务器访问的安全性。

首先,使用以下命令创建一个新用户:

adduser user1

接下来,使用以下命令设置密码 user1:

passwd user1

创建新用户后,我们需要将此用户添加到 sudo wheel 组。 在 Rocky Linux 8 中,一旦将它们添加到 sudo wheel 组,它们就会自动分配 sudo/root 权限。

运行以下命令将用户添加到 sudo wheel 组。

usermod -aG wheel user1

创建具有 sudo/root 权限的用户后,使用以下命令登录到 user1:

su - user1

登录后,使用 sudo 运行以下命令:

sudo dnf update -y

系统将要求我们提供 user1 密码以更新我们的系统。

这将确认我们的 sudo 用户按预期工作。

第 4 步 – 通过 SSH 禁用 Root 登录

我们已经创建了一个具有 sudo/root 权限的管理员用户来执行所有任务。 我们不需要在服务器上通过 SSH 保持 root 用户可用和易受攻击,因此我们需要通过 SSH 禁用 root 登录。

使用以下命令编辑 SSH 主配置文件:

sudo nano /etc/ssh/sshd_config

找到以下行:

PermitRootLogin yes

将其更改为以下行:

PermitRootLogin no

保存并关闭文件,然后重新启动 SSH 服务以应用更改:

systemctl restart sshd

第 5 步 – 更改 SSH 默认端口

默认情况下,SSH 侦听端口 22。通常黑客和僵尸程序不断针对默认 SSH 端口 22,因此建议将默认 SSH 端口更改为任何其他端口。

要更改 SSH 端口,请编辑 SSH 主配置文件:

sudo nano /etc/ssh/sshd_config

找到以下行:

#Port 22

将其更改为以下几行:

Port 2020

保存并关闭文件,然后重新启动 SSH 服务以应用更改:

systemctl restart sshd

我们现在可以使用以下命令通过 SSH 远程登录到我们的 Atlantic 服务器:

ssh user1@wer-server-ip -p 2020

第 6 步 – 配置防火墙

默认情况下, 的 Rocky Linux 8 加载了名为 firewalld 的默认防火墙,但未启用。 我们可以使用以下命令检查防火墙的状态:

firewall-cmd --state

我们应该看到防火墙没有运行:

not running

建议启用防火墙并允许必要的端口进行外部访问。

首先,使用以下命令启用 firewalld 服务:

systemctl start firewalld
systemctl enable firewalld

接下来,使用以下命令允许 SSH 端口 2020 通过防火墙:

sudo firewall-cmd --permanent --add-port=2020/tcp

接下来,重新加载 firewalld 服务以应用更改:

sudo firewall-cmd --reload

我们现在可以使用以下命令验证添加的端口:

sudo firewall-cmd --list-ports

我们应该看到以下输出:

2020/tcp

如果我们的服务器上安装并运行了任何 Web 服务器,则可能需要允许 HTTP 和 HTTPS 服务通过防火墙才能通过 Internet 访问它。

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

要允许 POP3、IMAP 和 SMTP 服务进行外部访问,请运行以下命令:

sudo firewall-cmd --permanent --add-service=pop3s
sudo firewall-cmd --permanent --add-service=imaps
sudo firewall-cmd --permanent --add-service=smtp

第 7 步 – 安装 NTP 进行时间同步

还建议安装 NTP 服务器以通过网络同步计算机的时间和日期,以保持它们的准确性和最新性。

首先,使用以下命令安装 NTP 服务器:

sudo dnf install chrony -y

安装 NTP 服务后,启动它并使其在系统重新启动时启动:

sudo systemctl start chronyd
sudo systemctl enable chronyd

现在,我们的 NTP 服务器已安装,并将不断从 NTP 服务器更新服务器的时间。

步骤 8 – 禁用 IPv6

如果我们不使用 IPv6,则出于安全原因建议禁用它。

首先,使用以下命令检查我们的 Rocky Linux 8 安装是否启用了 IPv6:

ip a | grep inet6

如果启用了 IPv6,我们应该看到以下行:

    inet6 ::1/128 scope host 
    inet6 fe80::200:d8ff:fe62:817/64 scope link 
    inet6 fe80::200:aff:fe62:817/64 scope link

我们需要创建一个新的配置文件来禁用 IPv6:

sudo nano /etc/sysctl.d/70-ipv6.conf

添加以下行:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

保存并关闭文件,然后使用以下命令重新加载配置文件:

sudo sysctl --load /etc/sysctl.d/70-ipv6.conf

我们应该看到以下输出:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

要验证 IPv6 是否已禁用,请运行以下命令:

ip a | grep inet6

如果该命令未返回任何内容,则我们已确认已在所有网络接口上禁用 IPv6。

第 9 步 – 创建交换空间

交换是磁盘上的一个空间,当物理 RAM 内存量已满时使用。 当我们的服务器用完 RAM 时,所有非活动页面都会从 RAM 移动到交换空间。

当我们在 上启动新实例时,它不会创建交换分区。 启动新实例后,我们需要手动创建交换空间。

通常,交换空间应该是现有 RAM 的一半。 如果我们有 1GB 的实际 RAM,那么我们将需要创建一个 512MB 的文件。

首先,使用以下命令创建一个交换空间(512MB):

sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288

输出:

524288+0 records in
524288+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 10.3523 s, 51.9 MB/s

我们可以使用公式 1024 x 512MB = 524288 来计算块大小。

创建交换空间后,使用以下命令对其进行格式化:

sudo mkswap /swapfile

输出:

mkswap: /swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 512 MiB (536866816 bytes)
no label, UUID=8981408a-549d-47aa-a99a-72870b65212d

接下来,使用以下命令在 /swapfile 上设置适当的权限:

sudo chown root:root /swapfile
sudo chmod 0600 /swapfile

接下来,使用以下命令激活交换空间:

sudo swapon /swapfile

接下来,使用以下命令验证交换空间:

swapon -s

输出:

Filename				Type		Size	Used	Priority
/swapfile                              	file    	524284	0	-2

接下来,我们需要将交换文件条目添加到 /etc/fstab 以使其即使在重新启动后仍处于活动状态。

nano /etc/fstab

添加以下行:

/swapfile              swap   swap     defaults     0 0

保存并关闭文件,然后使用以下命令验证交换空间:

free -m

我们应该看到以下输出:

              total        used        free      shared  buff/cache   available
Mem:           1817         263         100          68        1452        1329
Swap:           511           0         511

在上述指南中,我们解释了保护 Rocky Linux 8 服务器的一些基本步骤。 我们现在可以继续在安全环境中托管任何应用程序 – 在 的 VPS 托管帐户上尝试!

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论