无题
无题
shanks要确保你的 Ubuntu 24 云实例更加安全,尤其是第一次使用时,有几个关键的安全步骤需要执行。以下是具体的命令和详细解释。
- 更新系统
首先,确保所有的系统软件包和安全补丁是最新的。打开终端并运行以下命令:
bash
复制代码
sudo apt update
sudo apt upgrade -y
apt update 会更新软件包信息。
apt upgrade -y 会自动更新所有已安装的软件包。
2. 创建一个非管理员用户
默认的 root 用户具有超级权限,攻击者如果能以 root 用户身份登录,会对服务器造成极大威胁。我们应该创建一个普通用户并授予 sudo 权限。
bash
复制代码
sudo adduser yourusername
sudo usermod -aG sudo yourusername
adduser yourusername:创建新用户。
usermod -aG sudo yourusername:将新用户添加到 sudo 组,从而授予该用户执行管理员命令的权限。
3. 禁用 root 用户的 SSH 登录
为了防止直接通过 root 用户 SSH 登录,我们可以编辑 SSH 配置文件。
bash
复制代码
sudo nano /etc/ssh/sshd_config
找到以下行并确保它们是这样设置的:
perl
复制代码
PermitRootLogin no
PermitRootLogin no:禁用 root 用户的 SSH 登录。
4. 更改 SSH 默认端口
默认的 SSH 端口是 22,这使得你的服务器容易受到攻击(因为很多攻击者都会扫描该端口)。更改为一个较高的端口可以增强安全性。执行以下步骤:
打开 SSH 配置文件:
bash
复制代码
sudo nano /etc/ssh/sshd_config
找到以下行:
bash
复制代码
#Port 22
将其修改为一个不常用的端口,例如 2222,删除注释符号:
yaml
复制代码
Port 2222
保存并关闭文件(按 Ctrl + O 保存,Ctrl + X 退出)。
重新启动 SSH 服务:
bash
复制代码
sudo systemctl restart ssh
在本地测试新的 SSH 端口:
bash
复制代码
ssh -p 2222 yourusername@yourserverip
5. 使用 SSH 密钥认证而非密码登录
使用 SSH 密钥认证比密码登录更安全。以下是设置过程:
在本地生成 SSH 密钥对:
bash
复制代码
ssh-keygen
将公钥复制到服务器上:
bash
复制代码
ssh-copy-id -i ~/.ssh/id_rsa.pub yourusername@yourserverip -p 2222
确保服务器只允许通过 SSH 密钥登录,禁用密码登录:
编辑 SSH 配置文件:
bash
复制代码
sudo nano /etc/ssh/sshd_config
找到以下行并修改:
perl
复制代码
PasswordAuthentication no
重新启动 SSH 服务:
bash
复制代码
sudo systemctl restart ssh
6. 安装并配置防火墙 (UFW)
Ubuntu 默认使用 UFW (Uncomplicated Firewall) 来管理防火墙规则。首先,启用 UFW 防火墙,并允许你刚刚更改的 SSH 端口:
启动 UFW:
bash
复制代码
sudo ufw enable
允许 SSH 连接(如果你更改了端口,记得使用新端口):
bash
复制代码
sudo ufw allow 2222/tcp
启用基本的防火墙规则(仅允许入站的流量到特定端口):
bash
复制代码
sudo ufw allow OpenSSH
sudo ufw allow 2222/tcp
查看防火墙状态,确保规则已应用:
bash
复制代码
sudo ufw status
7. 安装 Fail2ban
Fail2ban 是一个防止暴力破解攻击的工具。如果有人多次尝试使用错误的密码登录,Fail2ban 会自动阻止他们的 IP 地址。
安装 Fail2ban:
bash
复制代码
sudo apt install fail2ban
配置 Fail2ban(默认配置通常足够,下面是编辑配置的例子):
bash
复制代码
sudo nano /etc/fail2ban/jail.local
添加如下配置以保护 SSH 服务:
makefile
复制代码
[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
maxretry = 3:在尝试 3 次失败登录后,封禁该 IP。
bantime = 600:封禁 IP 10 分钟。
重新启动 Fail2ban:
bash
复制代码
sudo systemctl restart fail2ban
查看 Fail2ban 的状态:
bash
复制代码
sudo fail2ban-client status
8. 定期更新系统
为了保持系统的安全性,定期更新软件包和应用安全补丁是非常重要的。可以设置自动更新,确保你不会错过任何重要的安全修复。
bash
复制代码
sudo apt install unattended-upgrades
sudo dpkg-reconfigure –priority=low unattended-upgrades
总结
通过执行这些步骤,你可以显著提升你的云实例的安全性。确保更改 SSH 端口、禁用 root 登录、使用 SSH 密钥认证、启用防火墙以及防止暴力破解攻击的工具(如 Fail2ban)。这些都能大大增加你服务器的安全防护。