博客 / Linux/ CentOS 8 SSH 服务器设置与防火墙配置完全指南

CentOS 8 SSH 服务器设置与防火墙配置完全指南

CentOS 8 SSH 服务器设置与防火墙配置完全指南

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 发行版。

发表评论

您的邮箱不会公开。必填项已用 * 标注。