Knowledge Base
Memcached открыт публично (порт 11211)
Memcached открыт публично — порт 11211
Категория: Server Hardening · Риск: critical
Memcached открыт публично — порт 11211
Двойная угроза
Открытый Memcached представляет **две независимые критические угрозы**:
1. Утечка кешированных данных
Memcached **не имеет аутентификации** по умолчанию. Любой может:
# Подключиться и читать кеш
echo "stats items" | nc -q 1 <IP> 11211
# Получить все ключи
echo "stats cachedump 1 100" | nc -q 1 <IP> 11211
# Прочитать значение по ключу
echo "get session:user:12345" | nc -q 1 <IP> 11211
# Вернёт: данные сессии пользователя, JWT токены, кешированные пароли
2. Использование как DDoS-амплификатор
Memcached UDP (порт 11211) давал коэффициент усиления **~50 000x**:
- Атакующий шлёт 1 байт запроса → сервер отвечает 50 КБ жертве
- В феврале 2018 GitHub получил атаку 1.35 Тбит/с именно через Memcached
Немедленное исправление
# 1. Закрыть порт файрволом
ufw deny 11211
# 2. Привязать только к localhost
# /etc/memcached.conf
-l 127.0.0.1 # только localhost
-U 0 # отключить UDP (обязательно!)
systemctl restart memcached
Docker Compose
# НЕПРАВИЛЬНО:
services:
memcached:
ports:
- "11211:11211" # ← убрать
# ПРАВИЛЬНО:
memcached:
expose:
- "11211" # только внутри Docker сети
Включить аутентификацию (SASL)
# /etc/memcached.conf
-S # включить SASL аутентификацию
# Потребуется libmemcached с SASL-поддержкой на клиентах
Проверка после исправления
# Извне должно быть "Connection refused"
nc -zv <PUBLIC_IP> 11211
# UDP также должен быть закрыт
echo "version" | nc -u -q 1 <PUBLIC_IP> 11211
Связанные проверки
- [Redis открыт публично](/kb/server_hardening/container-public-ports-inventory)
- [DDoS readiness](/kb/ddos/ddos-readiness-checklist)