如何保护 Ubuntu 14.04 上的 Redis 安装

2023-11-06

介绍

Redis 是一种内存中、NoSQL、键值缓存和存储,也可以持久保存到磁盘上。

本教程展示如何实现 Redis 服务器的基本安全性。

但是,请记住,Redis 是为以下用户而设计的:值得信赖的客户 in a 可信环境,本身没有强大的安全功能。为了强调这一点,这里引用Redis 官方网站:

Redis 旨在由受信任环境中的受信任客户端进行访问。这意味着通常将 Redis 实例直接暴露到 Internet 或一般情况下暴露到不受信任的客户端可以直接访问 Redis TCP 端口或 UNIX 套接字的环境并不是一个好主意。

. . .

一般来说,Redis 并不是为了最大安全性而优化的,而是为了最大性能和简单性而优化的。

没有安全性的性能和简单性将导致灾难。即使 Redis 拥有的少数安全功能也确实没有什么值得称赞的。其中包括:基本的未加密密码以及命令重命名和禁用。它缺乏真正的访问控制系统。

然而,配置现有的安全功能仍然比不保护数据库安全迈出了一大步。

在本教程中,您将了解如何配置 Redis 具有的少数安全功能,以及其他一些系统安全功能,这些功能将提高 Ubuntu 14.04 上独立 Redis 安装的安全状况。

请注意,本指南不涉及 Redis 服务器和客户端应用程序位于不同主机或不同数据中心的情况。 Redis 流量必须穿越不安全或不受信任的网络的安装需要一组完全不同的配置,例如设置 SSL 代理或VPN除了此处给出的之外,Redis 机器之间的关系。

先决条件

对于本教程,您需要:

  • 添加了 sudo 用户的 Ubuntu 14.04 服务器,来自初始服务器设置

  • iptables 配置使用这个 iptables 指南,向上通过(可选)更新名称服务器步骤(如果不进行名称服务器配置部分,APT 将无法工作)。配置名称服务器后,您就完成了

  • Redis 使用仅主安装中的说明进行安装和工作本 Redis 指南,向上通过第 2 步 — 配置 Redis Master step

第 1 步 - 验证 Redis 是否正在运行

首先使用 SSH 登录到您的服务器:

  1. ssh username@server-ip-address

要检查 Redis 是否正常工作,请使用 Redis 命令行。这redis-cli命令用于访问Redis命令行。

  1. redis-cli

如果您已经为 Redis 设置了密码,则必须auth连接后。

  1. auth your_redis_password
Output
OK

测试数据库服务器:

  1. ping

回复:

Output
PONG

Exit:

  1. quit

第 2 步 — 使用 iptables 保护服务器

如果您遵循 iptables 的先决条件,请随意跳过此步骤。或者,你现在就可以做。

Redis 只是一个在您的服务器上运行的应用程序,并且由于它自己没有真正的安全功能,因此真正保护它的第一步是首先保护它所运行的服务器。

对于像 Ubuntu 14.04 服务器这样面向公众的服务器,请按照以下方式配置防火墙这个 iptables 指南这是第一步。点击该链接并立即设置您的防火墙。

如果您已使用该指南实施了防火墙规则,则无需为 Redis 添加额外的规则,因为默认情况下,除非明确允许,否则所有传入流量都会被丢弃。由于 Redis 服务器的默认独立安装仅在环回接口(127.0.0.1 或 localhost)上侦听,因此不应担心其默认端口上的传入流量。

如果您需要专门允许Redis的IP地址,您可以检查Redis正在侦听的IP地址以及它绑定的端口grep- 的输出netstat命令。第四栏——127.0.0.1:6379这里 — 表示与 Redis 关联的 IP 地址和端口组合:

  1. sudo netstat -plunt | grep -i redis
Output
tcp   0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      8562/redis-server 1

确保您的防火墙策略允许此 IP 地址。有关如何添加规则的更多信息,请参阅此iptables 基础知识文章.

第 3 步 — 绑定到本地主机

默认情况下,只能从本地主机访问 Redis 服务器。但是,如果您按照教程设置了 Redis 主服务器,则您已更新配置文件以允许从任何地方进行连接。这不像绑定到本地主机那样安全。

打开Redis配置文件进行编辑:

  1. sudo nano/etc/redis/redis.conf

