vsftpd服务配置

什么是FTP?

FTP(File Transfer Protocol)文件传输协议

  • 用于Internet上控制文件的双向传输。同时,它也是一个应用程序。
  • 是Internet上仍常用的最老的网络协议之一,他为系统提供了通过网络与远程服务器进行传输的简单方法,在red hat enterprise linux6中。FTP服务器包的名称是VSFTPD,代表Very Secure Transfer Protocal Damen,服务器名称也叫做vsftpd。
  • 默认的配置文件让anonymous用户只能下载位于chroot目录中的内容。/var/ftp这意味着远程FTP客户端只能以用户anonymous或ftp身份连接到服务器(无需密码),并从ftp服务器的/var/ftp目录下载文件(其本地ftp用户可以直接读取这些文件)。
  • FTP服务分为tftp(文件推送),vsftpd(文件传输,安全),fastftp,qftp,lftp(浏览器)。

部署FTP服务器

  • 首先,在一个虚拟机中修改他的主机名称为ftp_server
    命令为:hostnamectl set-hostname ftp_server.westos.com

  • 修改它的网络配置,并重启网络。
    在这里插入图片描述
    在这里插入图片描述

  • 搭建yum源,(我这里用的是真机的共享yum源)下载vsftpd,lftp服务,并开启服务。
    在这里插入图片描述
    在这里插入图片描述

  • 禁用内核防火墙selinux(将它的状态改为disabled),重启(reboot)
    在这里插入图片描述
    在这里插入图片描述

  • 设置防火墙允许ftp服务,并重载防火墙
    在这里插入图片描述

  • 测试:匿名用户和本机用户
    1>浏览器:真机浏览器输入ftp://172.25.254.124可以访问到ftp的发布目录
    在这里插入图片描述
    2>命令:在真机中打开一个shell
    匿名用户: lftp 172.25.254.124
    在这里插入图片描述
    本地用户:lftp 172.25.254.124 -u student (用户是服务器主机的用户)
    在这里插入图片描述

FTP服务的基本信息

  • 软件安装包:vsftpd
  • 默认发布目录:/var/ftp
    在这里插入图片描述
  • 协议接口:21/tcp
  • 服务配置文件:/etc/vsftpd/vsftpd.conf
    在这里插入图片描述
  • 报错ip的解析:
500文件系统权限过大
530用户认证失败,密码输错或者在服务器的黑名单中
550服务本身功能未开启或配置文件有问题
553服务器上文件系统的权限过小,服务未拒绝

匿名用户设定

配置文件:etc/vsftpd/vsftpd.conf,每次修改完成后需要重启服务systemctl restart vsftpd.service

  • 匿名用户是否可以登陆 (12行) anonymous_enable=YES|NO
    修改为NO后,匿名用户登陆请求被拒绝。
    在这里插入图片描述
  • 匿名用户上传(29行)anon_upload_enable=YES
    write_enable=YES

    1>服务未开启时,上传失败:
    在这里插入图片描述
    2>开启服务,上传还是失败,报错553,这是因为目录没有写权限,所以我们需要修改/var/ftp/pub目录的权限。
    在这里插入图片描述
    3>修改完成后,文件上传成功。
chgrp ftp /var/ftp/pub    //修改目录所属组为ftp
chmod 775 /var/ftp/pub    //修改权限775

在这里插入图片描述
在这里插入图片描述

  • 匿名用户家目录修改 anon_root=/zhang
    1>目录zhang下有5个文件
    在这里插入图片描述
    2>修改配置文件
    在这里插入图片描述
    3>修改后的家目录
    在这里插入图片描述
  • 匿名用户上传文件默认权限修改 anon_umask=022
    在这里插入图片描述
    在这里插入图片描述
  • 匿名用户建立目录anon_mkdir_write_enable=YES|NO
    在这里插入图片描述
    在这里插入图片描述
  • 匿名用户下载anon_world_readable_only=YES|NO
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 匿名用户删除anon_other_write_enable=YES|NO
    在这里插入图片描述
    在这里插入图片描述
  • 匿名用户使用的用户身份修改
    chown_uploads=YES //可上传文件
    chown_username=student //身份是student
    chown_upload_mode=0644 // 默认权限是0644

    在这里插入图片描述
    在这里插入图片描述
  • 最大上传速率anon_max_rate=102400(最大速率100kb/s)
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 最大连接数max_clients=3
    在这里插入图片描述
    第四个客户端要连接需要等待
    在这里插入图片描述

本地用户设定

