Shell

VSFTPD 的 FTP PAM 設置

  • September 17, 2018

好的。我知道這是這裡被問到最多的問題之一。但大多數答案要麼告訴我向允許的 shell 添加 nologin(不……不這樣做)或禁用 SELinux(我沒有 - Ubuntu Server 16.04 RPi3)。

另一種選擇是看到將 my 設置pam_service_nameftp. 好吧,這行得通!但後來我進一步讀到這允許任何人登錄,因為它只是繞過 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,老實說,我不知道自己在做什麼。

我想要的設置是只允許具有nologinshell 的 unix 使用者通過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

我得到了我需要的東西,即只有在ftp組中使用nologin作為 shell 的 UNIX 使用者可以登錄。

解釋每一行的作用:

  1. IF USER/etc/ftpusers file THEN DENY ELSE ALLOW並轉到下一個規則
  2. IF USERGROUP ftp THEN ALLOW和 GOTO 下一個 RULE ELSE DENY
  3. IF USER ’s SHELL = /usr/sbin/nologin THEN ALLOW GOTO next RULE ELSE DENY
  4. 沒有下一條規則:允許訪問

所有規則基本上都是REQUIREDAND'ed類型。

我正在連結我遵循的指南。我還使用了 PAM 的 Linux 手冊頁,但沒有連結它們。

隨意添加我錯過的任何內容。這是我第一次使用 PAM,我想我喜歡這個功能。

問候!

DZONE.com 的 Linux-PAM 簡單指南

引用自:https://serverfault.com/questions/931127