VSFTPD搭建过程记录

〇、题外话

        对于萌新来说,寻找解决问题的道路,幸运时可能极为简单,不幸时可能就会比较困难。难而对于一个满脑袋过时知识的老萌新来说,寻找解决问题的道路,常常是从陈旧的经验起步,在网络信息爆炸的当下,往往不可能命中最为简便的道路,从而整个过程显得尤为艰难……

        问题的起因是打算打自己WIN10的主机,从部署CentOS的云端服务器上往回倒腾点儿数据文件,本来有个openssh的捷径。然而,在满脑子telnet、ftp、putty的老玩意儿下,老萌新选择了一条泛着古董包浆光芒的曲折之路。使用putty,构建到云服务器的SSH连接,在云服务器上搭建FTP服务器,然后使用CMD,以FTP方式去get文件(实际还失败了),又转向使用资源管理器达成目的……

        其实,这事真要简单起来,还真是简单得不得了——客户端WIN10自带,OpenSSH;服务端CentOS自带,SSHD:

        1. WIN10中的OpenSSH客户端

        在WIN10的设置中,选择应用和功能的“可选功能”,

         查看是否安装了OpenSSH 客户端,没有就添加功能即可。

         然后,在CMD控制台中,可以直接使用“SSH [用户名]@[云端服务器IP地址]”的方式来进行远程登陆和操作,压根儿不用putty。

         另外,基于OpenSSH提供的SCP,在CMD完全可以拷贝文件回来,也不用FTP什么的,只是目录得自己记熟一点,实际老萌新年龄大记性差,是开了两个CMD,一个登进去看到了目录,一个直接SCP拖文件。

        命令格式嘛,“SCP  [用户名]@[云端IP地址]云端绝对路径  本地路径”,除了多了个“S”,多了点奇怪的标识主机的字符串以外,和“cp”命令基本一样。

         所以说,每次倒腾点事总能跑偏,和“驴唇不对马嘴的DIY之旅”有得一比,且听下面细细分解:

一、参考环境

        玩了多少年Windows,近来随着大数据、云计算和人工智能等领域的开源世界越来越壮大,也被裹挟到Linux的世界来,捡起多少年都学得有一搭没一搭的Unix/Linux来。这天搭了一个应用,整出点数据,却被如何拉回本机来这点事给难住了。不想装一堆乱七八糟的工具,只好动手架一个FTP服务器,只当是熟悉Linux系统的操作了。

        环境如前所述,一台本地WIN10,一台腾讯云端CentOS 7.6,后期因为一系列搞不定的问题,不得已又加入一台华为云的CentOS 7.2。本地WIN10使用WIFI接入一台华三AP,华三AP基于账户名密码方式接入联通宽带路由,联通宽带路由被我装在墙中弱电盒里,弱电盒的门被丫头的钢琴死死顶着。

        所实话关于VSFTPD的安装指南,网上相关文章不少,但少有几篇精品,忒难找了。大多数的指南,都不会把自己安装的环境说得多清楚;而恰恰这个鬼东西,能不能搭得通,还就和环境有大大的相关性。所以,上一段尽量把环境交代清楚,一方面是不想误导他人,另一方面也是请大伙为后面最终没有在CMD里搞定做个见证——不是不想改配置,实在是不想搬钢琴……

二、安装与测试

        在CentOS里面安装vsftpd其实也挺方便的,就一行命令而已,yum install vsftpd,想省事加个-y:

         装好了可以使用systemctl start vsftpd启动一下,或者systemctl restart vsftp。

        然后使用systemctl status vsftpd查看一下daemon的状态,是否在后台处于激活状态:

        这里可以看到,当前yum install到的vsftpd版本为3.0.2。

        如果常用,可以chkconfig vsftpd on,设置为开机启动。

        保险起见,用netstat看看vsftpd是否打开了21端口,如果打开了,至少说明这货算是正常开始工作了:

         然后从华为这边的云端服务器尝试匿名登陆一下:

         没有问题。当然这里有三个需要关注的点:

        1.不是从WIN10终端上的CMD用ftp登陆的;那只会有“远程主机关闭连接”的错误;

        2.采用匿名和空密码(直接回车)登陆,因为vsftpd刚装好,啥都没整呢,现在让匿名就不错了;

        3.下一步还进行不了,比如如果这个时候ls一下,客户端会进入passive模式,然后就卡在那里了,必须Ctrl+C出来

         对于和我一样的新老萌新而言,上面不是废话!上面不是废话!上面不是废话!重要的事先说上三遍。因为对于vsftpd这样配置过程谜之散乱的货色来说,每做一步都要确认一步的效果是必要的。否则等摔倒的时候,可能完全记不起来真正的绊儿是在前几步踩到的。

