Debian – современный способ запуска скрипта для любого пользователя, подключающегося к SSH.

Вопрос или проблема

Просто прочитал этот ответ
Запуск сценария каждый раз, когда любой пользователь входит в систему.

Здесь Debian stable.
Мой SSH сервер использует подключение по публичному ключу, а не по паролю.
Тем не менее, я хотел бы запускать скрипт на сервере, когда пользователь подключается, до того, как он получит доступ к машине. Если скрипт возвращает false, пользователю отказывается в доступе, даже если у него есть соответствующий ключ для подключения.

Я понимаю, что /etc/profile может подойти, но есть ли более подходящий способ на момент написания этого вопроса, который может справиться с этой ситуацией? (или более безопасный, или проще? Я не вижу проблем с /etc/profile, но, возможно, кто-то, более опытный в этой области, знает лучше)

Я не хочу, чтобы существовала возможность обойти этот контроль.

Спасибо, ребята

Используйте модуль pam_script в файле /etc/pam.d/sshd со скриптом onauth.

auth required pam-script.so onauth=/path/to/script

https://github.com/jeroennijhof/pam_script/tree/master

Ответ или решение

Вопрос, который мы рассматриваем, касается запуска скрипта при каждом подключении пользователя через SSH на сервере Debian. В условии задано, что используется авторизация по публичным ключам и скрипт должен запускаться до того, как пользователь получит доступ к системе. В случае, если скрипт возвращает ошибку, доступ должен быть заблокирован, даже если у пользователя есть правильный ключ. Рассмотрим возможные решения этой задачи.

Теория

SSH (Secure Shell) — это протокол для удаленного управления и передачи файлов, который обеспечивает безопасное подключение к серверу. При подключении пользователей по SSH они могут получить доступ ко всем ресурсам системы, которые им разрешены. В некоторых случаях может быть необходимо выполнять дополнительные проверки или действия перед тем, как пользователь получит доступ к системе.

Один из путей реализации — это использование PAM (Pluggable Authentication Modules), который представляет собой механизм для добавления различных методов аутентификации в систему. PAM позволяет подключать разнообразные сценарии для обработки аутентификации, авторизации и учёта.

Пример

Литературные источники могут предположить использование специфических модулей PAM для достижения указанной цели. Примером может служить pam_script, который позволяет запускать скрипты на различных этапах процесса аутентификации. В данном случае мы можем использовать его, чтобы выполнять скрипт непосредственно перед завершением аутентификации при когнитивной загрузке через SSH.

Добавление строки в файл /etc/pam.d/sshd может выглядеть следующим образом:

auth required pam-script.so onauth=/path/to/script

Здесь onauth указывает на скрипт, который будет выполняться при аутентификации. Если скрипт возвращает ненулевое значение, подключение будет прервано.

Применение

Для начала необходимо убедиться, что pam_script установлен в вашей системе. Это можно проверить и установить с помощью менеджера пакетов APT:

sudo apt-get update
sudo apt-get install libpam-script

Далее необходимо создать скрипт, который будет исполнять желаемые действия. Например, он может проверять определенные условия, такие как допустимые IP-адреса или время подключения. Поместите этот скрипт в защищенное место на сервере и убедитесь, что он имеет нужные права исполнения:

#!/bin/bash
# Ваш скрипт на проверку условий
exit 0  # если проверка успешна, верните 0, иначе любое ненулевое число 

Проверьте скрипт на правильность работы и действительность хода выполнения до его интеграции в систему аутентификации.

Не забудьте сделать резервную копию текущих PAM конфигураций и обдумайте, что произойдет, если ваш скрипт будет ошибочно блокировать все подключения (в этом случае доступ к системе через консоль или другой механизм может оказаться необходимым для устранения неполадок).

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

Таким образом, использование pam_script для выполнения сценария на этапе аутентификации предоставляет гибкое средство контроля доступа пользователей через SSH в Debian, при соблюдении всех вышеуказанных рекомендаций гарантируя безопасность и беспрепятственную работу.

Оцените материал
Добавить комментарий

Капча загружается...