diff --git a/docs/backlog/README.md b/docs/backlog/README.md index 92bf159..8e2e7b4 100644 --- a/docs/backlog/README.md +++ b/docs/backlog/README.md @@ -27,7 +27,6 @@ _(sec-ревью)_ — три независимых security-ревью на м - [Захардить мониторинг-стек (netdata / dozzle / goaccess)](harden-monitoring-stack.md) — netdata/dozzle: лишние привилегии + docker.sock + доверие Remote-User в общей сети; socket-proxy + monitoring_network _(sec-ревью)_ - [Закрыть calibre-web forward-auth и проверить дефолтные креды](calibre-forward-auth.md) — домен без forward_auth, защита на встроенной авторизации с дефолтом `admin/admin123` _(sec-ревью)_ - [Включить автообновления безопасности](security-autoupdates.md) — патчи openssh/libssl только вручную; окна в недели между CVE и фиксом _(sec-ревью)_ -- [Запретить SSH-вход под root](ssh-disable-root-login.md) — `PermitRootLogin yes` пускает root по ключу; наименьшие привилегии + defense-in-depth (пароль уже off) _(sec-ревью)_ - [Gitea runner on-demand в Yandex Cloud](gitea-runner-on-demand.md) — раннер активен только во время сборки; webhook→Cloud Function стартует ВМ, probe/decide гасят по idle; экономия ~95% - [Composable-роль `backup`](ansible-backup-role.md) — бэкап — самый чистый шов для extraction (одинаков у всех, различается только список targets) _(ансибл-ревью)_ - [Вывести из оборота секреты с широкими правами](narrow-secret-scopes.md) — `yc_oauth_token` (весь аккаунт Yandex Cloud) уже выведен; осталось проставить радиус остальным переменным vault и сузить широкие diff --git a/docs/backlog/ssh-disable-root-login.md b/docs/backlog/ssh-disable-root-login.md deleted file mode 100644 index f73acf2..0000000 --- a/docs/backlog/ssh-disable-root-login.md +++ /dev/null @@ -1,26 +0,0 @@ -# Запретить SSH-вход под root - -**Приоритет:** средний - -`playbook-system.yml:34` переопределяет дефолт роли на -`security_ssh_permit_root_login: "yes"` → `PermitRootLogin yes`. Это управляет -**только** тем, пускать ли root по SSH, и не имеет отношения к паролю: вход по -паролю уже запрещён отдельной директивой `PasswordAuthentication no` (дефолт роли -`security_ssh_password_authentication: "no"`, не переопределён). То есть брутфорса -пароля тут нет — остаётся то, что root **явно разрешён к входу по ключу**. - -Почему всё равно стоит закрыть: - -- **Наименьшие привилегии.** Ansible ходит под непривилегированным `major` с - `become` (`production.yml`), root-логин для деплоя не нужен вовсе. -- **Defense-in-depth.** Если `PasswordAuthentication` когда-нибудь вернётся в - `yes` (правка, `Match`-блок, чужая роль), `PermitRootLogin yes` тут же откроет - root по паролю. `prohibit-password` держит root key-only независимо. - -Рекомендация: поставить `"no"` (root по SSH недоступен, деплой под `major` не -страдает). Если нужен аварийный вход root по ключу — `"prohibit-password"`. - -Из sec-ревью (fable, 2026-07-13); мотивировка уточнена после проверки конфига. - -Связано: playbook-system.yml, production.yml, -galaxy.roles/geerlingguy.security.