找到此行并确保其未注释(删除#如果存在):

/etc/redis/redis.conf
bind 127.0.0.1

我们将继续使用该文件,因此暂时保持打开状态。

第 4 步 — 配置 Redis 密码

如果您使用以下方式安装了 Redis如何在 Ubuntu 14.04 上配置 Redis 集群文章,您应该为其配置密码。您现在可以根据本节自行决定创建更安全的密码。如果没有,本节中的说明将介绍如何设置数据库服务器密码。

配置 Redis 密码可启用其两个内置安全功能之一 -auth命令,该命令要求客户端进行身份验证才能访问数据库。密码直接在Redis的配置文件中配置,/etc/redis/redis.conf,您应该仍然在上一步中打开它。

滚动到SECURITY部分并查找注释指令,内容如下:

/etc/redis/redis.conf
# requirepass foobared

通过删除来取消注释#,并改变foobared到一个非常强且非常长的值。

您可以使用类似的工具,而不是自己创建密码apg or pwgen生成一个。如果您不想安装应用程序只是为了生成密码,您可以使用下面的单行代码。要生成与实际生成的密码不同的密码,请更改引号中的单词。

  1. echo "digital-ocean" | sha256sum

您的输出应该类似于:

Output
960c3dac4fa81b4204779fd16ad7c954f95942876b9c4fb1a255667a9dbe389d

虽然生成的密码无法发音,但它为您提供了一个非常强且非常长的密码,这正是 Redis 所需的密码类型。复制并粘贴该命令的输出作为新值后requirepass,它应该是:

/etc/redis/redis.conf
requirepass 960c3dac4fa81b4204779fd16ad7c954f95942876b9c4fb1a255667a9dbe389d

如果您更喜欢较短的密码,请改用以下命令的输出。再次更改引号中的单词,这样它就不会生成与此相同的密码:

  1. echo "digital-ocean" | sha1sum

这次你会得到更短的输出:

Output
10d9a99851a411cdae8c3fa09d7290df192441a9

设置密码后,保存文件,并重新启动Redis:

  1. sudo serviceredis服务器重启

要测试密码是否有效,请访问 Redis 命令行:

  1. redis-cli

以下输出显示了用于测试 Redis 密码是否有效的一系列命令。第一个命令尝试在身份验证之前将密钥设置为值。

  1. set key1 10

那是行不通的,所以 Redis 返回一个错误。

Output
(error) NOAUTH Authentication required.

第二条命令使用 Redis 配置文件中指定的密码进行身份验证。

  1. auth your_redis_password

Redis 承认了。

Output
OK

之后重新运行之前的命令即可成功。

  1. set key1 10
Output
OK

get key1查询 Redis 以获取新键的值。

  1. 获取密钥1
Output
"10"

最后一条命令退出redis-cli。您还可以使用exit:

  1. quit

接下来,我们将了解重命名 Redis 命令。

第 5 步 — 重命名危险命令

Redis 内置的另一个安全功能允许您重命名或完全禁用某些被认为危险的命令。

当未经授权的用户运行时,此类命令可用于重新配置、销毁或以其他方式擦除您的数据。与认证密码一样,重命名或禁用命令在同一配置中配置。SECURITY的部分/etc/redis/redis.conf file.

一些已知的危险命令包括:FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME and DEBUG。这不是一个完整的列表,但重命名或禁用该列表中的所有命令是一个很好的起点。

无论禁用还是重命名命令都是特定于站点的。如果您知道您永远不会使用可能被滥用的命令,那么您可以禁用它。否则,重命名它。

要启用或禁用 Redis 命令,请再次打开配置文件进行编辑:

  1. sudo nano/etc/redis/redis.conf

这些都是例子。您应该选择禁用或重命名对您有意义的命令。您可以自己检查这些命令并确定它们可能如何被滥用:redis.io/命令.

要禁用或终止命令,只需将其重命名为空字符串,如下所示:

/etc/redis/redis.conf
# It is also possible to completely kill a command by renaming it into
# an empty string:
#
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""

要重命名命令,请为其指定另一个名称,如下例所示。重命名的命令应该很难让别人猜到,但让你容易记住。不要让自己的生活变得困难。

/etc/redis/redis.conf
rename-command CONFIG ""
rename-command SHUTDOWN SHUTDOWN_MENOT
rename-command CONFIG ASC12_CONFIG

保存您的更改。

重命名命令后,通过重新启动 Redis 来应用更改:

  1. sudo serviceredis服务器重启

要测试新命令,请输入 Redis 命令行:

  1. redis-cli

然后,假设您重命名了CONFIG命令到ASC12_配置,以下输出显示如何测试是否已应用新命令。

验证后:

  1. auth your_redis_password
Output
OK

第一次尝试使用config命令应该失败,因为它已被重命名。

  1. 配置获取requirepass
Output
(error) ERR unknown command 'config'

调用重命名的命令应该会成功(不区分大小写):

  1. asc12_config 获取 requirepass
Output
1) "requirepass"
2) "your_redis_password"

