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

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

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值