对Ubuntu 22.04云主机进行SSH安全加固是确保服务器安全的重要步骤。以下内容将详细介绍如何有效地加固SSH服务,减少潜在的安全风险。
一、更新系统
在进行任何配置之前,首先确保系统软件包处于最新状态:
sudo apt update && sudo apt upgrade -y
AI 代码解读
- 解释:更新系统包列表并升级所有已安装的软件包,确保所有安全补丁都已应用。
二、更改SSH默认端口
默认情况下,SSH使用22端口,这使得它成为攻击者的主要目标。更改默认端口可以有效降低被扫描和攻击的概率。
- 打开SSH配置文件:
sudo nano /etc/ssh/sshd_config
AI 代码解读
- 找到
#Port 22
这一行,将其修改为一个非标准端口(例如2222):
Port 2222
AI 代码解读
- 解释:将SSH服务从默认的22端口改为2222端口,降低攻击风险。
- 保存并退出后,重新启动SSH服务:
sudo systemctl restart ssh
AI 代码解读
- 确保防火墙允许新端口通过:
sudo ufw allow 2222/tcp
AI 代码解读
- 解释:更新防火墙规则,允许新的SSH端口通信。
三、禁用Root用户远程登录
禁用root用户的SSH登录可以减少系统被攻破的风险,推荐使用普通用户通过 sudo
命令提升权限。
- 编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
AI 代码解读
- 找到
#PermitRootLogin prohibit-password
,将其修改为:
PermitRootLogin no
AI 代码解读
- 解释:禁用root用户通过SSH直接登录。
- 保存配置并重启SSH服务:
sudo systemctl restart ssh
AI 代码解读
四、使用SSH密钥认证
SSH密钥认证比密码认证更安全,推荐使用密钥对进行身份验证。
- 生成SSH密钥对:
在本地计算机上执行以下命令生成密钥对:
ssh-keygen -t rsa -b 4096
AI 代码解读
- 解释:生成一对4096位的RSA密钥,这种长度的密钥足够安全。
- 将公钥复制到云主机:
ssh-copy-id -i ~/.ssh/id_rsa.pub username@your_server_ip -p 2222
AI 代码解读
- 解释:将公钥复制到目标服务器,确保公钥存储在
~/.ssh/authorized_keys
文件中。
- 编辑SSH配置文件,禁用密码登录:
sudo nano /etc/ssh/sshd_config
AI 代码解读
找到 #PasswordAuthentication yes
,将其修改为:
PasswordAuthentication no
AI 代码解读
- 解释:禁用密码登录,只允许通过密钥进行认证。
- 重启SSH服务:
sudo systemctl restart ssh
AI 代码解读
五、限制登录尝试次数
通过限制登录尝试次数,可以有效防止暴力破解。
- 安装
fail2ban
工具:
sudo apt install fail2ban
AI 代码解读
- 配置
fail2ban
以保护SSH:
sudo nano /etc/fail2ban/jail.local
AI 代码解读
添加以下内容:
[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
maxretry = 3
AI 代码解读
解释:
enabled = true
:启用对SSH的监控。port = 2222
:指定SSH服务的端口。logpath = /var/log/auth.log
:指定SSH日志文件路径。maxretry = 3
:设置最大登录失败次数,超过后将暂时禁止登录。
- 启动并启用
fail2ban
服务:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
AI 代码解读
六、配置防火墙
配置防火墙是保护服务器的重要步骤,ufw
是Ubuntu上的默认防火墙工具。
- 启用防火墙并允许SSH通信:
sudo ufw allow 2222/tcp
sudo ufw enable
AI 代码解读
- 解释:启用防火墙并允许SSH使用的端口。
- 设置默认拒绝规则:
sudo ufw default deny incoming
sudo ufw default allow outgoing
AI 代码解读
- 解释:默认拒绝所有进入的连接,允许所有外出的连接。
七、定期审计和监控
- 日志审计:定期查看
/var/log/auth.log
中的SSH登录日志,检测异常活动。 - 自动更新:启用自动安全更新,减少因漏洞未及时修复而导致的风险:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
AI 代码解读
八、总结
通过上述步骤,你可以有效地加固Ubuntu 22.04云主机的SSH安全性。这些措施不仅能防止常见的攻击,还能提升整体服务器的安全性和稳定性。建议在实施这些安全加固措施后,定期检查系统日志和更新安全策略,以应对不断变化的安全威胁。