通过 AD 阻止 vsFTP 身份验证

通过 AD 阻止 vsFTP 身份验证

我安装了一个非常小的虚拟机,用于测试目的,运行 CentOS 1708,配置了 vsftp。我用了

https://www.rootusers.com/how-to-join-centos-linux-to-an-active-directory-domain/

为操作系统部分设置广告身份验证,但不希望广告用户能够通过FTP客户端登录。

主要是我需要通过内部 ssh 进行广告身份验证,而不是通过互联网,并且纯粹通过本地用户进行 FTP 登录。

我注意到,如果用户没有通过 ssh 登录到该虚拟机,他/她将无法使用广告凭据通过 ftp 端口 21 登录,因为它无法创建主目录。

我想这很好,但我正在寻找一种方法来完全阻止通过 AD 进行广告身份验证,只允许通过 ssh 或终端

我不希望通过 ftp 进行广告身份验证,因为这会使我的广告用户在互联网上面临被“黑客攻击”或被锁定的风险

关于我如何实现这一目标有什么建议吗?

答案1

vsFTPd 身份验证中涉及的 PAM 模块在 中定义/etc/pam.d/vsftpd。默认情况下,它有一行:

auth   include    password-auth

它使用系统范围的默认 PAM 配置进行基于密码的身份验证(在 中指定)/etc/pam.d/password-auth。配置 AD 身份验证时,通常会将相关的 PAM 模块添加到/etc/pam.d/password-auth.

如果您根本不希望 AD 身份验证与 vsFTPd 一起使用,请编辑/etc/pam.d/vsftpd文件。注释掉该行

auth   include   password-auth

在注释掉的行之后,写入password-auth文件中的相关行,因为它存在于未配置 AD 身份验证的系统中:

auth    required     pam_env.so
auth    required     pam_faildelay.so delay=2000000
auth    sufficient   pam_unix.so nullok try_first_pass
auth    requisite    pam_succeed_if.so uid >= 1000 quiet_success
auth    required     pam_deny.so

这样,AD 身份验证提供程序模块将被完全阻止参与 vsFTPd 身份验证,因此对于 vsFTPd 来说,身份验证过程就像系统根本没有任何 AD 集成一样。

答案2

SSSD AD 提供程序允许评估用于访问控制的 GPO 策略,并将 Windows 登录权限传递到 Linux PAM 服务。我建议探索这条道路。顺便说一句,我还建议不要将服务列入黑名单,而是采取另一种方式,仅将您希望在 Linux 主机上允许的服务列入白名单。 sssd-ad 手册页应该有一些将登录权限映射到 PAM 服务的示例。

相关内容