使用 CentOS/RHEL 8 进行初始服务器设置
在本文中,我们将引导您完成安装没有图形环境的最小CentOS/RHEL 8服务器后需要应用的第一个基本步骤,以便检索有关已安装系统的信息、服务器正在运行的硬件并配置其他特定的系统任务,例如系统更新、网络、root 权限、配置 ssh、管理服务等。
要求
重要提示:您必须在RHEL 8服务器上启用Red Hat 订阅服务才能执行系统更新和软件安装。
步骤 1:更新系统软件
首先,以 root 用户身份登录到您的服务器并运行以下命令,以使用最新的内核、系统安全补丁、软件存储库和软件包完全更新系统。
# dnf check-update # dnf update
软件升级过程完成后,为了释放磁盘空间,您可以通过运行以下命令删除所有下载的软件包及其所有缓存的存储库信息。
# dnf clean all
第 2 步:安装系统实用程序
下面这些系统实用程序对于日常系统管理任务非常有用:nano、vim 编辑器、wget和curl(主要用于通过网络下载包的实用程序)、net-tools(用于管理本地网络的实用程序)、lsof(用于查找按进程打开的文件列表)和bash-completion(命令行自动完成)。
# dnf install nano vim wget curl net-tools lsof bash-completion
步骤3:设置主机名和网络
在CentOS/RHEL 8中,存储库中包含大量用于配置和管理网络的工具,从手动更改网络配置文件到使用ifconfig、ip、nmcli和nmtui等命令。
新手可以用来配置和管理网络配置(例如设置网络主机名和配置静态 IP 地址)的最简单的实用程序是使用nmtui图形命令行实用程序。
在 CentOS 8 中设置主机名
为了设置或更改系统主机名,请运行以下nmtui-hostname命令,它将提示您输入您的机器主机名并按 OK 完成,如下面的屏幕截图所示。
# nmtui-hostname
在 CentOS 8 中设置静态 IP 地址
要配置网络接口,请运行以下nmtui-edit命令,它将提示您从菜单中选择要配置的接口,如下面的屏幕截图所示。
# nmtui-edit
单击“编辑”按钮后,系统会提示您设置网络接口 IP 设置,如下面的屏幕截图所示。完成后,使用任意键导航至“确定”1
以保存配置并退出。
完成网络配置后,您需要运行以下命令来应用新的网络设置,通过选择要管理的接口并点击“停用/激活”选项来停用并调出具有 IP 设置的接口,如下面的屏幕截图所示。
# nmtui-connect
为了验证网络配置设置,您可以检查接口文件的内容,也可以发出以下命令。
# ifconfig enp0s3 # ip a # ping -c2 google.com
您还可以使用其他有用的网络实用程序,如ethtool和mii-tool来检查网络接口的速度、网络链路状态并获取有关机器网络接口的信息。
# ethtool enp0s3 # mii-tool enp0s3
作为机器网络的一个重要方面,列出所有打开的网络套接字非常重要,以便检查哪些服务正在监听哪些端口以及已建立的网络连接的状态,并列出进程打开的所有文件。
# netstat -tulpn # ss -tulpn # lsof -i4 -6
步骤4:创建新用户帐户
始终建议让具有 root 权限的普通用户在需要时执行管理任务。为了向普通用户分配 root 权限,首先,使用useradd 命令创建用户,设置密码并将用户添加到管理 wheel 组。
# useradd ravisaive # passwd ravisaive # usermod -aG wheel ravisaive
要验证新用户是否具有 root 权限,请使用用户凭据登录系统并以 Sudo 权限运行dnf 命令,如下所示。
# su - ravisaive # sudo dnf update
步骤 5:在 CentOS 8 上设置 SSH 无密码登录
为了提高服务器的安全性,请通过生成一对 SSH 密钥(包含公钥和私钥)为新用户设置无密码 SSH 身份验证,但您需要创建一个。这将通过要求使用私钥 SSH 密钥连接到系统来提高服务器的安全性。
# su - ravisaive $ ssh-keygen -t RSA
密钥生成后,它会要求您输入密码以保护私钥。您可以输入强密码,或者如果您想通过 SSH 服务器自动执行管理任务,可以选择将密码留空。
一旦生成了 SSH 密钥,您需要通过运行ssh-copy-id命令并使用远程服务器的用户名和 IP 地址将生成的公钥对复制到远程服务器,如下所示。
$ ssh-copy-id example@192.168.0.104
复制 SSH 密钥后,您现在可以尝试使用私钥作为身份验证方法登录远程 Linux 服务器。您应该能够自动登录,而无需 SSH 服务器要求输入密码。
$ example@192.168.0.104
步骤6:保护SSH远程登录
在这里,我们将通过在 SSH 配置文件中禁用对 root 帐户的远程 SSH 访问来进一步保护我们的服务器。
# vi /etc/ssh/sshd_config
找到 行,通过从行首#PermitRootLogin yes
删除 来取消注释该行,然后将该行修改为。#
PermitRootLogin no
之后,重新启动 SSH 服务器以应用最近的新更改。
# systemctl restart sshd
现在尝试以 root 帐户登录来验证配置,您将收到如图所示的访问 SSH 权限被拒绝错误。
# ssh root@192.168.0.110
在某些情况下,您可能希望在一段时间不活动后自动断开与服务器的所有远程 SSH 连接。
步骤 7:在 CentOS 8 上配置防火墙
在CentOS/RHEL 8中,默认防火墙是Firewalld,用于管理服务器上的iptables规则。要在服务器上启用并启动Firewalld服务,请运行以下命令。
# systemctl enable firewalld # systemctl start firewalld # systemctl status firewalld
要打开到特定服务( SSH )的传入连接,首先,您需要验证该服务是否存在于firewalld规则中,然后通过向命令添加交换机来添加该服务的规则,--permanent
如图所示。
# firewall-cmd --add-service=1 #List services # firewall-cmd --add-service=ssh # firewall-cmd --add-service=ssh --permanent
如果您希望打开与其他网络服务(如 HTTP 或 SMTP)的传入连接,只需通过指定服务名称添加所示的规则即可。
# firewall-cmd --permanent --add-service=http # firewall-cmd --permanent --add-service=https # firewall-cmd --permanent --add-service=smtp
要查看服务器上的所有防火墙规则,请运行以下命令。
# firewall-cmd --permanent --list-all
步骤 8:在 CentOS 8 中删除不需要的服务
强烈建议在安装全新的CentOS/RHEL 8服务器后,删除并禁用服务器上默认运行的不需要的服务,以减少对服务器的攻击。
要列出服务器上所有正在运行的网络服务(包括TCP和UDP) ,请运行ss 命令或netstat 命令,如下例所示。
# ss -tulpn OR # netstat -tulpn
上述命令将列出服务器上默认运行的一些有趣的服务,例如Postfix邮件服务器。如果您不打算在服务器上托管邮件系统,则必须停止并将其从系统中删除,如下所示。
# systemctl stop postfix # systemctl disable postfix # dnf remove postfix
除了ss 命令和netstat 命令之外,您还可以运行ps、top或pstree命令来发现和识别所有不需要的服务并将其从系统中删除。
# dnf install psmisc # pstree -p
步骤 9:在 CentOS 8 中管理服务
在CentOS/RHEL 8中,所有服务和守护进程都通过systemctl 命令进行管理,您可以使用此命令列出所有活动、正在运行、退出或失败的服务。
# systemctl list-units
要检查守护进程或服务是否在系统启动时自动启用,请发出以下命令。
# systemctl list-unit-files -t service
要了解有关systemctl 命令的更多信息,请阅读我们的文章 -如何在 Linux 中使用“Systemctl”管理服务。
就这样!在本文中,我们解释了每个 Linux 系统管理员需要了解并在新安装的CentOS/RHEL 8系统上应用或在系统上执行日常任务的一些基本设置和命令。