Одним из преимуществ PAM (Pluggable Authentication Module) является возможность ограничения числа сетевых пользователей, имеющих доступ к определенному сервису, на основе списка. Например, с помощью PAM можно задать ограничения на SSH-подключения.
Добавьте в файл /etc/pam.d/sshd строку:
auth required /lib/security/pam_listfile.so onerr=fail item=user sense=allow file=/etc/sshd_users
Эта директива разрешает регистрацию пользователя через sshd, если его имя присутствует в файле /etc/sshd_users. Опции имеют следующие значения:
- onerr=fail — этот параметр не даст успешно пройти тест, если произойдет ошибка (указанный файл не найден или в файле обнаружена некорректная строка). В результате пользователю будет отказано в регистрации через sshd. Другим возможным значением параметра onerr является succeed.
- item=user — означает, что мы проверяем имя пользователя.
- sense=allow — если пользователь найден в заданном файле, пройти этот тест. Это разрешит регистрацию пользователя, если пройдут также все другие тесты. Другим возможным значением параметра sense является deny.
- file=/etc/sshd_users — задает файл, содержащий список имен пользователей (по одному имени на строку), которым разрешена регистрация через sshd.
С указанной строкой, файл /etc/pam.d/sshd будет выглядеть приблизительно так:
#%PAM-1.0
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
auth required pam_listfile.so onerr=fail item=user sense=allow file=/etc/sshd_users
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session required pam_limits.so
session optional pam_console.so
Теперь вы можете добавить в файл /etc/sshd_users необходимых пользователей. Каждое имя пользователя должно быть указано отдельной строкой.
Как-то давно искал нечто подобное, правда сделал немного по-своему 🙂 Сказывается, наверное, давность публикаци.
А что. хорошая идея объединить все методы ограничения доступа к SSH в одной статье. Наверное обновлю это дело. 🙂
Давайте, я подписался на всякий случай)))
[…] Еще один вариант – это разрешить доступ через PAM. […]
То же самое можно сделать, используя директиву AllowGroup, ее нет в /etc/sshd_config, но она описана в man sshd_config.
bappoy, поправлю тебя немного AllowGroups. “s” пропустил. 🙂