Хочется двухфакторную аутентификацию, но внутренний параноик запрещает пользоваться сторонними сервисами аутентификации.
🔤🔤🔥🔤🔤🔤🔤
Хочу рассмотреть концепт и выслушать замечания от уважаемых людей.
Итак, идея проста.
1. Прописываем shell-скрипт пользователю в качестве shell. Или группе в ForceCommand в sshd_config.
ㅤ
2. После первого уровня (пароль или ключ) запускается скрипт.
3. Скрипт выводит на экран код и отправляет на почту/телегу админу сообщение о попытке аутентификации (ведь первый уровень аутентификации пройден) пользователя с UID (чтобы не светить логины на сторонних ресурсах.)
4. Сам скрипт никаких дополнительных действий от пользователя не требует, и завершается через некоторое время (3-15 минут) если от пользователя нет кода.
5. Пользователь отправляет код по почте и/или боту в телегу. Причем пользователь заранее должен знать, по какому адресу отправлять код.
6. Скрипт, периодически проверяя почту/телегу, при получении нужного кода передает управление bash. УРА, Я В ДОМИКЕ.
7. Если код не пришел, в лог записывается инфа, timestamp username. Если кто-то попытается досить - другой скрипт (нужны права) может банить.
8. В качестве дополнительной ограничительной меры в /etc/passwd в поле 5 GECOS можно прописать мыло или номер tg-чата, с которого ожидается код.
9. Скрипт завершается при любой ошибке.
Ну и конечно, Пользователь отправляет код с телефона, а не того компа, с которого подключается по ssh :-)
🛠 #вопросвзал
—
✅ @bashdays / @linuxfactory / @blog
Post #1079
9.86K