首页›Linux操作系统›Linux网络操作系统-第35节-配置FTP服务器(二)虚拟用户与禁锢

Linux网络操作系统-第35节-配置FTP服务器(二)虚拟用户与禁锢

上节允许系统用户登录 FTP,隐患很大:FTP 明文传密码,谁拿到就是真实系统账号。虚拟用户方案:账号只存在于 FTP 自己的认证库,不碰 /etc/passwd。

第三十五节 配置FTP服务器二:虚拟用户db_load认证库与chroot禁锢
第三十五节 配置FTP服务器二:虚拟用户db_load认证库与chroot禁锢

一、虚拟用户四步搭建

# ① 准备账号文本(奇数行用户名,偶数行密码)
vim /etc/vsftpd/login.txt
tom
tom123
jerry
jerry456

# ② 生成 Berkeley DB 认证库
dnf install -y libdb-utils       # 老版本叫 db4-utils
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
chmod 600 /etc/vsftpd/login.db

# ③ 改 PAM 认证指向该库(/etc/pam.d/vsftpd)
auth    required  pam_userdb.so db=/etc/vsftpd/login
account required  pam_userdb.so db=/etc/vsftpd/login

# ④ vsftpd.conf 启用
guest_enable=YES
guest_username=ftp               # 虚拟用户映射到的系统身份

二、禁锢用户在自家目录

chroot_local_user=YES          # 所有用户锁在自己目录
allow_writeable_chroot=YES     # 2.3.5+ 安全增强:可写目录需放行

禁锢后用户登录看到的就是家目录本身,cd .. 也出不去——想改系统文件?门都没有。

虚拟用户的价值:泄露一个 FTP 密码 ≠ 泄露一台服务器。chroot 两行参数是 vsftpd 高频考点,也是「500 OOPS: vsftpd: refusing to run with writable root」报错的答案——加上 allow_writeable_chroot=YES 即可。

上一篇
下一篇