启动器 产品 Bitnami 文档imaxe CLI 博客 联系
缓存 memcachedcachesasltlshardened

Memcached Hardened

经过加固、可直接用于生产的 Memcached:强制 SASL、默认防火墙以及无人值守的安全更新。

区域
32 AWS
最新版本
v2.0
Memcached
1.6
架构
arm64
Lynis
100/100
SASL + TLS
标配
价格
0.008 USD/小时 · 60 USD/年
详细程度

描述 #

Imaxe Hardened Memcached 是一款经过加固、可直接用于生产的 Memcached AMI,旨在直接替代「Memcached packaged by Bitnami」。它使用 Ubuntu 的标准软件包安装 Memcached — apt、systemd 和 FHS 标准路径,没有 /opt 下的单体目录树,也没有专有的进程管理器 — 构建在 imaxe 的加固基线之上。

与 Bitnami 产品相比,出厂即有两点安全差异:SASL 认证默认启用(而非禁用),每个实例拥有唯一密码;网络流量通过 TLS 加密,证书同样在每个实例上生成。由于 memcached 唯一的 SASL 机制是 PLAIN,没有 TLS 时密码将以明文传输 — 在这里这不可能发生。

其余部分是 imaxe 的加固基线:默认拒绝的防火墙、强化的 SSH、处于 enforce 模式的 AppArmor、基于 auditd 的审计、AIDE 文件完整性校验、rkhunter rootkit 检测、ClamAV 防病毒以及 fail2ban 暴力破解防护。每次发布均通过 Lynis 审计验证,完整报告可在下方阅读。

快速指南:5 分钟投入使用 #

从零到一套已加固的生产缓存,所需的全部步骤。

最快的方式:启动器

无需与 AWS 控制台搏斗。imaxe 启动器是一个引导式表单,只询问必要的信息 — 区域、实例类型、网络和 SSH 访问 — 并生成一份 CloudFormation 模板,部署已配置好的 AMI。它帮您避开手动启动的常见错误(架构选错、安全组开放过度、未分配密钥对),并把整个堆栈完全置于您自己账户的控制之下。

如果您更愿意手动操作,完整流程共五个步骤:

步骤操作位置时间
1订阅并启动 AMI — 任意 arm64(Graviton)实例;推荐使用 t4g.medium。含 7 天免费试用。AWS Marketplace → EC2约 2 分钟
2在安全组中开放端口 22,并限制为您的 IP 或 CIDR。11211 端口是特意关闭的:仅当您的应用运行在另一台机器上时,才将其开放给您 VPC 的 CIDR。EC2 控制台1 分钟
3读取 SASL 凭据 — 位于系统控制台(EC2 的 System Log),或通过 SSH 执行 sudo imaxe memcached credentials。首次启动时密码为 instance-id。EC2 控制台或 SSH1 分钟
4用 TLS + SASL 连接您的客户端:用户 memcached、实例的密码和端口 11211。证书为自签名:让您的客户端信任 /etc/memcached/tls/server.crt您的应用约 1 分钟
5完成 — 缓存大小已按实例调整好。使用 imaxe memcached status 查看状态。实例内
就这么简单

没有配置向导,也没有必须执行的后续步骤:镜像出厂即已加固并完成规格调整。本页其余内容均为可选。如遇问题,请直接前往故障排查

特性 #

镜像包含的全部内容,按标准功能与我们的独有功能分组。

通用

  • Memcached 1.6 来自 Ubuntu 26.04 LTS(resolute,arm64)的官方软件包,由 systemd 管理 — 没有 /opt 目录树,也没有专有脚本。
  • Ubuntu 基线在每次构建时更新,并启用自动安全补丁(unattended-upgrades)。
  • ufw 防火墙默认拒绝:本地仅允许 22(SSH)和 11211(memcached);Marketplace 的安全组只开放 22。
  • 强化的 SSH:禁止 root、禁止密码,仅允许公钥,采用现代加密算法(ed25519、chacha20-poly1305、后量子密钥交换 sntrup761x25519)。
  • AppArmor 安装了额外配置文件,且全部处于 enforce 模式。
  • 通过 sysctl 强化内核,挂载点使用 noexec,nosuid,nodev/proc 使用 hidepid=2
  • 基于 auditd 的完整审计、AIDE 与 debsums 完整性校验、rkhunter 与 ClamAV 反恶意软件,以及与 ufw 集成的 fail2ban。

特有

  • SASL 出厂即强制启用: 用户 memcached,每个实例拥有唯一密码(首次启动时为 instance-id),并输出到 EC2 系统控制台 — 从 Bitnami 迁移过来的用户会到这里寻找它。AMI 中不烘焙任何凭据:每个实例都使用全新凭据。
  • 11211 端口标配 TLS(最低 TLS 1.2):每个实例自行签发自签名证书 — EC P-256 密钥,以 instance-id 为 CN,以实例的 IP 和名称为 SAN — 在服务启动之前完成。您也可以安装自己的证书。
  • 11212 明文端口仅监听 loopback,供系统工具使用(memcstat 等工具不支持 TLS)。它仍然要求 SASL,且无法从外部访问。
  • UDP 被明确禁用-U 0):memcached 的 UDP 协议是经典的 DDoS 放大攻击载体。
  • 每次启动自动调优: imaxe memcached optimize 根据实际的 CPU 和内存重新计算缓存内存、连接数和线程数 — 停止实例、更换类型、再启动,缓存就会自动重新调整规格。
  • 无需重启的 SASL 用户管理: imaxe memcached users add/rotate/delete — SASL 数据库在每次认证时读取,缓存不会被清空。
  • 内置 imaxe 工具: 一个 CLI,用于操作服务、凭据、证书和全部加固,无需手动编辑文件。
  • 每次发布都执行 Lynis 审计,完整报告发布在本页。

imaxe 模块

预置在这款 AMI 中的 imaxe 工具模块及其文档:

模块功能文档
memcached产品模块:状态、凭据、SASL 用户、TLS 以及服务的自动调优。查看文档 →
os系统基础:无人值守更新、locale、时区、主机名和时间。查看文档 →
ssh授权密钥、host keys、活动会话,以及一条命令完成 sshd 加固。查看文档 →
firewallufw 状态、封禁/解封 IP,以及开放或关闭端口。查看文档 →
auditauditd 事件和 CIS 审计规则,无需与 auditctl 搏斗。查看文档 →
aide基于 AIDE 的文件完整性(FIM)。查看文档 →
rkhunter扫描服务器查找 rootkit。查看文档 →
clamav运行时的 ClamAV 防病毒。查看文档 →
lynis系统加固审计,输出可执行的报告。查看文档 →
fail2banjail 状态、被封禁的 IP,以及手动封禁和解封。查看文档 →
secrets生成、读取和轮换实例的本地机密 — 包括 SASL 密码。查看文档 →
infoAMI 清单,位于 /etc/imaxe/info.yaml,不含机密。查看文档 →
global-alerts实例的全局告警总线(SNS)。文档准备中

规格与成本 #

这款 AMI 可运行于 AWS 上任何 arm64(Graviton)实例,并自动调整规格:每次启动时,imaxe memcached optimize 将可用内存的 60%(预留 512 MB 给操作系统和代理之后)分配给缓存,并根据实例规格推算线程数和连接数。请按所需缓存容量选择实例类型:内存越大 = 缓存越大,无需改动任何配置。推荐的起步实例是 t4g.medium,本镜像的构建和测试也在其上执行。

项目价格
按小时订阅每实例 0.014 美元/小时
按年订阅每实例 99 美元/年
免费试用7 天

订阅价格之外还需支付常规的 AWS 费用(EC2 实例、EBS 磁盘和流量),按您的费率直接支付给 AWS。Memcached 是内存缓存:选择实例时请优先考虑内存而非磁盘。

Lynis 报告 #

每个已发布版本的 Lynis 加固审计结果:加固指数、警告和建议,附逐行完整报告。

版本加固指数测试警告建议审计日期报告
v2.0100/100241002026-08-15HTML · PDF ↓
v1.094/100244112026-08-05HTML · PDF ↓

加固指数由 Lynis 根据通过的测试计算得出。我们在每次发布时重新执行审计,并在镜像上架 Marketplace 之前人工复核每一条警告和建议;未解决事项的详细信息见报告本身。

可用版本 #

已在 AWS Marketplace 发布的此 AMI 版本:

