ftp服务

部署ftp服务器

 在服务端(虚拟机)

 vim /etc/sysconfig/selinux    ### 编辑配置文件

 /etc/sysconfig/selinux是启动或终止SElinux的主要配置文件,也可以用来设定哪些政策需要在系统上被强制执行及如何强制执行

ftp服务

[[email protected] ~]# reboot                  

[[email protected] ~]# getenforce                 ###查看SElinux是否关闭

Disabled

ftp服务

 

 

 

 

 yum install vsftpd.x86_64 -y         ####安装vsftpd

ftp服务

systemctl start vsftpd               ####打开vsftpd

systemctl enable vsftpd             ####允许vsftpd自启

 firewall-cmd --permanent --add-service=ftp        ###ftp设为火墙白名单

 firewall-cmd --reload                           扫描启动火墙

ftp服务

firewall-cmd --list-all      列出火墙启动列表

 ftp服务

 

 

在客户端

ftp服务

 

 当客户端在 /var/ftp/建立目录xiaohe

ftp服务

 

服务端可显示

创立之前

ftp服务

创立之后

ftp服务

 

 Ftb服务的基本信息

软件安装包  vsftpd

默认发布目录 /var/ftb

协议接口  21/tcp

服务配置文件 /etc/vsftpd/vsftpd.conf

 匿名用户

anonymous_enable=YES|NO 匿名用户是否可以登陆

ftp服务


ftp服务



<匿名用户上传本地文件>

匿名用户上传:必须自己在/var/ftp目录下建立一个目录,如pub。再给这个目录授予某个身份的满权限,这里将ftp匿名用户的登陆身份加入到这个/var/ftp/pub目录的组里。 
write_enable=YES

anon_upload_enable=YES

ftp服务

ftp服务

如果设为YES,则允许匿名登入者有上传文件(非目录)的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO

 vim /etc/vsftpd/vsftpd.conf

write_enable=YES      

anon_upload_enable=YES

Chgrp ftp /var/ftp/pub

Chmod 775 /var/ftp/pub

客户端建立连接并上传本地文件

ftp服务


服务端的/var/ftp/pub目录查看是否成功上传

ftp服务


anon_root=/目录名                                   <匿名用户家目录修改>

anon_root=/westos               #匿名用户修改家目录为westos

ftp服务

   anon_umask=xxx                                      <匿名用户上传文件默认权限修改>

anon_umask=022                    #修改匿名用户上传权限为022

ftp服务


   anon_mkdir_write_enable=YES            <匿名用户建立目录>

ftp服务

如果设为YES,则允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。


匿名用户下载

Anon_world_readable_only=YES|NO      设定为no表示可以下载

ftp服务

匿名用户删除

Anon_other_write_enable=YES|NO

ftp服务


本地用户

local_enable=YES|NO   本地用户是否可以登陆

ftp服务

write_enable=YES|NO     ftb是否对登陆用户可写

本地用户家目录修改

local_root=/westos

ftp服务

本地用户上传文件权限

local_umask=xxx

ftp服务

限制本地用户浏览/目录

所有用户被锁在自己的家目录中

chroot_local_user=YES

chmod u-w /home/*

ftp服务

用户黑名单建立

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftbd/chroot_list

用户白名单建立

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

限制本地用户登陆

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

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

用户白名单设定

userlist_deny=NO

/etc/vsftbd/user_list               参数设定,此文件变为用户白名单,只有在名单中出现的用户可以登陆ftp

报错id的解析

500     文件系统权限过大

530     用户认证失败

550     服务本身功能未开放

553     本地文件系统权限过小

Ftpusers   黑名单的优先级最高

 

 

 

 

 

 

 

Ftb虚拟用户的设定(创建虚拟用户身份)

设置前注意

anonymous_enable=NO

设定不允许匿名访问

local_enable=YES

设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为 NO 那么所有虚拟用户将无法访问

write_enable=YES

设定可以进行写操作

local_umask=022

设定上传后文件的权限掩码

anon_upload_enable=NO

禁止匿名用户上传

anon_mkdir_write_enable=NO
禁止匿名用户建立目录






 vim /etc/vsftpd/westosfile          文件名可随意设置

 ftp服务

设置三个虚拟用户ftbuser1,2,3     密码为123

ftp服务

ftp服务

  db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db

生成了一个 westosfile.db 文件 (hash 码型的数据库文件)

查看已生成

ftp服务

 

 

[[email protected] vsftpd]# vim /etc/pam.d/westos

 ftp服务

  1 account    口令 帐号是否过期

     required  必须通过,如果没有通过 ,测底否定  ,而且还要看后续模块,如果通过 ,且还要看后续模块

     pam_userdb.so    后续模块

  db=/etc/vsftpd/westosfile


  2 auth        验证是否有该帐号 

  required     必须通过,如果没有通过 ,测底否定  ,而且还要看后续模块,如果通过 ,且还要看后续模块

   pam_userdb.so  后续模块

 db=/etc/vsftpd/westosfile


 

上传文件的权限配置

设置上传之后文件的权限,有两种情况:

  1. 如果使用 vsftp 的是本地用户,则要修改配置文件中的 local_umask 的值。
  2. 如果使用 vsftp 的是虚拟用户,则要修改配置文件中的 anon_umask 的值。

Vim /etc/vsftpd/vsftpd.conf

 ftp服务

pam_service_name=westos      设置 PAM 使用的名称为westos

 guest_enable=YES                    启用虚拟用户。默认值为 NO

 guest_username=ftpuser         这里用来映射虚拟用户

[[email protected] vsftpd]# chmod u-w /home/ftpuser                 

 [[email protected] pam.d]# lftp 172.25.254.236 -u ftpuser1        用虚拟用户ftpuser1 链接

ftp服务

 

 


如何让虚拟用户登录时在自己的目录下

 

 

 [[email protected] ~]# mkdir /vftpdir                 建立用户登录路径

[[email protected] ~]# touch /vftpdir/vftpfile        建立用户登录文件

ftp服务

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf                   在配置文件里设置用户登录路径

 ftp服务

129 local_root=/vftpdir            用户登录路径

 

[[email protected] ~]# systemctl restart vsftpd.service                   重启服务

[[email protected] ~]# lftp 172.25.254.236 -u ftpuser1                   

ftp服务


[[email protected] vftpdir]# mkdir ftpuser{1..3}           建立三个用户目录

ftp服务

在用户目录下建立用户文件

ftp服务

[[email protected] vftpdir]# vim /etc/vsftpd/vsftpd.conf

 ftp服务


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

130 user_sub_token=$USER                     使 ftp 服务识别 $USER5. 配置虚拟用户具备独立的家目录

 [[email protected] vftpdir]# systemctl restart vsftpd.service


重启之后可连接进行查看