设置 VSFTPD 服务:仅本地用户
————————————————————
这是一个在 嵌入式 ARM 平台上的安装示例,全部使用源码编译,打包成为 deb 。
vsftpd: version 3.0.5
在 OpenEmbedded 中,这个版本的相关配置已经默认是 local 状态。
安装
dpkg -i pam-plugin-listfile_1.5.2_arm64.deb
dpkg -i vsftpd_3.0.5_arm64.deb
找不到 pam-plugin-listfile ? 在 libpam 里面编出来。
检查配置
以IPV4设置为例:
listen=YES
listen_ipv6=NO
编辑文件:/etc/vsftpd.conf
# 强制本地用户
anonymous_enable=NO
local_enable=YES
# 打开读写权限
write_enable=YES
local_umask=022
# 消息日志
dirmessage_enable=YES
xferlog_enable=YES
# 网络配置
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES # 用户名单
tcp_wrappers=YES
# 设置userlist属性,YES 黑 NO 白
userlist_deny=YES
# 设置本地所有帐户都只能在自家目录
chroot_local_user=YES
# 可选:设置本地用户白名单,文件中的用户不受限制
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
# 可选:设置可访问目录
local_root=/public/
# 可选:允许用户写入非用户目录
allow_writeable_chroot=YES
温馨提示:
本地用户可能需要修改/etc/pam.d/vsftpd的pam限制
无论如何设置,要确保设置的 chroot_list_file 存在,否则可能出错
添加本地 FTP 用户
添加用户: ftpusr
设置密码:
useradd -d /home/ftpusr -s /bin/bash ftpusr
passwd ftpusr
可选:添加白名单
vi /etc/vsftpd.chroot_list
重启 VSFTPD 服务
/etc/init.d/vsftpd restart