PAM: как получить уведомление о SSH соединении (и отослать правильно ответ (можно/нельзя).)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

PAM: как получить уведомление о SSH соединении

Сообщение Stauffenberg »

Всем привет.

Работал кто-нибудь с PAM? Я хочу написать программу (пускай это будет python), которая бы получала уведомления о попытке ssh соединения и отсылала бы ответ (можно/нельзя) обратно PAM.
В сети есть примеры как запустить скрипт, т.е. самому инициировать запрос к PAM. Мне же надо наоборот - чтобы PAM сам запускал мой скрипт каждый раз, когда linux обращается к PAM чтобы спросить пользователя можно/нельзя.
Наверное надо было в "программирование" написать, но меня интересует не столько реализация, сколько сам процесс взаимодействия с PAM.

Если я не ошибаюсь, PATH скрипта должен размещаться в конце одной из строк файла /etc/pam.d/sshd:

Код: Выделить всё

#%PAM-1.0
auth        requisite   pam_nologin.so
auth        include     common-auth
account     requisite   pam_nologin.so
account     include     common-account
password    include     common-password
session     required    pam_loginuid.so
session     include     common-session
session  optional       pam_lastlog.so   silent noupdate showfailed


В этом случае само соединене с PAM создавать уже не надо, надо лишь "правильно" ему ответить.
Хотелось бы услышать мнение тех, кто уже делал что-то подобное. Может я размышляю не правильно.

p.s.
Наверное надо было в "программирование" написать, но меня интересует не столько реализация, сколько сам процесс взаимодействия с PAM.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: PAM: как получить уведомление о SSH соединении

Сообщение SLEDopit »

А зачем тебе PAM?
В конфиге sshd можно же настроить кому из пользователей можно ходить, а кому нельзя. (см параметры DenyUsers, AllowUsers, DenyGroups и AllowGroups).

Если всё же нужен именно PAM, посмотри на pam_exec.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: PAM: как получить уведомление о SSH соединении

Сообщение Stauffenberg »

SLEDopit писал(а):
29.01.2017 04:00
А зачем тебе PAM?
В конфиге sshd можно же настроить кому из пользователей можно ходить, а кому нельзя. (см параметры DenyUsers, AllowUsers, DenyGroups и AllowGroups).

Чтобы динамически менять "настройки", т.е. чтобы "сейчас Васе можно, а через пять минут (тому же самому Васе) нельзя". Без каких-либо изменений настроек (правки конфигов). Пользователь сам принимает решение разрешать сейчас соединение Васе или нет.

SLEDopit писал(а):
29.01.2017 04:00
Если всё же нужен именно PAM, посмотри на pam_exec.

Я уже все запрограммировал.
Два скрипта. Первый - python-модуль для pam, который получает уведомления. Второй рисует окно пользователю и отправляет ответ pam (а тот в свою очередь ssh).

Если кому интересно, могу рассказать все поподробнее.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Ответить