Перейти к содержимому
RunStack
Вики· Обновлено 19 окт. 2026 г.

rs security — проверка безопасности

Что значат находки rs security и как их исправить: SSH, файрвол, открытые порты, Docker, обновления, учётки.

rs security ничего не меняет — показывает находки и как их закрыть. ✗ — исправить сейчас, ! — стоит посмотреть.

SSH

  • root может войти по паролю — самая частая причина взлома. Сначала добавьте свой ключ (ssh-copy-id user@server) и проверьте вход по нему в новом окне, затем в /etc/ssh/sshd_config: PermitRootLogin prohibit-password, PasswordAuthentication no, и systemctl reload ssh.
  • Вход по паролю включён — то же, без запрета root.
  • Много попыток подбора и нет fail2ban/CrowdSec — apt install -y fail2ban (защита SSH включается сразу).

Файрвол и порты

  • Файрвол не включён — любой открытый порт виден из интернета. Сначала разрешите порт SSH, иначе отрежете себе доступ: ufw allow <порт SSH>/tcp && ufw allow 80,443/tcp && ufw enable.
  • Опасный порт открыт (PostgreSQL, MySQL, Redis, MongoDB, Elasticsearch, Docker API, Ollama, RDP, SMB…) — привяжите сервис к 127.0.0.1 (в Docker: "127.0.0.1:5432:5432" вместо "5432:5432") или пускайте только свои IP.
  • Docker публикует порты на 0.0.0.0 при включённом ufw — Docker пишет правила iptables в обход ufw: такие порты открыты, даже если ufw их «закрыл». Публикуйте на 127.0.0.1 и ставьте прокси, или фильтруйте в цепочке DOCKER-USER. В сервисах RunStack доступ по IP ограничивается командой rs <сервис> access.

Docker

  • Docker API на tcp:2375 без TLS — кто до него достучится, получит root на сервере. Уберите tcp-хост из /etc/docker/daemon.json или юнита systemd.
  • Контейнер --privileged или с docker.sock — полный доступ к хосту и ко всем контейнерам. Оставляйте только тем, кому это действительно нужно (Portainer, Traefik — осознанно).
  • Участники группы docker — фактически root.

Обновления

  • Не установлены обновления безопасности — apt update && apt upgrade -y.
  • Автообновления выключены — apt install -y unattended-upgrades && dpkg-reconfigure -plow unattended-upgrades.
  • Нужна перезагрузка — новое ядро или libc ещё не работают; перезагрузите в спокойное время.

Учётные записи и система

  • UID 0 кроме root — ещё один root; проверьте, кто и зачем его создал.
  • Учётка без пароля — passwd -l <пользователь>.
  • Время не синхронизировано — timedatectl set-ntp true.
  • ASLR ослаблен — sysctl -w kernel.randomize_va_space=2.
  • Файлы в /etc с записью для всех — chmod o-w <файл>.

Это быстрая проверка частых ошибок, не полноценный аудит.