Описание #
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 читается при каждой аутентификации, кэш не очищается. - Встроенный инструмент
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). | документация готовится |
Выбор размера и стоимость #
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.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.0 | 1.6 | 26.04 LTS (resolute) | arm64 | ✓ активна | 2026-08 |
| v1.0 | 1.6 | 24.04 LTS (noble) | arm64 | ✓ активна | 2026-08 |
Жизненный цикл
v2.0 — текущая версия, активная и поддерживаемая: патчи безопасности Ubuntu приходят на инстансы сами через unattended-upgrades, а новые версии AMI мы публикуем в Marketplace регулярно, каждая со своим аудитом 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.0 публикуется для архитектуры 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 |
| Ротировать пароль 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 users rotate генерирует новый случайный пароль; --stdin принимает конкретный, не оставляя его в истории. users add / users delete управляют дополнительными пользователями. Ни одна операция не перезапускает службу и не очищает кэш.
Почему мой клиент не подключается, если с 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.0 публикуется для arm64 (AWS Graviton): семейства t4g, c6g–c8g, m6g–m8g, r6g–r8g и т. д.
Что именно включает подписка?
Усиленную AMI, новые версии в течение жизненного цикла продукта и поддержку команды, которая её собирает. Оплата за инстанс: 0,014 $/ч или 99 $/год, с 7 днями бесплатного пробного периода.
Changelog #
История AMI. Даты соответствуют публикации каждой версии в AWS Marketplace.
База 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?
Вам ответит та же команда, которая собирает образ — настоящие инженеры, без ботов и первой линии.