Nat*_*ong 23 security ftp sftp
这个 Hacker News 故事是关于 FTP 的缺点。我可能设置 FTP 的唯一原因是它很容易。
我scp已经知道并使用过,但有时我想与某人共享文件而不授予他们ssh访问我的服务器的权限。我希望他们能够上传和下载文件,但没有别的,我想将它们限制在一个目录中。我还希望他们的连接像ssh.
满足这些条件的 FTP 替代品有哪些?
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>
Run Code Online (Sandbox Code Playgroud)
Ero*_*oen -1
您可以通过将 rsync 设置为用户的登录 shell 来启用通过 ssh 的 rsync 上传和下载,而无需允许登录。这启用了 ssh 的所有优点,包括证书登录、加密和标准文件系统权限操作,同时不启用 shell 帐户(因为该帐户没有 shell,但有 rsync =))。