安全检查站

介绍

此检查点旨在帮助您评估您从我们的安全介绍文章(https://www.digitalocean.com/community/tutorial_series/getting-started-with-cloud-computing#Security)中学到的内容,其中我们引入了推荐的安全实践和常用的安全工具。

要有效地运行云应用程序,您应该在配置服务器时实施行业推荐的安全实践。保护服务器对于保护用户和个人信息至关重要。

此检查点将专注于保护您的服务器. 您将找到两个部分,这些部分合成介绍文章的核心想法:对关键安全术语和实践的简要概述,其次是关于使用命令行和与特定安全工具相关的子部分的部分。

资源

什么是安全?

当您保护您的云服务器时,您可以管理基础设施中的漏洞,并防止潜在的损害和恶意攻击者。

熟悉几个关键术语是很重要的,以了解云计算的安全实践。

<$>[info] [label Terms To Know] 定义下列每个术语,然后使用下载功能来检查您的工作。

加密 Encryption 是指通过算法转换编码信息的过程,然后可以用于安全传输或存储。

您可以使用 symmetricalasymmetrical 加密来实现您的目标,取决于您的需求。

SSH SSH是指 _Secure Shell 协议,它允许您通过加密安全连接安全地管理远程服务器。

有关 SSH 如何工作的更多信息,您可以查看 理解 SSH 加密和连接过程

防火墙 防火墙 以两种主要方式控制您的服务器的连接:详细说明哪些类型的流量可以路由到服务器和从服务器;并定义哪些服务器暴露在网络中。

美元

在您的服务器上工作时,您应该知道您是否正在使用其 IPv4 (32 位数)或 IPv6 (128 位元数) IP 地址。

一旦您的服务器设置,它将参与 public key infrastructure (PKI) 用于证书管理、识别和通信加密。 TLS/SSL 加密通常用于提供额外的安全级别,通常是通过提供合法的 certificate authority (CA) (CA) 的证书来更新从 HTTP 到 HTTPS 服务器。

<$>[info] [label Check Yourself] 使用下载功能获取答案。

TLS,指的是 Transport Layer Security,是网络流量的加密协议.在TLS手动中,客户端和服务器交换消息,验证消息来自真实的来源,并确定一种加密方法(一个 cipher suite)来管理通信以确保信息的安全传输。

TLS协议使用一种公钥和私钥加密方法,称为对称加密。

在共享密钥加密中,有一个相同的密钥加密器,发送者和接收者将使用它来解密消息,这个过程被称为对称加密,并使用单个密钥 ] <$>

您可以使用 Let's Encrypt 作为证书权限来获得免费的 TLS/SSL 证书。您也可以生成 自签证证书

在以下部分中,您将审查通过SSH连接到您的服务器,运行VPN,使用防火墙和监控网络安全的核心原则。

通过 SSH 连接

SSH Essentials 文章中,您生成了一对 _SSH 密钥对,该密钥对使用 asymmetric encryption 方法生成私钥和公共密钥。

<$>[info] [label Check Yourself] 使用下载功能获取答案。

