Linux系统下的FTP服务

##1.FTP 文件传输协议##

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

  2.vsftpd:安全型服务器包,被动传输的接口是随机的,安全级别更高;

  3.默认配置文件让anonymous用户只能下载位于chroot目录中的内容;

  4./var/ftp:远程FTP客户端能以用户anofile:///usr/share/doc/HTML/en-US/index.htmlnymous或ftp用户连接到服务器,无需密码;

匿名用户默认的登陆目录为/var/pub/

本地用户默认的登陆目录为/home家目录

服务端安装vstftp服务和lftp服务,客户端安装lftp服务

##2.设置FTP服务 ##

1.给服务端(虚拟机)配置yum源,安装vsftpd和lftp

 

2.在服务端修改防火墙配置文件,允许ftp连接(不然客户端连接会显示Interrupt)

   查看防火墙限制的服务  firewall-cmd   --get-services  

   修改配置文件,允许ftp服务通过防火墙

   firewall-cmd   --permanent  --add-service=ftp

   防火墙服务重新加载配置文件  firewall-cmd  --reload

   查看防火墙允许服务   firewall-cmd   --list-all

3.开启ftp服务,查看ftp接口,设置开机自启动

 

 

 4.修改配置后,客户端连接好   ##默认目录 /pub

    注意:客户端需要安装lftp服务

##3.用户登陆设置    /etc/vsftpd/vsftpd.conf##

  1.匿名用户登陆

   anonymous_enable=YES

   anonymous_enable=NO            ##是否允许登陆

   不允许登陆状态如下

2.本地用户登陆

   local_enable=YES

   local_enable=No             ##是否允许登陆

   不允许登陆状态如下:

  3.本地用户读写    

   write_enable=YES

   write_enable=NO           ##是否允许读写

   注意:该实验必须修改内核级限制文件 /etc/sysconfig/selinux

     SELINUX=disabled

允许读写

例:设置userlist_deny=NO,将tom用户加入user_list则:

##4.登陆用户的读写权限##

   注意:530报错为密码输入错误

               550报错为当前用户没有权限

               553报错为文件权限不够

               500报错为文件权限太大

1.匿名用户上传文件权限  /etc/vsftpd/vsftpd.conf

    anon_upload_enable=YES                  ##匿名用户上传权限

    修改组  chgrp   ftp/var/ftp/pub/

    修改权限  chmod  775   /var/ftp/pub/

    实验效果如下:

2.匿名用户删除文件权限  /etc/vsftpd/vsftpd.conf

   anon_other_write_enable=YES                 ##匿名用户读写权限

    实验效果如下:

3.匿名用户下载文件权限  /etc/vsftpd/vsftpd.conf

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

实验效果如下:

  4.匿名用户新建目录权限  /etc/vsftpd/vsftpd.conf

   anon_mkdir_write_enable=YES             ##允许匿名建立目录

    实验效果如下:

##5.用户登陆的相关配置##

  1.修改默认用户,即以用户student的身份登陆,上传文件的组id为1000

    chown_uploads=YES                  

    chown_username=student          ##使匿名用户以student身份执行

 2.匿名用户的最大上传速度  ##单位byte  anon_max_rate=102400

3.匿名用户登陆的默认目录修改

    anon_root=/mnt    

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

    在mnt下建立文件hi{1..5},实验:

 4.最多同时在线人数设定  max_clients=3

  5.修改本地用户登陆后,文件默认权限修改

   local_umask=033       ##文件默认权限为644

6.用户登陆,锁定在用户加目录

    chroot_local_user=YES

    注意:此时要取消家目录文件W权限,否则会500报错,权限太大

用户登陆,可切换目录,如切到根目录

7.本地用户登陆黑/白名单

  chroot_local_user=NO                                         ##不锁定用户家目录

  chroot_list_enable=YES                                      ##开启黑/白名单列表

  chroot_list_file=/etc/vsftpd/chroot_list                ##列表文件为/etc/vsftpd/chroot_list

  注意:当锁定用户家目录(YES)时,/etc/vsftpd/chroot_list是白名单

              当不锁定用户家目录(NO)时,/etc/vsftpd/chroot_list是黑名单

  以锁定家目录为例,将tom用户加入白名单:

8.黑名单配置文件

    ftpusers       ##永久黑名单,一旦加入,任何操作都不能洗白

    user_list      ##临时黑名单,可修改配置文件,变为白名单

    userlist_enable=YES    ##开启userlist列表

    userlist_deny=NO         ##默认所有用户加入黑名单,白名单用户可登陆

    注意:若用户既在永久黑名单,也在白名单,此用户不能登陆!!

##6.虚拟用户登陆##

   1.建立虚拟用户   

    vim /etc/vsftpd/users    ##名字可自定义,注意不能有空格

   2.对虚拟用户和密码加密

      db_load   -T   -t   hash   -f   users   users.db

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

     会生成/etc/vsftpd/users.db文件

3.建立ftp验证文件

    /etc/pam.d/usercheck

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

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

4.修改配置文件,使虚拟用户登陆

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

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

     guest_username=student                ##使虚拟用户以ftp映射用户登陆,

5.配置虚拟用户具备独立的家目录

     建立虚拟用户的家目录(例:两个用户)

    mkdir   /var/ftpdir/test1/test1dir   -p

    mkdir   /var/ftpdir/test2/test2dir   -p    ##  -p 表示上层目录不存在,自动建立

     修改配置文件,使虚拟用户登陆到自己独立的家目录

    local_root=/var/ftpdir/$USER                   ##$表示根据user自动登陆到相应家目录中

    user_sub_token=$USER                        ##使ftp服务识别$USER

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/j_1282937574/article/details/81433906