FTP :身份验证、本地用户访问、虚拟用户访问实验

2023-05-16

ftp

ftp文件共享  

主要用于存储,采用c/s架构,客户端可以通过登录server,去实现文件的上传,删除的操作

ftp工作模式

主动传输模式

client使用N端口向ftp的server的21端口进行请求,并且会告诉ftp的server其接收数据的端口为n+1端口,建立连接成功后,ftp的server会使用其20端口和client的n+1端口进行连接,传输数据

优点:服务端配置简单,利于服务端的安全管理,只需要开放21和20端口

缺点:如果客户端开启了防火墙,限制了端口,就有可能接收不了服务端响应的数据

被动传输模式

client使用N端口向ftp的server的21端口进行请求,并且会告诉ftp的server使用的是被动模式,ftp的server会随机开放一个端口,这个端口大于1024,之后ftp的server会把自己随机开放的端口响应给客户端,client使用自己的n+1端口主动去和ftp的server随机开放的端口进行连接  传输数据

优点:对客户端的网络环境没有要求

缺点:server的设置会比较麻烦   服务端随机开放端口的范围不确定  所以手动比较麻烦

默认使用的模式主动传输模式

主动和被动模式的不同

主动模式 服务端主动和client建立连接传输数据 20端口21端口

     21端口接受client的请求 20 传输数据

大部分使用主动模式

被动模式 client主动和服务端建立传输数据  21端口 随机端口比1024大

  21接受client的请求 随机开放的端口传输数据

身份验证:

登录成功后ls可查看服务端的数据  put可上传  get 下载

匿名用户访问:ftp  没有密码的     server端共享目录  /var/ftp

server 192.168.2.10   vsftpd

client 192.168.2.20   ftp

服务端配置:

1.先安装vsftpd

[root@localhost ~]# yum -y install vsftpd

2更改配置

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

12 anonymous_enable=YES

16 local_enable=NO

33 anon_mkdir_write_enable=YES

保存退出 重启 vsftpd

client:

[root@localhost ~]# yum -y install ftp

客户端登录到服务端

[root@localhost ~]# ftp 192.168.2.10

Connected to 192.168.2.10 (192.168.2.10).

220 (vsFTPd 3.0.2)

Name (192.168.2.10:root): ftp

331 Please specify the password.

Password:

服务端:

[root@localhost ~]# cd /var/ftp/

[root@localhost ftp]# touch kkk

[root@localhost ftp]# ls

kkk  pub

-------------------------------------------

本地用户访问:能够登陆server的用户     server端共享目录  登陆用户的家目录

更改配置

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

12 anonymous_enable=NO #不允许匿名

16 local_enable=YES #允许本地登录

[root@localhost ~]# systemctl restart vsftpd

创建用户

[root@localhost ~]# useradd cc

[root@localhost ~]# passwd cc

client:

[root@localhost ~]# ftp 192.168.2.10

Connected to 192.168.2.10 (192.168.2.10).

220 (vsFTPd 3.0.2)

Name (192.168.2.10:root): cc

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

ftp> ls

227 Entering Passive Mode (192,168,2,10,159,20).

150 Here comes the directory listing.

226 Directory send OK.

server  

[root@localhost ~]# cd /home/cc  #共享目录在用户的家目录

[root@localhost cc]# touch ccck

[root@localhost cc]#

-----------------------------------------------------------------

虚拟用户访问:基于本地用户的虚拟用户    server端共享目录    基于本地用户的家目录

server

[root@localhost cc]# cd /etc/vsftpd/

[root@localhost vsftpd]#

[root@localhost vsftpd]# vim users.list

aaa

123

bbb

456

ccc

789

转换成二进制文件

[root@localhost vsftpd]# db_load -T -t hash -f users.list users.db

-T转换 -t类型 hash -f指定文件名

 

创建一个虚拟用户依赖的本地用户

[root@localhost vsftpd]# useradd -d /qq -s /sbin/nologin qq

[root@localhost vsftpd]# chown qq:qq /qq

[root@localhost vsftpd]# chmod 755 /qq

 

 

#pam认证---虚拟用户登录

[root@localhost vsftpd]# cd /etc/pam.d/

[root@localhost pam.d]# vim user.vu

#!PAM-1.0

auth required pam_userdb.so db=/etc/vsftpd/users #登录模块

account required pam_userdb.so db=/etc/vsftpd/users #登录测试模块

[root@localhost pam.d]# vim /etc/vsftpd/vsftpd.conf

修改

29 anon_upload_enable=YES  #允许用户上传文件

125 pam_service_name=user.vu  #pam认证的文件名

添加

guest_enable=YES #开启虚拟用户登录

guest_username=qq #虚拟用户基于的本地用户

allow_writeable_chroot=YES #虚拟用户有读的权限

 

保存退出 重启服务

验证:

server创建数据

[root@localhost pam.d]# cd /qq

[root@localhost qq]# touch yyy

[root@localhost qq]# ls

yyy

client

ftp> ls

227 Entering Passive Mode (192,168,2,10,149,52).

150 Here comes the directory listing.

-rw-r--r--    1 0        0               0 Dec 08 08:49 yyy

226 Directory send OK.

ftp> get yyy

server

[root@localhost qq]# setenforce 0

client

ftp> put anaconda-ks.cfg #上传    需要在服务端关沙盒

local: anaconda-ks.cfg remote: anaconda-ks.cfg

227 Entering Passive Mode (192,168,2,10,175,158).

150 Ok to send data.

226 Transfer complete.