最后,您可以退出redis-cli:

  1. exit

注意:如果您已经在使用 Redis 命令行,然后重新启动 Redis,则需要重新进行身份验证。否则,如果您键入命令,您将收到此错误:

Output
NOAUTH Authentication required.

关于重命名命令,在末尾有一个警告声明SECURITY部分在/etc/redis/redis.conf内容如下:

Please note that changing the name of commands that are logged into the AOF file or transmitted to slaves may cause problems.

这意味着如果重命名的命令不在 AOF 文件中,或者如果在 AOF 文件中但 AOF 文件尚未传输到从机,那么应该没有问题。

因此,当您尝试重命名命令时请记住这一点。重命名命令的最佳时间是在您不使用 AOF 持久性时,或者在安装之后,即在部署使用 Redis 的应用程序之前。

当您使用 AOF 并处理主从安装时,请考虑该项目的 GitHub 问题页面中的这个答案。以下是对作者问题的答复:

命令被记录到 AOF 并以与发送相同的方式复制到从属设备,因此,如果您尝试在没有相同重命名的实例上重播 AOF,您可能会遇到不一致,因为命令无法执行(对于奴隶来说也是如此)。

因此,在这种情况下处理重命名的最佳方法是确保重命名的命令应用于主从安装中的所有实例。

步骤 6 — 设置数据目录所有权和文件权限

在此步骤中,我们将考虑您可以进行的一些所有权和权限更改,以提高 Redis 安装的安全配置文件。这涉及确保只有需要访问 Redis 的用户才有权读取其数据。默认情况下,该用户是redis user.

您可以通过以下方式验证这一点grep-ing 表示其父目录的长列表中的 Redis 数据目录。该命令及其输出如下所示。

  1. ls -l/var/lib| grep redis
Output
drwxr-xr-x 2 redis   redis   4096 Aug  6 09:32 redis

可以看到Redis数据目录属于redis用户,具有授予的辅助访问权限redis团体。那部分很好。

没有的部分是文件夹的权限,为 755。为了确保只有 Redis 用户有权访问该文件夹及其内容,请将权限更改为 700:

  1. sudo chmod 700/var/lib/redis

您应该更改的另一个权限是 Redis 配置文件的权限。默认情况下,它的文件权限为 644,所有者为root,拥有二次所有权root group:

  1. ls -l/etc/redis/redis.conf
Output
-rw-r--r-- 1 root root 30176 Jan 14  2014 /etc/redis/redis.conf

该权限 (644) 是世界可读的,这不是一个好主意,因为它包含在步骤 4 中配置的未加密密码。

我们需要更改所有权和权限。理想情况下,它应该由redis用户,拥有二次所有权root用户。为此,请运行以下命令:

  1. sudo chownredis:root /etc/redis/redis.conf

然后更改所有权,以便只有文件的所有者可以读取和/或写入它:

  1. sudo chmod 600/etc/redis/redis.conf

您可以使用以下方式验证新的所有权和权限:

  1. ls -l/etc/redis/redis.conf
Output
total 40
-rw------- 1 redis root 29716 Sep 22 18:32 /etc/redis/redis.conf

最后,重新启动Redis:

  1. sudo serviceredis服务器重启

结论

请记住,一旦有人登录到您的服务器,就很容易绕过我们设置的 Redis 特定安全功能。因此,最重要的安全功能是让人们极难跳过栅栏。

那应该是你的防火墙。

要将服务器安全性提升到新的水平,您可以配置 OSSEC 等入侵检测系统。要在 Ubuntu 14.04 上配置 OSSEC,请参阅本 OSSEC 指南.

如果您尝试在不受信任的网络上保护 Redis 通信的安全,则必须使用 SSL 代理,正如 Redis 开发人员在官方Redis安全指南。设置 SSL 代理以保护 Redis 通信是一个单独的主题。

