CentOS服务器SSH安全加固配置指南
常见问题 · 服务器问题
SSH是管理Linux服务器最重要的通道,但也是最容易被攻击的目标。据统计,一台暴露在公网上的服务器每天可能遭受数百次暴力破解尝试。本文介绍CentOS系统下SSH安全加固的最佳实践。
1. 修改默认端口
将SSH默认的22端口修改为其他端口,可以规避绝大多数自动化扫描攻击:
vim /etc/ssh/sshd_config
# 找到 #Port 22 一行,修改为:
Port 2222 # 建议使用1024以上的端口
修改后重启SSH服务:systemctl restart sshd
注意:务必先在防火墙放行新端口后再退出当前SSH会话,否则会把自己锁在门外!
2. 禁用root直接登录
root用户拥有最高权限,禁用其直接登录可以减少攻击面:
# 先创建一个普通用户
useradd admin && passwd admin
usermod -aG wheel admin # CentOS
usermod -aG sudo admin # Ubuntu
# 编辑SSH配置
vim /etc/ssh/sshd_config
PermitRootLogin no # 禁止root直接登录
3. 配置密钥登录并禁用密码登录
# 在本地生成密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"
# 将公钥复制到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@服务器IP -p 端口
确认密钥登录成功后,修改SSH配置禁用密码登录:PasswordAuthentication no
4. 配置Fail2ban防暴力破解
# 安装Fail2ban
yum install -y epel-release && yum install -y fail2ban # CentOS
apt install -y fail2ban # Ubuntu
# 创建配置文件
cat > /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600
findtime = 600
EOF
systemctl start fail2ban && systemctl enable fail2ban
5. 其他安全建议
- 设置登录超时:ClientAliveInterval 300 和 ClientAliveCountMax 0
- 限制登录用户:AllowUsers admin user1 user2
- 使用ed25519算法替代RSA,安全性更高
- 定期审计登录日志:lastb 查看失败登录记录
关键词:SSH、安全加固、Fail2ban、密钥登录 | 八彩云技术分享 · 仅供学习参考
注册
登录控制台