1760 bytes sent in 0.000912 secs (1929.82 Kbytes/sec

server 查看上传后的文件

[root@localhost qq]# ls

anaconda-ks.cfg  yyy

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FTP :身份验证、本地用户访问、虚拟用户访问实验 的相关文章

  • 全局变量和静态变量的初始化

    全局变量和静态变量的初始化 全局变量 static变量初始化时间静态局部变量全局变量 不要写出和编译顺序相关的程序总结 全局变量 static变量初始化时间 静态局部变量 首先 xff0c 静态局部变量和全局变量一样 xff0c 数据都存放
  • 不同操作系统及CPU字长、寻址能力、指针宽度的理解

    不同操作系统及CPU字长 寻址能力 指针宽度的理解 字长CPU位宽CPU的寻址能力操作系统32bit 64bit指针大小 字长 64位CPU和32位CPU中64和32的含义 xff1a 64和32指的是CPU中的寄存器 通用 的字长 xff
  • new和malloc的区别

    new和malloc的区别 1 new从自由存储区上分配内存 xff0c malloc从堆上分配内存 自由存储区是C 43 43 基于new操作符的一个抽象概念 xff0c 凡是通过new操作符进行内存申请 xff0c 该内存即为自由存储区
  • 程序中的负数存储及类型转换

    程序中的负数存储及类型转换 负数在计算机中怎样存储什么是原码 反码 补码为什么要设置反码 xff0c 补码剖析本质 C语言数据类型转换 xff08 自动类型转换 43 强制类型转换 xff09 自动类型转换强制类型转换类型转换只是临时性的自
  • Java Collections singleton()方法与示例

    集合类singleton 方法 Collections Class singleton method singleton method is available in java util package singleton 方法在java
  • 找素数问题

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • 嵌入式面试题

    面试题 字符串能直接比较大小吗typedef定义数组类型用法 字符串能直接比较大小吗 C 43 43 中字符串分两种 xff0c 一种是C语言的字符串 xff0c 一种是string字符串 C语言字符串是不可以直接比较大小的 xff0c s
  • 解决Endnote插入参考文献时导致word闪退问题

    问题描述 xff1a 通过endnote插入参考文献时 xff0c 会使得word闪退 原因分析 有像域代码之类的交互 xff0c 与endnote冲突 解决方法把word文档clean下 xff0c 即将域代码删除 解决方法 Ctrl 4
  • 音视频基础

    音视频基础 写在前面基础概念音视频直播推流和拉流什么是推流什么是拉流推流和拉流的区别 协议层 封装格式层 编解码层 像素层RTP RTCP RTMP RTSP区别RTP Real time Transport Protocol 实时传输协议
  • 回车和换行的区别

    回车和换行的区别 回车和换行的概念不同的系统间传递文件会涉及格式的转换Unix gt WindowsUnix lt Windows 回车和换行的概念 首先介绍一下 回车 xff08 carriage return r xff09 和 换行
  • 强大的PubMed插件Scholarscope

    强大的PubMed插件Scholarscope 学术基础 SCI分区什么是Pubmed什么是ScholarscopeScholarscope在不同浏览器下安装指南插件使用 学术基础 SCI分区 SCI是有两个分区 一个是JCR的划分 一般称
  • 反客STM32F4核心板DAP无法下载程序解决

    反客STM32核心板DAP无法下载程序解决 问题解决 问题 反客STM32F407ZGT6核心板使用反客的DAP下载器下载程序 xff0c 无法识别下载器 xff0c 说明下载器没有正常工作 xff08 这里是已经换过杜邦线了 xff0c
  • 有人物联网485转网口模块网口调试助手1035未知错误

    有人物联网485转网口模块网口调试助手1035未知错误 问题解决 问题 项目使用有人物联网485转网口模块USR TCP232 304 xff0c 将模块接入实验室路由器 xff0c IP地址设置为动态IP xff0c 路由器上查得IP为1
  • 1.半导体基础知识

    1 半导体基础知识 本征半导体什么是半导体 xff1f 什么是本征半导体 xff1f 本征半导体的结构本征半导体中的两种载流子为什么将自然界导电性能中等的半导体材料制成本征半导体 杂质半导体N型半导体P型半导体 PN结PN结中的扩散运动漂移
  • 2.半导体二极管

    2 半导体二极管 二极管的组成二极管和PN结伏安特性的区别二极管的伏安特性及电流方程为什么反向饱和电流越小 xff0c 单向导电性能越强 二极管的等效电路二极管的主要参数稳压二极管 xff08 又称齐纳二极管或反向击穿二极管 xff09 稳
  • Python | 从另一个列表的指定开始到结束索引创建一个列表

    Given a list start and end index we have to create a list from specified index of the list in Python 给定一个列表 xff0c 开始和结束索
  • EDA基础概念

    EDA基础概念 EDA和CADCAD工具EDA工具 EDA技术实现目标可编程逻辑器件简称PLD发展历程CPLD简介FPGA简介FPGA和CPLD区别是否需要同时学习FPGA和CPLDXilinx xff08 赛灵思 xff09 公司介绍 x
  • 半导体存储电路

    半导体存储电路 SR锁存器和触发器寄存器存储器存储器分类RAMSRAMDRAM ROMMROMPROMEPROMEEPROMFLASH原理发现者应用工作原理存储单元 磁盘硬盘机械硬盘 xff08 HDD xff09 固态硬盘 xff08 S
  • python编写简单的EXE启动器

    exe启动器 放假到现在一直憋在家里 xff0c 最近实在无聊 xff0c 就下了两个游戏玩 xff0c 玩的时候 xff0c 因为快捷方式放桌面感觉有点麻烦 xff0c path文件下图标有太多 xff0c 就想起了自己编写一个exe启动
  • mysql的left join和inner join的详细用法

    join用法 1 inner join xff0c 内连接 显示两个表中有联系的所有数据 2 left join xff0c 左链接 以左表为参照 显示所有数据 右表中没有则以null显示 3 right join xff0c 右链接 以右

随机推荐