Knowledge Base
Kibana открыта публично (порт 5601)
Kibana открыта публично — Collapse Point
Категория: Server Hardening · Риск: critical
Kibana открыта публично — Collapse Point
Критическая угроза
Kibana — веб-интерфейс для работы с Elasticsearch — открытая публично даёт **полный доступ ко всем индексам и данным** без какого-либо взлома.
В старых версиях (до 6.8 / 7.1) X-Pack Security отключён по умолчанию.
Что доступно атакующему
- Просмотр всех индексов: логи приложений, данные пользователей, платёжная информация
- Поиск по всем данным через Discover
- Управление индексами: удаление, изменение маппинга
- Dev Tools → Console: прямые запросы к Elasticsearch API
- Stack Monitoring: версии ES, имена нод, топология кластера
Немедленное исправление
1. Закрыть порт 5601 файрволом
ufw deny 5601
ufw allow from 127.0.0.1 to any port 5601
ufw reload
2. Привязать Kibana к localhost
# /etc/kibana/kibana.yml
server.host: "127.0.0.1"
# Вместо: server.host: "0.0.0.0"
systemctl restart kibana
3. Docker Compose — убрать проброс порта
# НЕПРАВИЛЬНО:
services:
kibana:
ports:
- "5601:5601" # ← УБРАТЬ
# ПРАВИЛЬНО — только internal:
services:
kibana:
expose:
- "5601"
# Или: ports: ["127.0.0.1:5601:5601"]
4. Включить X-Pack Security (Elasticsearch + Kibana)
# elasticsearch.yml
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
# kibana.yml
elasticsearch.username: "kibana_system"
elasticsearch.password: "<password>"
# Установить пароли для встроенных пользователей
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
5. Nginx Basic Auth (быстрое решение)
location / {
auth_basic "Kibana — Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:5601;
}
Проверка
# Должно вернуть Connection refused или 401
curl -I http://<PUBLIC_IP>:5601/
Связанные статьи
- [Container public ports inventory](/kb/server_hardening/container-public-ports-inventory)
- [Exposed admin panels](/kb/server_hardening/exposed-admin-panels-critical)
- [UFW firewall](/kb/firewall/ufw-basic-server-firewall)