本教程将引导您完成在 Ubuntu 服务器上初始化用户、配置 SSH 和防火墙的基本步骤。
特别适用于一些默认使用 root 用户和密码登录的云服务器,这样的配置不是很安全,我们将进行相关配置以提高安全性。
前提条件
本文档假设您已通过 SSH 登录到您的服务器,并且当前以 root 用户身份操作。接下来的所有命令和配置都在 root 用户下进行。
1. 添加新用户并配置 sudo 权限
添加新用户
首先,添加一个名为 ubuntu
的新用户:
adduser ubuntu
配置 sudo 权限
编辑 sudoers 文件,给予 ubuntu
用户无密码执行所有命令的权限:
visudo
在打开的文件中添加以下内容:
ubuntu ALL=(ALL:ALL) NOPASSWD: ALL
提示:使用 nano
编辑文件时,可以用方向键移动光标位置,按 Ctrl + X
保存,按 Y
确认修改,按 Enter
确认保存路径。
2. 配置 Bash 历史记录
将以下命令添加到用户 ubuntu
的 .bashrc
文件中,以确保每次命令执行后都立即写入历史记录:
echo 'export PROMPT_COMMAND="history -a; $PROMPT_COMMAND"' >> /home/ubuntu/.bashrc
3. 配置 SSH 密钥
生成 SSH 密钥对
在本地 Windows 计算机上运行以下命令生成一个 SSH 密钥对:
ssh-keygen
全部按回车,默认密钥将保存在用户目录下的 .ssh
文件夹中,其中 id_rsa
是私钥,请注意保密;id_rsa.pub
是公钥,可以用记事本右键打开查看其内容。
设置 SSH 公钥
在服务器上,为用户 ubuntu
创建 .ssh
目录并设置适当的权限:
mkdir -p /home/ubuntu/.ssh
chmod 700 /home/ubuntu/.ssh
touch /home/ubuntu/.ssh/authorized_keys
chmod 600 /home/ubuntu/.ssh/authorized_keys
将本地生成的 id_rsa.pub
公钥内容添加到 authorized_keys
文件中:
echo 'your-public-key' >> /home/ubuntu/.ssh/authorized_keys
确保文件和目录归属 ubuntu
用户:
chown -R ubuntu:ubuntu /home/ubuntu/.ssh
4. 配置 SSH 服务
编辑 SSH 配置文件以增强安全性:
nano /etc/ssh/sshd_config
在文件中找到并修改以下配置项:
PermitRootLogin prohibit-password
PasswordAuthentication no
注意:以上配置禁用了密码登录,完成配置后 root 用户将无法通过密码登录。如果需要 root 用户也能通过密钥登录,需为 root 用户配置公钥。
保存文件并重启 SSH 服务:
systemctl restart sshd
5. 配置防火墙 (UFW)
说明:某些云服务提供商可能不提供防火墙配置,在这种情况下,我们将启用系统自带的 UFW 防火墙,并开放常用的端口。后续可根据需要进行进一步配置。
检查防火墙状态
查看防火墙的当前状态:
ufw status
配置防火墙规则
设置默认策略:
ufw default deny incoming
ufw default allow outgoing
允许 SSH、HTTP 和 HTTPS 端口:
ufw allow ssh
ufw allow http
ufw allow https
启用防火墙:
ufw enable
查看防火墙状态
确认防火墙规则是否正确:
ufw status
以上步骤完成后,您的 Ubuntu 服务器将具有基本的安全配置和新用户设置。根据需要,您可以进一步优化和扩展这些配置以满足特定的需求。
评论区