vsftpd

就是一个文件传输服务

安装vsftpd服务

  • [root@chengle ~]# rpm -qa | grep vsftpd #查看本地是否有包
  • vsftpd-3.0.3-33.el8.x86_64 #若存在
  • rpm -iv xxx #安装vsftpd包
  • #不存在
  • yum -y install vsftpd #网络安装
  • systemctl enable --now vsftpd #启动并设置开机自启动vsftpd服务

ftp配置文件列表

以下均为默认文件及路径

  • /etc/vsftpd/vsftpd.conf #主配置文件
  • /usr/sbin/vsftpd #主程序
  • /etc/rc.d/init.d/vsftpd #ftp启动程序
  • /etc/pam.d/vsftpd #PAM认证文件
  • /var/ftp #匿名用户主目录;本地用户主目录为:/home/用户主目录,即登录后进入自己家目录
  • /var/ftp/pub #匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后无法删除)

主配置文件详解

三种用户模式

匿名用户配置

  • anonymous_enable=YES   #是否启用匿名用户
  • no_anon_password=YES   #匿名用户login时不询问口令
  • anon_upload_enable=(yes/no); #控制匿名用户对文件(非目录)上传权限
  • anon_world_readable_only=(yes/no); #控制匿名用户对文件的下载权限
  • anon_mkdir_write_enable=(yes/no); #控制匿名用户对文件夹的创建权限
  • anon_other_write_enable=(yes/no); #控制匿名用户对文件和文件夹的删除和重命名
  • write_enable=YES #全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启它)
  • anon_root=(none) #匿名用户主目录
  • anon_max_rate=(0) #匿名用户速度限制
  • anon_umask=(077) #匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为073)
  • chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username
  • chown_username=whoever #匿名上传文件所属用户名

本地用户配置

  • write_enable=YES #可以上传(全局控制) 删除,重命名
  • local_umask=022 #本地用户上传文件的umask
  • userlist_enable=YES #限制了/etc/vsftpd/user_list文件里的用户不能访问
  • local_root #设置一个本地用户登录后进入到的目录
  • user_config_dir #设置用户的单独配置文件所在目录,用哪个帐户登陆就用哪个账号名称在目录下新建文件,实现不同用户不同权限
  • download_enable #限制用户的下载权限
  • chroot_local_user=YES/NO #是否禁止用户离开设置的根目录
  • chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
  • chroot_list_file=/etc/vsftpd/chroot_list #指出被锁定/允许 在自家目录中的用户的列表文件

虚拟用户配置

  • pam_service_name=vsftpd #设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。
  • check_shell=YES #(注意:仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录 )
  • guest_enable= YES/NO #启用虚拟用户。默认值为NO。
  • guest_username=ftp #这里设置虚拟用户的宿主用户。默认值为ftp。
  • virtual_use_local_privs=YES/NO #当该参数激活(YES)时,虚拟用户与其宿主用户有相同的权限。 当此参数关闭(NO)时,虚拟用户与匿名用户有相同的权限。默认情况下此参数是关闭的(NO)

其他配置

  • #超时设置#
  • idle_session_timeout=600 #空闲连接超时
  • data_connection_timeout=120 #数据传输超时
  • ACCEPT_TIMEOUT=60 #PASV请求超时
  • connect_timeout=60 #PROT模式连接超时
  • 服务器功能选项:
  • xferlog_enable=YES   #开启日记功能
  • xferlog_std_format=YES   #使用标准格式
  • log_ftp_protocol=NO   #当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
  • pasv_enable=YES   #允许使用pasv模式
  • pasv_promiscuous=NO   #关闭安全检查,小心呀.
  • port_enable=YES   #允许使用port模式
  • tcp_wrappers=YES   #开启tcp_wrappers支持
  • pam_service_name=vsftpd   #定义PAM 所使用的名称,预设为vsftpd。
  • nopriv_user=nobody   #当服务器运行于最底层时使用的用户名
  • pasv_addr_resolve=YES # 与下面配置组合使用
  • pasv_address=(none)   #使vsftpd在pasv命令回复时跳转到指定的IP地址.
  • 服务器性能选项:
  • ls_recurse_enable=YES #是否能使用ls -R命令以防止浪费大量的服务器资源
  • one_process_model #是否使用单进程模式
  • listen=YES #绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式
  • text_userdb_names=NO #当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。
  • use_localtime=NO   #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
  • use_sendfile=YES   #测试平台优化
  • 待完善~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以部署业务vsftpd为例(关闭selinux和防火墙的内网,服务器系统为rhel 7.4)

使用本地用户模式

  • useradd xxxx -s /sbin/nologin -d /xxx/xxx
  • 创建本地用户并指定家目录
  • passwd xxxx
  • #给新用户设定密码
  • chmod 777 /xxx/xxx #修改家目录(或文件存储目录权限)
  • #因为文件需要过网闸摆渡,所以可能是777 或 chown root + chmod 777
  • #开启被动模式,使用用户配置文件子目录,监听21端口的vsftpd.conf

  • anonymous_enable=NO
  • local_enable=YES
  • write_enable=YES
  • dirmessage_enable=YES
  • #connect_from_port_20=YES
  • allow_writeable_chroot=YES
  • #chroot_list_file=/etc/vsftpd/chroot_list
  • chroot_list_enable=NO
  • chroot_local_user=YES
  • pasv_enable=YES
  • pasv_min_port=6000
  • pasv_max_port=6200
  • listen=YES
  • listen_port=21
  • virtual_use_local_privs=NO
  • anon_umask=022
  • userlist_enable=NO
  • guest_enable=YES
  • guest_username=root
  • pam_service_name=vsftpd
  • user_config_dir=/etc/vsftpd/vconf
  • xferlog_enable=YES
  • xferlog_file=/var/log/vsftpd.log
  • xferlog_std_format=YES

cat vconf/ssss

  • local_root=/usr/sphy/idCheck
  • write_enable=YES
  • anon_world_readable_only=YES
  • anon_upload_enable=YES
  • anon_mkdir_write_enable=YES
  • anon_other_write_enable=YES
  • #用户配置文件子目录,设置文件名建议与用户名一致
  • systemctl restart vsftpd #重启服务应用新的配置
  • 使用工具或客户端,验证vsftpd功能是实现。
文章作者: Administrator
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 知识武装灵魂
喜欢就支持一下吧