FTP有哪些安全的替代方法?[关闭]


22

这个Hacker News故事是关于FTP的缺点的。我可以设置FTP的唯一原因是它很简单。

scp已经知道并使用过,但是有时我想与某人共享文件而不让他们ssh访问我的服务器。我希望他们能够上载和下载文件,但别无其他,我想将它们限制在一个目录中。我也希望他们的连接像一样被加密ssh

符合这些条件的FTP替代品有哪些?


2
您可以在不使用ssh的情况下使用scp,请参见:serverfault.com/questions/354615/allow-sftp-but-disallow-ssh
Stone

1
我不会打扰阅读该文章,但值得记住的是,FTP是为在封闭的网络(在楼上的实验室与地下室中的服务器之间/从地下的服务器)中使用而设计的,因此,安全甚至不是一个考虑因素。令人惊讶的是,它仍在公共网络上使用。
约翰·加迪尼尔

1
有人可能会说ftp根本不是设计的,而是通过“好主意”发展起来的,“好主意”是由各种人创建的,用于文件传输的软件,早在关闭状态成为网络可观察到的特性(访问控制发生在门锁和愤怒的目光中)之前。
Eroen

Answers:


7

Proftpd具有内置的sftp服务器,该服务器允许您出于文件传输的目的将用户与sshd完全隔离。您可以对其进行设置,以便它使用完全独立的passwd文件来进一步隔离它们(如果/ etc / passwd中实际上没有用户,则很难通过ssh登录到系统并突破chroot。 )

proftpd还允许您轻松地chroot并将sftp用户隔离到一组目录中。

我们做这样的事情:

LoadModule mod_sftp.c

<VirtualHost 10.1.1.217>

    ServerName  "ftp.example.com"

    # from http://www.proftpd.org/docs/howto/NAT.html
    MasqueradeAddress   1.2.3.4
    PassivePorts 27001 27050

    UseSendfile off

    ExtendedLog         /var/log/proftpd/access.log WRITE,READ default
    ExtendedLog         /var/log/proftpd/auth.log AUTH auth

    AuthUserFile /etc/proftpd/AuthUsersFile
    AuthOrder           mod_auth_file.c 

    <IfModule mod_sftp.c>
        Port 10022
    SFTPAuthorizedUserKeys file:/etc/proftpd/ssh_authorized_keys/%u
        SFTPEngine On
        SFTPLog /var/log/proftpd/sftp.log
        SFTPHostKey /etc/ssh/proftpd-ssh_host_rsa_key
        SFTPHostKey /etc/ssh/proftpd-ssh_host_dsa_key
        MaxLoginAttempts 6
    </IfModule>
</VirtualHost>

1
为了帮助新手,如果OP需要帮助设置此功能,我这里有一个完全基础教程:csrdu.org/nauman/2011/02/13/...
recluze

3

我将WebDav与启用https的服务器一起使用!然后,认证基于标准的http授权方案。的指南建立的WebDAV的Apache可以找到这里那就只有neccessary把后面的https该资源,在这里我找到了一个很好的说明如何做到


鉴于此处使用的语言,您至少可以链接到该文章的英文版本。
约翰·加迪尼尔

哈哈对不起没意识到那个错误。感谢您的纠正!
joecks 2012年

1

您没有将“免费”指定为必要条件,因此我将通过grouplogic丢弃Mass Transit软件包。对于大多数人来说,这可能有点矫kill过正,而且超出了他们的价格范围,但是该功能套件简直棒极了。获得第二台大众运输服务器并点亮自动化,您可以非常快地移动一些文件。


0

您可以sftp使用ssh类似的模式进行设置ftp

您可以在计算机中创建一些用户(一个或多个,这取决于每个用户是否可以访问彼此的文件),为他们提供shell / bin / false,并将chroot每个用户分配到这些文件所在的某个目录中。放置。


0

您可以使用启用了TLS加密的pure-ftpd。配置非常简单,要在配置文件中启用加密取消注释TLS选项(仅一行:)),将客户端配置为通过ftp连接即可。(您必须记住,并非所有的ftp客户端都支持ftps)。


-1

通过将rsync设置为用户的登录shell,可以通过ssh通过rsync启用上载和下载,而无需允许登录。这样可以启用ssh的所有功能,包括证书登录,加密和标准文件系统权限操作,而无需启用外壳程序帐户(因为该帐户没有外壳程序,而是rsync =)。


怎么会更安全呢?仍然是明文...
EEAA 2012年

这取决于您如何设置。常见的方式(我见过的唯一方式)是使用ssh并将rsync设置为登录shell,或(对于root用户而言)设置特定于命令的ssh证书。
Eroen

1
Rsync在运行服务时(如您在答案中建议的那样)没有加密。对于rsync + ssh当然不是这种情况。您可以编辑答案以使您的意思更清楚。
EEAA 2012年

发生了更改(以防万一有人发现上面的评论很不合适)。
Eroen

尽管没有要求,但值得一提的是,尽管有许多易于使用的接口可用于FTP和类似FTP的协议,但我个人并不知道用于rsync的接口。如果目标用户不是技术人员,则可能会出现问题。
约翰·加迪尼尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.