三、禁用匿名访问

        现在的FTP服务器是允许匿名访问的,这从网络安全的角度来说本站当前是相当的风骚,完全属于招蜂引蝶的一把好手,全时求撩。搭完匿名访问的部分以后,出去办事一天没有打开服务器。再次登陆的时候被服务器弹出的信息吓着了,35684次失败的登录:

         嗯……浪了一天就被盯上了,没事爆破我口令做啥,一台啥都没有的服务器,都不够浪费你电费的,更何况写完这篇文章这服务器我就释放了,:P。查一下威胁情报,看起来这还是一个标准的有组织恶意IP。得,您先继续忙着吧,这点带宽我还能施舍得起。

        不过如果真想搭一个有用的服务器的话,匿名登陆还确实是要关掉的。打开“/etc/vsftpd”下的vsftpd.conf文件,找到“anonymous=YES”这一行,改成NO就可以了。

         然后需要重新启动一下vsftpd:

         如果没有报错,应该就可以了。如果报错……总之报错信息并不是特别友好,懒得去看。所以对vsftpd.conf这个文件,后面我们还会改动很多配置,并且这些配置的改动还可能会在不同的系统和网络配置环境下产生不同的效果,所以我建议,还是一次解决一个问题,一点一点步进式修改心里更有底一点。这样的话,一旦报错,仔细检查一下刚改动的配置,是否(一般都是)存在拼写错误就可以了。

        在我们华为的云服务器上登录一下,anonymous登录显然已经被关掉了,显示“530 Login incorrect”。

 四、设置登录用户

        关掉匿名登录以后,我们还能如何登陆FTP呢?这里需要先插入一点题外话,已避免后面出现问题的时候,因为不知其所以然而造成麻爪儿的情况。当然,因为老萌新一开始也不知道,掉了一路坑,所以来吃狗,一同学习一下。

       1.  PAM认证

        先注明引用一段来自其他博客的介绍。毕竟这不是本记录的重点。

        PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。

       简单点说,就是Linux中服务的认证依赖于PAM机制。vsftpd是以daemon的形式存在于系统中的,所以也采取了PAM机制来进行验证。

        2.PAM验证配置

        目前,在Linux系统中,对应某服务的验证配置存储于"/etc/pam.d"目录下,以服务名为名称的文件中。打开这个文件如下:

         这里面有两行是比较重要的,如果不弄清楚,很可能以后就只能和“530 Login incorrect”错误为伍了。

        (1)不被允许的用户

        auth required pam_listfile.so这一行,后面有一个"sense = deny file = /etc /vsftpd /ftpusers" 的指示。基本能够猜出来,也就是ftpusers列表中的用户都是不被允许登录ftp服务的。比如说,在这个文件里面,可以看到root是不被允许访问ftp的。试一把root如下:

         删掉root是不是就可以用root登录呢?比如把ftpusers改成如下:

        

         照样不行。因为vsftpd还使用了另外一个列表来设置禁止访问的用户。这个列表在ftpusers文件的同目录下,名字是user_list:        

         这个文件的头部说明了user_list和ftpuser之间的联系。也说明vsftpd默认采取了userlist_deny = YES的配置,并且也提醒了,即使取消这个设置,pam.d下的那个vsftpd文件也设置了禁止,禁止列表文件就是ftpusers。所以,这两个文件都是要处理的。比如上面,我们都删掉了root用户。然后再试一下:        

         看,果然就可以了。不过这样的危险性更大,还是不要这么玩吧。

        (2)配置允许访问的用户

        按照上面的方法,默认情况下,user_list和ftplist都默认被用于禁止用户访问。但是我们的vsftpd.conf文件最后是这样的:        

         这里明明白白写着,userlist_enable=YES。也就是说,user_list应该是被当白名单用的啊?实际上,这里userlist_enable和userlist_deny都是显示的,并且采用的是“有罪推定”模式,总之能不让你用就不让你用。如果要详细了解,可以参考这篇博客

        也就是说,其实我们只需要明确禁用掉userlist_deny,user_list就是白名单,否则它就是和黑名单;当然,如果我们把usetlist_enable和userlist_deny都禁用,user_list名单就失效了。

        试一试在ftpusers中去掉boot,增加userlist_deny=NO:

         再从华为云这边以root方式登录,是完全可以的。

