文件传输协定

  • FTP

文件传输协定(FTP)是一种基于TCP协定在客C/S架构的协定,占用20和21端口

  • TFTP

简略文件传输协定(TFTP)是一种基于UDP协定在客C/S架构的协定,占用69端口 TFTP的命令性能不如FTP服务弱小,甚至不能遍历目录,在安全性方面也弱于FTP服务 因为TFTP不须要客户端的权限认证,也就缩小了无谓的零碎和网络带宽耗费,效率更高。

FTP 协定概述

一般来讲,人们将计算机联网的首要目标就是获取材料,而文件传输是一种十分重要的获取材料的形式。明天的互联网是由几千万台集体计算机、工作站、服务器、小型机、大型机、巨型机等具备不同型号、不同架构的物理设施独特组成的,而且即使是集体计算机,也可能会装有Windows、Linux、UNIX、Mac等不同的操作系统。为了可能在如此简单多样的设施之间解决问题解决文件传输问题,文件传输协定(FTP)应运而生。

FTP是一种在互联网中进行文件传输的协定,基于客户端/服务器(C/S)模式,默认应用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于承受客户端收回的相干FTP命令与参数。FTP服务器广泛部署于内网中,具备容易搭建、方便管理的特点。而且有些FTP客户端工具还能够反对文件的多点下载以及断点续传技术,因而FTP服务失去了宽广用户的青眼。

  • 命令连贯
  • 传输TCP的文件治理类命令给服务端
  • 直到用户退出才敞开连贯,否则始终连贯
  • 数据连贯
  • 数据传输,按需创立及敞开的连贯
  • 数据传输能够为文本或二进制格局传输

FTP 工作模式

FTP服务器是依照FTP协定在互联网上提供文件存储和拜访服务的主机,FTP客户端则是向服务器发送连贯申请,以建设数据传输链路的主机。FTP协定有上面两种工作模式。

  • 被动模式:FTP服务器被动向客户端发动连贯申请
  • 命令连贯:Client:50000 --> Server:21
  • 数据连贯:Server:20/tcp --> Client:50000+1
  • 模式毛病:客户端有防火墙,个别会禁止服务的被动连贯

  • 被动模式:FTP服务器期待客户端发动连贯申请(FTP的默认工作模式)
  • 命令连贯:Client:50000 --> Server:21
  • 数据连贯:Client:50000+1 --> Server:随机端口 ==> 通过命令连贯得悉这个随机端口
  • 模式毛病:服务器端须要批改防火墙规定并凋谢21和这个随机端口

防火墙个别是用于过滤从外网进入内网的流量,因而有些时候须要将FTP的工作模式设置为被动模式,才能够传输数据。然而因为客户端主机个别都设有防火墙,会禁止服务器的连贯申请,所有适当的iptables规定变得越来越重要了。

FTP 服务程序

因为FTP是一种基于(C/S)客户端/服务器模式的协定,所有有很多的程序可能提供FTP服务的性能。

服务端程序
  • wu-ftpd
  • 一个Internet上最风行的FTP守护程序,性能非常弱小,能够构建多种类型FTP服务器。
  • proftpd
  • 一个Unix平台上或是类Unix平台上的FTP服务器开源程序,任何人只有恪守GPL版权申明都能够随便批改源码。proftpd亦开发了有图形用户界面的FTP服务端软体称为gProFTPd,能够提供图形界面的操作。针对Wu-FTP的弱项而开发的,除了改良的安全性,还具备许多Wu-FTP没有的特点,能以Stand-alone、xinetd模式运行等。
  • pureftp
  • pureftp是收费和平安的FTP服务器,它重视效率和易用性。
  • vsftpd
  • vsftpd是very secure FTP daemon的缩写,安全性是它的一个最大的特点,能够运行在多种平台之上提供平安的FTP服务。在CentOS等零碎以及多个互联网厂商都在应用的FTP服务程序,你值得领有。
  • ServU
  • Serv-U是一种被宽泛使用在Windows平台的的FTP服务器软件,能够设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等长处。
