Server: 91.218.142.168 (xirfbwpmvt)
Role: Control Plane Server
Date: 2025-10-26 13:45
Auditor: Claude Code
Status: Comprehensive Security Review
Overall Security Status: 🟡 MODERATE (требует улучшений)
Критичность: Средняя
Риски: Обнаружены уязвимости средней степени
Рекомендации: Внедрить улучшения безопасности
| Компонент | Статус | Оценка | Критичность |
|---|---|---|---|
| SSH Configuration | 🟡 Требует улучшений | 6/10 | ВЫСОКАЯ |
| Firewall (UFW) | 🟡 Избыточные порты | 7/10 | ВЫСОКАЯ |
| fail2ban | ✅ Работает отлично | 9/10 | ВЫСОКАЯ |
| Open Ports | 🟡 Есть проблемы | 6/10 | СРЕДНЯЯ |
| Active Sessions | ✅ Только легитимные | 10/10 | НИЗКАЯ |
| Attack Attempts | 🔴 Активная атака | 4/10 | ВЫСОКАЯ |
| System Updates | ✅ Актуально | 10/10 | ВЫСОКАЯ |
Общая оценка безопасности: 7.4/10 - Хорошо, но требуются улучшения
Статус: 🔴 КРИТИЧНО
Текущая конфигурация:
PermitRootLogin yes
PasswordAuthentication yes ← ОПАСНО!
PubkeyAuthentication yes
PermitEmptyPasswords no
Проблема:
- Парольная аутентификация позволяет брутфорс атаки
- Root может войти по SSH
- Это основной вектор атаки на сервер
Доказательства активных атак:
- 898 неудачных попыток входа в /var/log/auth.log
- Атаки с IP: 193.46.255.20, 193.46.255.99, 103.173.228.22, 2.57.121.112
- Последняя атака: 13:34 (1 час назад)
Рекомендация:
# НЕМЕДЛЕННО отключить парольную аутентификацию
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
echo "PasswordAuthentication no" >> /etc/ssh/sshd_config
systemctl restart sshd
Приоритет: 🔴 КРИТИЧНО - выполнить НЕМЕДЛЕННО
Статус: 🟡 ТРЕБУЕТ ВНИМАНИЯ
Текущие правила UFW:
22/tcp - SSH ✅ НЕОБХОДИМ
80/tcp - HTTP ⚠️ НЕ ИСПОЛЬЗУЕТСЯ
443/tcp - HTTPS ⚠️ НЕ ИСПОЛЬЗУЕТСЯ
Проблема:
- Nginx остановлен (systemctl stop nginx)
- Порты 80 и 443 открыты, но не используются
- Увеличивает поверхность атаки
- Control Plane НЕ должен обрабатывать веб-трафик
Рекомендация:
# Закрыть неиспользуемые порты
ufw delete allow 80/tcp
ufw delete allow 443/tcp
ufw reload
Приоритет: 🟡 ВЫСОКИЙ - выполнить сегодня
Статус: 🟡 ТРЕБУЕТ ВНИМАНИЯ
Обнаружено:
nodejs 72463 /usr/bin/node /var/www/html/hello-world.js
↑ Слушает порт 3000 (localhost)
Проблема:
- Это остаток rseek.ru приложения
- Должен был быть остановлен, но всё ещё работает
- Потребляет 45MB RAM
- Не нужен для Control Plane функций
Рекомендация:
# Остановить процесс
kill 72463
# Или найти и убить все Node.js процессы
pkill -f "hello-world.js"
Приоритет: 🟡 СРЕДНИЙ - выполнить сегодня
Статус: ✅ РАБОТАЕТ ИДЕАЛЬНО
Активные jail'ы:
- sshd - защита SSH (основная защита)
- nginx-http-auth - HTTP аутентификация
- nginx-limit-req - rate limiting
Статистика sshd jail:
Currently failed: 8 попыток
Total failed: 391 попытка
Currently banned: 8 IP адресов
Total banned: 41 IP адрес (с момента запуска)
Заблокированные злоумышленники:
40.115.18.231 - Microsoft Cloud (взломан?)
45.94.4.184 - Россия
125.21.53.232 - Китай
2.57.121.25 - Иран
62.60.131.157 - Украина
43.163.26.253 - Китай (Tencent)
88.207.230.224 - Россия
2.57.121.112 - Иран (активная атака на admin)
Вывод: fail2ban СПАСАЕТ сервер от брутфорса! Работает отлично.
Статус: ✅ ВСЕ УСПЕШНЫЕ ВХОДЫ ПО КЛЮЧАМ
Последние успешные входы:
12:10:39 - root from 5.101.157.36 (RSA)
12:12:41 - root from 178.66.129.136 (ED25519) ← текущая сессия
Все входы:
- Только по публичным ключам
- Нет успешных парольных входов
- Используются надёжные алгоритмы (RSA, ED25519)
Вывод: SSH ключи настроены правильно, парольные атаки НЕ успешны!
Статус: ✅ ВСЕ ПАКЕТЫ АКТУАЛЬНЫ
All packages are up to date.
Upgradable packages: 0
Security updates: 0
Вывод: Система в актуальном состоянии, уязвимостей в пакетах нет.
Статус: ✅ ЛЕГИТИМНАЯ СЕССИЯ
1 user logged in
root from 178.66.129.136 (Claude Code)
Login time: 12:12
Idle: 0s
Вывод: Нет подозрительных сессий, только легитимный доступ.
Файл: /etc/ssh/sshd_config
Текущие настройки:
PermitRootLogin yes 🟡 Допустимо для Control Plane
PasswordAuthentication yes 🔴 ОПАСНО - отключить!
PubkeyAuthentication yes ✅ Хорошо
PermitEmptyPasswords no ✅ Хорошо
KbdInteractiveAuthentication no ✅ Хорошо
X11Forwarding yes 🟡 Не используется, но безопасно
UsePAM yes ✅ Хорошо
Рекомендации:
1. 🔴 Отключить PasswordAuthentication
2. 🟢 Остальное оставить как есть
Текущие listening порты:
22 (SSH) ✅ НЕОБХОДИМ - управление сервером
53 (DNS) ✅ ОК - systemd-resolved (localhost)
3000 (Node.js) 🟡 ПРОБЛЕМА - rseek.ru (не нужен)
Порты открытые в UFW:
22/tcp ✅ ПРАВИЛЬНО
80/tcp 🔴 ЛИШНИЙ - закрыть
443/tcp 🔴 ЛИШНИЙ - закрыть
Рекомендация: Закрыть порты 80 и 443, убить Node.js процесс.
Анализ /var/log/auth.log:
Типы атак:
1. Брутфорс root пароля - 750+ попыток
2. Сканирование admin аккаунта - 100+ попыток
3. Словарные атаки - различные имена пользователей
География атак:
- Россия: 45.94.4.184, 88.207.230.224
- Китай: 125.21.53.232, 43.163.26.253
- Иран: 2.57.121.25, 2.57.121.112
- Украина: 62.60.131.157
- Microsoft Cloud: 40.115.18.231 (взломанный?)
- Другие страны
Последние атаки (последний час):
13:19 - 103.173.228.22 (root)
13:21 - 2.57.121.112 (admin x5) ← агрессивная атака
13:26 - 204.76.203.83 (admin)
13:29 - 193.46.255.20 (root x9) ← очень агрессивная
13:33 - 193.46.255.99 (root x9) ← та же сеть
13:34 - 103.173.228.209 (root)
Вывод: Сервер под активной атакой, но fail2ban успешно блокирует.
Риск: ВЫСОКИЙ - брутфорс атаки
Сложность: Низкая (5 минут)
# 1. Убедиться что SSH ключи работают (УЖЕ ПРОВЕРЕНО ✅)
# 2. Отключить пароли
cat >> /etc/ssh/sshd_config <<EOF
# Security hardening (2025-10-26)
PasswordAuthentication no
EOF
# 3. Перезапустить SSH
systemctl restart sshd
# 4. Проверить что вход по ключу всё ещё работает
Эффект: Устранит 90% атак, предотвратит брутфорс
Риск: СРЕДНИЙ - увеличенная поверхность атаки
Сложность: Низкая (2 минуты)
# Удалить правила для HTTP/HTTPS
ufw delete allow 80/tcp
ufw delete allow 443/tcp
ufw reload
ufw status
Эффект: Уменьшит поверхность атаки
Риск: НИЗКИЙ - лишний процесс
Сложность: Очень низкая (1 минута)
# Убить процесс
kill 72463
# Проверить что процесс остановлен
ps aux | grep node
ss -tulpn | grep 3000
Эффект: Освободит 45MB RAM, уменьшит поверхность атаки
Скрипт: /opt/claude-workspace/projects/@infra-dev-pro/scripts/security-check.sh
Функции:
- Проверка неудачных SSH попыток
- Проверка забаненных IP (fail2ban)
- Проверка подозрительных процессов
- Проверка открытых портов
- Email уведомления при аномалиях
Cron: Запуск каждый день в 09:00
Установить: unattended-upgrades
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
Эффект: Автоматическая установка security патчей
В /etc/ssh/sshd_config:
LogLevel VERBOSE
Эффект: Больше информации для анализа атак
| Практика | Текущее состояние | Рекомендация | Приоритет |
|---|---|---|---|
| SSH ключи вместо паролей | 🟡 Оба включены | Только ключи | 🔴 Критично |
| Минимум открытых портов | 🟡 Лишние порты | Закрыть 80, 443 | 🟡 Высокий |
| fail2ban | ✅ Работает | - | ✅ Готово |
| Firewall (UFW) | ✅ Включен | Оптимизировать | 🟡 Средний |
| Актуальная ОС | ✅ Да | - | ✅ Готово |
| Мониторинг логов | 🟡 Ручной | Автоматизировать | 🟢 Низкий |
| 2FA для SSH | ❌ Нет | Опционально | 🟢 Низкий |
| Rate limiting | ✅ fail2ban | - | ✅ Готово |
| Автообновления | ❌ Нет | Настроить | 🟢 Низкий |
Сервер защищён на 70%, но требует немедленного улучшения.
fail2ban спасает ситуацию, но полагаться только на него опасно.
Отключение PasswordAuthentication устранит 90% текущих угроз.
Подготовил: Claude Code
Дата: 2025-10-26 13:45
Следующий аудит: 2025-11-02 (через неделю после исправлений)