如何彻底保护 Ubuntu 服务器
介绍
介绍
本教程将帮助您从头开始设置安全的 Ubuntu 服务器。
请记住,这不是一个常见的教程,这是我三年多管理自己的服务器所积累的所有知识的总结。
在我们开始之前
前言
虽然本教程主要针对Ubuntu 20.04,但它也适用于许多其他版本,例如 18.04 和 16.04。因为它们非常相似。
必备条件
- Ubuntu 服务器
- 访问您的服务器
无论您的服务器托管在 DigitalOcean、Google Cloud Engine 还是 Amazon Web Services 上,Ubuntu 都应该是一样的。
必备信息
如果您没有服务器,您可能需要查看有用的资源步骤。
更新
第一步,也是最重要的一步,就是始终保持系统更新。只需打开终端,通过apt 命令更新和升级软件包即可。
sudo apt update # Update package information
sudo apt full-upgrade -y # Upgrade packages
sudo apt autoremove -y # Remove unnecessary packages
# One liner
sudo apt update && sudo apt dist-upgrade -y && sudo apt autoremove -y
自动更新
现在软件包已经更新,我们应该安装一个自动化解决方案来确保系统始终保持最新。
Linuxize 上的这个教程将帮助您安装和配置该unattended-upgrades
软件包,这正是您所需要的。
新用户
使用默认的超级用户root
始终是一种不好的做法,它会以最高级别的权限执行所有操作,从而允许您破坏任何内容;更重要的是...访问系统上的所有内容。
相反,我们应该使用具有超级用户权限的普通用户。DigitalOcean上的本教程将指导您执行此操作。
SSH 凭证
现在您有了具有超级用户权限的新用户,您可能想使用它在您的服务器中进行 SSH,但可能会发现您不能这样做。
这很可能是因为凭证存储在您之前使用的用户身上root
。只需再次使用之前的用户进行 SSH 连接,然后使用实用程序包将凭证复制到新用户即可rsync
。
按照DigitalOcean 上本教程的第 5 步进行操作。
固态混合硬盘
SSHD 管理与服务器的 SSH 连接。它的默认配置很好,但需要进行一些更改,例如禁用root
用户登录和更改默认SSH
端口。
按照DigitalOcean 上本教程的第一步 来了解如何配置 SSHD。
建议您更改默认
SSH
端口
UFW
UFW 是 Ubuntu 的默认防火墙,非常有用。默认情况下,它允许http
连接ssh
,但根据你的使用情况,你可能不需要其中的一些规则。
查看DigitalOcean 上的本教程以了解如何配置 UFW。
如果您
SSH
在之前的步骤中更改了端口,则可能需要为该端口创建新的 UFW 规则。
失败2Ban
Fail2Ban 保护您免受暴力攻击。它会在指定时间内禁止恶意用户访问服务器。
通过 Linuxize 上的本教程了解如何安装和配置 Fail2Ban 。
各种各样的
如果您使用任何此类软件,则应该牢记这些快速的具体指南。
Nginx
Nginx 有各种配置文件,它的默认设置非常好,但您可能需要看一看。
使用Acunetix 上的本教程作为起点。
DigitalOcean还提供了一款非常实用的工具,可以让你以可视化的方式配置 Nginx。它包含一些常用的预设,例如 NodeJS 和 PHP 应用程序的预设。
Apache2
Apache 可能需要做更多的工作,因为它的默认设置会泄露有关您的系统的一些信息。
通过Tecmint 的本教程开始您的配置之旅。
PHP
数据库
我过去曾使用过 MySQL 和 MariaDB,默认情况下它们的端口是向外部开放的,这是不应该允许的,因为这是一个安全风险。
数据库应该只允许通过本地连接;或者如果在外部运行,则通过白名单 IP 运行。
- 通过DigitalOcean 上的本教程了解如何配置 MySQL 。
- 通过DigitalOcean 上的本教程了解如何配置 MariaDB 。
建议
多库
现在您有了自己的安全基础设施,您可能想要创建应用程序和服务。
Dokku非常适合此目的。它允许您使用简单的 .docker 容器化、构建和运行您的应用程序git push
。
查看我自己的教程来了解如何设置和使用 Dokku。
有些部分您可能想要跳过,因为它们与本教程类似。
结尾
有用的资源
- 如何永久获得免费的Google服务器,本教程的完美测试环境。
- 如何永久免费获得 2 个 Oracle 云服务器,这是免费 GCE 服务器的更强大替代品。
- 使用 DigitalOcean 上的 Dokku 创建您自己的 Heroku,这是一个将您的应用程序部署到现在安全的服务器的指南。
自我推销
如果您发现本教程有用,那么您应该关注我,我会发布更多有趣的内容!:')
或者在经济上支持我。<3
信用
由于
- 任何链接的网站和社区,提供精彩的教程和帮助