我们没有在重命名部分包含 Redis 命令的完整列表。但是,您可以自己检查一下并确定它们可能如何被滥用redis.io/命令.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何保护 Ubuntu 14.04 上的 Redis 安装 的相关文章

  • make找不到curses.h

    我有一个名为 samtools 版本 1 3 的程序 用于操作从 DNA 测序实验中获得的文件 下载的程序包含在一个文件夹中 为了设置程序 我在终端 在 ubuntu 计算机上 中输入该文件夹 我输入突击队 make 它运行并打印它所做的事
  • 如何过滤 Cassandra 中的数据?

    我在应用程序中使用 mySQL 一段时间了 收集的数据越多 速度就越慢 所以我一直在研究 NOSQL 选项 我在 mySQL 中拥有的东西之一是从一堆连接创建的视图 该应用程序在网格中显示所有重要信息 用户可以在此数据集上选择范围 进行搜索
  • CAS(代码访问安全)的目的是什么?

    我参与过很多 Web 应用程序 但从未使用过 CAS 也许也从未觉得有必要使用它 什么时候需要使用CAS 人们真的在他们的应用程序中使用它吗 CAS 实际上只在桌面应用程序中有用 可以这么说 在桌面应用程序中 您想要限制通过网络 例如 运行
  • 我应该使用包管理器还是从源代码在 Ubuntu 上安装 node.js?

    有谁知道从源代码安装最新版本是否是一条危险的路线 我应该坚持使用包管理器吗 目前的建议 Use 在 Linux 上安装节点 https github com dweldon install node on linux如果您想要使用您的用户帐
  • 如何使用 pymongo 在 mongodb 中查询日期?

    我试图在 mongodb 中执行查询日期 但结果始终为空 我的查询如下 in the begin code def init self self now datetime now self db conexaoMongo self hora
  • 修订:算法和数据结构

    我需要通过修订来构建和处理数据的想法 例如 我有一个对象数据库 例如汽车 每个对象都有许多属性 这些属性可以是任意的 因此没有一个固定的模式来描述这些对象 这些对象可能保存为键值对 现在我需要更改对象的属性 我不想完全重写它 我希望能够返回
  • Elasticsearch 聚合过滤器

    因为我在谷歌上找不到任何东西 是否可以在elasticsearch中过滤聚合 我正在考虑这样的事情 获取 SOME object X gt 100 的所有对象 提前致谢 编辑 样本数据 我有以下文档结构 docKey 1 value 2 d
  • nginx + WordPress:SFTP + 自动更新的适当用户/文件权限?

    I used this http wordimpress com aws ec2 rds s3 cloudfront nginx wordpress tutorial roundup 在 Ubuntu VPS 上安装 nginx 和 Wor
  • 了解 ASP.NET 应用程序文件夹

    ASP NET 中的应用程序文件夹用于存储对运行网站至关重要的各种元素 我想更深入地了解这些文件夹 特别是文件夹的可访问性 根据有关的文章ASP NET 网站布局 http msdn microsoft com en us library
  • 此 JavaScript 如何在 Firefox 中打开 Windows 设置?

    新安装 Firefox 45 开发版后 我看到了这个页面 它有一个按钮 让我们开始吧 单击该按钮时 会以某种方式打开选择默认应用程序Windows 10 中的设置页面 这是怎么做到的 我无法通过开发者控制台在该页面上迷宫般的代码中找到任何内
  • 如何使用过滤器进行输出编码以防止XSS?

    我在 servlet 中使用以下代码 protected void doGet HttpServletRequest request HttpServletResponse response throws ServletException
  • Redis - 错误:值不是有效的浮点数

    我在 Redis 中有一个排序集 我试图通过在Python代码中使用zincrby来更新特定元素的计数器值 例如 conn zincrby usersSet float 1 user1 但它显示错误为 错误 值不是有效的浮点数 我在 cli
  • Microsoft.Extensions.Caching.Redis 选择与 db0 不同的数据库

    一个关于了解使用哪个redis数据库以及如何配置它的问题 我有一个默认值ASP NET Core Web 应用程序和默认配置的本地redis服务器 含15个数据库 通过包管理控制台我已经安装了 Install Package Microso
  • SSLContext 初始化

    我正在看JSSE参考指南 我需要获取一个实例SSLContext为了创建一个SSLEngine 所以我可以使用它Netty以启用安全性 获取实例SSLContext I use SSLContext getInstance 我看到该方法被重
  • 生产环境的 Flask-Login 与 Flask-Security

    我正在构建一个功能 供用户注册 登录 验证和授权自己 特别是使用 Python Flask 作为后端 我找到了一些解决方案 例如flask login and flask security 据我了解 flask login实际上并没有进行任
  • Mongodump之后,调用MongoRestore挂起

    我们正在尝试在相对较小的数据库上做一个简单的 MongoDump 我们的步骤很简单 export 从目标机器上删除现有数据库 在目标机器上导入 MongoDump 完美执行 mongodump out root mongo prod DB
  • 如何在Redis中使用HSCAN命令?

    我想在我的作业中使用 Redis 的 HSCAN 命令 但我不知道它是如何工作的 Redis 的官方页面 http redis io commands hscan http redis io commands hscan 这个命令给了我空白
  • gitlab 上的权限被拒绝(公钥)

    我的问题是我无法从 GitLab 推送或获取 不过 我可以克隆 通过 HTTP 或通过 SSH 当我尝试推送时出现此错误 权限被拒绝 公钥 致命 无法从远程存储库读取 从我看过的所有线程中 这是我所做的 在我的计算机上设置 SSH 密钥并将
  • spring中如何使用jackson代替JdkSerializationRedisSerializer

    我在我的一个 Java 应用程序中使用 Redis 并且正在序列化要存储在 Redis 中的对象列表 但是 我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer 相反 我想使用 J
  • 评估 CRC-32 实现中的差异

    我见过相同基本 CRC 32 算法的许多不同实现 如下所示 int remain int sbox SIZESBOX int dividend int bit for dividend 0 dividend lt SIZESBOX divi