五、创建专用用户

        所以,以默认的配置,网上大多数的教程,都是建议创建一个新的专用用户以提供访问渠道。此时默认的,userlist_deny=YES,userlist_enable=YES,ftpusers中列表禁用。直接的效果,就是对一个新建的用户来说,只要系统的权限够用,是不在vsftpd的禁止访问之列的。

        1. 新建用户

        创建一个名为ftper的用户,给改用户分配在ftp组,初始登录目录为/home/ftper,初始可用的shell为/sbin/nologin(注意这个shell环境,可能会造成后面登录时的530错误):        

         2. 设置用户权限

        设置/home/ftper目录的所有者为ftper,ftper需要具有这个目录的读写执行权限。

        3. 设置密码

        设置ftper的登录密码:

        两遍无误设置成功。

        通过查看/etc/passwd文件,我们可以在末端发现这么一行:

        其中的50,代表ftper用户属于ftp这个群组,这个可以通过查看/etc/group文件看到:

         然而直接登录并不能成功:

        4. 加入初始shell的位置到合法shell列表

         登录失败的原因,在于类似vsftpd的服务在运行时,回去检查属于该用户的shell是否在系统允许的合法shell列表中,而我们在创建ftper的时候指定的/sbin/nologin这个shell,是不在系统的合法shell列表里面的,所以,需要编辑/etc/shells文件,在其最后加入这个shell。

         重启vsftpd后,再行登录试一下,就可以了。

        至于为什么要这么做,可以参考以下两篇博客:《shell与/etc/shells功能》《对/sbin/nologin的理解(转)》

        总之就是,这是Linux中为了让用户使用服务端的一些服务,又不愿意用户具有登录服务器可能的一种通用做法。

六、启用被动模式

        以上配置成功以后,通过华为云登录这个在腾讯云上的ftp服务器,基本可以通过鉴权,并且一些简单的命令(如pwd)也可以执行了。然而使用ls指令时,客户端会报告进入被动模式,然后就陷入漫长的等待。如果不希望等到超时,那就必须使用Ctrl+C退出了:

        关于FTP主动模式和被动模式的讨论,并非本记录的主要内容,有兴趣的话可以参考《FTP协议主动模式和被动两种模式详解》。这里我们就说明一个问题,如果是主动模式,则服务器和客户端两边都需要开高端口,这对于防火墙配置来说,尤其是对大多数蹲在NAT后面的家用终端设备来说,简直是个灾难。

        云端的客户端使用主动模式,也基本会遇到Illegal port的问题,网上众说纷纭,咱这边也没有找到很好的解法,哪怕是把两边的防火墙都完全放开也照样报错:

        所以,我们还是主要讨论如何建立被动模式下的ftp服务,这样要简单很多。在客户端陷入被动连接时,使用netstat查看一下vsftpd相关的端口。可以看到建立的连接不止21端口上的那一个。这是ftp主动模式的特点,服务器端会开放高端口进行监听,等待客户端的数据连接。  

         然而,这些端口多是服务端动态选择,对于防火墙来说,仍然是个麻烦。因此,需要在vsftpd.conf文件中进行进一步限定:

         在末尾加入pasv_**的相关描述,表示启动被动模式,并且将端口范围限定在30000-30100之间。同时进入腾讯云的防火墙配置管理,增加这么对应的一条规则:        

             重启vsftpd服务,然后从华为云端再登录试一下,基本可以顺利进行各种操作了:    

 七、禁用目录漫游

        到这里,ftp服务器基本有了一个可用的状态,然而我们还疏漏了一点,即上图中,我们登录进入到服务器后,还进行了一步转移目录的操作,成功的ls了ftper上层home用户的内容。从安全的角度看,这显然时不被允许的。所以我们还需要禁止用户转换目录,这可以通过进一步配置vsftpd.conf来实现。       

         事实上,这两个选项在文件里存在,只不过是被注释掉了,找到,打开,然后在/etc/vsftpd目录下,使用vim chroot_list文件(默认情况下这个文件不存在),将ftper加入到文件的第一行就行了。

        如果这是就兴奋地去重启vsftpd然后登录一试的话,等待你的是vsftpd的一个相当幽默的警告。OOPS :)。大意就是chroot限制了用户的内部写权限,导致用户鉴权失败。        

         回到vsftpd.conf,在末尾添加一句允许写chroot的配置如下:

         重启vsftpd,至此一个被动模式的ftp服务器基本就算配置好了。 

         可以看到这是无论如何cd..,vsftpd都会说你成功了,因为你只有这一个目录而已,已经到顶了。但是如果你想cd /home的话,不好意思,目录跳转是被拒绝的。

        重要的PS:以上两个云服务器firewalld都是默认关闭的,所以并不需要使用iptable什么的来设置,只需要把云服务控制台上的防火墙设置弄好就行。但如果不是这样的环境,请上来先关闭防火墙,全部配好以后,再对应性的打开并设置iptable。

