FTP文件传输协议:

ftp为系统提供了通过网络于远程服务器进行传输的简单方法,分为主动和被动两种;

vsftpd:是一种安全型的服务器其包。被动传输接口是随机的(如果要查看vsftpd的接口,输入netstaat -antlupe  | grep  ftp)

默认配置文件让anonymous(匿名的)用户只能下载位于chroot(改变根目录的意思)目录下的文件;

/var/ftp:远程FTP客户端能以用户匿名的或者ftp身份链接服务器,无需密码;

匿名用户形式:在默认安装的情况下,系统只提供匿名访问;

本地用户形式:以/etc/passwd中的用户名为认证方式;

虚拟用户形式:支持将用户名和口令保存在数据库文件或者数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,增加系统的安全性。

关于vsftp里面的一些报错说明:530认证失败 550程序不允许 553服务器文件系统不允许 500权限过大

在我们安装服务软件时确保我们有yum源!

yum install  -y  vsftpd             ##服务端安装的软件

systemctl start vsftpd              ##服务端启动服务

systemctl  start  firewald         ##启动服务端的防火墙

firewall-cmd  --list-all        ##查看在防火墙里面有没有开启FTP服务(如果没有该服务通过上面添加服务命令进行添加)

FTP服务搭建以及相关配置

添加方法:firewall-cmd --permanent --add-service=ftp  

FTP服务搭建以及相关配置

firewall-cmd --get-service       ##通过该命令可以查看防火墙里面还可以添加其他服务;

FTP服务搭建以及相关配置

firewall-cmd --reload         ##添加完成以后需要重新启动确保该服务可以运

FTP服务搭建以及相关配置

systemctl    enable   vsftpd      ##服务端设置开机自启动

FTP服务搭建以及相关配置

为了后面的测试,我们需要在客户端安装服务: yum install   -y   vsftpd  lftp

FTP服务搭建以及相关配置

在客户端输入:lftp 172.25.254.xxx      连接服务端进行数据传输

{如果不能成功的连接,查看/etc/sysconfig/selinux文件,将SELINUX=enforcing  改成SELINUX=disabled;然后reboot重新启动服务端,以确保服务能正常运行;在检查服务端的防火墙是否添加ftp服务成功;}

FTP服务搭建以及相关配置

默认发布目录为/var/ftp/pub

配置文件设置用户权限:/etc/vsftpd/vsftpd.conf

1.是否允许匿名用户进行登陆

  vim /etc/vsftpd/vsftpd.conf           ##对配置文件进行修改

 local_enable=YES     ##允许匿名用户进行登陆

 local_enable=No       ##允许匿名用户进行登陆

保存退出;重新启动服务:systemctl  restart  vsftpd

FTP服务搭建以及相关配置

FTP服务搭建以及相关配置

2.匿名用户上传文件权限

anon_upload_enable=YES    ###允许匿名用户上传文件

anon_upload_enable=NO    ###禁止匿名用户上传文件

在测试之前修改pub目录的属组: chgrp  ftp /var/ftp/pub

修改pub目录的权限775:chmod  775  /var/ftp/pub

FTP服务搭建以及相关配置

FTP服务搭建以及相关配置

FTP服务搭建以及相关配置

(如果不能上传文件报错553可能是vaftpd.conf文件里面之前实验有些地方没有还原导致相互影响,还有就是selinux状态为关闭状态;)

3.匿名用户下载权限设置

        anon_world_readable_only=NO    ##允许匿名用户下载文件

        anon_world_readable_only=YES     ###禁止匿名用户下载文件

 FTP服务搭建以及相关配置

测试:

FTP服务搭建以及相关配置

(如果出现550报错,vsftpd.con文件命令是YES而非NO)

FTP服务搭建以及相关配置

4.匿名用户新建目录权限设置 

       anon_mkdir_write_enable=YES   ##允许用户新建目录

测试:

FTP服务搭建以及相关配置

FTP服务搭建以及相关配置

5.  匿名用户最大上传速度

     anon_max_rate=100      ####允许匿名用户上传文件最大速度100k/s

FTP服务搭建以及相关配置

FTP服务搭建以及相关配置

注意(上传文件时出现553报错也可能时上传文件名与pub目录下文件重名)

FTP服务搭建以及相关配置

6.匿名用户删除文件权限

anon_other_write_enable=YES      ####允许匿名用户重命名和删除文件

   FTP服务搭建以及相关配置

测试:

FTP服务搭建以及相关配置

(有时候重名命会出现550报错是因为重新名命的名字于目录下文件名重复)

FTP服务搭建以及相关配置

7.服务端允许登陆的最大人数

     max_clients=3

8.修改文件默认权限

   local_umask=022

9.限制用户最大权限在自己家目录内

    chroot_local_user=YES

10. 允许用户以student的身份进行登陆

     chown_uploads=YES     ##允许用户改变身份的命令

      chown_username=student      ##用户以student身份进行登陆