版本MemcachedUbuntu架构状态发布时间
v2.01.626.04 LTS (resolute)arm64 活跃2026-08
v1.01.624.04 LTS (noble)arm64 活跃2026-08

生命周期

v2.0 是当前版本,处于活跃维护中:Ubuntu 的安全补丁通过 unattended-upgrades 自动到达实例,我们也按固定节奏在 Marketplace 发布新版本的 AMI,每个版本都有自己的 Lynis 审计。新版本发布后将出现在此表格和更新日志中。

如何启动 AMI #

该 AMI 遵循 EC2 在 arm64(Graviton)实例上的标准启动流程。Marketplace 的安全组只开放一个端口:

类型协议端口来源
(*) SSHTCP22您的 CIDR
Memcached(可选)TCP11211仅限您 VPC 的 CIDR 或客户端的安全组
不要把缓存暴露到互联网

与 Bitnami 产品一样,11211 端口在安全组中是特意关闭的。即便有 TLS 保护,也只应向您的私有网络开放 — 绝不要使用 0.0.0.0/0。内部防火墙(ufw)已经允许该端口,因此只需添加安全组规则即可。如需从外部临时访问,请使用 SSH 隧道:ssh -i clave.pem -L 11211:127.0.0.1:11211 ubuntu@<ip-publica>(本 AMI 允许端口转发,这一点与其他 imaxe 镜像不同)。在实例内部,sudo imaxe memcached open-port --cidr <您的网段>close-port 用于控制本机防火墙。

仅限 arm64

v2.0 面向 arm64 架构发布:请选择 Graviton 系列(t4gm7g/m8gc6gc8gr7g/r8g…)。它无法在 x86_64 实例上启动。

启动之后 — SSH: 使用启动时选择的密钥对,以 ubuntu 用户登录。没有可访问的 root 用户,也没有密码认证。缓存凭据: SASL 用户 memcached,初始密码为 instance-id,可在 EC2 系统控制台查看,或通过 SSH 执行:

terminal
ssh -i mi-keypair.pem ubuntu@<ip-de-la-instancia>
sudo imaxe memcached credentials      # usuario, password y puerto
imaxe memcached tls show              # huella del certificado de esta instancia

镜像内部 # 专家

AMI 内部运行的一切、各项内容的位置,以及日常会用到的命令。

服务与端口

