耗到半夜两点没睡觉就为了搞 linux 这个 vsftp, FTP 登录了怎么禁止往上切换目录???

2015-12-06 02:56:07 +08:00
 lxjsmdc

请问 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 账号能登录,能切换到家目录的上级目录

13088 次点击
所在节点    Linux
25 条回复
wind4
2015-12-06 03:24:03 +08:00
wind4
2015-12-06 03:25:13 +08:00
ericls
2015-12-06 05:23:58 +08:00
用 all
ericls
2015-12-06 05:24:10 +08:00
ACL*
msg7086
2015-12-06 07:21:46 +08:00
chroot_local_user=YES
allow_writeable_chroot=YES
其他全默认。

把登录错误的错误信息拿去搜一下就能出答案的……
duanzhanling
2015-12-06 09:34:22 +08:00
呵呵 太简单了 可以参考这篇文章
http://www.ilanni.com/?p=10071

主要配置以下三项即可:
chroot_local_user=YES

chroot_list_enable=NO

allow_writeable_chroot=YES

这三项是配置 vsftpd 用户禁止切换上级目录的权限。
est
2015-12-06 10:14:35 +08:00
我一直搞不懂为啥没有一个替代品 ftp 出现。 linux 下 n 多 ftp 都特么跟 linux 账户和账户目录绑定。这样的设计有毛病。

vsftp 对中文支持也是一坨了。 n 年前看了下,硬编码写死的。
msg7086
2015-12-06 10:23:01 +08:00
@est 你可以考虑用 vsftpd 和 proftpd ,都不需要绑定系统账户和账户目录。
anubiskong
2015-12-06 12:27:37 +08:00
体积不大的文件就用 scp 甚至 git
用 ftp 是和自己过不去
salmon5
2015-12-06 12:37:33 +08:00
@anubiskong scp 刚传输 300G 文件的路过。
ftp 协议是个老掉牙的协议,又主动又被动,建议用 sftp 来实现。
just1
2015-12-06 12:49:44 +08:00
于是我把 vsftpd.connf 备份了,在新机子安装直接复制过去。
mzer0
2015-12-06 12:51:10 +08:00
@salmon5 国外国内 scp 有流量限制
Arthur2e5
2015-12-06 14:56:56 +08:00
@mzer0 流量限制哪儿来的? GFW 数加密流量定点掐?这样说得找个伪装成 FTP 的 SSH 跑 SFTP 啊,否则登陆输密码心里得慌。

@est 如 msg7086 所言, vsftpd 本来就不是必须绑定的呀。
msg7086
2015-12-06 16:35:28 +08:00
@anubiskong
@salmon5
ftp 的性能很好,而且可以选择不加密,传输 GB+级别的文件比走 SSH 快得多。
aes-192-cbc 我服务器上 benchmark 出来才 80MB/s , arcfour 大概会快一点,不过千兆就跑满了 CPU 未免太那啥了。
V69EX
2015-12-06 16:54:25 +08:00
试试 pureftpd ,以前本来流行这个的,这个 vsftpd 后来不知咋的,就被众多发行版看上了。。。
timothyye
2015-12-06 16:58:52 +08:00
已经不用 ftp 了,拷贝文件 sftp 或者 scp 或者 rsync
mzer0
2015-12-06 19:29:59 +08:00
@Arthur2e5 我这里就是,加密流量过大就会暂时 block , ssh 和 sftp 协议均有流量限制。
zjqzxc
2015-12-06 21:46:36 +08:00
@est vsftpd 支持虚拟用户,跟 linux 本身用户没啥关系。。

中文支持的确有点日狗。。。
Arthur2e5
2015-12-07 10:57:07 +08:00
@msg7086 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 慢哈哈哈哈哈……
Arthur2e5
2015-12-07 10:58:35 +08:00
@Arthur2e5 当然, FTPS 的英文喂鸡提到如果东西已经加密了那暂时禁用一下获得一发速度优势还是好的……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/241456

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX