Linux下的FTP服务

1.什么是FTP协议

ftp的定义:ftp://##文件传输协议

  • FTP(File Transfer Protocol, 文件传输协议) 时TCP/IP协议组中的协议之一

  • FTP 协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端

  • 其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源

  • 在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上

  • 由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议

  • 默认情况下FTP协议使用TCP端口中的20和21 这两个端口,其中20用来传输数据,21用来传输控制信息

  • 但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关

  • 如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定

  • 同大多数Internet服务一样,FTP也是一个客户/服务器系统

  • 用户通过一个客户机程序连接至在远程计算机上运行的服务器系统

  • 依照FTP协议提供服务,经性文件传输的计算机就是FTP服务器

  • 而连接FTP协议提供服务,遵循FTP协议与服务器传输文件的电脑就是FTP客户端

  • 用户要来连上FTP服务器,就要用到FTP的客户端软件,通过lftp命令连接

2.实验环境
(1)打开ping虚拟机
并reset虚拟机,保证有一个全新的实验环境
(2)给ping 配置网络

  • cd /etc/sysconfig/network-scripts/
  • ls
  • vim ifcfg

在这里插入图片描述
设置为静态ip,设置ip地址与子网掩码
在这里插入图片描述
在这里插入图片描述
重启网络
在这里插入图片描述
查看网络是否配置成功
在这里插入图片描述
查看是否可以ping通真机
在这里插入图片描述
(3)改主机名

  • hoetnamectl set-hostname ftp_server.westos.com 其实是一个FTP服务器

在这里插入图片描述
(4)看yum仓库有没有

  • cd /etc/yum.repos.d/
  • ls
  • 有的话直接用,没有的话配置本地yum源
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (5)执行getenforce命令
  • 如果是disabled则不用管
  • 如果是Enforcing则需要用 vim /etc/sysconfig/selinux 改SELINUX=disabled
  • 关闭内核加强型防火墙,编辑完需要reboot重启
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可以看到修改成功了

3.使用FTP的原因

ftp在文件传输方面有很大的优势,企业中常用vsftpd
http:// ftp://
tftp, fastftp qftp vsftpd 均要了解
yum search ftp 找到可以安装ftp服务的软件包

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

报错解析:

500文件系统权限过大
530用户认证失败
550服务本身功能为未开放
553本地文件系统权限过小

5.安装ftp服务,以及进行测试

步骤一:寻找安装ftp服务的安装包
在这里插入图片描述
步骤二:yum install lftp -y 安装vsftpd服务与lftp客户端
在这里插入图片描述
在这里插入图片描述安装成功
步骤三:systemctl start vsftpd 开启vsftpd服务,systemclt enable vsftpd 设置开机启动
在这里插入图片描述
在这里插入图片描述步骤四:rpm -ql vsftpd 看该服务的安装目录 /var/ftp /var/ftp/pub
在这里插入图片描述
在这里插入图片描述

步骤五:rpm -qc vsftpd 看该服务的配置文件/etc/vsftpd/vsftpd.conf
在这里插入图片描述
步骤六:在火墙里ftp服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤七:验证
在这里插入图片描述

6.vsftpd服务的配置参数

(1)匿名用户的相关设定
匿名用户登录限制

  • anonymous_enable=YES|NO
    在这里插入图片描述
    在这里插入图片描述
    可以看到匿名用户可以访问ftp服务器在这里插入图片描述
    现将修改匿名用户权限
    在这里插入图片描述
    改为匿名用户不可访问
    在这里插入图片描述
    重启服务
    在这里插入图片描述
    我们可以看到匿名用户已经不能访问了
    在这里插入图片描述
    匿名用户上传
    在这里插入图片描述
    我们可以看到不能上传
  • vim /etc/vsftpd/vsftpd.conf
    在这里插入图片描述
  • write_enable=YES
  • anon_upload_enable=YES

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

  • chgrp ftp /var/ftp/pub
  • chmod 775 /var/ftp/pub
    在这里插入图片描述
    ###因为默认是以ftp用户的身份访问ftp服务器,所以将ftp目录的所有组改为ftp以及赋予它较高的权限,这样匿名用户才可以进行上传
    在这里插入图片描述
    匿名用户家目录修改
    在这里插入图片描述
  • anon_root=/directory
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    重启服务
    在这里插入图片描述
    在这里插入图片描述
    匿名用户上传文件默认权限修改
    在这里插入图片描述
    可看到权限是600
    anon_umask=XXX
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    匿名用户建立目录
    在这里插入图片描述
    可以看到匿名用户不能建立目录
  • anon_mkdir_write_enable=YES|NO
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可以看到目录成功建立
  • 匿名用户下载
    在这里插入图片描述
  • anno_world_readable_only=YES|NO
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    匿名用户删除
    在这里插入图片描述
    可以看到匿名用户并不能删除东西
  • anon_other_write_enable=YES|NO
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可以看到成功删除
    匿名用户使用的用户身份修改
  • chown_uploads=YES
  • chown_username=student
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    最大上传速率
    在这里插入图片描述
    我们先划一个1.5G的文件,然后在没有限制速度的情况下,上传速度非常快平均83.2M/s,然后更改完配置文件后重新启动服务,发现匿名用户上传的速度变成了设置的102400k左右。
    最大连接数
    max_client=2 ##设置最大连接为2
    在这里插入图片描述
    由于更换主机,我们修改ip地址为172.25.254.115

