CentOS 7 上的初始服务器设置和配置
本教程将解释安装没有图形环境的最小CentOS 7系统后需要执行的第一个基本步骤,以便获取有关已安装系统的信息、运行系统的硬件以及配置其他特定的系统任务,如网络、root 权限、软件、服务等。
要求
重要提示: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或route等命令。
初学者可以用来管理和更改网络配置的最简单的实用程序是nmtui图形命令行。
为了通过nmtui实用程序更改系统主机名,请执行nmtui-hostname命令,设置您的机器主机名并按OK完成,如下面的屏幕截图所示。
# nmtui-hostname
要操作网络接口,请执行nmtui-edit命令,选择要编辑的接口并从右侧菜单中选择编辑,如下面的屏幕截图所示。
# nmtui-edit
进入nmtui实用程序提供的图形界面后,您可以设置网络接口 IP 设置,如下面的屏幕截图所示。完成后,使用1键导航到OK以保存配置并退出。
为了应用网络接口的新配置,请执行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后通过运行上述命令列出系统中正在运行的服务并禁用和删除它们,以减少针对系统的攻击媒介。
例如,Postfix守护程序在 CentOS 7 中默认安装并启用。如果您的系统不需要运行邮件服务器,最好通过发出以下命令来停止、禁用和删除 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
为了向传入连接开放特定服务,请首先验证该应用程序是否已存在于防火墙规则中,然后为该服务添加规则,如下例所示,该示例允许SSH传入连接。使用--permanent
switch 永久添加规则。
# firewall-cmd --add-service=1 #List services # firewall-cmd --add-service=ssh # firewall-cmd --add-service=ssh --permanent
如果服务现在已经在firewalld规则中定义,您可以手动添加服务端口,如下例所示。
# firewall-cmd --add-port=22/tcp --permanent # firewall-cmd --reload #Apply the rule on-fly
启用用户帐户的 Sudo 权限
为了授予普通用户 root 权限,首先通过发出adduser 命令创建用户,为用户设置密码,并通过执行以下命令向用户授予 root 权限,该命令将新用户添加到管理 wheel 组。
# adduser example # passwd example # usermod -aG wheel example
要测试新用户是否具有 root 权限,请使用用户凭据登录系统并以 sudo 权限运行 yum 命令,如下面的摘录所示。
# su - example # 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 服务器的安全,请确保以 root 身份使用文本编辑器打开配置 SSH 文件/etc/ssh/sshd_config并将其从 更改为 ,Yes
以禁止对 root 帐户进行远程 SSH 访问No
。
PermitRootLogin no
要应用设置,您需要重新启动 SSH 服务,以便它使用新配置。
# systemctl restart sshd
就这些!这些只是每个系统管理员需要了解和应用在新安装的 CentOS 系统上或为了在系统上执行日常任务的一些基本设置和命令。
为了保护和强化 CentOS 7 服务器,请查看以下文章。