База знаний / Серверы• 1 мин
Hardening Linux-сервера: базовый чек‑лист безопасности (SSH, sudo, firewall)
Практичный минимум: закрываем очевидные дыры, приводим доступы в порядок, включаем firewall и базовый аудит.
Цель
Сделать сервер предсказуемым: минимум лишних сервисов, понятные доступы, базовый периметр и логирование.
1) Доступ по SSH
- Только ключи:
PasswordAuthentication no - Запрет root‑логина:
PermitRootLogin no - Ограничьте пользователей:
AllowUsers/AllowGroups - Порт менять можно, но важнее — ключи и ограничения.
2) Sudo и роли
- Создайте отдельные группы:
sudo,deploy,ops - Не выдавайте
ALL=(ALL) NOPASSWD:ALLбез крайней необходимости. - Сделайте «набор команд» для обслуживания (перезапуск сервисов, просмотр логов).
3) Firewall
- Разрешите только нужное: 22/80/443 или только 443 и VPN.
- Ограничьте доступ к админ‑панелям по IP.
- Фиксируйте правила в IaC/скриптах, чтобы не «терялись» при миграциях.
4) Fail2ban / rate‑limit
Минимум — защита SSH. Для веб‑сервисов добавьте rate limiting (Nginx) и базовые правила.
5) Логи и аудит
- Проверьте
journaldи ротацию логов (logrotate). - Настройте централизованный сбор (например, Loki/ELK) — хотя бы для критичных сервисов.
- Добавьте алерты на «подозрительные» события: много 401/403, частые рестарты сервисов.
6) Обновления
Заведите регулярное окно изменений и проверку после обновлений. Обязательны: тестовый контур или хотя бы snapshot/rollback план.
Мини‑чеклист
- [ ] SSH: ключи, запрет root, ограничение пользователей
- [ ] Sudo: минимальные привилегии
- [ ] Firewall: открыт только нужный трафик
- [ ] Fail2ban / rate‑limit
- [ ] Логи + ротация + алерты
- [ ] Регулярные обновления + план отката