CentOS 8 SSH 服务器设置与防火墙配置
本文介绍在 CentOS 8 系统中进行 SSH 服务器基础设置、防火墙(Firewalld)配置以及常用网络管理命令。请注意,CentOS 8 已于 2021 年底结束支持,建议考虑迁移至 CentOS Stream、Rocky Linux 或 AlmaLinux 等后续替代发行版。以下内容基于 CentOS 8 环境编写。
一、SSH 服务器配置
SSH(Secure Shell)是远程管理服务器的标准协议。CentOS 8 默认已安装 OpenSSH 服务器。
- 安装与启动 SSH 服务:
# 安装 OpenSSH 服务器(通常已预装) sudo dnf install openssh-server # 启动 SSH 服务并设置开机自启 sudo systemctl start sshd sudo systemctl enable sshd # 检查服务状态 sudo systemctl status sshd - 修改 SSH 配置:配置文件位于
/etc/ssh/sshd_config。修改后需重启服务生效(sudo systemctl restart sshd)。常用配置项:# 更改默认端口(建议修改以增强安全) Port 2222 # 禁止 root 用户直接登录(推荐) PermitRootLogin no # 限制可登录的用户(示例) AllowUsers your_username # 启用公钥认证(更安全) PubkeyAuthentication yes
二、防火墙配置(Firewalld)
CentOS 8 默认使用 Firewalld 作为动态防火墙管理器。如果你习惯使用 iptables,需要先禁用 Firewalld 并安装 iptables-services,但请注意 iptables 在 CentOS 8 中已逐渐被 nftables 取代。
1. Firewalld 基础管理
# 检查 Firewalld 状态
sudo firewall-cmd --state
# 启动、停止、启用开机自启
sudo systemctl start firewalld
sudo systemctl stop firewalld
sudo systemctl enable firewalld
# 重新加载配置(不中断现有连接)
sudo firewall-cmd --reload
# 完全重启服务(中断连接)
sudo systemctl restart firewalld
2. 常用 Firewalld 命令
# 查看所有放行的服务
sudo firewall-cmd --list-services
# 查看所有放行的端口
sudo firewall-cmd --list-ports
# 查看所有区域信息
sudo firewall-cmd --list-all-zones
# 查看默认区域
sudo firewall-cmd --get-default-zone
# 设置默认区域为 public
sudo firewall-cmd --set-default-zone=public
3. 开放端口与服务(以 SSH 和 HTTP 为例)
# 开放 SSH 默认端口(22)
sudo firewall-cmd --add-service=ssh --permanent
# 开放自定义端口(例如 8080/TCP)
sudo firewall-cmd --add-port=8080/tcp --permanent
# 开放端口范围
sudo firewall-cmd --add-port=3000-3010/tcp --permanent
# 移除端口
sudo firewall-cmd --remove-port=8080/tcp --permanent
# 重载防火墙使规则生效
sudo firewall-cmd --reload
注意:--permanent 参数表示规则永久生效,否则重启后失效。添加永久规则后必须执行 --reload 或重启 firewalld 服务。
三、网络配置与管理
CentOS 8 使用 NetworkManager 管理网络连接。
# 查看所有网络连接
nmcli connection show
# 查看设备状态
nmcli device status
# 查看详细设备信息
nmcli device show
# 重新加载指定连接配置(例如网卡 eth0)
sudo nmcli connection reload eth0
# 重启网络服务(传统方法,谨慎使用)
sudo systemctl restart NetworkManager
四、系统更新与语言包
# 使用 DNF 更新系统(DNF 是 YUM 的下一代版本)
sudo dnf update
# 安装中文语言支持(解决终端中文乱码)
sudo dnf install -y langpacks-zh_CN glibc-langpack-zh
# 设置系统语言环境为中文(可选)
sudo localectl set-locale LANG=zh_CN.UTF-8
五、安全建议
- 及时更新系统:
sudo dnf update。 - 修改 SSH 默认端口并禁用 root 登录。
- 使用 SSH 密钥对认证替代密码登录。
- 配置防火墙,仅开放必要的端口。
- 考虑使用 Fail2ban 等工具防止暴力破解。
以上是在 CentOS 8 上进行 SSH 服务配置、防火墙管理和基础网络操作的指南。由于 CentOS 8 已停止维护,建议评估迁移至受支持的 Linux 发行版。