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