本地用户设定

本地用户登录设定
在这里插入图片描述
student用户可以登陆且访问

在配置文件中,修改在这里插入图片描述
重启服务
在这里插入图片描述
在这里插入图片描述
本地用户写权限限制
在这里插入图片描述
编辑配置文件
在这里插入图片描述
重启服务
在这里插入图片描述
在这里插入图片描述
本地用户家目录修改
local_root=/yty 重启服务
在这里插入图片描述
在这里插入图片描述

先在student用户的家目录下创建file{1…3},再创建一个新的/yty目录当作修改的家目录,然后创建file{1…10}

在这里插入图片描述

本地用户上传文件权限
在这里插入图片描述
local_umask=

在这里插入图片描述

可见我们上传的/etc/group的权限是600

限制本地用户浏览/目录
chroot_local_user=YES
chmod u-w /home/student
用户被锁定在家目录中不能cd切换到/目录下
在这里插入图片描述
在这里插入图片描述

本地用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
重启服务
建立两个新用户westos,lee,并给与密码
在这里插入图片描述
在这里插入图片描述

vim /etc/vsftpd/chroot_list 黑名单加入westos和student,表示westos和student不能登陆

在这里插入图片描述
测试:
student不能登陆
在这里插入图片描述
westos不能登陆
在这里插入图片描述
lee可以登陆
在这里插入图片描述
本地用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list 重启服务
在这里插入图片描述
白名单加入westos和student,表示westos和student可以登陆,其他用户都不能登陆
student可以登陆
在这里插入图片描述
westos可以登陆
在这里插入图片描述
lee不能登陆
在这里插入图片描述
限制本地用户登陆(永久)
vim /etc/vsftpd/ftpusers ##用户黑名单
在这里插入图片描述
cd /etc/vsftpd/ 然后 vim ftpusers,加入student用户
在这里插入图片描述
q
用户临时黑名单
vim /etc/vsftpd/user_list
在这里插入图片描述
加入westos用户,表示westos用户不能访问ftp服务器
在这里插入图片描述
student用户和lee用户可以
在这里插入图片描述
在这里插入图片描述
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在文件中出现的用户才可以登陆ftp服务器
在这里插入图片描述
在这里插入图片描述
可见在名单中的westos用户可以登陆
在这里插入图片描述
而不在白名单的lee和student用户就不可以登陆ftp服务器

在这里插入图片描述
在这里插入图片描述ftp虚拟用户的设定(创建虚拟帐号身份)
给ftp服务器创建虚拟帐号身份,这样更安全。
vim /etc/vsftpd/westosfile ##文件名称任意,创建一个虚拟帐号的名单,里面的帐号是不存在的
vim /etc/vsftpd/westosfile 文件名称任意 设定虚拟用户和登陆密码
在这里插入图片描述
在这里插入图片描述
db_load 加密命令
-T 转换
-t 建立
-f 指定文件
/etc/vsftpd/westosfile被加密文件
/etc/vsftpd/westosfile.db加密的文件

查看vsftpd.conf认证时用的是pam认证
在/etc/pam.d/下创建westos(文件名称任意)对应westosfile
在这里插入图片描述
在这里插入图片描述
account auth 帐号和密码
required 请求访问允许或拒绝
pam_userdb.so 验证程序
db=/etc/vsftpd/westosfile(.db) 在该文件里面验证
在这里插入图片描述
在这里插入图片描述
将pam_service_name的指向改为westos原本(vsftpd),使westos中的账户和密码生效,再加入guest_enable=YES 允许游客登陆
重启服务
然后分别用user1,user2,user3登陆均可以登陆ftp服务器

并且是已匿名用户的虚拟帐号,默认家目录在/var/ftp/

虚拟帐号家目录独立设定(使虚拟用户登陆进去不再使ftp用户的默认家目录)
mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
在这里插入图片描述
在这里插入图片描述
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir
在这里插入图片描述

  • vim /etc/vsftpd/vsftpd.conf
    在这里插入图片描述
    重启服务:
    在这里插入图片描述
    验证,此时可以看到此时user1的家目录是他自己家目录

虚拟帐号独立配置(想让哪个用户干什么就干什么)
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
在这里插入图片描述
重启服务
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/user1 ==在此文件中设定配置文件的参数,此文件的优先级最高
在这里插入图片描述
在这里插入图片描述
允许user1匿名上传
在这里插入图片描述
测试user2是否可以
在这里插入图片描述也可以
之前的anon_upload_enable=YES没有变成NO
修改 vim /etc/vsftpd/vsftpd.conf
在这里插入图片描述
重启服务,此时user1可以上传,user2不可以
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值