客户端程序
  • 命令行
  • ftp
  • lftp, lftpget
  • wget, curl
  • 因为FTP协定是通过TCP明文传送的,所有为了平安能够应用ftps(SSL), sftp(SSH)工具
  • 图形化
  • _ filezilla
  • _ gftp
  • _ gProFTPd
  • _ flashfxp * cuteftp

FTP服务的响应码

1xx: 信息2xx: 胜利类的状态码3xx: 提醒需进一步提供补充类信息的状态码4xx: 客户端谬误5xx: 服务端谬误

vsftpd 服务程序

vsftpd(十分平安的FTP守护过程)是一款运行在Linux操作系统上的 FTP 服务程序,不仅齐全开源而且收费,此外,还具备很高的安全性、传输速度,以及反对虚构用户验证等其余FTP服务程序具备的特点。

装置服务端程序
[root@localhost ~]# yum install vsftpdLoaded plugins: langpacks, product-id, subscription-manager………………省略局部输入信息………………================================================================================Installing:vsftpd x86_64 3.0.2-9.el7 rhel 166 kTransaction Summary================================================================================Install 1 Packagevsftpd.x86_64 0:3.0.2-9.el7Complete![root@linuxprobe ~]# yum install ftpLoaded plugins: langpacks, product-id, subscription-manager………………省略局部输入信息………………Install 1 Packageftp.x86_64 0:0.17-66.el7Complete!

敞开本机防火墙

# iptables防火墙管理工具默认禁止了FTP传输协定的端口号[root@localhost ~]# iptables -F

配置 FTP 服务

# 程序的主配置文件为/etc/vsftpd/vsftpd.conf[root@localhost ~]# cat /etc/vsftpd/vsftpd.confanonymous_enable=YESlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES
配置文件

CentOS6 中的配置文件地位,在 CentOS7 中有可能不同。

