如何有效防护VPS SSH攻击?
| 防护措施 |
实施难度 |
效果等级 |
推荐工具 |
| 修改SSH默认端口 |
简单 |
高 |
vi/nano编辑器 |
| 使用SSH密钥认证 |
中等 |
极高 |
ssh-keygen |
| 禁用Root直接登录 |
简单 |
高 |
sshdconfig |
| 安装Fail2ban防护 |
中等 |
高 |
fail2ban |
| 设置强密码策略 |
简单 |
中 |
系统内置 |
VPS SSH攻击防护:五个关键步骤保护你的服务器安全
SSH暴力破解是VPS服务器面临的最常见安全威胁之一。攻击者通过自动化工具不断尝试登录你的服务器,一旦成功获取访问权限,可能导致数据泄露、恶意软件植入等严重后果。本文将详细介绍五个关键防护步骤,帮助你构建坚固的SSH安全防线。
主要防护步骤概览
| 步骤 |
防护措施 |
核心作用 |
| 1 |
修改SSH默认端口 |
规避自动化扫描 |
| 2 |
使用SSH密钥认证 |
替代密码验证 |
| 3 |
禁用Root直接登录 |
减少攻击面 |
| 4 |
配置Fail2ban防护 |
自动封禁攻击IP |
| 5 |
设置强密码策略 |
增加破解难度 |
详细操作步骤
步骤一:修改SSH默认端口
操作说明:
SSH服务的默认端口22是攻击者的首要扫描目标。通过修改为非常用端口,可以显著降低被自动化工具发现的风险。
使用工具提示:
- 文本编辑器:vi、nano或vim
- SSH服务管理命令
操作流程:
# 1. 备份原始配置文件
sudo cp /etc/ssh/sshdconfig /etc/ssh/sshdconfig.backup
2. 编辑SSH配置文件
sudo vi /etc/ssh/sshdconfig
3. 找到并修改端口设置
原始内容可能为:#Port 22
修改为:Port 3322(或其他非标准端口)
4. 重启SSH服务
sudo systemctl restart sshd
5. 验证新端口是否生效
ss -ntl | grep 3322
步骤二:使用SSH密钥认证
操作说明:
SSH密钥认证比密码认证更安全,因为它基于非对称加密技术。私钥保存在本地,公钥上传到服务器,攻击者无法通过暴力破解获得私钥。
使用工具提示:
- ssh-keygen:生成密钥对
- ssh-copy-id:上传公钥到服务器
操作流程:
# 1. 在本地生成密钥对
ssh-keygen -t rsa -b 4096 -C "youremail@example.com"
2. 将公钥上传到服务器
ssh-copy-id -p 3322 username@yourserverip
3. 修改SSH配置禁用密码登录
sudo vi /etc/ssh/sshdconfig
设置:PasswordAuthentication no
设置:PubkeyAuthentication yes
4. 重启SSH服务
sudo systemctl restart sshd
步骤三:禁用Root直接登录
操作说明:
Root账户具有最高权限,是攻击者的主要目标。禁用Root直接登录可以大大降低系统被完全控制的风险。
使用工具提示:
操作流程:
# 1. 创建普通用户账户
sudo adduser myadmin
sudo usermod -aG sudo myadmin
2. 禁用Root登录
sudo vi /etc/ssh/sshdconfig
设置:PermitRootLogin no
3. 重启SSH服务
sudo systemctl restart sshd
步骤四:配置Fail2ban防护
操作说明:
Fail2ban能够监控系统日志,自动检测并封禁有恶意行为的IP地址。
使用工具提示:
操作流程:
# 1. 安装Fail2ban
sudo apt update
sudo apt install fail2ban
2. 创建自定义配置文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
3. 配置SSH防护规则
sudo vi /etc/fail2ban/jail.local
在文件末尾添加:
[sshd]
enabled = true
port = 3322
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
4. 启动Fail2ban服务
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
步骤五:设置强密码策略
操作说明:
即使使用密钥认证,设置强密码仍然是重要的安全措施。
使用工具提示:
操作流程:
# 1. 安装密码策略工具
sudo apt install libpam-pwquality
2. 配置密码策略
sudo vi /etc/pam.d/common-password
添加:minlen=12 difok=3
3. 定期检查登录日志
sudo tail -f /var/log/auth.log
常见问题与解决方案
| 问题 |
原因 |
解决方案 |
| 修改端口后无法连接 |
防火墙未开放新端口 |
使用命令:sudo ufw allow 3322/tcp 开放相应端口 |
| SSH密钥认证失败 |
文件权限设置不正确 |
设置权限:chmod 700 ~/.ssh 和 `chmod 600 ~/.ssh/authorizedkeys |
| Fail2ban无法启动 |
配置文件语法错误 |
检查配置文件格式,使用:fail2ban-client -t 测试配置 |
| 服务器仍显示大量登录尝试 |
攻击者扫描所有端口 |
结合多种防护措施,定期更新安全配置 |
| 忘记新SSH端口号 |
未记录修改信息 |
通过VPS控制面板的VNC连接重置配置 |
通过实施以上五个关键步骤,你可以显著提升VPS服务器的SSH安全性。重要的是要理解,服务器安全是一个持续的过程,需要定期检查和更新防护措施。每个步骤都有其独特的作用,组合使用能够构建多层次的防御体系。
发表评论