Backlog: уточнить SSH-задачу, завести очистку устаревшего инвентаря
This commit is contained in:
@@ -1,16 +1,26 @@
|
||||
# Запретить SSH-вход под root
|
||||
|
||||
**Приоритет:** высокий
|
||||
**Приоритет:** средний
|
||||
|
||||
`playbook-system.yml:34` переопределяет дефолт роли на
|
||||
`security_ssh_permit_root_login: "yes"`. Парольная аутентификация выключена (вход
|
||||
только по ключу), но root — единственный аккаунт, который брутфорсят все боты на
|
||||
открытом 22/tcp, и компрометация ключа сразу даёт uid 0 без следа sudo. Деплой
|
||||
идёт под отдельным непривилегированным пользователем с become (`production.yml`),
|
||||
root-логин для Ansible не нужен. Поставить `"no"`, либо `prohibit-password`, если
|
||||
root-ключ нужен для аварийного доступа (то же поведение по ключу, но явный запрет
|
||||
пароля на будущее).
|
||||
`security_ssh_permit_root_login: "yes"` → `PermitRootLogin yes`. Это управляет
|
||||
**только** тем, пускать ли root по SSH, и не имеет отношения к паролю: вход по
|
||||
паролю уже запрещён отдельной директивой `PasswordAuthentication no` (дефолт роли
|
||||
`security_ssh_password_authentication: "no"`, не переопределён). То есть брутфорса
|
||||
пароля тут нет — остаётся то, что root **явно разрешён к входу по ключу**.
|
||||
|
||||
Из sec-ревью (fable, 2026-07-13).
|
||||
Почему всё равно стоит закрыть:
|
||||
|
||||
Связано: playbook-system.yml, production.yml, galaxy.roles/geerlingguy.security.
|
||||
- **Наименьшие привилегии.** Ansible ходит под непривилегированным `major` с
|
||||
`become` (`production.yml`/`timeweb.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, timeweb.yml,
|
||||
galaxy.roles/geerlingguy.security.
|
||||
|
||||
Reference in New Issue
Block a user