主配置文件:/etc/vsftpd/vsftpd.conf配置文件目录:/etc/vsftpd/*.conf服务启动脚本:/etc/rc.d/init.d/vsftpd用户认证配置文件:/etc/pam.d/vsftpd
共享目录
匿名用户(映射为ftp用户)共享资源地位:/var/ftp零碎用户通过ftp拜访的资源的地位:用户本人的家目录虚构用户通过ftp拜访的资源的地位:给虚构用户指定的映射成为的零碎用户的家目录

配置参数

罕用配置参数都为主配置文件,/etc/vsftpd/vsftpd.conf 的罕用配置。

通用根底配置
listen=[YES|NO]         #是否以独立运行的形式监听服务listen_address=IP地址   #设置要监听的 IP 地址listen_port=21        #设置 FTP 服务的监听端口download_enable=[YES|NO] #是否容许下载文件max_clients=0   #最大客户端连接数,0 为不限度max_per_ip=0   #同一 IP 地址的最大连接数,0 为不限度chown_uploads=[YES|NO] #是否容许扭转上传文件的属主chown_username=whoever #扭转上传文件的属主为 whoeverpam_service_name=vsftpd #让 vsftpd 应用 pam 实现用户认证,应用的文件为/etc/pam.d/vsftpd

匿名用户的配置

anonymous_enable=[YES|NO]      #是否容许匿名用户拜访anon_upload_enable=[YES|NO]    #是否容许匿名用户上传文件anon_mkdir_write_enable=[YES|NO] #是否容许匿名用户创立目录anon_other_write_enable=[YES|NO] #是否凋谢匿名用户的其余写入权限(包含重命名、删除等操作权限)anon_umask=022       #匿名用户上传文件的 umask 值anon_root=/var/ftp   #匿名用户的 FTP 根目录anon_max_rate=0       #匿名用户的最大传输速率(字节/秒),0 为不限度

零碎用户的配置

anonymous_enable=NO    #禁止匿名拜访模式local_enable=[YES|NO]  #是否容许本地用户登录 FTPwrite_enable=[YES|NO]  #是否凋谢本地用户的其余写入权限local_umask=022        #本地用户上传文件的 umask 值local_root=/var/ftp    #本地用户的 FTP 根目录local_max_rate=0      #本地用户最大传输速率(字节/秒),0 为不限度userlist_enable=[YES|NO] #开启用户作用名单文件性能userlist_deny=[YES|NO]   #启用禁止用户名单,名单文件为 ftpusers 和/etc/vsftpd/user_listchroot_local_user=[YES|NO] #是否将用户权限禁锢在 FTP 家目录中,以确保安全chroot_list_enable=[YES|NO] #禁锢文件中指定的 FTP 本地用户于其家目录中chroot_list_file=/etc/vsftpd/chroot_list #指定禁锢文件地位,须要和 chroot_list_enable 一起开启

日志性能

xferlog_enable=[YES|NO]    #是否开启 FTP 日志性能xferlog_std_format=[YES|NO]    #是否以规范格局放弃日志xferlog_file=/var/log/xferlog  #指定保留日志的文件名称,须要一起开启

vsftpd 认证模式

vsftpd 作为更加平安的文件传输的服务程序,容许用户以三种认证模式登录到 FTP 服务器上。

  • 匿名凋谢模式
  • 匿名凋谢模式是一种最不平安的认证模式,任何人都能够无需明码验证而间接登录到FTP服务器。这种模式个别用来拜访不重要的公开文件,在生产环境中尽量不要寄存重要文件,不倡议在生产环境中如此行事。
  • 本地用户模式
  • 本地用户模式是通过Linux零碎本地的账户明码信息进行认证的模式,相较于匿名凋谢模式更平安,而且配置起来绝对简略。然而如果被黑客破解了账户的信息,就能够畅通无阻地登录FTP服务器,从而齐全管制整台服务器。
  • 虚构用户模式
  • 虚构用户模式是这三种模式中最平安的一种认证模式,它须要为FTP服务独自建设用户数据库文件,虚构出用来进行口令验证的账户信息,而这些账户信息在服务器零碎中实际上是不存在的,仅供FTP服务程序进行认证应用。这样,即便黑客破解了账户信息也无奈登录服务器,从而无效升高了毁坏范畴和影响。
匿名拜访模式

vsftpd 服务程序默认开启了匿名凋谢模式,咱们须要做的就是凋谢匿名用户的上传、下载文件的权限,以及让匿名用户创立、删除、更名文件的权限。

# 匿名拜访模式主配置文件[root@localhost ~]# vim /etc/vsftpd/vsftpd.confanonymous_enable=YESanon_umask=022anon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES
# 重启服务[root@localhost ~]# systemctl restart vsftpd# 服务程序退出到开机启动项中,以保障服务器在重启后仍然可能失常提供传输服务[root@localhost ~]# systemctl enable vsftpdln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service
# 在vsftpd服务程序的匿名凋谢认证模式下,其账户对立为anonymous,明码为空# 连贯到FTP服务器后,默认拜访的是/var/ftp目录,咱们能够在其中进行创立、删除等操作[root@localhost ~]# ftp 192.168.10.10Connected to 192.168.10.10 (192.168.10.10).220 (vsFTPd 3.0.2)Name (192.168.10.10:root): anonymous331 Please specify the password.Password:此处敲击回车即可230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> cd pub250 Directory successfully changed.ftp> mkdir files550 Permission denied.
# 零碎显示回绝创立目录,这是为什么呢?# 查看该目录的权限得悉,只有root管理员才有写入权限,凋谢ftp用户权限(该账户在零碎中曾经存在)[root@localhost ~]# ls -ld /var/ftp/pubdrwxr-xr-x. 3 root root 16 Jul 13 14:38 /var/ftp/pub[root@localhost ~]# chown -Rf ftp /var/ftp/pub[root@localhost ~]# ls -ld /var/ftp/pubdrwxr-xr-x. 3 ftp root 16 Jul 13 14:38 /var/ftp/pub[root@localhost ~]# ftp 192.168.10.10………………省略局部输入信息………………ftp> mkdir files550 Create directory operation failed.
# 咱们发现还是无奈创立目录,发现是SELinux服务在捣鬼了# 应用getsebool命令查看与FTP相干的SELinux域策略都有哪些[root@localhost ~]# getsebool -a | grep ftpftp_home_dir --> offftpd_anon_write --> offftpd_connect_all_unreserved --> offftpd_connect_db --> offftpd_full_access --> offftpd_use_cifs --> offftpd_use_fusefs --> offftpd_use_nfs --> offftpd_use_passive_mode --> offhttpd_can_connect_ftp --> offhttpd_enable_ftp_server --> offsftpd_anon_write --> offsftpd_enable_homedirs --> offsftpd_full_access --> offsftpd_write_ssh_home --> offtftp_anon_write --> offtftp_home_dir --> off# 依据教训和策略的名称判断出是ftpd_full_access--> off策略规定导致了操作失败[root@localhost ~]# setsebool -P ftpd_full_access=on# 此时,匿名用户就能够失常应用FTP服务了[root@linuxprobe ~]# ftp 192.168.10.10………………省略局部输入信息………………ftp> mkdir files257 "/pub/files" createdftp> rename files database350 Ready for RNTO.250 Rename successful.ftp> exit221 Goodbye.
本地用户模式

如果大家之前用的是匿名凋谢模式,当初就能够将它关了,而后开启本地用户模式。

# 本地用户模式主配置文件[root@localhost ~]# vim /etc/vsftpd/vsftpd.confanonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESconnect_from_port_20=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YESxferlog_enable=YESxferlog_std_format=YES
# 同样须要重启服务和开机自启动[root@localhost ~]# systemctl restart vsftpd# 服务程序退出到开机启动项中,以保障服务器在重启后仍然可能失常提供传输服务[root@localhost ~]# systemctl enable vsftpdln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service
# 当初曾经齐全能够本地用户的身份登录FTP服务器了,然而应用root无奈登陆[root@localhost ~]# ftp 192.168.10.10Connected to 192.168.10.10 (192.168.10.10).220 (vsFTPd 3.0.2)Name (192.168.10.10:root): root530 Permission denied.Login failed.ftp># 这是因为,为了零碎的平安,默认禁止root等用户登录FTP服务被零碎回绝拜访# 因为vsftpd服务程序所在的目录中,默认寄存着两个名为用户名单的文件,ftpusers和user_list# 在ftpusers和user_list两个用户文件中将root用户删除就能够登录了[root@localhost ~]# cat /etc/vsftpd/user_listrootbindaemon[root@localhost ~]# cat /etc/vsftpd/ftpusersrootbindaemon
# 在采纳本地用户模式登录FTP服务器后,默认拜访的是该用户的家目录,因而不存在写入权限有余的状况# 如果不敞开SELinux,则须要再次开启SELinux域中对FTP服务的容许策略[root@localhost ~]# setsebool -P ftpd_full_access=on# 即能够应用零碎用户进行FTP服务的登录了[root@localhost ~]# ftp 192.168.10.10Connected to 192.168.10.10 (192.168.10.10).220 (vsFTPd 3.0.2)Name (192.168.10.10:root): escape331 Please specify the password.Password:此处输出该用户的明码230 Login successful.Remote system type is UNIX.
虚构用户模式(文本文件)

认证模式:vsftpd + pam + file

  • 第一步:创立用于进行 FTP 认证的用户数据库文件
  • 这里应用文本文件进行用户认证
  • 数据库文件中奇数行为账户名,偶数行为明码
# 编辑虚构用户文件[root@localhost ~]# cd /etc/vsftpd/[root@localhost vsftpd]# vim vuser.listzhangsanredhatlisiredhat
# 明文信息既不平安,也不合乎让vsftpd服务程序间接加载的格局# 因而须要应用db_load命令用哈希算法将原始的明文信息文件转换成数据库文件# 升高数据库文件的权限,而后再把原始的明文信息文件删除[root@localhost vsftpd]# db_load -T -t hash -f vuser.list vuser.db[root@localhost vsftpd]# file vuser.dbvuser.db: Berkeley DB (Hash, version 9, native byte-order)[root@localhost vsftpd]# chmod 600 vuser.db[root@localhost vsftpd]# rm -f vuser.list
  • 第二步:创立 vsftpd 服务程序用于存储文件的根目录以及虚构用户映射的零碎本地用户
  • FTP服务用于存储文件的根目录指的是,当虚构用户登录后所拜访的默认地位
  • 能够把这个零碎本地用户的家目录设置为/var目录并设置不容许登录FTP服务器
[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin virtual[root@localhost ~]# ls -ld /var/ftproot/drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/[root@localhost ~]# chmod -Rf 755 /var/ftproot/
  • 第三步:建设反对虚构用户的 PAM 认证文件
  • PAM是一种认证机制,通过一些动态链接库和对立的API把零碎提供的服务与认证形式离开
  • PAM是可插拔认证模块,使得系统管理员能够依据需要灵便调整服务程序的不同认证形式
# 新建一个用于虚构用户认证的PAM文件vsftpd.vu# PAM文件内的db=参数为应用db_load命令生成的账户明码数据库文件的门路,但不必写数据库文件的后缀[root@localhost ~]# vim /etc/pam.d/vsftpd.vuauth       required     pam_userdb.so    db=/etc/vsftpd/vuseraccount    required     pam_userdb.so    db=/etc/vsftpd/vuser
  • 第四步:在 vsftpd.conf 文件中增加反对配置
  • 在vsftpd服务程序的主配置文件中默认就带有参数pam_service_name=vsftpd
  • 示意登录FTP服务器时是依据/etc/pam.d/vsftpd文件进行平安认证的
# 咱们要做的就是把vsftpd主配置文件中原有的PAM认证文件vsftpd批改为新建的vsftpd.vu文件即可[root@localhost ~]# vim /etc/vsftpd/vsftpd.confanonymous_enable=NOpam_service_name=vsftpd.vuuser_config_dir=/etc/vsftpd/vusers_dirlocal_enable=YESguest_enable=YESguest_username=virtualallow_writeable_chroot=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESuserlist_enable=YEStcp_wrappers=YES
  • 第五步:为虚构用户设置不同的权限
  • 只需新建一个目录,在外面别离创立两个以zhangsan和lisi命名的文件
  • 在每个文件中,对用户别离进行配置,达到治理不必用户权限的成果
[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/[root@localhost ~]# cd /etc/vsftpd/vusers_dir/[root@localhost vusers_dir]# touch lisi[root@localhost vusers_dir]# vim zhangsananon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES
  • 第六步:设置 SELinux 域容许策略
# 先依照后面试验中的步骤开启SELinux域的容许策略,免得再次出现操作失败的状况[root@localhost ~]# setsebool -P ftpd_full_access=on[root@localhost ~]# getsebool -a | grep ftpftp_home_dir –> offftpd_anon_write –> offftpd_connect_all_unreserved –> offftpd_connect_db –> offftpd_full_access –> offftpd_use_cifs –> offftpd_use_fusefs –> offftpd_use_nfs –> offftpd_use_passive_mode –> offhttpd_can_connect_ftp –> offhttpd_enable_ftp_server –> offsftpd_anon_write –> offsftpd_enable_homedirs –> offsftpd_full_access –> onsftpd_write_ssh_home –> offtftp_anon_write –> offtftp_home_dir –> off
  • 第七步:应用虚构 FTP 用户拜访测试
[root@localhost ~]# ftp 192.168.10.10Connected to 192.168.10.10 (192.168.10.10).220 (vsFTPd 3.0.2)Name (192.168.10.10:root): lisi331 Please specify the password.Password:此处输出虚构用户的明码230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> mkdir files550 Permission denied.ftp> exit221 Goodbye.
[root@localhost ~]# ftp 192.168.10.10Connected to 192.168.10.10 (192.168.10.10).220 (vsFTPd 3.0.2)Name (192.168.10.10:root): zhangsan331 Please specify the password.Password:此处输出虚构用户的明码230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> mkdir files257 "/files" createdftp> rename files database350 Ready for RNTO.250 Rename successful.ftp> rmdir database250 Remove directory operation successful.ftp> exit221 Goodbye.
虚构用户模式(MySQL 数据库)

认证模式:vsftpd + pam + mysql

  • 第一步:装置所须要程序
# 装置mysql和pam_mysql,pam_mysql由epel源提供$ yum -y install vsftpd mysql-server mysql-devel pam_mysql
  • 第二步:创立虚构用户账号
# 1、筹备数据库及相干表首先请确保mysql服务曾经失常启动。而后,按须要建设存储虚构用户的数据库即可,这里将其创立为vsftpd数据库mysql> create database vsftpd;受权vsftpd用户能够通过localhost主机操作select权限vsftpd库的所有表,明码为www.escapelife.commysql> grant select on vsftpd.* to vsftpd@localhost identified by 'www.escapelife.com';mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'www.escapelife.com';mysql> flush privileges;(这里是本机装置所有受权localhost主机,如果不同须要应用不同的主机地址)(mysql> grant select on vsftpd.* to vsftpd@'192.168.31.%' identified by 'www.escapelife.com';)(mysql> flush privileges;)创立相干表mysql> use vsftpd;mysql> create table users (    -> id INT UNSIGNED AUTO_INCREMENT NOT NULL,    -> name VARCHAR(50) BINARY NOT NULL,    -> password char(48) BINARY NOT NULL,    -> PRIMARY KEY(id)    -> );
# 2、增加测试的虚构用户依据须要增加所须要的用户,须要阐明的是,这里将其明码为了平安起见应该应用PASSWORD函数加密后存储mysql> INSERT INTO users(name, password) VALUES('tom', password('escapelife'));mysql> INSERT INTO users(name, password) VALUES('bob', password('escapelife'));SELETC * FROM user;
  • 第三步:配置 vsftpd
# 1.建设pam认证所需文件$ vi /etc/pam.d/vsftpd.mysql#增加如下两行,次要32位和64位库文件的不同地位,模块门路可不写示意pam模块门路指定用户、明码、主机、数据库、表、用户名字段、明码字段、明码的加密形式明码的加密形式能够通过装置的pam_mysql的文档查看,/usr/share/doc/pam_mysql-0.7/README   rpm -ql pam_mysqlauth required /lib64/security/pam_mysql.so user=vsftpd passwd=www.escapelife.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2account required /lib64/security/pam_mysql.so user=vsftpd passwd=www.escapelife.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2(auth required /lib64/security/pam_mysql.so user=vsftp passwd=www.escapelife.com host=192.168.31.71 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2)(account required /lib64/security/pam_mysql.so user=vsftp passwd=www.escapelife.com host=192.168.31.71 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2)

留神:因为mysql的装置形式不同,pam_mysql.so基于unix sock连贯mysql服务器时可能会出问题,此时,倡议受权一个可近程连贯的mysql并拜访vsftpd数据库的用户。

# 2.批改vsftpd的配置文件,使其适应mysql认证建设虚构用户映射的零碎用户及对应的目录$ useradd -s /sbin/nologin -d /var/ftproot vuser$ chmod go+rx /var/ftproot请确保/etc/vsftpd.conf中曾经启用了以下选项anonymous_enable=YESlocal_enable=YESwrite_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOchroot_local_user=YES而后增加以下选项guest_enable=YESguest_username=vuser并确保pam_service_name选项的值如下所示pam_service_name=vsftpd.mysql
  • 第四步:启动 vsftpd 服务
# 启动vsftpd服务$ service vsftpd start$ chkconfig vsftpd on# 查看端口开启状况$ netstat -tnlp | grep :21tcp      0      0 0.0.0.0:21      0.0.0.0:*      LISTEN      23286/vsftpd# 应用虚构用户登录,验正配置后果$ ftp localhost
  • 第五步:配置虚构用户具备不同的拜访权限
# vsftpd能够在配置文件目录中为每个用户提供独自的配置文件以定义其ftp服务拜访权限,每个虚构用户的配置文件名同虚构用户的用户名。配置文件目录能够是任意未应用目录,只须要在vsftpd.conf指定其门路及名称即可。# 1、配置vsftpd为虚构用户应用配置文件目录$ vim vsftpd.confuser_config_dir=/etc/vsftpd/vusers_config# 2、创立所须要目录,并为虚构用户提供配置文件$ mkdir /etc/vsftpd/vusers_config/$ cd /etc/vsftpd/vusers_config/$ touch tom bob# 3、配置虚构用户的拜访权限# 虚构用户对vsftpd服务的拜访权限是通过匿名用户的相干指令进行的# 如果须要让tom用户具备上传文件的权限,能够批改/etc/vsftpd/vusers_config/tom文件anon_upload_enable={YES|NO}anon_mkdir_write_enable={YES|NO}anon_other_write_enable={YES|NO}
作者: Escape  链接:https://www.escapelife.site/p...