AI Summary 125.20483.1 SSH服务摘要 2026-09-12
SSH(Secure Shell) 是一种加密的网络协议,用于在不安全的网络中安全地访问和管理远程计算机。 支持密码登录和公钥登录两种主要方式,并可用于远程命令执行、文件传输(SCP/SFTP)等

CentOS SSH服务与防火墙

CentOS 9 防火墙与SSH服务安全配置实战 远程管理Linux 服务器 SSH是最常用的协议 CentOS 9 默认 firewalld 防火墙

1. 基础环境验证
首先检查SSH服务是否已安装并运行

systemctl status sshd

启动并设置开机自启

systemctl enable --now sshd


接下来验证firewalld防火墙状态

firewall-cmd --state

返回"running" 说明防火墙已启用

常见问题排查 如果 ifconfig 命令不可用, 安装net-tools包

yum install net-tools -y

2. firewalld 核心配置
2.1 开放SSH默认端口
允许22端口的入站连接是最基础的一步

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

验证规则是否生效

firewall-cmd --list-services | grep ssh


注意
–permanent 参数使规则永久生效 必须配合 --reload 才能立即应用

2.2 源IP访问限制(企业级安全实践)
为提高安全性 允许SSH连接的源IP范围 假设只允许192.168.1.0/24网段访问

firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” service name=“ssh” accept’
firewall-cmd --reload

验证富规则

firewall-cmd --list-rich-rules


2.3 自定义SSH端口配置
修改默认SSH端口是常见的安全加固措施 编辑SSH配置文件

vim /etc/ssh/sshd_config

找到 #Port 22 行,取消注释并修改为

Port 2222

然后添加新端口到防火墙

firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload

重启SSH服务使更改生效

systemctl restart sshd


3. 高级安全加固策略
3.1 密钥认证配置
密码认证存在被暴力破解的风险,推荐使用更安全的密钥认证方式
在客户端生成密钥对
ssh-keygen -t rsa -b 4096

将公钥 上传至服务器
ssh-copy-id -p 2222 user@server_ip

然后在服务器上禁用密码认证
vim /etc/ssh/sshd_config
修改以下参数
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

3.2 会话超时与登录限制
为防止闲置会话长期占用连接,设置客户端存活检测
ClientAliveInterval 300
ClientAliveCountMax 2

限制单个IP的最大并发连接数
firewall-cmd --permanent --add-rich-rule=‘rule service name=“ssh” accept limit value=“3/m” log’

3.3 SELinux与防火墙协同工作
当修改SSH端口后 需要更新 SELinux 策略
semanage port -a -t ssh_port_t -p tcp 2222

验证端口映射
semanage port -l | grep ssh


4. 故障排查与日常维护
4.1 连接问题诊断流程
当SSH连接失败时,建议按以下顺序排查 网络连通性
ping server_ip
telnet server_ip 22
服务状态检查

systemctl status sshd
journalctl -u sshd -n 30

防火墙规则验证
firewall-cmd --list-all
SELinux审计日志
ausearch -m avc -ts recent

4.2 配置备份与恢复 定期备份防火墙规则

firewall-cmd --runtime-to-permanent
firewall-cmd --backup > firewall_backup.xml


恢复配置

firewall-cmd --restore=firewall_backup.xml

4.3 性能优化建议
对于高并发SSH访问场景 可调整以下参数

MaxStartups 10:30:60
MaxSessions 10

在firewalld中启用连接追踪可提升性能

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT


通过以上配置 解决 SSH连接问题 实际运维中 定期审查防火墙规则和SSH访问日志 发现并阻断异常连接尝试