centos vsftp配置文件详解
导读:CentOS 下 vsftpd 配置文件详解 一 配置文件位置与格式 主配置文件:/etc/vsftpd/vsftpd.conf。配置项格式为option=value,等号两侧不能有空格;以**#开头为注释。vsftpd 默认在此路径查找...
CentOS 下 vsftpd 配置文件详解
一 配置文件位置与格式
- 主配置文件:/etc/vsftpd/vsftpd.conf。配置项格式为option=value,等号两侧不能有空格;以**#开头为注释。vsftpd 默认在此路径查找配置文件。常用布尔值可设为YES/NO**。示例:
anonymous_enable=YES、write_enable=YES。该文件控制匿名访问、本地用户、写权限、日志、端口、chroot、SSL 等关键行为。
二 核心配置项速查
- 基础访问
anonymous_enable=YES/NO:是否允许匿名登录(默认YES)。local_enable=YES/NO:是否允许本地系统用户登录(默认NO,示例配置常为YES)。write_enable=YES/NO:是否允许写操作(全局开关,默认NO,示例常为YES)。local_umask=022:本地用户新建文件的权限掩码(常见为022)。
- 匿名用户细化
anon_upload_enable=YES/NO:允许匿名上传(需同时开启 write_enable,默认NO)。anon_mkdir_write_enable=YES/NO:允许匿名建目录(默认NO)。anon_other_write_enable=YES/NO:允许匿名删除/重命名等(默认NO)。anon_world_readable_only=YES/NO:仅允许下载“世界可读”文件(默认YES)。anon_root=/var/ftp:匿名登录根目录(默认**/var/ftp**)。
- 本地用户与目录限制
chroot_local_user=YES/NO:是否将所有本地用户禁锢在其家目录(默认NO)。chroot_list_enable=YES/NO:是否启用 chroot 用户列表(默认NO)。chroot_list_file=/etc/vsftpd.chroot_list:chroot 列表文件路径。allow_writeable_chroot=YES/NO:是否允许 chroot 目录可写(默认NO,开启可避免某些客户端在禁锢目录内写入时报错)。
- 日志与提示
xferlog_enable=YES/NO:启用传输日志(默认NO,示例常为YES)。xferlog_file=/var/log/xferlog:wu-ftpd 风格传输日志路径。xferlog_std_format=YES/NO:是否使用标准 xferlog 格式(默认NO)。dual_log_enable=YES/NO:同时生成 xferlog 与 vsftpd 日志(默认NO)。dirmessage_enable=YES/NO、message_file=.message:进入目录显示提示信息。ftpd_banner=...、banner_file=...:登录横幅。
- 传输与端口
connect_from_port_20=YES/NO:主动模式是否使用20端口发起数据连接(示例常为YES)。pasv_enable=YES/NO:是否启用被动模式(默认YES)。pasv_min_port=1024、pasv_max_port=1048:被动模式端口范围(建议固定范围便于防火墙放行)。listen=YES/NO、listen_ipv6=NO:是否以独立模式监听(默认YES),与 IPv6 互斥。max_clients=0、max_per_ip=0:最大连接数/每 IP 最大连接数(0 为不限制)。
- 访问控制
userlist_enable=YES/NO、userlist_deny=YES/NO、userlist_file=/etc/vsftpd.user_list:用户列表访问控制(两种语义:黑名单或白名单)。pam_service_name=vsftpd:PAM 认证配置文件名(对应**/etc/pam.d/vsftpd**)。tcp_wrappers=YES/NO:是否启用 TCP Wrappers(/etc/hosts.allow、/etc/hosts.deny)。/etc/vsftpd/ftpusers:系统级禁止登录的高权限用户列表(如 root 等),优先级高于 user_list 的允许规则。
- SSL/TLS(可选)
ssl_enable=YES/NO、allow_anon_ssl=NO、force_local_logins_ssl=YES、force_local_data_ssl=YESssl_tlsv1=YES、ssl_sslv2=NO、ssl_sslv3=NOrsa_cert_file=、rsa_private_key_file=:证书与私钥路径。
三 典型场景配置示例
-
示例A 本地用户安全发布(禁锢家目录,主动/被动均可)
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES listen=YES pasv_enable=YES pasv_min_port=21234 pasv_max_port=30999 userlist_enable=YES userlist_deny=NO tcp_wrappers=YES pam_service_name=vsftpd要点:禁锢用户后,若需写入,开启allow_writeable_chroot=YES;被动模式固定端口便于防火墙放行(示例范围21234–30999)。
-
示例B 启用 TLS 加密传输
ssl_enable=YES allow_anon_ssl=NO force_local_logins_ssl=YES force_local_data_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem pasv_min_port=21234 pasv_max_port=30999要点:生成 PEM 证书后,客户端需使用FTPS;被动端口同样建议固定并放行。
四 访问控制与用户列表优先级
- 文件与语义
/etc/vsftpd/ftpusers:系统级禁止登录列表(如 root),优先级高。/etc/vsftpd.user_list:配合userlist_enable=YES使用;当userlist_deny=YES时为黑名单,当userlist_deny=NO时为白名单(仅列表内用户可登录)。
- 组合效果(chroot 场景)
chroot_local_user=YES, chroot_list_enable=NO:所有用户均被禁锢。chroot_local_user=NO, chroot_list_enable=YES:仅列表用户被禁锢。chroot_local_user=YES, chroot_list_enable=YES:仅列表用户不被禁锢(其余禁锢)。chroot_local_user=NO, chroot_list_enable=NO:所有用户均可跳出家目录。
五 常见问题与排查要点
- 上传失败或 553 Could not create file
- 检查目录属主/权限(如本地用户对目标目录具备写权限)。
- 检查 SELinux:
getsebool -a | grep ftp;必要时执行:setsebool -P ftp_home_dir on(允许本地用户家目录写入),或setsebool -P ftpd_full_access on(放行更宽松的 FTP 访问),再重启 vsftpd。
- 被动模式连接失败(425 Failed to establish connection)
- 在防火墙放行被动端口范围(如21234–30999),并确保
pasv_min_port/pasv_max_port已设置;云服务器还需在安全组放行对应端口。
- 在防火墙放行被动端口范围(如21234–30999),并确保
- 配置语法错误
- 布尔值必须为YES/NO,且等号两侧不能有空格;多余空格会导致如“500 OOPS: bad bool value”等错误。
- 日志与调试
- 开启
xferlog_enable=YES、dual_log_enable=YES便于定位;需要协议级调试可启用log_ftp_protocol=YES(与xferlog_std_format互斥)。
- 开启
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos vsftp配置文件详解
本文地址: https://pptw.com/jishu/769848.html
