如何在 CentOS 7 上配置和保护服务器设置
在这篇文章中,我们将学习一些安装新服务器后,出于安全性和可用性目的应采取的配置步骤。这将帮助我们建立坚实的基础。
避免使用“root”用户登录
root 是 Linux 环境中的管理员或超级用户,拥有系统的所有权限。通常强烈建议不要直接使用 root 用户,因为它可能会导致许多问题,或者由于意外更改而导致数据意外丢失。
下一步,我们将设置一个具有 root 权限的替代用户,从而降低系统管理员日常活动的影响范围。
创建新用户
以 root 用户身份登录后,我们可以创建一个新用户来登录服务器,可以使用以下命令创建用户:
# adduser manager
创建用户并分配密码后,建议使用强密码。
# passwd manager
分配 Root 权限
现在,一旦创建了具有普通权限的新用户,我们需要拥有管理员权限才能执行某些任务,我们将分配 root 权限,用户需要在需要 root 用户权限的命令前添加“sudo”。
要将用户添加到管理员权限组,我们需要以 root 用户身份登录,要将用户添加到超级用户组,我们需要将新用户添加到“wheel”组,在 CentOS 7 中,默认情况下,“wheel”组中的用户可以使用“sudo”运行命令。
以下是将新用户添加到 wheel 组的命令:
# gpasswd –a manager wheel
添加公钥身份验证以进行登录
在此步骤中,我们将通过为新用户设置公钥身份验证来保护服务器,这将提高服务器的安全性,因为它需要私钥才能登录。
生成密钥对
如果我们没有 SSH 密钥对(包括公钥和私钥),我们需要生成新的密钥。
以下是生成新密钥对的命令:
# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: a3:5d:58:cc:7f:94:30:bf:ae:1e:5c:11:25:f7:96:41 root@server1 The key's randomart image is: +--[ RSA 2048]----+ | o +Eo| | o + =+| | + =.o| | o . . + | | S . . + | | o o . + | | . . o . | | o | | .o | +-----------------+
默认情况下,如果我们没有提供文件名,它会自动将文件名设置为 id_rsa.pub 和 id_rsa_ppk,这两个文件将被生成,并且文件将位于用户主目录的 .ssh 目录中。
复制公钥
生成 SSH 密钥后,我们需要复制公钥,然后不应与任何不应访问服务器的人共享私钥。
我们可以通过两种方式复制公钥:
使用 ssh-copy-id
如果我们已安装 ssh-copy-id,我们可以使用它将公钥安装到任何其他用户或机器。
运行以下命令复制公钥:
# ssh-copy-id manager@ipaddress-of-machine
公钥将添加到用户或机器的 .ssh/authorized_keys 中。我们需要使用相应的私钥登录服务器。
手动添加密钥
假设我们已经生成了密钥,请使用以下命令打印密钥:
$ cat .ssh/id_rsa.pub
将使用该命令打印的密钥复制到剪贴板。
我们需要将此密钥添加到 .ssh/authorized_keys 文件。
如果我们没有 .ssh 文件夹和 authorized_keys 文件,我们需要按照以下步骤创建。
$ mkdir .ssh $ chmod 700 .ssh $ touch .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys
然后,我们需要打开 authorized_keys 文件并将剪贴板中的文本粘贴进去。
# vi .ssh/authorized_keys
复制剪贴板中的文本并保存文件。
使用 SSH 禁用 root 登录
由于我们已经创建了一个具有 root 或超级用户权限的新用户,我们现在可以使用 SSH 禁用 root 用户登录。
使用以下命令打开 ssh 配置文件:
$ vi /etc/ssh/sshd_config
在这里,我们需要找到“#PermitRootLogin yes”行,取消该行的注释并将该行更改为如下所示:
PermitRootLogin no
现在只需重新加载 SSH 服务即可使配置生效。
# systemctl reload sshd
现在阻止了使用 SSH 进行“root”登录,我们可以直接在机器上使用 root 用户。
在这篇文章中,我们学习了如何使用最佳实践来保护服务器,例如创建具有 root 权限的用户和阻止 root 登录,以便我们可以避免意外命令导致的数据意外丢失,并通过使用 SSH 密钥文件防止使用密码,并防止从机器外部使用 SSH 使用 root 用户。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP