限制Linux实例中ftp的特殊用户和主机

限制Linux实例中ftp的特殊用户和主机

我用于WinSCP将 ftp 连接到 Linux 实例,我想限制特殊用户和主机。

我安装plesk在我的 Linux Ec2 实例上,我认为它用于proftpdftp 服务和xinetd服务名称。

所以我配置/etc/proftpd.confsudo service xinetd restart,但它不起作用。

所以我决定像这样更改/etc/hosts.allow和配置/etc/hosts.deny

/etc/hosts.allow:

sshd: 1.2.3.4

/etc/hosts.deny:

sshd: ALL

它正在发挥作用。但我想限制特殊用户和主机,即一个IP地址只能用一个用户名访问。

所以我尝试了

sshd: username@ipaddress

但我没有工作。

我的最终目标是一个用户可以通过一个IP地址访问一个文件夹。

答案1

sshd: username@ipaddress中的行/etc/hosts.allow会将限制应用于sshd服务(并且仅当它是在libwrap支持下编译或配置为使用 TCP 包装器时)。它对 没有任何作用proftpd

如果您使用WinSCP的scpSFTP方式进行连接,则您正在有效地使用该sshd服务,并且proftpd根本不会受到影响。如果您使用FTPorFTPS模式,那么proftpd可以处理这些,并且sshd根本不会涉及。

(在可通过 Internet 访问的服务器上以难以理解的配置运行不必要的服务会导致恶意软件感染。为了您自己和 EC2 的其他用户的利益,请不要这样做。)

使用sshd: username@ipaddress表格/etc/hosts.allow要求客户端必须正在运行identd或同等服务。identd是一项向任何询问的人显示与活动 TCP 连接关联的本地用户名的服务。在现代,这被认为是危险且不必要的信息泄露,因此该identd服务不再启用,甚至通常默认安装在现代系统上。

如果客户端不是由您信任的人维护的类 Unix 系统,则远程identd服务可能会被配置为撒谎,即使它存在并且未被防火墙阻止。总而言之,/etc/hosts.allow在现代网络环境中添加用户名不太可能有用。

您需要首先接受来自每个授权客户端主机的传入连接,然后一旦他们公开了他们想要连接的用户名(作为身份验证过程的一部分),您就可以拒绝不匹配的组合。

使用sshd,您可以通过在文件中添加如下内容来实现/etc/ssh/sshd_config

AllowUsers [email protected] [email protected] ...

请注意,这也会限制常规 SSH 连接,因此请确保您不会将自己锁定在外面。

相关内容