一、ftp的定义

        ftp是一种文件传输协议,是TCP/IP协议组中的协议之一。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。

二、ftp服务的部署

        1、下载并安装:yum install vsftpd

               Linux系统之ftp

               注意:在安装过程中要使用和自己系统版本相同的安装包!!!

        2、开启ftp服务:systemctl start vsftpd

              Linux系统之ftp

      3、若经常使用ftp服务,则可以设置为开机自启动:systemctl enable vsftpd

             Linux系统之ftp

      4、为了能让别的主机通过ftp远程访问,需要将防护墙关闭:systemctl stop firewalld.service

             Linux系统之ftp

            也可以对防火墙进行设置策略:firewall-cmd --permanent --add-service=ftpd

             Linux系统之ftp

              设置好后需要进行重新加载:firewall-cmd --reload

               Linux系统之ftp

      5、ftp服务的基本信息:

            Linux系统之ftp

三、ftp对匿名用户的设定

       ftp服务在使用过程中有时需要进行一些限制和开放权限,这些都在ftp服务的配置文件:/etc/vsftpd/vsftpd.conf中设置!!

      1、匿名用户能否登录:vim /etc/vsftpd/vsftpd.conf

             在文件中编辑anonymous_enable=YES|NO该命令,当值为YES时,匿名用户可以登录,如下:

              Linux系统之ftp

              注意:编辑完文件后需要重新启动ftp服务才能生效:systemctl restart vsftpd

               Linux系统之ftp

               Linux系统之ftp

               可以看到当前目录中的一些内容则表明匿名用户可以登录!!

                当值为NO时,匿名用户则不能进行访问,如下:

                 Linux系统之ftp

                 Linux系统之ftp

                不能查看当前目录中的一些内容,则表明此时匿名用户不能进行登录!!

        2、本地用户能否登录:文件中编辑:local_enable=YES|NO

               值为YES时,可以登录

               Linux系统之ftp

               Linux系统之ftp

                值为NO时则不能进行登录

                Linux系统之ftp

                Linux系统之ftp

                此时系统报错:只允许匿名用户登录!!

         3、匿名用户上传:anon_upload_enable=YES

               Linux系统之ftp

               其中write_enable=YES是允许登录用户可写!!

                为了不破坏其他文件,将上传文件全部上传至服务器的/var/ftp/pub中,需要改pub目录的权限和所在组

               Linux系统之ftp

               上传文件:

               Linux系统之ftp

              用ls可以查看是否上传成功!!

        4、匿名用户家目录的修改:anon_root=/westos:将匿名用户的家目录改成westos目录

              Linux系统之ftp

              Linux系统之ftp

             修改后匿名用户的家目录即在westos中(本次实验中westos目录 为1空目录,所有ls查不到任何内容)

      5、匿名用户建立 目录:anon_mkdir_write_enable=YES|NO

            当为YES时,可以建立

            Linux系统之ftp

            Linux系统之ftp

            当为NO时,不可建立:

            Linux系统之ftpLinux系统之ftp

            此时系统会提示系统不允许建立目录!!

     6、匿名用户对文件目录的删除:anon_other_write_enable=YES|NO

           当为YES时,可以进行删除

           Linux系统之ftp

          Linux系统之ftp

          如图,顺利删掉了pub目录下的 passwd文件

          当为NO时,删除无效,即执行rm -rf命令系统不报错,但文件不会被删除

          Linux系统之ftp

          Linux系统之ftp

          在将值改为NO后,执行rm -rf *并不报错,但pub目录下的文件并没有被删除,即删除无效!!

    7、匿名用户上传文件的权限:anon_umask=xxx

          未更改前:

           Linux系统之ftp

           Linux系统之ftp

           未更改时上传的文件的权限为700

            将anon_umask的值改为022后:

            Linux系统之ftp

            Linux系统之ftp

             修改后上传同样的passwd文件,权限变为644(666-022)

       8、匿名用户的下载:anon_world_readable_only=YES|NO

             注意:当值为YES时为不允许下载,当值为NO时允许下载!!!!

             Linux系统之ftp

             Linux系统之ftp

            用ls查看会发现,将file文件从pub中下载到了当前界面

    9、最大上传速率:anon_max_rate=204800   :单位为字节

           Linux系统之ftp

          Linux系统之ftp

          如上图,在上传该文件时的速率未超过最大速率,较慢

          当未设置最大传输速率时,系统对上传速率不加限制

           Linux系统之ftp

           Linux系统之ftp

           由于该文件较小,而且未对传输速率有限制,则这次传输在瞬间完成!!!

     10、最大链接数:max_client=1:表示最多只能有一台主机通过ftp链接该服务器!!

              Linux系统之ftpLinux系统之ftp

              如上图,在将最大链接数设置为1时,第二台主机无法链接服务器!!!

               在未设置时,不限服务器链接数量!!!!

              Linux系统之ftp

             两台主机都顺利链接上!!!

