Ограничение доступа по SHH через PAM

Одним из преимуществ 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 необходимых пользователей. Каждое имя пользователя должно быть указано отдельной строкой.

Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

6 комментариев(я)

  • 28.06.2008 13:35, Сергей Геннадьевич сказал:

    Как-то давно искал нечто подобное, правда сделал немного по-своему :-) Сказывается, наверное, давность публикаци.

    • 28.06.2008 13:41, Silver Ghost сказал:

      А что. хорошая идея объединить все методы ограничения доступа к SSH в одной статье. Наверное обновлю это дело. :)

      • 28.06.2008 13:59, Сергей Геннадьевич сказал:

        Давайте, я подписался на всякий случай)))

        • 28.06.2008 21:42, Защита SSH сервера | Записки старого сисадмина сказал:

          […] Еще один вариант — это разрешить доступ через PAM. […]

          • 28.06.2008 22:58, bappoy сказал:

            То же самое можно сделать, используя директиву AllowGroup, ее нет в /etc/sshd_config, но она описана в man sshd_config.

            • 28.06.2008 23:04, Silver Ghost сказал:

              bappoy, поправлю тебя немного AllowGroups. «s» пропустил. :)

              (Обязательно)
              (Обязательно, не публикуется)

              Яндекс.Метрика beget