安装vsftpd
# centosyum install -y vsftpd# ubuntuapt install -y vsftpd# 安装完成后,vsftpd服务将自动启动。您可以使用以下命令检查其状态:systemctl status vsftpd# vsftpd服务在启动时自动启动,可以使用以下命令使其启用:systemctl is-enabled vsftpdsystemctl enable vsftpd
修改配置:
vi /etc/vsftpd/vsftpd.conf# ubuntu默认是:vi /etc/vsftpd.conf
vsftpd.conf内容参考:
1.3 主动模式设置
主动模式适用于局域网(内网)环境下,云平台使用公网 FTP 服务,请使用被动模式。
主动模式下 vsftpd.conf 参数设置
vi /etc/vsftpd/vsftpd.conf
# 修改参数如下,没有修改的为默认值# 全部用户被限制在主目录chroot_local_user=YES# 启用例外用户名单chroot_list_enable=YES# 指定例外用户列表文件,列表中的用户不被锁定在主目录chroot_list_file=/etc/vsftpd/chroot_listallow_writeable_chroot=YES# 设置本地用户登录后所在的目录local_root=/var/ftp/test# 启用匿名访问:anonymous_enable=NO# 允许本地用户登录:local_enable=YES# 允许用户上传文件:write_enable=YES
重启服务生效:
systemctl restart vsftpd
添加用户:
adduser --shell /bin/false --home /data/weblogjson ftpuser然后要求输入密码,接着重启systemctl restart vsftpdchown ftpuser:ftpuser /data/weblogjsonchmod 755 /data/weblogjson
锁定用户:
usermod -L ftpuserusermod -L ftpuser 命令锁定了用户,这会禁用用户的密码。这意味着如果您的 FTP 服务器设置为需要密码验证,该用户将无法通过密码验证登录。确保这是您想要的配置。如果您想解锁用户,可以使用:
设置用户密码:
passwd ftpuser
启用服务:
systemctl start vsftpd
查看状态(端口):
netstat -antup | grep ftp
ps aux | grep vsftpd
查看日志
tail -fn50 /var/log/vsftpd.log# 或者查看系统日志sudo journalctl -u vsftpd
vsftpd 配置文件说明
#ftp 访问路径local_root=#是否开启匿名模式anonymous_enable=YES#是否允许本地用户登录local_enable=YES#是否允许任何形式写入 ftpwrite_enable=YES#本地 umask 值local_umask=022#允许匿名用户上传文件到 ftpanon_upload_enable=YES#允许匿名用户在 ftp 上创建目录anon_mkdir_write_enable=YES#虚拟用户是否和本地用户权限一致virtual_use_local_privs=YES#是否记录目录活动信息dirmessage_enable=YES#是否记录上传和下载的信息xferlog_enable=YES#开启主动模式connect_from_port_20=YES#开启被动模式pasv_enable=YES#配置被动模式端口范围#默认为 0,表示 1024 以上的所有端口pasv_min_port=30000pasv_max_port=31000#指定登录传输的端口listen_port=10022#指定上传文件属于哪个用户chown_uploads=YESchown_username=whoever#定义日志目录,默认为 /var/log/xferlogxferlog_file=/var/log/xferlog#定义日志格式是否为 xferlogxferlog_std_format=YES#定义空闲会话超时时间idle_session_timeout=600#定义数据链接超时时间data_connection_timeout=120#定义非特权用户nopriv_user=ftpsecure#服务器是否识别 ABOR 异步请求async_abor_enable=YES#是否允许 ASCII 模式,默认为 NOascii_upload_enable=YESascii_download_enable=YES#定义 ftp 登录时的横幅ftpd_banner=Welcome to blah FTP service.#是否拒绝匿名电子邮件,deny_email_enable=YES#指定用户登陆时 chroot 到某个指定的目录#chroot 可能非常危险。如果使用 chroot,请确保用户对 chroot 内的顶级目录没有写入权限chroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list#是否启用 ls -R 参数,避免多用户造成 I/O 问题ls_recurse_enable=NO#当启用“listen”指令时,vsftpd 以独立模式运行并侦听 IPv4 套接字#该指令不能与 listen_ipv6 指令结合使用listen=NO#启用侦听 IPv6 套接字listen_ipv6=YES#开启虚拟用户模式guest_enable=YES#设定 PAM 服务下 vsftpd 的验证配置文件名#PAM 验证将参考 /etc/pam.d/ 下的 vsftpd 文件配置# ubuntu下修改成:pam_service_name=ftp# centos下pam_service_name=vsftpd#是否启用 user_list 文件#userlist_deny=NO 时表示 user_list 文件内的用户拒绝登录 vsftp#userlist_deny=YES 时表示 user_list 文件内的用户允许登录 vsftpuserlist_enable=YES#虚拟用户配置文件路径user_config_dir=#支持 TCP Wrapperstcp_wrappers=YES
