Назад | Перейти на главную страницу

Настройка FTP PAM для VSFTPD

ХОРОШО. Я знаю, что это один из самых часто задаваемых вопросов. Но большинство ответов либо говорят мне добавить nologin в разрешенные оболочки (нет ... не делаю этого), либо отключить SELinux (чего у меня нет - Ubuntu Server 16.04 RPi3).

Другой вариант - это установка моего pam_service_name к ftp. Хорошо, это сработало! Но затем я прочитал, что это позволяет любому войти в систему, поскольку это просто обход службы PAM. Итак, я подумал, давайте создадим файл с именем ftp в /etc/pam.d/ каталог и работать с ним.

Я залил файл следующим образом:

auth       required     /lib/arm-linux-gnueabihf/security/pam_nologin.so
account    required     /lib/arm-linux-gnueabihf/security/pam_unix.so
password   required     /lib/arm-linux-gnueabihf/security/pam_unix.so

Я чего-то упускаю, не знаю чего. Я впервые возился с PAM, так что, честно говоря, я понятия не имею, что делаю.

Я хочу разрешить только пользователям unix с nologin оболочка должна быть аутентифицирована vsftpd.

С уважением

Прочитав несколько статей, я понял, как работает PAM.

Файлы в /etc/pam.d - это в основном список условий, которые проверяются при использовании этого модуля / службы. Поэтому, когда я устанавливаю содержимое файла /etc/pam.d/ftp на следующее:

auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth    required    pam_succeed_if.so quiet user ingroup ftp
auth    required    pam_succeed_if.so quiet shell = /usr/sbin/nologin

Я получаю то, что мне нужно, т.е. только пользователи UNIX, которые находятся в ftp Группа с нологин как оболочка может войти в систему.

Объяснение того, что делает каждая строка:

  1. ЕСЛИ USER в /etc/ftpusers file ЗАТЕМ ОТРИЦАТЬ ELSE ПОЗВОЛЯТЬ и НАЙТИ следующее ПРАВИЛО
  2. ЕСЛИ USER в GROUP ftp ЗАТЕМ ПОЗВОЛЯТЬ и НАЙТИ следующее ПРАВИЛО ELSE ОТРИЦАТЬ
  3. ЕСЛИ USERс SHELL = /usr/sbin/nologin ЗАТЕМ ПОЗВОЛЯТЬ НАЙТИ следующее ПРАВИЛО ELSE ОТРИЦАТЬ
  4. НЕТ СЛЕДУЮЩЕГО ПРАВИЛА: РАЗРЕШИТЬ ДОСТУП

Все правила в основном AND'ed когда они типа ОБЯЗАТЕЛЬНЫЙ.

Я ссылаюсь на руководство, за которым следил. Я также использовал справочные страницы Linux для PAM, но не связывал их.

Не стесняйтесь добавлять все, что я пропустил. Я впервые работал с PAM, и я думаю, что мне нравится эта функция.

С уважением!

Простое руководство по Linux-PAM от DZONE.com