云服务器安全加固指南:SSH密钥登录与防火墙配置

云服务器的安全性直接影响业务稳定性和数据防护。SSH密钥登录防火墙规则优化是最基础、最有效的安全加固措施。本指南提供详细操作步骤,适用于Linux云服务器(Ubuntu/CentOS),帮助您降低被暴力破解和恶意扫描的风险。


一、SSH密钥登录(彻底禁用密码登录)

1. 生成SSH密钥对(本地操作)

在本地计算机(Windows/macOS/Linux)生成密钥对:

bash

复制

下载

ssh-keygen -t ed25519 -C "your_email@example.com"
  • -t ed25519:使用更安全的Ed25519算法(比RSA更高效)

  • 默认保存路径:

    • 公钥~/.ssh/id_ed25519.pub

    • 私钥~/.ssh/id_ed25519(需妥善保管,勿泄露)

2. 上传公钥到云服务器

将公钥上传至服务器的authorized_keys文件:

bash

复制

下载

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@your_server_ip

(若未安装ssh-copy-id,可手动追加公钥到~/.ssh/authorized_keys

3. 禁用SSH密码登录(服务器操作)

编辑SSH配置文件:

bash

复制

下载

sudo nano /etc/ssh/sshd_config

修改以下参数:

ini

复制

下载

PasswordAuthentication no          # 禁用密码登录  
PubkeyAuthentication yes           # 启用密钥登录  
PermitRootLogin prohibit-password  # 禁止root密码登录(可选)

重启SSH服务生效:

bash

复制

下载

sudo systemctl restart sshd

4. 测试密钥登录

新开终端尝试登录:

bash

复制

下载

ssh -i ~/.ssh/id_ed25519 root@your_server_ip

确认无需输入密码即可登录后,再关闭当前SSH会话。


二、防火墙配置(UFW/IPtables)

1. 基本防火墙规则(UFW版)

安装并启用UFW(Uncomplicated Firewall):

bash

复制

下载

sudo apt install ufw -y           # Ubuntu/Debian  
sudo yum install ufw -y           # CentOS(需EPEL仓库)  

开放必要端口:

bash

复制

下载

sudo ufw allow 22/tcp             # SSH端口(建议先改后删,见下文)  
sudo ufw allow 80,443/tcp         # HTTP/HTTPS  
sudo ufw enable                   # 启用防火墙  

2. 高级防护策略

(1)修改默认SSH端口(可选但推荐)

编辑/etc/ssh/sshd_config

ini

复制

下载

Port 2222  # 改为非标准端口(如2222)

更新防火墙规则:

bash

复制

下载

sudo ufw allow 2222/tcp  
sudo ufw deny 22/tcp              # 屏蔽原SSH端口  

(2)限制SSH访问IP(企业必做)

仅允许特定IP连接SSH:

bash

复制

下载

sudo ufw allow from 123.45.67.89 to any port 22 proto tcp

或使用IPtables(CentOS推荐):

bash

复制

下载

sudo iptables -A INPUT -p tcp -s 123.45.67.89 --dport 22 -j ACCEPT  
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

(3)防御暴力破解

安装fail2ban自动封禁恶意IP:

bash

复制

下载

sudo apt install fail2ban -y      # Ubuntu/Debian  
sudo yum install fail2ban -y      # CentOS  

配置规则(编辑/etc/fail2ban/jail.local):

ini

复制

下载

[sshd]
enabled = true
maxretry = 3                      # 3次失败后封禁  
bantime = 1h                      # 封禁1小时

三、安全加固检查清单

  1. 验证SSH密钥登录

    bash

    复制

    下载

    ssh -i ~/.ssh/id_ed25519 user@server -v

    确认无密码提示且日志显示Authenticated with public key

  2. 测试防火墙规则

    • 尝试从非授权IP连接SSH,应被拒绝

    • 使用telnet your_server_ip 80测试HTTP端口开放

  3. 监控入侵尝试

    bash

    复制

    下载

    sudo tail -f /var/log/auth.log  # Ubuntu/Debian  
    sudo tail -f /var/log/secure    # CentOS  

四、应急恢复措施

1. 锁定后如何恢复访问?

  • 通过云平台控制台的VNC终端登录

  • 临时开放IP(若误封):

    bash

    复制

    下载

    sudo ufw delete deny 22/tcp

2. 密钥丢失怎么办?

  1. 通过控制台重置密码

  2. 临时启用密码登录:

    bash

    复制

    下载

    sudo sed -i 's/PasswordAuthentication no/yes/g' /etc/ssh/sshd_config  
    sudo systemctl restart sshd

五、2025年进阶安全趋势

  1. 量子安全SSH

    • OpenSSH 9.8+支持抗量子计算的ssh-ed448密钥

  2. AI防火墙

    • 基于机器学习的动态规则(如Cloudflare Magic Firewall)

  3. 零信任架构

    • 每次SSH访问需二次验证(如Google Authenticator)


总结:通过SSH密钥登录+严格防火墙规则,可阻止99%的自动化攻击。建议每月审查日志,并配合VPC网络隔离、定期备份构建完整防护体系。

(操作前务必在测试环境验证,避免误锁服务器!)

【版权声明】:服务器导航网所有内容均来自网络和部分原创,若无意侵犯到您的权利,请及时与联系 QQ 2232175042,将在48小时内删除相关内容!!

给TA服务器
共{{data.count}}人
人已服务器
其它教程

美国CN2服务器价格解析 2025年CN2 GIA线路市场行情

2025-5-24 6:24:15

其它教程

Windows vs Linux服务器系统:新手选择指南(2025年最新建议)

2025-5-24 6:45:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索