VSFTPD
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功能是实现。
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
知识武装灵魂!
喜欢就支持一下吧