vsftpd 安装及配置
vsftpd 安装
我使用的是 yum 安装的,因为比较简单
配置文件及想要的结果
1. 支持虚拟用户
2. 虚拟用户映射在 webServer 的用户上 暂定 apache
3. 虚拟用户有单独配置文件
4. 可以在被动模式访问
配置文件内容:
1. 准备虚拟用户账号密码文件
2. 生成可以验证的 db格式
3. 指定账号密码验证到刚生成的文件
生成账号密码文件
cd /web/conf/vsftp/
vim user_list.txt
内容:
apache
apache123
生成db 格式
注意:如果没有db_load
命令,执行yum -y install db4*
db_load –T –t hash –f user_list.txt user.db
配置PAM认证
vim /etc/pam.d/vsftpd.db
注意:这里我用的是 vsftpd.db ,和下面的配置文件对应。文件内容中user
没有.db
,会失败。
auth required pam\_userdb.so db=/web/conf/vsftp/user
account required pam\_userdb.so db=/web/conf/vsftp/user
配置文件
# 关闭匿名用户
anonymous_enable=NO
# 本地用户可写
local_enable=YES
# 可写
write_enable=YES
# 用户权限
local_umask=022
anon_umask=022
# 虚拟用户可以创建文件夹
anon_mkdir_write_enable=YES
# 进入某目录时 给出消息
dirmessage_enable=YES
# 开启上传下载日志
xferlog_enable=YES
# 日志文件
xferlog_file=/var/log/xfer.log
# 主动模式端口
connect_from_port_20=YES
# 开启 ASCII
ascii_upload_enable=YES
ascii_download_enable=YES
# 欢迎消息
ftpd_banner=Welcome to Jief's FTP service.
# 限制在家目录
chroot_local_user=YES
chroot_list_enable=YES
# 可以离开家目录的 用户名列表
chroot_list_file=/web/conf/vsftp/chroot_list
# 若是启用此功能,则允许登入者使用ls –R(可以查看当前目录下子目录中的文件)这个指令。默认值为NO。
#ls_recurse_enable=YES
# 监听 ipv4 IP
listen=YES
# 上下二选一
# 监听 ipv6 IP
listen_ipv6=NO
# 权限验证
pam_service_name=vsftpd.db
# 开启虚拟用户
guest_enable=YES
# 主目录可写的,我这里遇到的坑就没有这个选项,打开限制到主目录下,直接报错。
allow_writeable_chroot=YES
# 虚拟用户的宿主用户
guest_username=apache
# 是否启用/etc/vsftpd/user_list文件。
userlist_enable=NO
# 设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。
# 如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。
#这两个文件可以起到简易的防火墙功能。
tcp_wrappers=YES
# 每个用户单独的配置文件 在这个目录下 文件名和用户名必须一致
user_config_dir=/web/conf/vsftp/userconf/
# 虚拟用户和宿主用户权限一样
virtual_use_local_privs=YES
# 被动模式 端口
pasv_enable=YES
pasv_addr_resolve=yes
pasv_address=0.0.0.0
pasv_min_port=30101
pasv_max_port=30105
坑
- xftp 默认被动模式,我没有配置导致 一直列出目录失败。
- 把虚拟用户限制家目录时,一直提示登陆失败,没有权限,添加
allow_writeable_chroot=YES
解决。
评论已关闭