[详细信息 SSH 密钥通常存储在哪里? 在 ~/.ssh/authorized_keys 文件夹中。

[详细信息 SSH、HTTP 和 HTTPS 通常在哪个端口运行? SSH 通常在端口 22 上运行。

HTTP/HTTPS 通常在「80」和「443」端口运行。

如何更改默认端口访问? 若要更新 SSH 端口访问,请在服务器的 sshd_config 文件中更改 Port 22 规格以引用您选择的未使用的端口,然后重新启动您的 SSH 端口。

当您更改 SSH 端口时,您必须每次要登录远程服务器时指定新的端口

为了获得额外的保护,您可以 硬化 OpenSSHOpenSSH客户端在您的服务器上。

要使用 SSH,您需要与防火墙配置 SSH 访问。

使用防火墙

防火墙控制您的服务器的流量和流量,可以根据您的需求进行配置. 当您 选择有效的防火墙策略时,您必须考虑您想要的服务器(s)的政策类型以及不同的防火墙程序将如何响应请求。

一些常用的防火墙程序包括 Uncomplicated Firewall (UFW)firewalld,这两者都作为高级别接口为 iptablesnftables。如果你使用的是 Ubuntu 或 Debian 发行版,你可能会使用 UFW,因为它是预先构建的系统。对于 CentOS 或 Rocky Linux,你更有可能使用 firewalld。 有关 iptables的更多信息,你可以参阅我们的文章 How the Iptables Firewall WorksIptables Essentials: Common Firewall Rules and Commands

您可以在配置防火墙时使用 IPv4IPv6,但您可能需要更新防火墙以管理IPv6。

运行VPN

一个VPN提供了一个加密隧道,你可以通过它连接到互联网,这对开发人员和消费者都有好处。对于开发人员来说,VPN允许你从不同的地点访问自己的基础设施,这样你就不用离开一个敏感的端口。

<$>[info] [label Check Yourself] 详细介绍VPC和VPN的区别是什么?

VPC 指的是 _Virtual Private Cloud网络,它是您资源的私有网络接口. VPC 中的资源只能通过内部网络相互连接,除非设置了 ingress 网关,否则无法通过公共互联网访问。

一个 VPNvirtual private network 模拟了通过互联网的远程计算机之间的私人网络,就好像它们在本地私人网络上一样。

WireGuardOpenVPN是两种常用的VPN解决方案,在我们的介绍文章中,您 设置WireGuard VPNOpenVPN服务器

一旦您建立了网络,无论是使用VPN还是不使用VPN,您将希望长期管理您的系统,以实现安全和可持续的流程。

网络安全管理

配置服务器设置是确保安全实践的许多步骤之一. 您可以通过保持服务器的更新,硬化网络和监控网络安全来维护您的服务器。

为了保持Ubuntu服务器的更新(https://andsky.com/tech/tutorials/how-to-keep-ubuntu-22-04-servers-updated),您可能需要更新您的systemd配置文件或计划自动重新启动的cron任务。您还可以设置您的包管理器以使用unattended-upgrades服务完成自动更新,您可以使用systemctl来管理。

有时您可能需要在内核级别运行更新以修补系统范围内的错误和漏洞。 虽然您可以运行未经监控升级工具为apt,但这可能会导致您的系统出现某些停机时间。 如果您需要确保一致的运行时间,您可能会使用 负载平衡器来重定向流量,而不同的服务器正在运行内核更新。 您也可以使用实时修补服务,如 Canonical Livepatch ServiceKernelcare,以在后台运行。

您还可以扫描和监控网络流量,寻找漏洞或可疑的包. 您 安装 Suricata作为一个网络监控系统_,为该服务定义以您的名义管理的规则集。

连接和管理您的服务器通常通过命令行进行,您在这些安全文章中使用了命令行。

使用命令行

您开始使用 Linux 命令行与我们关于 [云服务器]的介绍文章(https://www.digitalocean.com/community/tutorial_series/getting-started-with-cloud-computing#Cloud-Servers),配置了 Web 服务器与 网站服务器解决方案上的文章,管理了您的数据库与 数据库上的文章,并配置了一个集装箱解决方案与 集装箱上的文章

安全实践介绍中,您通过以下命令继续熟悉命令行:

  • `add-apt-repository' 作为您的sudo启用的用户在您的服务器上添加软件存储器信息。
  • cat'将文件内容输出到终端. *chmod'将文件权限更改. *cp'将文件复制到一个服务器上,并scp'将文件复制到服务器之间. cut'将文件的一个部分删除,使用‘-c'选项来剪切指定的字符串. *date'将时间戳输出,使用‘%N'选项输出秒(%s")和分钟("%N"). (_) ( ) 在指定文件中搜索文本和字符串的grep'。 *jq'读取和过滤命令语法指定的条目。
  • ' kill' as your sudo-upleed user,以指定一个停止服务信号. (- ) * 'ln' ,在文件之间创建 [symlink] ( https://andsky.com/tech/tutorials/workflow-symbolic-links) 选项. (- ) *printf' ,以显示给定字符串. (- ) *sha1sum' ,以打印和检查校验和. (- ) *s',以列出所有正在使用的 TCP/UDP 端口,与 "-plunt " 选项相配以附加信息。 (-_) ) * sysctl' 作为您的sudo-user用于配置内核参数并加载您终端会话的新值. *系统ctl'用于管理服务,包括OpenVPN作为系统'服务,而Suricata作为网络监测软件包. *resolvectl dns' 用于识别您服务器使用的DNS解析器. *tail' 用于输出带有-f'选项的文件的行. *tee'作为您的sudo-user将输出重定向到一个新的文件. (___) (英语)

您使用ip命令和相关子命令来配置您的网络接口:

  • ip addr 搜索您的网络接口. 然后使用输出命令 ufw 允许 允许通过所选网络接口的输入流量.
  • ip 地址显示 查找系统的公共 IP 地址
  • ip 路线 查找公共网络接口

如果您選擇執行 直播修補服務以更新您的 Ubuntu 伺服器的核心級更新,您將為「canonical-livepatch」服務執行子命令,作為您的 sudo 可用使用者:

  • canonical-livepatch enable your-key to enable the tool.
  • canonical-livepatch status to check the status of the background service.

您还使用了管道操作器(‘’)来链接多个命令。

从命令线运行UFW

在我们的 初始服务器设置中,您用不复杂的防火墙设置了一个基本的防火墙,然后使用sudo访问来修改您的防火墙,在 [Ubuntu 22.04 上如何设置使用UFW的防火墙]中使用各种子命令(https://andsky.com/tech/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-22-04):

*ufw默认拒绝接入'以拒绝所有接入的连接(这是默认状态). *ufw默认允许接出'以允许所有接入的连接(这是默认状态).

  • ufw 允许 ssh' 允许在端口22' 上接通 SSH 连接,例如当您希望管理远程服务器时。 (_) ( )* ufw 允许端口_数字'为接入的连接指定端口。 (_) ) * 允许`使防火墙启用。
  • 允许检查防火墙的状况和允许状态动词,查看所有设置的规则。
  • " 允许http " 或ufw 允许 80 允许从未加密的网络服务器通过 HTTP 连接。 () ( )* 允许https ' 或ufw允许443'允许从未加密的网络服务器通过HTTP进行连接。 () ) *ufw允许端口_数字:port_数字/tcp'和ufw允许端口_数字:port_数字/udp'允许一系列端口,指定了TCP/UDP协议.
  • ufw 允许从您的_ip_地址' 连接到特定的 IP 地址。 您可以添加 任何端口_ 数字` 来引导 IP 地址到特定端口 。
  • 子网( ) * ufw 拒绝 http ' 拒绝 HTTP 连接,ufw 拒绝 从您的_ip_地址 ' 拒绝 从特定的 IP 地址 拒绝所有连接。
  • ufw status number'以生成一个编号的防火墙规则列表. *ufw 删除'以删除规则,使用列表编号或使用allow'规则(例如ufw 删除允许http'). *ufw 禁用'以关闭您创建的所有规则. *ufw 重置'以禁用UFW并删除您创建的任何规则。 (单位:千美元) (英语)

您可以继续在您的 UFW 设置上工作,通过我们在 UFW Essentials: Common Firewall Rules and Commands的文章。

从命令行运行VPN

除了配置防火墙外,您还管理了WireGuard和OpenVPN,这两个不同的VPN工具。

設定您的 WireGuard VPN時,您在 WireGuard 伺服器和其 Peer 伺服器上執行下列 WireGuard 命令:

  • wg 管理您的 WireGuard 服务器
  • wg genkeywg pubkey 创建一个 WireGuard 服务器的私钥和公共钥匙对
  • wg set 与一个 'allowed-ips' 设置和特定 IP 地址列表来管理访问您的 WireGuard VPN.
  • wg-quick 手动建立您的 VPN 连接,使用 'up' 参数来启动隧道和 'down' 参数来脱离 VPN.

设置您的 OpenVPN 服务器时,您在您的 OpenVPN 服务器和验证证书的 CA 服务器上运行了一系列修改的脚本,设置了配置指令,如 tls-crypt 指令,以改善加密通信。

通过这些文章和最佳实践,您现在知道保护云服务器的基本知识。

什么是下一步?

在这些介绍云服务器安全实践的文章中,您了解了在云服务器中建立强大的安全措施的最佳实践和常用的工具,以确保您的基础设施以安全的基础配置开始,您可以继续遵循行业的加密,私人网络,安全监控和服务审计的最佳实践。

要继续构建您的服务器安全性,请尝试以下教程:

您可以通过这些教程将文件传输到您的系统:

如果您想为您的 DigitalOcean Kubernetes 集群实施安全实践,请尝试以下教程:

如果您还没有,您也可以为与您的服务器相关的域名安装(https://andsky.com/tech/tutorials/how-to-install-an-ssl-certificate-from-a-commercial-certificate-authority)商业证书机构的SSL证书。

如果你还没有,请查看我们关于云服务器(https://www.digitalocean.com/community/tutorial_series/getting-started-with-cloud-computing#Cloud-Servers),Web服务器(https://andsky.com/tech/tutorials/web-servers-checkpoint),数据库(https://www.digitalocean.com/community/tutorial_series/getting-started-with-cloud-computing#Databases)和容器(https://www.digitalocean.com/community/tutorial_series/getting-started-with-cloud-computing#Containers)的介绍文章。

Published At
Categories with 技术
comments powered by Disqus