注意:本地用户的访问需要使用的是服务端有的用户。

  • 本地用户是否可以登陆 (16行) local_enable=YES|NO
    修改为NO后,本地用户登陆请求被拒绝。
    在这里插入图片描述
  • ftp是否对登陆用户可写(19行)write_enable=YES|NO
    修改为NO,不可写
    在这里插入图片描述
    在这里插入图片描述
    修改为YES,可上传可删除
    在这里插入图片描述
  • 本地用户家目录修改 local_root=/zhang
    在这里插入图片描述在这里插入图片描述
  • 本地用户上传文件权限local_umask=077
    在这里插入图片描述

限制本地用户浏览目录

  • 所有本地用户被锁定到自己的家目录中chroot_local_user=YES|NO (YES是锁)
    chmod u-w /home/*

    在这里插入图片描述
    在这里插入图片描述
    所以我们要修改所有本地用户家目录的权限,给u–w,可以看到student用户被锁在自己家目录里了。
    在这里插入图片描述
  • 用户黑名单建立
    chroot_local_user=NO 不锁
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    名单里的都会被锁

    在这里插入图片描述
    在 /etc/vsftpd/chroot_list文件中写入用户名,该用户就被锁在自己的家目录了,我这里黑名单里写的是student。
    在这里插入图片描述
  • 用户白名单建立
    chroot_local_user=YES 锁
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    名单里的不会被锁

    在这里插入图片描述
    名单里的是student,student没被锁,其余用户都被锁在自己家目录了。
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

限制本地用户登陆

  • 用户永久黑名单/etc/vsftpd/ftpusers
    1>在/etc/vsftpd/ftpusers中加入用户student
    在这里插入图片描述
    2>在配置文件/etc/vsftpd/vsftpd.conf中加入userlist_deny=YES,重启服务。
    在这里插入图片描述
    3>测试
    student登录失败
    在这里插入图片描述
    在这里插入图片描述
  • 用户临时黑名单/etc/vsftpd/user_list
    /etc/vsftpd/user_list中加入用户名,操作同上,不再赘述。
  • 用户白名单设定
    1>在/etc/vsftpd/user_list中写入用户名linux,此文件变为用户白名单,只在名单中出现的用户可以登陆ftp。
    在这里插入图片描述
    2>将配置文件/etc/vsftpd/vsftpd.conf中改为userlist_deny=NO,重启服务。
    3>测试
    只有linux可以登陆访问。
    在这里插入图片描述
    在这里插入图片描述

FTP虚拟用户的设定

Linux系统中能创建的用户数量是有限的,但是如果我们需要创建无数的用户要怎么办?我们可以设置虚拟用户。
注意:通过vim /etc/login.def中读取创建用户的规则,可以看到数量是有限的。
在这里插入图片描述
1>创建虚拟帐号身份vim /etc/vsftpd/login //文件名称任意
奇数行是用户名,偶数行是密码
在这里插入图片描述
2>文件加密db_load -T -t hash -f login login.db //-T表示转换,-t表示加密方式为哈希加密 -f表示加密文件为/etc/vsftpd/login
在这里插入图片描述
3>在文件中写入以下内容vim /etc/pam.d/westos //文件名称任意
在这里插入图片描述
4>在配置文件vim /etc/vsftpd/vsftpd.conf中写入以下内容,重启服务。
在这里插入图片描述
5>测试,可以看到虚拟用户可以登陆,且进入的都是本地用户的家目录/zhang
在这里插入图片描述

虚拟用户配置独立

目的是让虚拟用户互相独立,只能查看自己的家目录。
1>给每个虚拟用户建立自己的家目录
在这里插入图片描述
2>修改配置文件,加入以下内容:local_root=/var/ftpdir/$USER user_sub_token=$USER
注意:$ USER用来表示用户身份,例如:kiosk用户的家目录是/home/kiosk,linux用户的家目录是/home/linux,所以我们在vsftpd.conf配置文件中将用户家目录修改为/var/ftpdir/$USER。
在这里插入图片描述
3>测试
在这里插入图片描述

虚拟用户的权限设置

我们发现修改权限之后所有用户都可以上传文件,现在我们设置只能特定用户user1上传文件。
1> 新建目录和文件
mkdir /etc/vsftpd/westos 在/etc/vsftpd/下创建一个目录
touch /etc/vsftpd/westos/user1 此文件名称与虚拟用户名称相同
vim /etc/vsftpd/westos/user1 在文件中写入anon_upload_enable=YES 只允许user1上传文件
在这里插入图片描述
在这里插入图片描述
2>vim /etc/vsftpd/vsftpd.conf,将匿名用户上传文件的功能注释掉。
并添加user_config_dir=/etc/vsftpd/westos/ 指向刚才创建的目录,重启服务。
在这里插入图片描述
3>测试
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
注意:要给user1添加别的权限,写对应的权限到文件/etc/vsftpd/westos/user1中就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值