我使用WinSCP连接ftp到Linux实例,并希望限制特殊用户和主机。
我在我的Linux Ec2实例上安装了Ec2,我认为它使用proftpd作为ftp服务,使用xinetd作为服务名称。
所以我配置了/etc/proftpd.conf和sudo 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地址到一个文件夹。
发布于 2019-09-16 08:42:38
/etc/hosts.allow中的行TCP将将限制应用于sshd服务(而且只有在使用libwrap支持编译或配置为使用TCP的情况下)。它对proftpd毫无作用。
如果您正在使用scp或SFTP模式的WinSCP进行连接,那么您将有效地使用sshd服务,并且根本不会涉及到proftpd。如果您使用的是FTP或FTPS模式,那么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 user1@ip.address.1 user2@ip.address.2 ...请注意,这也将限制正常的SSH连接,因此请确保不将自己锁在门外。
https://unix.stackexchange.com/questions/534834
复制相似问题