八、Windows下的访问

        虽然在云之间使用ftp客户端访问vsftpd的配置是成功的。但是在windows上,使用cmd终端,ftp连接仍然会失败。

         网上教程的说法多指这是主被动模式的原因,以及NAT使然(因为家里的windows蹲在宽带路由器的后面。但家用的路由设置能力有限,除了勾选一个NAT FTP模式允许外,基本没有别的什么设置方法。所以当我把所有的防火墙都打开,主机防护软件禁用,NAT设置允许后,仍然是这么一个德行……就彻底不知道解法了。

        但是在云端的客户端能够访问服务端的情况下,在Windows终端上,是可以通过文件浏览器和ie来访问vsftpd的。比如:        

         我特意放了两个文件在/home/ftper目录下面,以免这玩意看起来像个白页面:P

        得益于我们在Windows下有了浏览器这样一种成功的方法,所以可以对比一下CMD+ftp及浏览器访问的不同,以探讨一下CMD+ftp失败的原因:

        1.CMD+FTP

        使用CMD+FTP终端,wireshark截获的通信过程是这样的:

        2.IEXPLORE

        使用IE,截获的通信过程是这样的:

         两下一对比,显然问题出在“OPTS UTF8 ON”这么一个从CMD+FTP发往服务器的命令上,服务器似乎并不认识,于是直接无视了,然后开始傻傻等……。而客户端因为没有等到标准的ALWAYS UTF8应答,于是不停发、不停发……

        因为在这一阶段,服务器和客户端仍然实在21端口上进行交互,并且和前面握手啊什么的操作连对端端口都没有变过,所以可以肯定的是和鉴权啊、防火墙啊什么主被动模式啊没有啥关系,纯粹就是服务器和客户端没对上暗号……这个就很尴尬了。

        完事我查了一下,貌似vsftpd是支持OPTS UTF8 ON命令的,那这个……无语无解,有大神知道烦请指教一二,不甚感激!

 

vsftpd搭建步骤 1、首先安装vsftpd,并设置开机启动 yum -y install vsftpd chkconfig vsftpd on 2、基于虚拟用户配置,(所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统)  2.1 配置参数 [root@ftp vuser_conf]# sed -n '/^[^#]/P' /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES idle_session_timeout=600 data_connection_timeout=120 ascii_upload_enable=YES ascii_download_enable=YES chroot_list_enable=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YEs guest_username=ftp user_config_dir=/etc/vsftpd/vuser_conf pasv_enable=YES pasv_min_port=40000 pasv_max_port=40080 pasv_promiscuous=YES accept_timeout=60 connect_timeout=60  2.2 参数解释 [root@ftp /]# sed -n '/^[^#]/P' /etc/vsftpd/vsftpd.conf #设定不允许匿名访问 anonymous_enable=NO #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问 local_enable=YES #允许用户上传数据(包括文档与目录) write_enable=YES #建立新目录(775)与档案(644)的权限 local_umask=022 #若目录下有.message则显示该文档内容 dirmessage_enable=YES #启动登录文件记录记录于 /var/log/xferlog xferlog_enable=YES #支持主动式联机功能 connect_from_port_20=YES #如果上一个xferlog_enable=YES的话,这里可以设定了!这个是登录档案的档名。 xferlog_file=/var/log/xferlog #是否设定为 wu ftp 相同的登录档格式?预设为 NO ,因为登录档会比较容易读! 不过,如果你有使用 wu ftp 登录文件的分析软件,这里才需要设定为 YES xferlog_std_format=YES #若匿名者发呆超过 10 分钟就断线 idle_session_timeout=600 #如果服务器与客户端的数据联机已经成功建立 (不论主动还是被动联机),但是可能由于线路问题导致 120 秒内还是无法顺利的完成数据的传送,那客户端的联机就会被我们的 vsftpd 强制剔除! data_connection_timeout=120 #如果设定为 YES ,那么 client 就优先 (预设) 使用 ASCII 格式上传文件。 ascii_upload_enable=YES #如果设定为 YES ,那么 client 就优先 (预设) 使用 ASCII 格式下载文件。 ascii_download_enable=YES #是否启用 chroot 写入列表的功能?与底下的 chroot_list_flie 有关!这个项目得要开启,否则底下的列表档案会无效。 chroot_list_enable=YES #若设定为 YES 表示 vsftpd 是以 standalone 的方式来启动的!预设是 NO !所以我们的 CentOS 将它改为 YES !这样才能使用 stand alone 的方式来唤醒。 listen=YES #这个是 pam 模块的名称,我们放置在 /etc/pam.d/vsftpd 即是这个。 pam_service_name=vsftpd #支持 /etc/vsftpd/user_list 档案内的账号登入管控! userlist_enable=YES #支持 TCP Wrappers 的防火墙机制 tcp_wrappers=YES #若这个值设定为 YES 时,那么任何实体账号,均会被假设成为 guest (所以预设是不开放的)! 至于访客在 vsftpd 当中,预设会取得 ftp 这个使用者的相关权限。但可以透过 guest_username 来修改。 guest_enable=YES #指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 guest_username=ftp # FTP服务文件(配置文件名=虚拟用户名) user_config_dir=/etc/vsftpd/vuser_conf #支持数据流的被动式联机模式(passive mode),一定要设定为 YES pasv_enable=YES #在防火墙配置内开启40000到40080端口(没有测试过) -A INPUT -m state --state NEW -m tcp -p -dport 40000:40080 -j ACCEPT pasv_min_port=40000 pasv_max_port=40080 #是否屏蔽对pasv进行安全检查,(当有安全隧道时可禁用) pasv_promiscuous=YES #当用户以被动式 PASV 来进行数据传输时,如果服务器启用 passive port 并等待 client 超过 60 秒而无回应, 那么就给他强制断线!这个设定值与 connect_timeout accept_timeout=60 #单位是秒,在数据连接的主动式联机模式下,我们发出的连接讯号在 60 秒内得不到客户端的响应,则不等待并强制断线 connect_timeout=60  2.3 FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。 一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了****端口,你过来连接我”。于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据。 二、PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了****端口,你过来连接我”。于是客户端向服务器的****端口发送连接请求,建立一条数据链路来传送数据。 从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。 3 进行认证  安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包 yum install db4 db4-utils  创建用户密码文本,注意奇行是用户名,偶行是密码 [root@ftp /]# cat /etc/vsftpd/vuser_passwd.txt lixiang 8qu.com.cn shuaicong 8qu.com.cn gaojingyuan 8qu.com.cn  生成虚拟用户认证的db文件 db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db 注:(每添加一用户和秘密就得生成一次)  编辑认证文件,全部注释掉原来语句,再增加以下两句 [root@ftp /]# cat /etc/pam.d/vsftpd #%PAM-1.0 #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd  创建虚拟用户配置文件 mkdir /etc/vsftpd/vuser_conf/ -p [root@ftp /]# cd /etc/vsftpd/vuser_conf/  文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效 [root@ftp /]# cat /etc/vsftpd/vuser_passwd.txt lixiang 8qu.com.cn shuaicong 8qu.com.cn gaojingyuan 8qu.com.cn [root@ftp /]# cd /etc/vsftpd/vuser_conf/ [root@ftp vuser_conf]# ll total 12 -rw-r--r-- 1 root root 159 Apr 1 17:57 gaojingyuan -rw-r--r-- 1 root root 161 Apr 1 16:27 lixiang -rw-r--r-- 1 root root 161 Apr 1 17:00 shuaicong  虚拟用户根目录,根据实际情况修改 #指定虚拟用户的具体主路径。 local_root=/data/ftp #设定可以进行写操作 write_enable=YES # umask = 022 时,新建的目录 权限是755,文件的权限是 644 umask = 077 时,新建的目录 权限是700,文件的权限时 600。这里应该是anonymous用户创建的文件权限。 anon_umask=022 #仅允许 anonymous 具有下载可读档案的权限 anon_world_readable_only=NO #是否让 anonymous 具有上传数据的功能,默认是 NO,如果要设定为 YES ,则 anon_other_write_enable=YES 必须设定 anon_upload_enable=YES #是否让 anonymous 具有建立目录的权限?默认值是 NO!如果要设定为 YES, 那么 anony_other_write_enable 必须设定为 YES ! anon_mkdir_write_enable=YES #是否允许 anonymous 具有除了写入之外的权限?包括删除与改写服务器上的档案及档名等权限。预设当然是 NO!如果要设定为 YES, anon_other_write_enable=YES 4 设置FTP根目录权限  最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限 mkdir /data/ftp chmod -R 755 /data chmod -R 777 /data/ftp [root@ftp data]# ls -ld /data/ drwxr-xr-x 3 root root 4096 Apr 1 16:25 /data/ [root@ftp data]# ll total 4 drwxrwxrwx 2 root root 4096 Apr 1 17:21 ftp  建立限制用户访问目录的空文件(不需要也得创建) touch /etc/vsftpd/chroot_list  如果启用vsftpd日志需手动建立日志文件 touch /var/log/xferlog touch /var/log/vsftpd.log  重启iptabls和vsftpd service iptables restart service vsftpd restart 5 Selinux和防火墙  该关闭的关闭,该放行的放行 1 2 3 4 5 #关闭selinux/iptables sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config setenforce 0 chkconfig iptables off service iptables stop 常见问题 如果登录时出现 500 OOPS: priv_sock_get_result. Connection closed by remote host. 这样的错误,需要升级pam yum update pam 6日志分析 vsftpd的两个日志文件分析如下: /var/log/xferlog 记录内容举例 /var/log/vsftpd.log Sat Apr 1 16:34:14 2017 1 10.13.98.101 55 /vsftpd(1).txt b _ i g lixiang ftp 0 * c /var/log/xferlog日志文件中数据的分析和参数说明 记录数据 参数名称 参数说明 Thu Sep 6 09:07:48 2007 当前时间 当前服务器本地时间,格式为: DDD MMM dd hh:mm:ss YYY 7 传输时间 传送文件所用时间,单位为秒 192.168.57.1 远程主机名称/IP 远程主机名称/IP 4323279 文件大小 传送文件的大小,单位为byte /home/student/phpMyadmin- 2.11.0-all-languages.tar.gz 文件名 传输文件名,包括路径 b 传输类型 传输方式的类型,包括两种: a以ASCII传输 b以二进制文件传输 – 特殊处理标志 特殊处理的标志位,可能的值包括: _ 不做任何特殊处理 C 文件是压缩格式 U 文件是非压缩格式 T 文件是tar格式 i 传输方向 文件传输方向,包括两种: o 从FTP服务器向客户端传输 i 从客户端向FTP服务器传输 r 访问模式 用户访问模式,包括: a 匿名用户 g 来宾用户 r 真实用户,即系统中的用户 student 用户名 用户名称 ftp 服务名 所使用的服务名称,一般为FTP 0 认证方式 认证方式,包括: 0 无 1 RFC931认证 * 认证用户id 认证用户的id,如果使用*,则表示无法获得该id c 完成状态 传输的状态: c 表示传输已完成 i 表示传输示完成

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

lhyzws

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值