LINUX.ORG.RU
ФорумAdmin

fake ssh login

 ,


0

1

Приветствую всех!

Хочу сделать так, чтобы при попытке входа рутом с простым паролем по ssh запускался фейковый логин. Вижу один вариант: в sshd_config заводим секцию Match, куда пишем User root и, возможно, адреса (если надо оставить вход из локалки, хотя я даже их не оставляю). В секции разрешаем PasswordAuthentication и PermitRootLogin, указываем в ForcedCommand наш логин.

Но остаётся одна проблема - ssh проверяет реальный пароль рута, а не фейковый, а вот ставить руту пароль я не хочу - во избежании локальных su и прочего. Решил сделать через PAM и pam_exec - добавил в pam-файл для ssh строку:

auth sufficient pam_exec.so debug  expose_authtok type=auth /path_to/fake_passwd

fake_passwd вызывается и всегда возвращает 0, т.е. всё должно срабатывать, но в логе вижу такое:

sshd[10247]: pam_exec(sshd:auth): send password to child
sshd[10270]: pam_exec(sshd:auth): Calling /.../fake_passwd ...
sshd[10247]: Failed password for root from 43.229.52.175 port 47425 ssh2

То бишь несмотря на нулевой код возврата аутентификация не проходит. Кто подскажет почему?

Не понимаю, чего ты этим хочешь добиться. Для того, что бы давать фейкового рута и записывать команды атакующего есть специальный софт вроде: kippo, kojoney. Вот только все это использовать в продакшене не рекомендуется, если конечно ты не собрался поднять свою сеть honeypot'ов.
Конкретно по твоему вопросу мне кажется, что нужно добавить fake_passwd в /var/lib/pam/seen либо забекапить, и потом попробовать удалить /var/lib/pam/seen совсем.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

Если честно - хочу уменьшить нагрузку на перебор :) fail2ban по некоторым причинам тут не подходит (я его активно использую в других). Расчёт простой - подобрали пароль, значит больше не ломятся. Практически honeypot, да. Но т.к. это боевая машина, то kippo и прочие fake-sshd не подходят - мне нужен реально работающий sshd, но на рута повесить honeypot фактически.

Что именно вешать - другая проблема, я думаю пока сделать chroot и там restricted shell, или вообще в lxc бросать.

/var/lib/pam/seen - не помогло. Добавил, те же яйца. Удалил - ничего не поменялось. Может есть какой сторонний модуль?

sergzhum
() автор топика
Ответ на: комментарий от sergzhum

Просто используй ключи и нестандартный порт, в более ужасных случаях делаешь двух-трех факторную факторную авторизацию. Есть такое, но это ничуть не лучше той схемы, которую ты хочешь соорудить.
Да openssh как раз таки очень удобно позволяет указывать дополнительные средства авторизации с 'AuthenticationMethods'.

anonymous_sama ★★★★★
()
Ответ на: комментарий от sergzhum

Расчёт простой - подобрали пароль, значит больше не ломятся.

Зачем позволять подобрать пароль, если можно сказать

PubkeyAuthentication yes
PermitRootLogin without-password
?

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

Проблема в том, что на эту машину заходят по ssh десятки людей в день. Причём это не админы и даже не web-мастера. Отсюда требование минимальных отклонений от штатных настроек ssh - чтобы не писать по 10 раз как поставить нестандартный порт в WinSCP и прочих. kipo и проч. также отпадают - мне нужен нормальный sshd.

AuthenticationMethods - как я понял, он только позволяет указать какие последовательности методов использовать.

Повторюсь - у меня отлично работает «пускать всех только по ключам, а для рута (admin, www, кото там ещё ломают...) - разрешить пускать по паролю (другому методу)». Не работает - проверка по фейковому паролю. Почему фейковому - я уже писал, локальный su и подобные дыры мне не нужны (десятки людей в день на машине).

sergzhum
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.