ftp 服务部署及ftp 权限设置

ftp服务的定义

ftp:// 文件传输协议

ftp协议提供的软件

在rhel7中:
vsftpd

ftp服务的基本信息

软件的安装包:vsftpd
默认发布目录:/var/ftp
协议接口:       21 tcp
服务的配置文件: /etc/vsftpd/vsftpd.conf

部署ftp服务

  • yum install vsftpd -y

  • systemctl start vsftpd
  • systemctl enable vsftpd
  • firewall-cmd –permanent –add-service=ftp         添加 ftp服务到火墙白名单中
  • firewall-cmd –reload

  • 一切完成后看一下 getenforce 的状态,若为enforcing 则需关闭

  • vim /etc/sysconfig/selinux  文件

  • reboot虚拟机

getenfoce 查看状态,为disabled就可以进行实验。

测试

报错解析

530密码错,用户认证失败
550服务本身不允许
553本地文件系统权限过小
500权限太大了

ftp服务的配置文件

vim /etc/vsftpd/vsftpd.conf

  • ftp是否对登陆用户可写

write enable=YES|NO

可以看到参数为NO时,ftp服务对用户不可写

可以看到参数为YES时,ftp服务对用户可写

=========================匿名用户权限设置===============================

1.匿名用户是否可以登陆ftp服务器

anontmous enable=YES|NO

可以看到参数为YES时,匿名用户可登陆ftp服务器

可以看到参数为NO时,匿名用户不可登陆ftp服务器
2.匿名用户的上传

[root@westos ~]# vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES

[root@westos ~]# systemctl restart vsftpd

[root@westos ~]chgrp ftp /var/ftp/pub
[root@westos ~]chmod 775 /var/ftp/pub
put上传

3.匿名用户的上传权限更改

[root@westos ~]# vim /etc/vsftpd/vsftpd.conf

写入:anon_umask=022

4.匿名用户建立目录

写入:anon_mkdir_write_enable=YES

5.匿名用户下载

默认不能下载

[root@westos ~]# vim /etc/vsftpd/vsftpd.conf
写入:anon_world_readable_only=YES|NO    #NO表示匿名用户可以下载


测试:

6.匿名用户删除

[root@westos ~]# vim /etc/vsftpd/vsftpd.conf

写入:anon_other_write_enable=YES|NO

测试:

7.匿名用户的家目录修改
vim /etc/vsftpd/vsftpd/vsftpd.conf
anon_root=/westos #匿名用户进来指定目录
重启服务



8.匿名用户使用的用户身份修改

[root@westos ~]# vim /etc/vsftpd/vsftpd.conf

chown_uploads=YES
chown_username=westos

[root@westos westos]# systemctl restart vsftpd

9.匿名用户上传的最大速率

[root@westos ~]# vim /etc/vsftpd/vsftpd.conf
写入:anon_max_rate=20480

测试:

10.最大链接数

root@westos ~]# vim /etc/vsftpd/vsftpd.conf

写入:max_clients=1

测试:


=========================本地用户权限设置===============================

1.本地用户是否可以登陆ftp服务器

[root@westos mnt]# vim /etc/vsftpd/vsftpd.conf

 修改:local_enable=YES|NO   默认为YES


[root@westos mnt]# systemctl restart vsftpd  重启服务
测试:
用户登陆lftp 172.25.254.101 -u gq

2.限制本地用户浏览/目录,所有本地用户被锁定到自己家目录中

[root@westos mnt]# vim /etc/vsftpd/vsftpd.conf

chroot_local_user=YES   去掉注释

写入:local_root=/mnt

[root@westos mnt]# systemctl restart vsftpd

测试:

3.本地用户上传文件权限
local umask=xxx

4.vim /etc/vsftpd/ftpusers #用户黑名单(系统默认是黑黑名单)
vim /etc/vsftpd/user_list #用户临时黑名单

5.用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list #参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

ftp虚拟用户的设定

建立虚拟用户的原因: 因为系统用户登陆ftp服务,同时也可以登陆系统,这样很不安全,所以我们要建立ftp虚拟用户,使这些用户只能登陆ftp

ftp建立虚拟用户
1>创建虚拟帐号身份
vim /etc/vsftpd/loginusers

编辑内容:
westos1 用户
123 密码
westos2 用户
123 密码
westos3 用户
123 密码
退出并保存

注意:编辑的时候不要有空格

2>对文件进行hash加密
执行 db_load -T -t hash -f loginusers loginusers.db

3>编辑文件(验证密码与用户是否一致的文件) 文件名称任意
vim /etc/pam.d/ftpauth

写入
account   required         pam_userdb.so           db=/etc/vsftpd/loginusers
auth         required         pam_userdb.so           db=/etc/vsftpd/loginusers

4>编辑配置文件 vim /etc/vsftpd/vsftpd.conf退出后重新启动服务
    修改 pam_service_name=ftpauth
    添加 guest_enable=YES
   
 5> 在另一台主机进行测试:可以看到虚拟用户创建成功,可以登录

注意:   创建虚拟用户后,本地用户就不能正常登陆了,但是仍然可以指定本地用户身份登陆

5>再次编辑配置文件vim /etc/vsftpd/vsftpd.conf
    添加guest_username=tom退出(tom用户必须存在)

修改后要重启!!!
6>查看tom用户家目录下的东西,如果虚拟用户登录时可以看到以下文件,则证明虚拟用户登录身份修改成功
    cd /home/
  

  执行 chmod 555 /home/westos减小权限
  测试

成功!!!

虚拟用户独立家目录设置

1>首先在这三个家目录中分别建立文件
    mkdir -p /ftphome/westos{1…3}
    mkdir -p /ftphome/westos1/westos1date
    mkdir -p /ftphome/westos2/westos2date
    mkdir -p /ftphome/westos3/westos3date

  2>再编辑配置文件vim /etc/vsftpd/vsftpd.conf退出后重新启动服务  
 添加:


    注意:
    $ USER 相当于c语言中的变量,给不同的值,输出不同的值
    user_sub_token=$ USER (将shell中$USER的用法移到ftp服务中来用)

    重新启动服务systemctl restart vsftpd
    给该文件满权限chmod 777 /ftphome/westos*/*
   

    测试:
   

可以看到不同的虚拟用户在不同的家目录!!!

虚拟用户权限单独设置
原理:虚拟用户使用的是匿名用户的参数控制,如果我们想让不同的虚拟用户有不同的权利,就必须给每个虚拟用户设置自己的次配置文件。

1>首先建立虚拟用户的次目录和次配置文件
    mkdir /etc/vsftpd/user_conf
    touch /etc/vsftpd/user_conf/westos1


   
2>  编辑次配置文件 vim /etc/vsftpd/user_conf/westos1
    写入允许虚拟用户执行的动作anon_upload_enable=YES退出保存

 3> 编辑配置文件vim /etc/vsftpd/vsftpd.conf(注意:虚拟用户的上传参数为NO,或默认 )
    写入user_config_dir=/etc/vsftpd/user_conf

 
    重新启动服务systemctl restart vsftpd

   测试:
    虚拟用户westos1可以实现上传功能,而westos2和westos3不行

可以看到westos1 可以上传文件,而westos2 westos3 不能上传文件!!!

猜你喜欢

转载自blog.csdn.net/weixin_43273168/article/details/83589514
FTP