技术解析

耗到半夜两点没睡觉就为了搞 linux 这个 vsftp, FTP 登录了怎么禁止往上切换目录???
0
2021-07-05 00:47:55
idczone

请问 vsftp ,用账号 FTP 登录了怎么禁止往上切换目录
环境是阿里云的 Ubuntu 14.04 64 位

tail -n5 /etc/passwd
回馈如下
aaaaaa:x:1000:1000::/var/www/aaaaaa:/sbin/nologin
bbbbbb:x:1001:1001::/var/www/bbbbbb:/sbin/nologin

/etc/vsftpd.conf 配置如下

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

情况一:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

chroot_list 文件内容:
aaaaaa

aaaaaa 不能登录 ftp
bbbbbb 能登录 能往上切换目录

情况二:
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

chroot_list 文件内容:
aaaaaa

aaaaaa 能登录 能往上切换目录
bbbbbb 不能登录 ftp

情况三:
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list

chroot_list 文件内容:
aaaaaa

aaaaaa 不能登录 ftp
bbbbbb 不能登录 ftp

情况四:
chroot_local_user=NO
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list

chroot_list 文件内容:
aaaaaa

aaaaaa 能登录 能往上切换目录
bbbbbb 能登录 能往上切换目录

请问要怎么配置才能让
aaaaaa 账号能登录,不能切换到家目录的上级目录
bbbbbb 账号能登录,能切换到家目录的上级目录


仅供参考: http://unix.stackexchange.com/questions/94603/limit-ftp-access-only-to-the-var-www-with-vsftpd

再来一条: http://sharadchhetri.com/2013/05/21/how-to-install-and-configure-ftp-server-with-chroot-in-ubuntu-12-04-lts/

用 all

ACL*

chroot_local_user=YES
allow_writeable_chroot=YES
其他全默认。
把登录错误的错误信息拿去搜一下就能出答案的……

呵呵 太简单了 可以参考这篇文章
http://www.ilanni.com/?p=10071
主要配置以下三项即可:
chroot_local_user=YES
chroot_list_enable=NO
allow_writeable_chroot=YES
这三项是配置 vsftpd 用户禁止切换上级目录的权限。

我一直搞不懂为啥没有一个替代品 ftp 出现。 linux 下 n 多 ftp 都特么跟 linux 账户和账户目录绑定。这样的设计有毛病。
vsftp 对中文支持也是一坨了。 n 年前看了下,硬编码写死的。

你可以考虑用 vsftpd 和 proftpd ,都不需要绑定系统账户和账户目录。

体积不大的文件就用 scp 甚至 git
用 ftp 是和自己过不去

scp 刚传输 300G 文件的路过。
ftp 协议是个老掉牙的协议,又主动又被动,建议用 sftp 来实现。

于是我把 vsftpd.connf 备份了,在新机子安装直接复制过去。

国外国内 scp 有流量限制

流量限制哪儿来的? GFW 数加密流量定点掐?这样说得找个伪装成 FTP 的 SSH 跑 SFTP 啊,否则登陆输密码心里得慌。
如 msg7086 所言, vsftpd 本来就不是必须绑定的呀。



ftp 的性能很好,而且可以选择不加密,传输 GB+级别的文件比走 SSH 快得多。
aes-192-cbc 我服务器上 benchmark 出来才 80MB/s , arcfour 大概会快一点,不过千兆就跑满了 CPU 未免太那啥了。

试试 pureftpd ,以前本来流行这个的,这个 vsftpd 后来不知咋的,就被众多发行版看上了。。。

已经不用 ftp 了,拷贝文件 sftp 或者 scp 或者 rsync

我这里就是,加密流量过大就会暂时 block , ssh 和 sftp 协议均有流量限制。

vsftpd 支持虚拟用户,跟 linux 本身用户没啥关系。。
中文支持的确有点日狗。。。

rc4 完全就是 crypto bs (早被攻破了也就反反关键词),不过既然自己没做什么违法乱纪的东西不怕哪天有人想看……那就不怕。不过不管怎么说,“选择不加密”或者弄一些垃圾都是很不负责的事情。
服务器跑 AES 考虑自己拿一份版本相同的开了 AES-NI 的 OpenSSL ,另外测速的时候也相应加上 -evp , https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-Encryption-OpenSSL_Intel_AES-NI_Engine.html 提到了一些。
安全方面的考虑在 https://stribika.github.io/2015/01/04/secure-secure-shell.html 有。
总之, x86 类平台要快的话 aes128 够用了(我笔记本 i5 带 HT 开 cygwin 测 openssl speed -evp aes-128-cbc 都能有 64M ),但是避免 gcm (不加密消息大小)。 chacha20-poly1305 可能在没有 AES 鸡血的地方更快……
P.S. 看 http://www.systutorials.com/5450/improving-sshscp-performance-by-choosing-ciphers/ 评论区的话 rc4 其实还比 aes 慢哈哈哈哈哈……

当然, FTPS 的英文喂鸡提到如果东西已经加密了那暂时禁用一下获得一发速度优势还是好的……

中文问题,除了再看日志的时候有点蛋疼之外,其他一切都好。 version 2.2.2

大多数时候传送大文件走 FTP 都是些开不开加密都无所谓的东西。比如监控录像几百 G 那种,真无所谓的。毕竟还是看使用环境。

推荐 pure-ftpd

中文问题,在使用 Windows 的 explorer 上传的时候几乎是传一个死一个。用 ftp 客户端好像没啥问题。。以前是给别人用的,用客户端都嫌麻烦。。。版本忘记了。。

我也是花了几个钟

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服