Хочу рассмотреть концепт и выслушать замечания от уважаемых людей.
Итак, идея проста.
- Прописываем shell-скрипт пользователю в качестве shell. Или группе в
ForceCommandвsshd_config. - После первого уровня (пароль или ключ) запускается скрипт.
- Скрипт выводит на экран код и отправляет на почту/телегу админу сообщение о попытке аутентификации (ведь первый уровень аутентификации пройден) пользователя с UID (чтобы не светить логины на сторонних ресурсах).
- Сам скрипт никаких дополнительных действий от пользователя не требует и завершается через некоторое время (3–15 минут), если от пользователя нет кода.
- Пользователь отправляет код по почте и/или боту в телегу. Причём пользователь заранее должен знать, по какому адресу отправлять код.
- Скрипт, периодически проверяя почту/телегу, при получении нужного кода передаёт управление Bash. УРА, Я В ДОМИКЕ.
- Если код не пришёл, в лог записывается инфа, timestamp, username. Если кто-то попытается досить — другой скрипт (нужны права) может банить.
- В качестве дополнительной ограничительной меры в
/etc/passwdв поле 5 GECOS можно прописать мыло или номер tg-чата, с которого ожидается код. - Скрипт завершается при любой ошибке.
Ну и, конечно, пользователь отправляет код с телефона, а не с того компа, с которого подключается по SSH.








Комментарии