三、ftp对本地用户的设定

       1、本地用户家目录的修改:local_root=/westos:将本地用户的家目录改为/westos

              验证前在/westos目录下先touch一个file

              Linux系统之ftpLinux系统之ftp

              由上图对比可以看出,westos用户的家目录被改成了/westos目录!!

              未更改前:

              Linux系统之ftp

              未更改前,本地用户的家目录位于/home中!!

       2、本地用户上传文件权限:local_umask=xxx

              本地用户上传文件权限默认为022

               Linux系统之ftp

               Linux系统之ftp

            修改为002后:

              Linux系统之ftp

             Linux系统之ftp

           由上图会发现修改后上传同样的文件权限不同!!!

    3、限制本地用户浏览目录:chroot_local_user=YES

          Linux系统之ftpLinux系统之ftp

          为了保护家目录中的数据,去掉可写权限

         Linux系统之ftp

          设置后用户登录后只能待在家目录中,不能访问其他目录!!!

    4、用户黑名单建立,在黑名单中的用户无法访问其他目录

          Linux系统之ftp

          在配置文件中找到这三条并取消注释,让其生效

          然后在/etc/vsftpd/chroot_list文件中写入用户名,即为黑名单!!

          Linux系统之ftp

           Linux系统之ftp

          此时黑名单已生效,westos用户登录后无法访问其他目录,如下:

            Linux系统之ftp

       5、白名单:将配置文件中chroot_local_user后的NO改为YES则可将黑名单转换为白名单

             Linux系统之ftp

            刚才在黑名单中的westos用户此时变成白名单中的用户,可以访问其他目录

             Linux系统之ftp

             只有白名单中的用户才能访问其他目录

      6、限制本地用户登录

            用户黑名单:vim /etc/vsftpd/ftpusers

            Linux系统之ftp

           westos用户存在于黑名单中,则无法通过ftp登录访问服务器

           Linux系统之ftp

     7、用户临时黑名单:vim /etc/vsftpd/user_list

           Linux系统之ftp

            在临时黑名单中的用户也无法登录服务器

            Linux系统之ftp

     8、用户白名单:在ftp的配置文件中,设置userlist_deny=NO,临时黑名单就会变成白名单!!

            Linux系统之ftp

            变成白名单后,westos用户可以登录访问服务器

            Linux系统之ftp

             未在白名单中的hehe用户将无法登录

             Linux系统之ftp

四、ftp常见报错:

        1、500:文件系统权限过大,此时应将所对应文件系统权限改小

         2、553:文件系统权限过小

        3、530:用户认证失败,即登录ftp时密码输入错误

        4、550:系统不允许登录,即设置了权限!!

相关文章:

  • 2022-12-23
  • 2021-04-21
  • 2022-02-07
  • 2021-09-08
  • 2021-05-05
  • 2021-04-14
  • 2021-10-27
猜你喜欢
  • 2021-10-31
  • 2022-02-07
  • 2021-09-24
  • 2021-09-03
  • 2021-09-01
  • 2022-02-07
相关资源
相似解决方案