要安全加固Ubuntu系统的SSH服务,可以遵循以下步骤:
1. 禁止root密码登录
- 编辑
/etc/ssh/sshd_config
文件,将PermitRootLogin
的值改为no
。 - 重启SSH服务以应用更改:
sudo systemctl restart sshd
。
2. 设置复杂的SSH密钥
- 在客户端生成SSH密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
。 - 将公钥复制到服务器的
~/.ssh/authorized_keys
文件中:ssh-copy-id user@server_ip
。 - 在服务器上的SSH配置文件
/etc/ssh/sshd_config
中,确保PubkeyAuthentication
设置为yes
,并禁用密码认证:PasswordAuthentication no
。
3. 更改SSH默认端口
- 编辑
/etc/ssh/sshd_config
文件,将Port
的值改为非标准端口(例如2222)。 - 重启SSH服务以应用更改:
sudo systemctl restart sshd
。 - 使用防火墙(如UFW)允许新端口的流量:
sudo ufw allow 2222/tcp
。
4. 禁用不必要的服务
- 关闭不需要的网络服务,减少系统的攻击面。
- 使用
systemctl
命令来管理服务,例如sudo systemctl disable telnet
。
5. 配置防火墙
- 使用UFW启用和管理防火墙:
- 安装UFW:
sudo apt-get install ufw
- 启用UFW:
sudo ufw enable
- 配置防火墙规则,例如允许SSH连接:
sudo ufw allow 2222
。
- 安装UFW:
6. 定期更新系统和软件包
- 使用
sudo apt update && sudo apt upgrade
命令定期更新系统,以修复已知的安全漏洞。
7. 启用登录审计
- 可以通过修改相关配置文件来设置登录超时时间,以确保在用户一段时间无操作后自动退出登录。
8. 使用Fail2Ban等工具防止暴力破解
- 安装Fail2Ban:
sudo apt install fail2ban
- 配置Fail2Ban以禁止多次登录失败的用户访问。
9. 监控系统日志
- 定期检查系统日志,及时发现可疑活动。
10. 创建普通用户并使用sudo机制
- 创建新用户并赋予sudo权限,而不是直接使用root账户。
通过上述措施,可以显著提高Ubuntu SSH服务的安全性,保护系统和数据不受未经授权的访问和攻击。[1,2,3,4,9,10,12,15,16]