使用 Ubuntu 20.04、18.04 和 16.04 进行初始服务器设置
简介
设置服务器是创建可靠且安全的网站、应用程序托管或数据管理环境的重要步骤。本文将探讨设置 Ubuntu 服务器的过程,特别是 20.04、18.04 和 16.04 版本。我们将介绍必要的步骤,以及实际示例及其相应的输出,以帮助您顺利完成初始服务器设置过程。
先决条件
在深入服务器设置之前,请确保已满足以下先决条件:
一个 Ubuntu 20.04、18.04 或 16.04 服务器实例。
具有管理员权限(或 root 访问权限)的用户帐户。
一个 SSH 客户端,用于远程连接到服务器(例如,OpenSSH)。
更新和升级系统
首先,务必更新和升级系统,以确保您拥有最新的软件包和安全补丁。执行以下命令:
$ sudo apt update
此命令更新软件包列表,以便进行升级和新安装。
$ sudo apt upgrade
此命令将所有已安装的软件包升级到最新版本。
创建新用户
虽然建议避免在日常任务中使用 root 帐户,但创建具有 sudo 权限的新用户被认为是一种最佳实践。请按照以下示例操作:
$ sudo adduser example_user
将“example_user”替换为您所需的用户名。系统将提示您设置密码并为新用户提供其他信息。
授予管理员权限
要授予新创建的用户管理员权限,您需要将其添加到 sudo 组。执行以下命令:
$ sudo usermod -aG sudo example_user
此命令将用户添加到 sudo 组,允许他们执行具有管理员权限的命令。
配置 SSH 访问
安全外壳 (SSH) 允许安全地远程访问您的服务器。您可以配置 SSH 使用基于密钥的身份验证而不是密码,以增强安全性。执行以下步骤:
在您的本地机器上生成 SSH 密钥对(如果您没有的话):
$ ssh-keygen -t rsa -b 4096
将公钥复制到服务器:
$ ssh-copy-id example_user@your_server_ip
禁用密码身份验证(可选但推荐):
编辑 SSH 配置文件:
$ sudo nano /etc/ssh/sshd_config
更改以下行:
PasswordAuthentication no
保存文件并重新启动 SSH 服务:
$ sudo systemctl restart sshd
防火墙配置
启用防火墙有助于保护您的服务器免受未经授权的访问。Ubuntu 提供 UFW(Uncomplicated Firewall)作为一种简单的防火墙规则管理方式。请按照以下示例操作:
允许 SSH 连接:
$ sudo ufw allow OpenSSH
启用防火墙:
$ sudo ufw enable
验证防火墙状态:
$ sudo ufw status
设置基本防火墙规则
有时,您可能需要允许或拒绝对特定端口的访问。以下示例演示了如何允许 HTTP 流量:
$ sudo ufw allow 80/tcp
此命令允许端口 80 上的传入 TCP 流量,该端口用于 HTTP。
启用自动安全更新
保持服务器最新对于安全性至关重要。Ubuntu 提供“unattended-upgrades”软件包来自动执行安全更新。执行以下步骤:
安装软件包:
$ sudo apt install unattended-upgrades
启用自动更新:
$ sudo dpkg-reconfigure --priority=low unattended-upgrades
按照提示配置更新首选项。
使用基于密钥的身份验证保护 SSH 访问
为了进一步增强 SSH 访问的安全性,您可以禁用密码身份验证,并完全依赖基于密钥的身份验证。请按照以下步骤操作:
编辑 SSH 配置文件:
$ sudo nano /etc/ssh/sshd_config
找到指定 PasswordAuthentication 的行,并将它的值更改为 no:
PasswordAuthentication no
取消注释指定 PubkeyAuthentication 的行以启用基于密钥的身份验证:
PubkeyAuthentication yes
保存文件并重新启动 SSH 服务:
$ sudo systemctl restart sshd
现在,您只能使用与之前添加的公钥关联的私钥访问服务器。
配置时区和 NTP
正确设置时区并确保准确的时间同步对于各种服务器功能和应用程序都很重要。要配置时区并启用 NTP(网络时间协议),请执行以下步骤:
检查当前时区:
$ timedatectl show
使用带 set-timezone 选项的 timedatectl 命令设置所需的时区。例如,要将时区设置为“America/New_York”:
$ sudo timedatectl set-timezone America/New_York
安装 NTP 以进行时间同步:
$ sudo apt install ntp
启动并启用 NTP 服务:
$ sudo systemctl start ntp $ sudo systemctl enable ntp
安装和配置 Web 服务器(Apache)
如果您打算在 Ubuntu 服务器上托管网站或 Web 应用程序,则安装 Web 服务器至关重要。在此示例中,我们将安装和配置 Apache,它是最流行的 Web 服务器之一。执行以下步骤:
安装 Apache:
$ sudo apt install apache2
调整防火墙以允许传入的 HTTP 和 HTTPS 流量:
$ sudo ufw allow 'Apache'
验证 Apache 服务的状态:
$ sudo systemctl status apache2
打开 Web 浏览器并输入服务器的 IP 地址。您应该会看到默认的 Apache 页面,这确认安装成功。
安装和配置数据库服务器(MySQL)
如果您的服务器需要数据库管理系统,MySQL 是一种强大且广泛使用的选项。请按照以下步骤安装和配置 MySQL:
安装 MySQL 服务器:
$ sudo apt install mysql-server
保护 MySQL 安装:
$ sudo mysql_secure_installation
按照提示设置 root 密码并提高 MySQL 安装的安全性。
验证 MySQL 服务的状态:
$ sudo systemctl status mysql
定期更新系统
为了确保服务器的持续安全性和稳定性,务必使用最新的软件更新和安全补丁来保持系统的最新状态。执行以下命令定期更新系统:
$ sudo apt update && sudo apt upgrade -y
此命令将更新软件包列表并升级所有已安装的软件包,应用所有可用的更新。
结论
通过遵循以上综合指南,您已了解如何在 Ubuntu 20.04、18.04 和 16.04 上执行初始服务器设置。我们涵盖了各个方面,包括用户创建、SSH 配置、防火墙设置、保护 SSH 访问、配置时区和 NTP、安装和配置 Web 服务器(Apache)、安装和配置数据库服务器(MySQL)以及定期更新系统的重要性。有了这些知识,您现在可以设置