Перейти к основному содержимому
Вернуться в категорию

Усиление безопасности сервера: Полный чеклист

Руководство по усилению безопасности Linux-сервера: настройка SSH, отключение root-входа, Fail2Ban, автоматические обновления, правила брандмауэра и права доступа к файлам.

Время чтения: 16 мин Управление сервером
безопасностьусилениеhardeningsshfail2banбрандмауэрlinuxчеклист

Содержание

Усиление безопасности сервера: Полный чеклист

При настройке нового Linux-сервера конфигурация по умолчанию не оптимизирована с точки зрения безопасности. Усиление сервера включает систематические изменения конфигурации для уменьшения поверхности атаки и устранения уязвимостей. Это руководство предоставляет полный чеклист безопасности для серверов REXE.

Зачем усиливать безопасность сервера?

Стандартные установки Linux могут иметь:

  • Запущенные ненужные службы
  • SSH открытый для аутентификации по паролю
  • Включённый вход root
  • Минимальные правила брандмауэра
  • Отключённые автоматические обновления

Не закрывайте существующее SSH-соединение во время усиления. После каждого шага проверяйте соединение из нового терминала.

✅ Чеклист 1: Обновления системы

hljs bash
# Обновление системы
sudo apt update && sudo apt upgrade -y

# Установка автоматических обновлений безопасности
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
# /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";

✅ Чеклист 2: Усиление SSH

hljs bash
sudo nano /etc/ssh/sshd_config
# Настройки безопасности SSH

# Отключить вход root
PermitRootLogin no

# Отключить аутентификацию по паролю (после настройки SSH-ключа)
PasswordAuthentication no

# Запретить пустые пароли
PermitEmptyPasswords no

# Отключить X11 forwarding
X11Forwarding no

# Максимальное количество попыток входа
MaxAuthTries 3

# Максимальное количество одновременных сессий
MaxSessions 5

# Тайм-аут входа (секунды)
LoginGraceTime 30

# Версия протокола
Protocol 2

# Разрешить только определённых пользователей
AllowUsers admin deploy

# Изменить порт SSH (опционально)
# Port 2222

# Сильные алгоритмы шифрования
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms curve25519-sha256,diffie-hellman-group14-sha256
hljs bash
# Проверка конфигурации SSH
sudo sshd -t

# Перезапуск SSH
sudo systemctl restart sshd

✅ Чеклист 3: Настройка брандмауэра

hljs bash
# Установка и настройка UFW
sudo apt install ufw -y

# Политики по умолчанию
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Сначала разрешить SSH!
sudo ufw allow ssh

# Веб-сервисы
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Разрешить доступ с определённого IP
sudo ufw allow from 192.168.1.0/24 to any port 3306

# Включить UFW
sudo ufw enable

# Проверить статус
sudo ufw status verbose

Расширенные правила UFW

hljs bash
# Ограничение скорости для защиты от брутфорса
sudo ufw limit ssh

# Заблокировать определённый IP
sudo ufw deny from 1.2.3.4

# Удалить правило
sudo ufw delete allow 80/tcp

✅ Чеклист 4: Настройка Fail2Ban

hljs bash
# Установка Fail2Ban
sudo apt install fail2ban -y

# Создание локальной конфигурации
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
hljs ini
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400

[nginx-http-auth]
enabled = true
port = http,https
logpath = /var/log/nginx/error.log
hljs bash
# Запуск Fail2Ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

# Проверка статуса
sudo fail2ban-client status
sudo fail2ban-client status sshd

# Просмотр заблокированных IP
sudo fail2ban-client status sshd | grep "Banned IP"

# Разблокировать IP
sudo fail2ban-client set sshd unbanip 1.2.3.4

✅ Чеклист 5: Отключение ненужных служб

hljs bash
# Список запущенных служб
sudo systemctl list-units --type=service --state=running

# Отключение ненужных служб
sudo systemctl disable --now avahi-daemon
sudo systemctl disable --now cups
sudo systemctl disable --now bluetooth
sudo systemctl disable --now rpcbind

# Проверка открытых портов
sudo ss -tlnp

✅ Чеклист 6: Безопасность файловой системы

hljs bash
# Поиск файлов SUID/SGID
find / -perm /4000 -type f 2>/dev/null
find / -perm /2000 -type f 2>/dev/null

# Поиск файлов с мировой записью
find / -perm -0002 -type f 2>/dev/null

# Сделать критические файлы неизменяемыми
sudo chattr +i /etc/passwd
sudo chattr +i /etc/shadow

✅ Чеклист 7: Параметры безопасности ядра

hljs bash
sudo nano /etc/sysctl.d/99-security.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_syncookies = 1
kernel.randomize_va_space = 2
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
fs.suid_dumpable = 0
hljs bash
sudo sysctl -p /etc/sysctl.d/99-security.conf

✅ Чеклист 8: Мониторинг логов

hljs bash
tail -f /var/log/auth.log
tail -f /var/log/fail2ban.log
tail -f /var/log/ufw.log

# Подсчёт неудачных SSH-входов
grep "Failed password" /var/log/auth.log | wc -l

# Установка Logwatch
sudo apt install logwatch -y
sudo logwatch --output stdout --format text --range today

✅ Чеклист 9: Сканирование безопасности

hljs bash
# Аудит безопасности с Lynis
sudo apt install lynis -y
sudo lynis audit system

# Сканирование руткитов с rkhunter
sudo apt install rkhunter -y
sudo rkhunter --update
sudo rkhunter --check

Оценка безопасности Lynis должна быть 70+. Запускайте регулярно (ежемесячно).

Краткий справочный чеклист

  • Обновления системы применены
  • Автоматические обновления безопасности включены
  • Вход root по SSH отключён
  • Вход по паролю SSH отключён (ключ установлен)
  • SSH MaxAuthTries установлен на 3
  • Брандмауэр UFW включён и настроен
  • Fail2Ban установлен и работает
  • Ненужные службы отключены
  • Параметры безопасности ядра настроены
  • Мониторинг логов настроен
  • Аудит безопасности Lynis завершён

Заключение

Усиление безопасности сервера — не разовая задача, а непрерывный процесс. Применяйте этот чеклист при настройке новых серверов и проводите регулярные аудиты безопасности. Эти шаги значительно повысят безопасность ваших серверов REXE.