Проблема SSH-подключения: не могу подключиться к серверу
Руководство по решению проблем SSH-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для SSH-порта и шаги по устранению неполадок.
Шаги экстренного реагирования при взломе сервера: обнаружение, изоляция, криминалистический анализ и очистка.
Обнаружение взлома сервера — стрессовая ситуация, но следуя правильным шагам, вы можете минимизировать ущерб и восстановить систему. В этом руководстве мы подробно рассмотрим весь процесс от обнаружения взлома до очистки и усиления безопасности.
Типичные признаки компрометации сервера:
# Сохранить текущее состояние
date > /tmp/incident_$(date +%Y%m%d_%H%M%S).log
who >> /tmp/incident_*.log
w >> /tmp/incident_*.log
last -20 >> /tmp/incident_*.log
ps auxf >> /tmp/incident_*.log
netstat -tlnp >> /tmp/incident_*.log
ss -tlnp >> /tmp/incident_*.log
Не выключайте и не перезагружайте сервер немедленно! Криминалистические улики могут быть утеряны.
# Заблокировать все исходящие соединения (кроме SSH)
sudo iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A OUTPUT -j DROP
# Проверить активные SSH-сессии
who
w
# Завершить подозрительные сессии
sudo pkill -u подозрительный_пользователь
# Список всех пользователей
cat /etc/passwd | grep -v nologin | grep -v false
# Проверка пользователей с UID 0 (права root)
awk -F: '($3 == 0) {print}' /etc/passwd
# Недавно созданные пользователи
ls -lt /home/
# Пользователи с правами sudo
grep -v '^#' /etc/sudoers
ls -la /etc/sudoers.d/
# Проверка SSH authorized_keys
for user_home in /home/*; do
if [ -f "$user_home/.ssh/authorized_keys" ]; then
echo "=== $user_home ==="
cat "$user_home/.ssh/authorized_keys"
fi
done
cat /root/.ssh/authorized_keys
# Все запущенные процессы в виде дерева
ps auxf
# Поиск подозрительных процессов
ps aux | grep -E '(mine|xmr|crypto|kinsing|kdevtmpfsi)'
# Процессы с высоким использованием CPU
top -b -n 1 | head -20
# Проверка скрытых процессов
ls -la /proc/*/exe 2>/dev/null | grep deleted
# Проверка путей файлов процессов
ls -la /proc/[0-9]*/exe 2>/dev/null | grep -v '/usr\|/bin\|/sbin\|/lib'
# Crontab root
crontab -l
# Crontab всех пользователей
for user in $(cut -f1 -d: /etc/passwd); do
crontab -l -u $user 2>/dev/null | grep -v '^#'
done
# Системные cron-директории
ls -la /etc/cron.d/
ls -la /etc/cron.daily/
ls -la /etc/cron.hourly/
cat /etc/crontab
# Таймеры systemd
systemctl list-timers --all
# Проверка активных соединений
ss -tanp
netstat -tanp
# Исходящие соединения
ss -tanp | grep ESTABLISHED | grep -v '127.0.0.1'
# Прослушиваемые порты
ss -tlnp
# Соединения с подозрительными IP
netstat -an | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20
# Файлы, изменённые за последние 24 часа
find / -mtime -1 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null
# Файлы, созданные за последние 7 дней
find / -ctime -7 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null
# Проверка SUID/SGID файлов
find / -perm -4000 -type f 2>/dev/null
find / -perm -2000 -type f 2>/dev/null
# Подозрительные файлы в /tmp
ls -la /tmp/
ls -la /var/tmp/
ls -la /dev/shm/
# Попытки входа по SSH
grep 'Failed password' /var/log/auth.log | tail -50
grep 'Accepted' /var/log/auth.log | tail -50
# Успешные SSH-входы
last -20
lastlog
# Системные логи
journalctl --since "24 hours ago" | grep -i -E '(error|warning|fail|denied)'
# Завершить подозрительные процессы
sudo kill -9 <PID>
# Найти и завершить процессы майнеров
sudo pkill -9 -f 'xmr\|mine\|crypto\|kinsing'
# Отключить подозрительные сервисы
sudo systemctl stop подозрительный_сервис
sudo systemctl disable подозрительный_сервис
# Заблокировать подозрительного пользователя
sudo usermod -L подозрительный_пользователь
# Удалить пользователя
sudo userdel -r подозрительный_пользователь
# Сменить пароль root
sudo passwd root
# Проверить и очистить все файлы authorized_keys
find / -name authorized_keys -exec cat {} \;
# Оставить только свой ключ
echo "ssh-rsa ВАШ_КЛЮЧ" > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
# /etc/ssh/sshd_config
Port 2222
PermitRootLogin prohibit-password
PasswordAuthentication no
MaxAuthTries 3
AllowUsers имя_пользователя
sudo systemctl restart sshd
sudo apt install fail2ban -y
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt install unattended-upgrades -y
Если очистка недостаточна, может потребоваться чистая установка:
# 1. Резервное копирование важных данных
tar -czf /tmp/backup_data.tar.gz /var/www/ /home/
# 2. Переустановка ОС через панель REXE
# my.rexe.tr > Услуги > Переустановка ОС
# 3. Усиление безопасности после чистой установки
# 4. Восстановление только файлов данных (НЕ конфигурационных файлов)
При восстановлении из резервной копии НЕ восстанавливайте конфигурационные файлы! Злоумышленник мог добавить в них бэкдоры.
При инцидентах взлома сервера критически важна быстрая и систематическая реакция. Последовательно выполняйте шаги: документирование, изоляция, криминалистический анализ, очистка и усиление безопасности. Для предотвращения подобных инцидентов в будущем проводите регулярные аудиты безопасности и применяйте строгий контроль доступа.
Типичные признаки: аномальное использование CPU/RAM, неизвестные процессы, новые учётные записи, изменённые файлы, аномальный сетевой трафик и рассылка спама. Проверьте командами 'ps auxf', 'ss -tanp' и 'last'.
Нет! Немедленное выключение может привести к потере криминалистических улик. Сначала задокументируйте текущее состояние, затем выполните сетевую изоляцию.
Зависит от масштаба атаки. Если это простой криптомайнер, очистки может быть достаточно. При руткитах или атаках на уровне ядра чистая переустановка — самый безопасный вариант.
Да, но будьте осторожны. Можно сохранить файлы данных (базы данных, веб-файлы), но не восстанавливайте конфигурационные и исполняемые файлы из резервной копии.
Используйте аутентификацию по SSH-ключам, установите Fail2ban, регулярно обновляйте систему, используйте надёжные пароли, отключите ненужные сервисы и правильно настройте правила файрвола Path Panel.
Руководство по решению проблем SSH-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для SSH-порта и шаги по устранению неполадок.
Руководство по решению проблем RDP-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для порта RDP и шаги по устранению неполадок.
Руководство по сетевому тестированию с помощью WinMTR и Linux MTR, создание правила фильтрации ICMP и отправка результатов в службу поддержки. Диагностика потери пакетов.