Описание #
Этот AMI — прямая замена «Memcached packaged by Bitnami»: тот же порт, та же логика работы и первоначальные учётные данные в системном журнале EC2, там же, где вы привыкли их искать. А если нужна другая комбинация версий и параметров — другая версия Memcached, другая база Ubuntu или конфигурация под вашу архитектуру, — напишите в поддержку, и мы соберём образ под ваши требования.
Imaxe Hardened Memcached — это усиленная и готовая к продакшену AMI с Memcached, задуманная как прямая замена «Memcached packaged by Bitnami». Memcached устанавливается из стандартных пакетов Ubuntu — apt, systemd и пути FHS, без монолитных деревьев в /opt и проприетарных супервизоров — поверх усиленной базы imaxe.
Два отличия в безопасности с завода по сравнению с продуктом Bitnami: аутентификация SASL включена (а не отключена), с уникальным паролем для каждого инстанса, и сетевой трафик шифруется TLS с сертификатом, который также генерируется на каждом инстансе. Поскольку единственный механизм SASL у memcached — PLAIN, без TLS пароль передавался бы в открытом виде — здесь это невозможно.
Остальное — усиленная база imaxe: файрвол с запретом по умолчанию, усиленный SSH, AppArmor в режиме enforce, аудит через auditd, контроль целостности файлов с AIDE, обнаружение руткитов с rkhunter, антивирус 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 закрыт намеренно: открывайте его только для CIDR вашей VPC, если приложение работает на другой машине. | Консоль EC2 | 1 мин |
| 3 | Прочитайте учётные данные SASL — они в системной консоли (System Log в EC2) или по SSH командой sudo imaxe memcached credentials. При первой загрузке пароль — это instance-id. | Консоль EC2 или SSH | 1 мин |
| 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, постквантовый kex sntrup761x25519).
- AppArmor с установленными дополнительными профилями, все в режиме enforce.
- Усиленное ядро через sysctl, точки монтирования с
noexec,nosuid,nodev,/procсhidepid=2. - Полный аудит через
auditd, целостность с AIDE и debsums, анти-malware с rkhunter и ClamAV, fail2ban, интегрированный с ufw.
Особенное
- SASL обязателен с завода: пользователь
memcachedс уникальным паролем для каждого инстанса (instance-id при первой загрузке), выводится в системную консоль EC2 — там, где его ищут пришедшие с Bitnami. Ничего не запекается в AMI: каждый инстанс получает свои учётные данные. - TLS из коробки на порту 11211 (минимум TLS 1.2): самоподписанный сертификат выпускается на каждом инстансе — ключ EC P-256, instance-id как CN, IP-адреса и имена инстанса как SAN — до старта службы. Можно установить свой.
- Порт 11212 без шифрования только на loopback, для системных инструментов (
memcstatи компания не умеют TLS). SASL по-прежнему обязателен, снаружи порт недоступен. - UDP явно отключён (
-U 0): UDP-протокол memcached — классический вектор DDoS-амплификации. - Автоматический тюнинг при каждой загрузке:
imaxe memcached optimizeпересчитывает память кэша, соединения и потоки по реальным CPU и RAM — остановите инстанс, смените тип, запустите, и кэш сам изменит размер. - Управление пользователями SASL без перезапусков:
imaxe memcached users add/rotate/delete— база SASL читается при каждой аутентификации, кэш не очищается. - Порт и пароль из CLI (новое в v2.1):
sudo imaxe memcached open-port --cidr <сеть>иclose-portуправляют портом 11211 в локальном файрволе, аset-passwordменяет учётные данные продукта без перезапуска службы и не трогая остальных пользователей SASL. - Встроенный инструмент
imaxe: CLI для управления службой, учётными данными, сертификатом и всем усилением без ручного редактирования файлов. - Аудит Lynis при каждой публикации, полный отчёт публикуется на этой странице.
Модули imaxe
Модули инструмента imaxe, запечённые в этой AMI, с их документацией:
| Модуль | Что делает | Документация |
|---|---|---|
| memcached | Модуль продукта: состояние, учётные данные, пользователи SASL, TLS и автоматический тюнинг службы. | Смотреть docs → |
| os | База системы: автоматические обновления, локаль, часовой пояс, hostname и время. | Смотреть docs → |
| ssh | Авторизованные ключи, host keys, активные сессии и усиление sshd одной командой. | Смотреть docs → |
| firewall | Состояние ufw, блокировка/разблокировка IP и открытие или закрытие портов. | Смотреть docs → |
| audit | События auditd и правила аудита CIS без борьбы с auditctl. | Смотреть docs → |
| aide | Целостность файлов (FIM) с AIDE. | Смотреть docs → |
| rkhunter | Сканирование сервера на руткиты. | Смотреть docs → |
| clamav | Антивирус ClamAV в рантайме. | Смотреть docs → |
| lynis | Аудит усиления системы с практичным отчётом. | Смотреть docs → |
| fail2ban | Состояние jail’ов, забаненные IP, ручной бан и разбан. | Смотреть docs → |
| secrets | Генерирует, читает и ротирует локальные секреты инстанса — включая пароль SASL. | Смотреть docs → |
| info | Инвентаризация AMI в /etc/imaxe/info.yaml, без секретов. | Смотреть docs → |
| global-alerts | Сквозная шина оповещений инстанса (SNS). | Смотреть docs → |
Выбор размера и стоимость #
AMI работает на любом инстансе arm64 (Graviton) в AWS и подстраивается сама: при каждой загрузке imaxe memcached optimize выделяет кэшу 60 % доступной RAM (после резервирования 512 MB для ОС и агентов) и выводит число потоков и соединений из размера инстанса. Выбирайте тип по нужному объёму кэша: больше RAM = больше кэш, без правки конфигурации. Рекомендуемый стартовый инстанс — t4g.medium; на нём же выполняются сборки и тесты этого образа.
| Позиция | Цена |
|---|---|
| Почасовая подписка | 0,014 $/ч за инстанс |
| Годовая подписка | 99 $/год за инстанс |
| Бесплатный пробный период | 7 дней |
К цене подписки добавляется обычная стоимость AWS (инстанс EC2, диск EBS и трафик), которую вы платите напрямую AWS по вашему тарифу. Memcached — это кэш в памяти: при выборе инстанса отдавайте приоритет RAM, а не диску.
Отчёты Lynis #
Результат аудита усиления Lynis для каждой опубликованной версии: индекс hardening, предупреждения и рекомендации, с полным построчным отчётом.
| Версия | Индекс hardening | Тесты | Предупреждения | Рекомендации | Аудит | Отчёт |
|---|---|---|---|---|---|---|
| v2.1 | 100/100 | 241 | 0 | 0 | 2026-08-23 | HTML · PDF ↓ |
| v2.0 | 100/100 | 241 | 0 | 0 | 2026-08-15 | HTML · PDF ↓ |
| v1.0 | 94/100 | 244 | 1 | 1 | 2026-08-05 | HTML · PDF ↓ |
Индекс hardening рассчитывается Lynis по пройденным тестам. Мы повторяем аудит при каждой публикации и вручную разбираем каждое предупреждение и рекомендацию перед загрузкой образа в Marketplace; детали открытых находок — в самом отчёте.
Доступные версии #
Версии этой AMI, опубликованные в AWS Marketplace:
| Версия | Memcached | Ubuntu | Архитектура | Статус | Публикация |
|---|---|---|---|---|---|
| v2.1 | 1.6 | 26.04 LTS (resolute) | arm64 | ✓ активна | 2026-08 |
| v2.0 | 1.6 | 26.04 LTS (resolute) | arm64 | ✓ активна | 2026-08 |
| v1.0 | 1.6 | 24.04 LTS (noble) | arm64 | ✓ активна | 2026-08 |
Жизненный цикл
v2.1 — текущая версия, опубликованная в AWS Marketplace 2026-08-24, активная и поддерживаемая; v2.0 и v1.0 остаются доступными для тех, кто ими пользуется. Патчи безопасности Ubuntu приходят на инстансы сами через unattended-upgrades, а новые версии AMI мы публикуем регулярно, каждая со своим аудитом Lynis — детали каждой версии в changelog.
Как запустить AMI #
AMI следует стандартному процессу запуска EC2 на инстансах arm64 (Graviton). Группа безопасности Marketplace публикует только один порт:
| Тип | Протокол | Порт | Источник |
|---|---|---|---|
| (*) SSH | TCP | 22 | ваши CIDR |
| Memcached (опционально) | TCP | 11211 | только CIDR вашей VPC или SG ваших клиентов |
Порт 11211 закрыт в группе безопасности намеренно, как и в продукте Bitnami. Даже с 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 управляют локальным брандмауэром.
v2.1 публикуется для архитектуры arm64: выбирайте семейство Graviton (t4g, m7g/m8g, c6g–c8g, r7g/r8g…). На инстансах x86_64 она не запустится.
После запуска — SSH: пользователь ubuntu с ключевой парой, выбранной при запуске. Доступа под root и аутентификации по паролю нет. Учётные данные кэша: пользователь SASL memcached с instance-id в качестве начального пароля, виден в системной консоли EC2 или по SSH:
ssh -i mi-keypair.pem ubuntu@<ip-de-la-instancia>
sudo imaxe memcached credentials # пользователь, пароль и порт
imaxe memcached tls show # отпечаток сертификата этого инстансаОбраз изнутри # эксперт
Всё, что работает внутри AMI, где что находится и команды, которые вы будете использовать каждый день.
Службы и порты
| Служба | Юнит systemd | Порт | Что делает |
|---|---|---|---|
| Memcached | memcached.service | 11211 | Кэш, с обязательными TLS (мин. 1.2) и SASL |
| Memcached (loopback) | memcached.service | 11212 | Слушает без шифрования только на 127.0.0.1, для локальных инструментов; SASL по-прежнему обязателен |
| Подготовка инстанса | imaxe-memcached-instance-setup.service | — | Перед memcached при каждой загрузке: сертификат TLS, учётные данные SASL и тюнинг. Идемпотентна |
| OpenSSH | ssh.service | 22 | Усиленный удалённый доступ (drop-in 99-imaxe-harden.conf) |
| ufw | ufw.service | — | Файрвол с запретом по умолчанию (разрешает 22 и 11211) |
| auditd | auditd.service | — | Аудит системы (учётные записи, sudoers, sshd, входы) |
| fail2ban | fail2ban.service | — | Бан перебора SSH через ufw, с чтением journal |
| AppArmor | apparmor.service | — | Мандатный контроль доступа, все профили в enforce |
| freshclam | clamav-freshclam.service | — | Обновление сигнатур ClamAV, 24 раза в день |
| unattended-upgrades | apt-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-sasldb2 | База пользователей SASL (управление через imaxe memcached users) |
| /etc/imaxe/secrets/memcached/password | Пароль SASL инстанса (0600, root) |
| /etc/imaxe/memcached.yml | Конфигурация модуля memcached инструмента imaxe |
| /etc/ssh/sshd_config.d/99-imaxe-harden.conf | Усиление sshd (drop-in, основной файл не трогается) |
| /etc/sysctl.d/99-zz-imaxe-harden-kernel.conf | Усиление ядра через sysctl |
| /var/log/sudo.log | Журнал всех использований sudo |
| /usr/local/bin/imaxe | Бинарник CLI imaxe |
Полезные команды
| Задача | Команда |
|---|---|
| Состояние службы, прослушиваемые порты, TLS, SASL и статистика | imaxe memcached status |
| Учётные данные этого инстанса | sudo imaxe memcached credentials |
| Сменить пароль продукта (без перезапуска, кэш не очищается) | sudo imaxe memcached set-password –random |
| Открыть / закрыть 11211 в локальном файрволе | sudo imaxe memcached open-port –cidr 10.0.0.0/16 |
| Ротировать пароль любого пользователя 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 только по бинарному протоколу):
memcstat --binary --servers=127.0.0.1:11212 --username=memcached \
--password=$(sudo imaxe memcached credentials --show-password --json | jq -r .password)Чтобы установить собственный сертификат вместо самоподписанного:
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Кроме того, у каждой подсистемы усиления есть свой модуль в CLI imaxe — смотрите модули imaxe.
Резервные копии и обновления #
- Автоматические патчи:
unattended-upgradesежедневно применяет обновления безопасности Ubuntu без вмешательства. - Антивирусные сигнатуры: freshclam обновляет базу ClamAV 24 раза в день.
- Новые AMI: мы регулярно публикуем обновлённые версии образа в Marketplace; каждая версия проходит собственный аудит Lynis перед публикацией.
- Резервные копии: их нет — так задумано. Memcached — это волатильный кэш: его содержимое теряется при каждом перезапуске и не должно содержать единственный экземпляр каких-либо данных. Резервировать и восстанавливать нечего.
Любой systemctl restart memcached — включая тот, который выполняет sudo imaxe memcached optimize при применении тюнинга — очищает кэш. Изменения пользователей и паролей SASL, напротив, перезапуска не требуют. А если вы устанавливаете или меняете ПО, перегенерируйте базовую линию AIDE (sudo aideinit или через модуль aide в imaxe).
Решение проблем #
Проблемы, на которые приходится почти вся поддержка, с типичной причиной и решением.
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Инстанс не запускается | Тип инстанса x86_64 | AMI — arm64: используйте семейство Graviton (t4g, c6g–c8g, m7g…) |
| Не могу подключиться по SSH | Порт 22 закрыт в группе безопасности или IP вне разрешённого CIDR | Проверьте SG — смотрите как запустить AMI |
Permission denied (publickey) | Аутентификация по паролю отключена | Подключайтесь как ubuntu с ключевой парой запуска: ssh -i clave.pem ubuntu@<ip> |
| SSH перестаёт отвечать после нескольких попыток | fail2ban забанил ваш IP (5 неудач за 10 мин = 1 ч) | Подождите час или с другого IP: sudo fail2ban-client set sshd unbanip <ip> |
| Не могу достучаться до 11211 с другой машины | Группа безопасности Marketplace открывает только 22 | Добавьте правило SG для 11211, ограниченное вашим CIDR — ufw его уже разрешает |
| Клиент закрывает сокет при подключении | Клиент не умеет TLS или не делает SASL | Используйте библиотеку с TLS + SASL (pymemcache с tls_context, php-memcached с OPT_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) |
| Кэш не использует RAM после смены типа инстанса | Тюнинг применяется при загрузке | Перезагрузите инстанс или выполните sudo imaxe memcached optimize |
Частые вопросы #
Где находится пароль memcached?
При первой загрузке пользователь SASL memcached создаётся с instance-id в качестве пароля. Он выводится в системную консоль EC2 (System Log) — там, где его ищут пришедшие с Bitnami — и хранится в /etc/imaxe/secrets/memcached/password. По SSH: sudo imaxe memcached credentials.
Как сменить пароль или добавить пользователей?
sudo imaxe memcached set-password (новое в v2.1) меняет учётные данные пользователя продукта: --random генерирует случайный пароль, --stdin принимает конкретный, не оставляя его в истории. users add / users delete управляют дополнительными пользователями, а users rotate ротирует пароль любого из них. Ни одна операция не перезапускает службу и не очищает кэш.
Почему мой клиент не подключается, если с Bitnami работало?
Потому что здесь SASL и TLS включены с завода (в Bitnami SASL отключён). Вашему клиенту нужна поддержка TLS + SASL и доверие к сертификату инстанса. Это сделано намеренно: единственный механизм SASL у memcached — PLAIN, и без TLS пароль передавался бы в открытом виде.
Могу ли я открыть 11211 в интернет?
Технически можете — но не делайте этого. Ограничьте правило группы безопасности CIDR вашей VPC или SG ваших клиентов, либо используйте SSH-туннель (-L) для разовых доступов. Публичный кэш — классическая мишень, даже зашифрованный.
Сертификат самоподписанный? Могу ли я поставить свой?
Да и да. Штатный сертификат каждый инстанс выпускает сам для себя (CN = instance-id, SAN с его IP и именами); его отпечаток SHA-256 выводится в системную консоль и командой imaxe memcached tls show. Чтобы использовать свой, скопируйте crt/ключ в /etc/memcached/tls/, удалите маркер .generated-for и перезапустите — смотрите образ изнутри.
Как подобрать размер кэша? А если не хватит?
Подбирать не нужно: при каждой загрузке модуль выделяет кэшу 60 % доступной RAM и выводит число потоков и соединений из размера инстанса. Если нужен кэш побольше, остановите инстанс, смените тип на более ёмкий по RAM и запустите — тюнинг пересчитается сам.
Работает ли она на инстансах x86_64?
Нет. v2.1 публикуется для arm64 (AWS Graviton): семейства t4g, c6g–c8g, m6g–m8g, r6g–r8g и т. д.
Что именно включает подписка?
Усиленную AMI, новые версии в течение жизненного цикла продукта и поддержку команды, которая её собирает. Оплата за инстанс: 0,014 $/ч или 99 $/год, с 7 днями бесплатного пробного периода.
Changelog #
История AMI. Даты соответствуют публикации каждой версии в AWS Marketplace.
Управление портом и паролем из самой CLI
v2.0 вышла с модулем memcached 1.0.0, который умел показывать и подбирать размеры, но не менять то, что покупатель трогает в первый день: порт и пароль. Это делалось вручную через ufw и saslpasswd2, и ошибиться было легко. В эту версию запечён модуль 1.1.0, который решает это тремя командами.
imaxe memcached open-port [--cidr <CIDR>] и close-port управляют портом 11211 в файрволе хоста. open-port убирает прежние правила для того же порта перед добавлением своего, чтобы открытие «только для моей сети» не оставляло вдобавок глобальное правило, открытое для всех. Обе команды предупреждают, что удалённый доступ в конечном счёте решает группа безопасности, которую CLI не трогает.imaxe memcached set-password (--random | <пароль> | --stdin) меняет учётные данные пользователя продукта, не трогая остальных пользователей SASL и не перезапуская службу (перезапуск очистил бы кэш). В отличие от users rotate, пароль по умолчанию не генерируется: его нужно запросить явно, чтобы недописанная команда не оставила покупателя без пароля, которым он пользовался.imaxe memcached status сообщает также о состоянии порта в ufw, с тем же предупреждением о группе безопасности.AllowTcpForwarding меняется с local на yes. Путь удалённого доступа, который мы документируем — тот же, что рекомендует Bitnami, — это SSH-туннель к 11211, и с этим изменением он работает без правки sshd_config покупателем. Это осознанное исключение из усиленной базы, оправданное тем, что альтернатива хуже: покупатель откроет 11211 в группе безопасности, потому что не смог поднять туннель. Индекс Lynis не меняется: тест, проверяющий опции sshd_config (SSH-7408), входит в число пропускаемых образом.База Ubuntu 26.04 и Lynis 100/100
AMI пересобрана на базе Ubuntu 26.04 LTS (resolute), arm64, а аудит Lynis достигает максимального индекса.
Первый выпуск
Первая публичная версия в AWS Marketplace, на базе Ubuntu 24.04 LTS arm64.
imaxe memcached optimize) и инструмент imaxe с 13 модулями, запечёнными в образе.Нужна помощь с этой AMI?
Вам ответит та же команда, которая собирает образ — настоящие инженеры, без ботов и первой линии.