服务systemd 单元端口功能
Memcachedmemcached.service11211缓存服务,强制 TLS(最低 1.2)和 SASL
Memcached(loopback)memcached.service11212仅在 127.0.0.1 上明文监听,供本地工具使用;SASL 仍然是强制的
实例初始化imaxe-memcached-instance-setup.service每次启动时先于 memcached 运行:TLS 证书、SASL 凭据和调优。幂等
OpenSSHssh.service22强化的远程访问(drop-in 99-imaxe-harden.conf
ufwufw.service默认拒绝的防火墙(允许 22 和 11211)
auditdauditd.service系统审计(身份、sudoers、sshd、登录)
fail2banfail2ban.service通过 ufw 封禁 SSH 暴力破解,读取 journal
AppArmorapparmor.service强制访问控制,所有配置文件均处于 enforce 模式
freshclamclamav-freshclam.serviceClamAV 病毒库更新,每天 24 次
unattended-upgradesapt-daily-upgrade.timer自动安全补丁

memcached 服务在烘焙阶段保持停止状态,首次启动发生在您的实例上:AMI 中既没有证书也没有凭据。标记文件 /etc/memcached/tls/.generated-for 保存证书对应的 instance-id;克隆实例时 id 不匹配,材料会自动重新生成。

关键路径

路径说明
/etc/memcached.conf服务配置;BEGIN/END imaxe memcached optimize 区块由模块在每次启动时重写
/etc/memcached/tls/本实例的 TLS 证书和密钥(server.crt / server.key)
/etc/sasl2/memcached-sasldb2SASL 用户数据库(通过 imaxe memcached users 管理)
/etc/imaxe/secrets/memcached/password实例的 SASL 密码(0600,root)
/etc/imaxe/memcached.ymlimaxe memcached 模块的配置
/etc/ssh/sshd_config.d/99-imaxe-harden.confsshd 加固(drop-in,不改动主配置文件)
/etc/sysctl.d/99-zz-imaxe-harden-kernel.conf通过 sysctl 加固内核
/var/log/sudo.log所有 sudo 使用记录
/usr/local/bin/imaxeimaxe CLI 二进制文件

常用命令

任务命令
服务状态、监听、TLS、SASL 和统计信息imaxe memcached status
本实例的凭据sudo imaxe memcached credentials
轮换 SASL 密码(无需重启,不清空缓存)sudo imaxe memcached users rotate
SASL 用户:新增 / 列出 / 删除sudo imaxe memcached users add app1
当前证书(主题、SAN、有效期、指纹)imaxe memcached tls show
重新生成证书(例如更换公网 IP 之后)sudo imaxe memcached tls renew –force
查看本实例的推荐调优imaxe memcached optimize –show
立即应用调优(会重启:清空缓存)sudo imaxe memcached optimize
服务日志journalctl -u memcached
实例初始化日志journalctl -u imaxe-memcached-instance-setup

使用系统工具进行本地检查 — libmemcached-tools 不支持 TLS,因此使用 loopback 的明文端口(加 --binary 是因为 libmemcached 仅在二进制协议上支持 SASL):

terminal
memcstat --binary --servers=127.0.0.1:11212 --username=memcached \
         --password=$(sudo imaxe memcached credentials --show-password --json | jq -r .password)

如需安装自己的证书替换自签名证书:

terminal
sudo install -m 0644 -o root -g root mi.crt /etc/memcached/tls/server.crt
sudo install -m 0640 -o root -g memcache mi.key /etc/memcached/tls/server.key
sudo rm -f /etc/memcached/tls/.generated-for   # sin testigo, el módulo no lo toca
sudo systemctl restart memcached

此外,加固的每个子系统在 imaxe CLI 中都有对应模块 — 参见 imaxe 模块

备份与更新 #

  • 自动补丁: unattended-upgrades 每天自动应用 Ubuntu 安全更新,无需干预。
  • 病毒库: freshclam 每天更新 ClamAV 数据库 24 次。
  • 新 AMI: 我们按固定节奏在 Marketplace 发布镜像的更新版本;每个版本发布前都会通过自己的 Lynis 审计。
  • 备份:设计上就没有。 Memcached 是易失性缓存:其内容在每次重启时丢失,不应存放任何数据的唯一副本。没有任何东西需要备份或恢复。
重启会清空缓存

任何 systemctl restart memcached — 包括 sudo imaxe memcached optimize 应用调优时执行的那次 — 都会清空缓存。相反,SASL 用户和密码的变更需要重启。此外,如果您安装或修改了软件,请重新生成 AIDE 基线(sudo aideinit 或通过 imaxe 的 aide 模块)。

故障排查 #

几乎所有工单集中的问题,及其常见原因和解决方法。

症状可能原因解决方法
实例无法启动使用了 x86_64 实例类型该 AMI 为 arm64:请使用 Graviton 系列(t4gc6gc8gm7g…)
无法通过 SSH 连接安全组未开放端口 22,或 IP 不在允许的 CIDR 内检查安全组 — 参见如何启动 AMI
Permission denied (publickey)密码认证已被禁用使用启动时的密钥对以 ubuntu 登录:ssh -i clave.pem ubuntu@<ip>
多次尝试后 SSH 不再响应fail2ban 封禁了您的 IP(10 分钟内 5 次失败 = 封禁 1 小时)等待一小时,或从另一个 IP 执行:sudo fail2ban-client set sshd unbanip <ip>
无法从其他机器访问 11211Marketplace 的安全组只开放了 22为 11211 添加一条限制为您 CIDR 的安全组规则 — ufw 已经允许该端口
客户端一连接 socket 就被关闭客户端不支持 TLS,或没有做 SASL使用支持 TLS + SASL 的库(pymemcachetls_contextphp-memcachedOPT_USE_TLS…),并信任 /etc/memcached/tls/server.crt
memcstat 连接 11211 无响应libmemcached-tools 编译时未启用 TLS使用 loopback 的明文端口:memcstat --binary --servers=127.0.0.1:11212 …
克隆/替换实例后认证失败凭据会为新的 instance-id 重新生成读取新凭据:sudo imaxe memcached credentials(或 EC2 系统控制台)
更换实例类型后缓存没有用满内存调优在启动时应用重启实例,或执行 sudo imaxe memcached optimize

常见问题 #

memcached 的密码在哪里?

首次启动时,SASL 用户 memcachedinstance-id 作为密码创建。它会输出到 EC2 系统控制台(System Log)— 从 Bitnami 迁移过来的用户会到这里寻找它 — 并保存在 /etc/imaxe/secrets/memcached/password。通过 SSH:sudo imaxe memcached credentials

如何更改密码或添加用户?

sudo imaxe memcached users rotate 生成一个新的随机密码;--stdin 可接受指定密码而不留在命令历史中。users add / users delete 用于管理更多用户。任何操作都不会重启服务或清空缓存。

为什么我的客户端连不上,而在 Bitnami 上可以?

因为这里 SASL 和 TLS 出厂即启用(在 Bitnami 中 SASL 默认禁用)。您的客户端需要支持 TLS + SASL 并信任实例的证书。这是有意为之:memcached 唯一的 SASL 机制是 PLAIN,没有 TLS 时密码将以明文传输。

我可以把 11211 开放到互联网吗?

能是能 — 但请不要这样做。将安全组规则限制为您 VPC 的 CIDR 或客户端的安全组,或使用 SSH 隧道(-L)进行临时访问。公开的缓存是经典的攻击目标,即便加了密也一样。

证书是自签名的吗?我可以用自己的证书吗?

是的,都可以。默认证书由每个实例为自己签发(CN = instance-id,SAN 包含其 IP 和名称);其 SHA-256 指纹会输出到系统控制台,也可通过 imaxe memcached tls show 查看。要使用自己的证书,把 crt/密钥复制到 /etc/memcached/tls/,删除标记文件 .generated-for 并重启 — 参见镜像内部

缓存怎么定规格?不够用了怎么办?

不需要手动定规格:每次启动时模块会把可用内存的 60% 分配给缓存,并根据实例规格推算线程数和连接数。如果需要更大的缓存,停止实例、更换为内存更大的类型再启动 — 调优会自动重新计算。

它能在 x86_64 实例上运行吗?

不能。v2.0 面向 arm64(AWS Graviton)发布:t4gc6gc8gm6gm8gr6gr8g 等系列。

订阅具体包含什么?

加固的 AMI、产品生命周期内的新版本,以及构建团队的支持。按实例付费:0.014 美元/小时或 99 美元/年,含 7 天免费试用。

更新日志 #

AMI 的历史。日期对应每个版本在 AWS Marketplace 的发布时间。

v2.0 2026-08-19最新

基线升级至 Ubuntu 26.04,Lynis 100/100

AMI 在 Ubuntu 26.04 LTS(resolute)arm64 上重新构建,Lynis 审计达到最高指数。

改进 基线从 Ubuntu 24.04 LTS 升级到 26.04 LTS(resolute);Memcached 1.6 仍来自 Ubuntu 官方软件包。发布至相同的 32 个 AWS 区域。
安全 Lynis 审计 100/100(241 项测试,0 条警告,0 条建议):v1.0 遗留的未解决事项已全部解决。基线加固保持不变:SASL + TLS 标配、ufw、强化 SSH、AppArmor、auditd、AIDE、rkhunter、ClamAV 和 fail2ban。
v1.0 2026-08-14

首次发布

在 AWS Marketplace 的首个公开版本,基于 Ubuntu 24.04 LTS arm64。

新增 AMI 发布至 32 个 AWS 区域,arm64(Graviton)架构,采用 Ubuntu 软件包中的 Memcached 1.6。
安全 SASL 出厂即启用,每个实例拥有唯一凭据,网络端口强制 TLS(最低 1.2);UDP 已禁用。基线全面加固:ufw、强化 SSH、AppArmor、auditd、AIDE、rkhunter、ClamAV 和 fail2ban。Lynis 审计 94/100。
新增 每次启动自动调优缓存(imaxe memcached optimize),并内置带 13 个模块的 imaxe 工具。
活跃支持 · 周一至周五 9:00–18:00 CET

需要这款 AMI 的帮助吗?

回复您的正是构建这个镜像的团队 — 真正的工程师,没有机器人,也没有一线客服。

< 4 小时工作日首次响应
ES / EN支持语言
已包含在 AMI 价格中