11.是否允许本地用户进行登陆

vim  /etc/vsftpd/vsftpd.conf          ##对配置文件进行编辑

local_enable=YES    ##允许本地用户进行登陆

local_enable=No      ##不允许本地用户进行登陆

保存退出;重新启动服务:systemctl  restart  vsftpd

FTP服务搭建以及相关配置

FTP服务搭建以及相关配置

12.本地用户的读写权限

write_enable=YES   ##允许本地用户读写权限

write_enable=NO      ##不允许本地用户读写权限

保存退出;重新启动服务:systemctl  restart  vsftpd

FTP服务搭建以及相关配置

FTP服务搭建以及相关配置

13.匿名用户以及本地用户家目录设置

 anon_root=/mnt     ##匿名用户登陆的默认目录   

FTP服务搭建以及相关配置

测试:

FTP服务搭建以及相关配置

FTP服务搭建以及相关配置

        (注意每次实验完毕客户端都需要退出lftp,否则修改设置不能读取;服务端设置完毕需要重新启动服务,否则会读取不到设置)

     local_root=/mnt     ##本地用户登陆的默认目录

13.本地用户的黑白名单设置

      chroot_local_user=YES      ##YES是白名单;NO是黑名单;

       chroot_list_enable=YES     ##YES启用限制名单

       chroot_list_file=/etc/vsftpd/chroot_list    ##指定限制名单的存放路径


14.黑白名单

      在/etc/vsftpd/目录底下的ftpuser, user_list都是黑名单;第一个是永久黑名单,第二个是临时黑名单;

      当第二个临时黑名单存在时,可以在/etc/vsftpd/vsftpd.conf 文件里面添加userlist_enable=YES  表示启动user_list名单,否则不会启用名单;

userlist_deny=YES    ###表示禁止某用户查看根目录

15.虚拟用户身份登陆

     a.在系统文件创建虚拟用户

       vim /etc/vsftpd/users  在文件里面添加用户及其验证密码 

       hello(用户)

       123(密码)

       FTP服务搭建以及相关配置

     b.对虚拟用户的文件名单进行加密

       cd      /etc/vsftpd       ##切换到该目录下

       db_load -T -t hash -f users users.db       ##对文件进行加密生成的文件放置在/etc/vsftpd/users.db里面

        -T    ##新建文件     -t  ##加密格式      

      FTP服务搭建以及相关配置

       chmod 600 user.db         ##该变user.db的权限,不允许其他人对该文件读写执行

     FTP服务搭建以及相关配置

       cp   -a    user.db    /etc/?     ###

    c.增加一个系统用户vuser ,使用它来对应所有虚拟用户,虚拟用户使用系统用户来访问ftp服务器

          FTP服务搭建以及相关配置

    d.建立ftp验证文件

        在/etc/pam.d/usercheck里面添加需要验证用户及其密码信息:

                   account     required    pam_userdb.so    db=/etc/vsftpd/users     ##用户认证

                    auth    required    pam_userdb.so    db=/etc/vsftpd/users           ##密码认证

                  FTP服务搭建以及相关配置

      d.   修改配置文件虚拟用户登陆

           pam_service_name=usercheck          #pam读取虚拟用户文件usercheck

           guest_enable=YES                  ##开启虚拟用户登陆

           guest_username= student               ##这里用来映射虚拟用户,默认值为ftp。

            FTP服务搭建以及相关配置

           virual_use_local_privs=YES/NO

#当该参数**时,虚拟用户使用与本地用户相同权限;

#当该参数关闭时,虚拟用户使用与匿名用户相同的权限。默认是关闭状态。

16.在系统中虚拟用户各自使用的权限各自不相同,而且家目录也不相同

        先在/var/ftpddir创建两个用户家目录;在家目录创建一个文件,方便查看

          mkdir    /var/ftpddir/user1

           mkdir    /var/ftpddir/user2           ##创建两个用户的家目录

          touch   /var/ftpddir/user*/user*dir      ###在家目录地下创建文件方便测试

在配置文件/etc/vsftpd/vsftpd.conf添加指定用户家目录的命令

         local_root=/var/ftpdir/$USER     ##指定用户的各自家目录($符号在文件中不能识别)

         user_sub_token=$USER          ##告诉文件识别用户的多种身份

        FTP服务搭建以及相关配置

创建每个用户的系统配置文件并且进行权限配置:

        在/etc/vsftpd/vsftpd.conf系统文件中设定用户的配置文件路径

              user_config_dir=/etc/vsftpd/user_conf    ###用户权限文件存放位置

             FTP服务搭建以及相关配置

                chmod 775 /var/ftpdir/user*/user*dir   改变文件的权限

              FTP服务搭建以及相关配置

       对用户的配置文件/etc/vsftpd/user_conf/user*编辑进行测试

                   




 


                      

      

          

          

















































 

相关文章: