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.搭建ftp服务
(1)配置本地yum源
在这里插入图片描述
(2)下载ftp服务器与ftp客户端测试软件
(3)启动ftp服务
在这里插入图片描述
(4)设置火墙

firewall-config

(5)查看火墙
在这里插入图片描述
查看火墙状态

firewall-cmd --list-all

在这里插入图片描述
(6)验证ftp服务是否搭建成功
在这里插入图片描述
2.ftp服务基本信息:

  • 查看vsftpd 涉及的文件
/var/ftp默认发布目录
/etc/vsftpd/vsftpd.conf主配置文件
/etc/vsftpd主配置目录

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

  • 数据访问端口
主动访问数据传输端口为20,访问端口为21
被动访问随即开启大于1024端口,访问端口为21
  • 报错id的解析
500文件系统权限过大
530用户认证失败
550服务本身功能未开放
553表示权力过小或者所访问的服务器的文件系统有问题

3.查看主配置文件

vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述
(1)匿名用户

  • 匿名用户登陆限制

anonymous_enable=YES|NO

在这里插入图片描述
在这里插入图片描述
注:可以列出,表示登陆成功

  • 匿名用户上传
write_enable=YES
anon_upload_enable=YES|NO
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub

在这里插入图片描述

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

  • 匿名用户下载
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载

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

  • 匿名用户建立目录
anon_mkdir_enable=YES

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

  • 匿名用户删除
anon_other_write_enable=YES|NO 

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

  • 匿名用户修改文件权限
anon_uamsk=022

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

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

在这里插入图片描述

  • 匿名用户最大上传速率
anon_max_rate=102400

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

  • 匿名用户最大连接数
 max_clients=2

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

(2)本地用户

  • 本地用户登陆限制
 local_enable=YES|NO

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

  • 本地用户可写
write_enable=YES|NO

在这里插入图片描述

  • 本地用户文件权限
local_umak=022

在这里插入图片描述

  • 本地用户家目录
local_root=/westods

在这里插入图片描述

  • 所有用户被锁定到自己的家目录中
chroot_local_user=YES

在这里插入图片描述
在这里插入图片描述
-黑名单

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chmod u-w /home/*

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

在这里插入图片描述
-白名单

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

在这里插入图片描述
在这里插入图片描述
-永久黑名单

/etc/vsftpd/ftpusers

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

-临时黑名单

/etc/vsftpd/ftpusers

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

-临时黑名单变为白名单

userlist_deny=NO

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

4.ftp虚拟用户的设定(创建虚拟帐号身份

注:该虚拟用户只有登陆ftp的权力。
(1)认证列表(pam)
pam认证:

  • 账户与密码:
vim /etc/vsftpd/vuer

在这里插入图片描述

  • 对认证列表进行将将加密
db_load -T -t hash -f vuser vuser.db

在这里插入图片描述

  • 认证文件规则
    在这里插入图片描述
    在这里插入图片描述
    书写规范:
 vim /etc/pam.d/vuer_pam ##文件名称任意(设置转换桥梁)
account 	required 	pam_userdb.so 	db=/etc/vsftpd/vuer
auth 	    required 	pam_userdb.so 	db=/etc/vsftpd/vuer
帐号和密码   请求访问允许 	验证程序 	          在该文件里面验证
              或拒绝

在这里插入图片描述

  • 将策略与ftp关联
    在这里插入图片描述
  • 验证虚拟用户认证是否成功
    在这里插入图片描述

5.ftp虚拟用户的家目录设置与授权

  • 家目录设置

(1)建立虚拟用户各自的家目录

mkdir /var/ftpdir/user{1..3}/pub -p

在这里插入图片描述
(2)固定各自虚拟用户的家目录( U S E R , 适 用 于 s h e l l ) 必 须 引 用 s h e l l 的 环 境 变 量 ( u s e r s u b t o k e n = USER,适用于shell) 必须引用shell的环境变量(user_sub_token= USER,shellshellusersubtoken=USER)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)上传文件(更改权限)【所有用户可以上传】

chgrp ftp /var/ftpdir/ -R
chmod 775 /var/ftpdir/user{1..3}/pub

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

  • 授权

特定用户可以上传(独立用户配置文件)

man 5 vsftpd.conf

在这里插入图片描述
(1)主配置文件上传功能关闭
在这里插入图片描述
(2)在主配置文件上开启子配置文件

user_config_dir=/var/vsftpd/user_config【自定义文件名称】

在这里插入图片描述
(3)进入子配置文件,开放指定用户的上传功能

vim /var/vsftpd/user_config/user2
anon_upload_enable=YES

在这里插入图片描述
在这里插入图片描述
(4)验证
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值