随机推荐

  • 如何在 Ubuntu 20.04 上设置 SSH 密钥

    Secure Shell SSH 是一种用于在客户端和服务器之间创建安全连接的网络协议 通过 SSH 您可以在远程计算机上运行命令 创建隧道 转发端口等 SSH 支持多种身份验证机制 最常见的两种是基于密码和公钥的身份验证 使用公钥进行认证
  • 巴什赫里多克

    在编写 shell 脚本时 您可能会遇到需要将多行文本或代码块传递给交互式命令的情况 例如tee cat or sftp 在 Bash 和 Zsh 等其他 shell 中 Here 文档 Heredoc 是一种重定向类型 允许您将多行输入传
  • 如何在 Ubuntu 18.04 上安装 Xrdp 服务器(远程桌面)

    Xrdp 是 Microsoft 远程桌面协议 RDP 的开源实现 允许您以图形方式控制远程系统 使用 RDP 您可以登录到远程计算机并创建真实的桌面会话 就像登录到本地计算机一样 本教程介绍如何在 Ubuntu 18 04 上安装和配置
  • 如何在 CentOS 7 上安装和配置 GitLab

    GitLab 是一个基于网络的开源Git存储库管理器编写为Ruby包括 wiki 问题管理 代码审查 监控以及持续集成和部署 它使开发人员能够构建 部署和运行他们的应用程序 GitLab 提供三种不同版本 社区版 CE 企业版 EE 和 G
  • 如何在 Linux 中获取目录的大小

    使用列出目录内容时ls命令 您可能已经注意到目录的大小几乎总是 4096 字节 4 KB 这是磁盘上用于存储目录元信息的空间大小 而不是它包含的内容 您要用来获取目录的实际大小的命令是du 它是 磁盘使用情况 的缩写 获取目录的大小 The
  • Linux 中的 awk 命令及示例

    Awk 是一种通用脚本语言 专为高级文本处理而设计 它主要用作报告和分析工具 与大多数其他过程性编程语言不同 awk 是数据驱动的 这意味着您定义一组要针对输入文本执行的操作 它获取输入数据 对其进行转换 并将结果发送到标准输出 本文涵盖了
  • 如何在 Debian 9 上安装 Minecraft 服务器

    我的世界 是有史以来最受欢迎的游戏之一 这是一款关于建造各种结构并进行冒险的沙盒视频游戏 本教程介绍了如何在 Debian 9 上安装和配置 Minecraft 服务器 我们将使用 Systemd 来运行 Minecraft 服务器和mcr
  • 如何在 Ubuntu 18.04 上安装 Opera Web 浏览器

    Opera是世界上最流行的跨平台网络浏览器之一 它是专为现代网络构建的快速 易于使用且安全的浏览器 Opera 基于与Chrome并提供类似的浏览体验 并允许您从 Google 官方网上应用店安装 Chrome 扩展程序 它具有内置功能 例
  • 如何在 Vim / Vi 中显示行号

    Vim Vi 是许多软件开发人员和 L inux 系统管理员首选的文本编辑器 默认情况下 Vim 不显示行号 但可以轻松打开它们 Vim 支持三种行号模式 可帮助您浏览文件 除了标准的绝对行编号之外 Vim 还支持相对和混合行编号模式 本文
  • 如何在 CentOS 7 上安装 Webmin

    Webmin是一个用于 Linux UNIX 系统管理的开源 Web 控制面板 Webmin 允许您管理用户 组 磁盘配额以及配置最流行的服务 包括 Web FTP 电子邮件和数据库服务器 本教程介绍如何在 CentOS 7 服务器上安装
  • 如何在 Linux 中更改 SSH 端口

    默认情况下 SSH 侦听端口 22 更改默认 SSH 端口可以降低自动攻击的风险 从而为您的服务器增加了额外的安全层 本教程介绍如何更改 Linux 中的默认 SSH 端口 我们还将向您展示如何配置防火墙以允许访问新的 SSH 端口 保护服
  • 如何使用 SOCKS 隧道在没有 VPN 的情况下安全地路由 Web 流量

    作者选择了COVID 19 救济基金接受捐赠作为为捐款而写程序 介绍 在某些时候 您可能会发现自己所在的网络不安全或防火墙限制过于严格 并且您需要确保没有人在监视您的流量 一种解决方案是使用 VPN 但许多 VPN 需要在您的计算机上安装特
  • Java 集合 sort()

    今天我们将研究Java集合的排序方法 在与java中的集合 我们经常需要对数据进行排序 Java 集合 sort Java Collections类为我们提供了非常方便的方法Collections sort 对所有进行排序List实施例如链
  • 提高 React 应用程序性能的 5 个技巧

    您的 React 应用程序是否感觉有点迟缓 您是否因为可能看到的内容而害怕打开 Chrome DevTools 中的 paint flash 试试这 5 个性能技巧 本文包含 React 开发的 5 个性能技巧 您可以使用此目录快速浏览本文
  • 如何在 Linux 上读取和设置环境变量和 Shell 变量

    介绍 当通过 shell 会话与服务器交互时 shell 会编译许多信息来确定其行为和对资源的访问 其中一些设置包含在配置设置中 而其他设置则由用户输入确定 shell 跟踪所有这些设置和详细信息的一种方法是通过它维护的一个称为环境 环境是
  • Python 当前日期时间

    我们可以使用Python datetime模块来获取本地系统的当前日期和时间 from datetime import datetime Current date time in local system print datetime no
  • 如何在 CentOS 7 上安装和使用 Docker

    介绍 Docker 是一个应用程序 可以让在容器中运行应用程序进程变得简单 容易 就像虚拟机一样 只是更便携 更资源友好 更依赖于主机操作系统 有关 Docker 容器的不同组件的详细介绍 请查看Docker 生态系统 常用组件简介 在 C
  • 如何在 Ubuntu 18.04 上安装/卸载 NodeJS

    NodeJS 是一个 JavaScript 框架 可让您轻松构建快速的网络应用程序 在本指南中 我们将深入研究如何在 Ubuntu 18 04 上安装 NodeJS 步骤 1 将 NodeJS PPA 添加到 Ubuntu 18 04 首先
  • 在 C/C++ 中使用 getch() 函数

    在本文中 我们将了解在 C C 中使用 getch 函数 如果您想读取从键盘输入的字符 getch 函数非常有用 虽然这不是 C 标准的一部分 但这仍然是 POSIX C 函数 因此 我们仍然可以在 Windows Linux Mac 上使
  • 如何保护 Ubuntu 14.04 上的 Redis 安装

    介绍 Redis 是一种内存中 NoSQL 键值缓存和存储 也可以持久保存到磁盘上 本教程展示如何实现 Redis 服务器的基本安全性 但是 请记住 Redis 是为以下用户而设计的 值得信赖的客户 in a 可信环境 本身没有强大的安全功