新装Ubuntu 22.04.4 LTS后必做的安全加固与远程管理配置拿到一台全新安装的Ubuntu 22.04.4 LTS服务器时很多开发者会迫不及待地开始部署应用。但根据我管理上百台服务器的经验初始配置的质量直接决定了后续运维的难易程度。本文将分享我每次部署新系统时的标准化流程重点解决两个核心需求安全的root权限管理和可靠的SSH远程访问。与网络上常见的教程不同本文不仅提供操作命令更会解释每个步骤背后的安全考量。例如为什么不应该直接允许root通过SSH登录以及如何通过密钥认证大幅提升系统安全性。这些细节往往是新手容易忽略却会导致严重安全隐患的关键点。1. 系统基础加固从第一次登录开始刚安装完成的Ubuntu系统就像一张白纸虽然干净却也缺乏必要的防护。我的习惯是在开始任何其他工作前先完成以下基础加固步骤。1.1 更新系统与内核新安装的系统往往存在未修复的安全漏洞。立即更新可以确保获得最新的安全补丁sudo apt update sudo apt full-upgrade -y注意使用full-upgrade而非简单的upgrade这能处理软件包依赖关系变更的情况。更新完成后建议重启系统sudo reboot1.2 创建专用管理账户直接使用root账户进行日常操作是极其危险的做法。我建议创建一个具有sudo权限的专用管理账户sudo adduser admin sudo usermod -aG sudo admin这个账户将用于所有日常管理任务只有在必要时才切换到root权限。为增强安全性建议为该账户设置强密码12位以上包含大小写字母、数字和特殊字符。2. SSH服务的安全配置OpenSSH是Linux系统远程管理的生命线但默认配置往往过于宽松。以下是经过实战检验的安全优化方案。2.1 安装与基本配置Ubuntu 22.04默认不安装SSH服务需要手动安装sudo apt install openssh-server -y安装后立即修改配置文件/etc/ssh/sshd_config中的关键参数Port 2222 # 修改默认端口 PermitRootLogin no # 禁止root直接登录 PasswordAuthentication no # 禁用密码认证这些修改能有效防范自动化攻击脚本。记得在重启SSH服务前确保新端口已在防火墙放行sudo ufw allow 2222/tcp sudo systemctl restart sshd2.2 基于密钥的身份认证密钥认证比密码更安全且更方便。在本地机器生成密钥对ssh-keygen -t ed25519将公钥上传到服务器ssh-copy-id -p 2222 adminyour_server_ip现在你可以无需密码直接登录ssh -p 2222 adminyour_server_ip3. 权限管理的艺术合理的权限管理是系统安全的基石。以下是几个关键实践。3.1 谨慎使用root权限虽然我们禁用了root的SSH登录但在某些场景下仍需要root权限。可以通过以下方式安全切换sudo -i # 切换到root环境或者执行单个root命令sudo your_command3.2 配置sudo的超时时间默认情况下sudo密码会记住15分钟。对于生产环境建议缩短这个时间echo Defaults timestamp_timeout5 | sudo tee -a /etc/sudoers这会将超时时间设置为5分钟平衡了安全性和便利性。4. 防火墙与入侵防护Ubuntu自带的UFW防火墙简单易用。我的标准配置如下sudo ufw default deny incoming # 默认拒绝所有入站 sudo ufw default allow outgoing # 允许所有出站 sudo ufw allow 2222/tcp # 放行SSH sudo ufw enable此外安装fail2ban可以防止暴力破解sudo apt install fail2ban -y sudo systemctl enable --now fail2ban5. 系统监控与维护最后设置一些基本的监控措施确保系统健康运行。5.1 配置日志轮转编辑/etc/logrotate.conf调整日志保留策略weekly rotate 4 create compress5.2 安装基础监控工具sudo apt install htop nmon ncdu -y这些工具可以帮助你实时监控系统资源使用情况。6. 备份你的配置所有配置完成后建议备份关键配置文件sudo tar czf /root/initial_config_backup.tar.gz /etc/ssh /etc/sudoers /etc/ufw将这个备份文件下载到本地安全存储以便在系统出现问题时快速恢复。