CentOS 7 上的初始服务器设置和配置
本教程将解释在安装没有图形环境的最小 CentOS 7 系统后需要执行的第一个基本步骤,以便获取有关已安装系统以及运行该系统的硬件的信息并配置其他特定的系统任务,例如网络、根权限、软件、服务等。
要求
- CentOS 7 最小安装
重要:RHEL 7 用户可以按照本文在 RHEL 7 上进行初始服务器设置。
更新CentOS 7系统
在全新安装的 CentOS 系统上需要执行的第一步是确保系统是最新的,具有最新的内核和系统安全补丁、软件存储库和软件包。
要完全更新 CentOS 7 系统,请使用 root 权限发出以下命令。
yum check-update
yum upgrade
升级过程完成后,为了释放磁盘空间,您可以通过执行以下命令删除升级过程中使用的所有下载的软件包以及所有缓存的存储库信息。
yum clean all
在 CentOS 7 上安装系统实用程序
以下实用程序包对于日常系统管理非常有用:nano(用于替代 vi 编辑器的文本编辑器)、wget、curl(用于下载的实用程序)主要是通过网络的包)net-tools、lsof(管理本地网络的实用程序)和 bash-completion(命令行自动完成)。
通过执行以下命令一次性安装它们。
yum install nano wget curl net-tools lsof bash-completion
在 CentOS 7 中设置网络
CentOS 7 拥有多种可用于配置和管理网络的工具,从手动编辑网络配置文件到使用 ip、ifconfig、nmtui 等命令, nmcli 或路线。
初学者可以用来管理和更改网络配置的最简单的实用程序是nmtui图形命令行。
要通过nmtui实用程序更改系统主机名,请执行nmtui-hostname命令,设置您的计算机主机名,然后按OK完成,如图所示在下面的屏幕截图中。
nmtui-hostname
要操作网络接口,请执行nmtui-edit命令,选择要编辑的接口,然后从右侧菜单中选择编辑,如下图所示。
nmtui-edit
一旦进入 nmtui 实用程序提供的图形界面,您就可以设置网络接口 IP 设置,如下面的屏幕截图所示。完成后,使用[tab]键导航至确定以保存配置并退出。
为了应用网络接口新配置,请执行nmtui-connect命令,选择要管理的接口并点击停用/激活选项来停用和启动IP 设置界面,如下面的屏幕截图所示。
nmtui-connect
为了查看网络接口设置,您可以检查接口文件的内容,也可以发出以下命令。
ifconfig enp0s3
ip a
ping -c2 google.com
其他可用于管理速度、链接状态或获取有关机器网络接口信息的有用实用程序有 ethtool 和 mii-tool。
ethtool enp0s3
mii-tool enp0s3
机器网络的一个重要方面是列出所有打开的网络套接字,以便查看哪些程序正在侦听哪些端口以及已建立的网络连接的状态如何。
要列出所有在侦听状态下打开 TCP 或 UDP 套接字的服务器,请发出以下命令。但是,UDP 服务器不会列出任何套接字状态,因为 UDP 是无连接协议,仅通过网络发送数据包,不建立连接。
netstat -tulpn
ss -tulpn
lsof -i4 -6
在 CentOS 7 中管理服务
CentOS 7 通过 systemctl 实用程序管理守护进程或服务。要列出所有服务状态,请发出以下命令。
systemctl list-units
要检查守护程序或服务是否在系统启动时自动启动,请发出以下命令。
systemctl list-unit-files -t service
要列出系统中存在的旧 SysV 服务并禁用它们,请发出以下 chkconfig 命令。
chkconfig --list
chkconfig service_name off
5. 在 CentOS 7 中禁用不需要的服务
建议安装CentOS 7后,通过运行上述命令列出系统中正在运行的服务,并禁用和删除它们,以减少对系统的攻击媒介。
例如,CentOS 7 中默认安装并启用 Postfix 守护进程。如果您的系统不需要运行邮件服务器,最好通过发出以下命令来停止、禁用和删除 postfix 服务。
systemctl stop postfix
systemctl disable postfix
yum remove postfix
除了 netstat、ss、lsof 或 systemctl 命令之外,您还可以运行 ps、top 或 pstree 命令来发现和识别系统中正在运行的不需要的服务并禁用或删除它们。
默认情况下,CentOS 7 中未安装 pstree 实用程序。要安装它,请执行以下命令。
yum install psmisc
pstree -p
在 CentOs 7 中启用防火墙
Firewalld 是主要的防火墙实用程序,它使用交互来管理 iptables 规则。
要在 CentOS 7 中启用并启动并验证防火墙,请执行以下命令。
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
为了向传入连接打开特定服务,首先验证该应用程序是否已存在于 firewalld 规则中,然后添加该服务的规则,如下面的示例所示,该规则允许 >SSH 传入连接。使用 --permanent
开关永久添加规则。
firewall-cmd --add-service=[tab] #List services
firewall-cmd --add-service=ssh
firewall-cmd --add-service=ssh --permanent
如果该服务现已在防火墙规则中定义,您可以手动添加服务端口,如下例所示。
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload #Apply the rule on-fly
对用户帐户启用 Sudo 权限
为了向普通用户授予 root 权限,首先通过发出 adduser 命令创建用户,为用户设置密码,并通过执行以下命令向用户授予 root 权限,该命令将新用户添加到管理轮组中。
adduser tecmint
passwd tecmint
usermod -aG wheel tecmint
要测试新用户是否具有 root 权限,请使用用户凭据登录系统,并使用 sudo 权限运行 yum 命令,如下面的摘录所示。
su - tecmint
sudo yum update
在 CentOS 7 上配置 SSH 公钥身份验证
为了保护您的服务器的 SSH 安全并设置公钥身份验证以提高使用私有 SSH 密钥登录的服务器的安全性,请首先使用以下命令生成 SSH 密钥对。
如果您想通过 SSH 自动进行服务器管理,请勿输入密码。
ssh-keygen -t RSA
生成 SSH 密钥对后,通过发出以下命令将密钥复制到要连接的服务器。首先,输入远程 SSH 用户密码以复制公钥。
ssh-copy-id remote_user@SSH_SERVER_IP
将 SSH 公钥复制到远程服务器后,使用以下命令登录远程 SSH 服务器。
ssh remote_user@SSH_SERVER_IP
最后,为了保护 SSH 服务器的安全,请确保您禁止通过远程 SSH 访问 root 帐户,方法是使用文本编辑器以 root 身份打开配置 SSH 文件 /etc/ssh/sshd_config 并将其从是
到否
。
PermitRootLogin no
要应用该设置,您需要重新启动 SSH 服务,以便它将使用新配置。
systemctl restart sshd
就这样!这些只是每个系统管理员在新安装的 CentOS 系统上或在系统上执行日常任务时需要了解和应用的一些基本设置和命令。
要保护和强化 CentOS 7 服务器,请查看以下文章。
- 强化和保护 CentOS 7 的超级指南 – 第 1 部分
- 强化和保护 CentOS 7 的超级指南 – 第 2 部分
如果您计划在此 CentOS 7 系统上部署网站,请了解如何设置和配置 LAMP 堆栈或 LEMP 堆栈。