详解vsftp服务器通过匿名用户、本地用户、虚拟用户三种登录方式实现文件传输
2018-07-11 20:56
1836 查看
概述
FTP(File Transfer Protocol)中文称为“文件传输协议”。用于Internet上的控制文件的双向传输。工作原理
一、主动模式:
1、客户端通过用户名和密码登录服务器端,登录的是21端口(服务器端主动开启的)。
2、服务器端通过21端口接收到客户端的访问,验证用户名和密码。
3、 登陆成功,客户端会随机开启一个1024以上的端口,在端口上会传递一个叫port的命令,通过命令告知服务器,打开端口,向客户端传递数据。(顺便的会将随机端口号告知服务器)
4、服务器接收之后查看端口为port,服务器端就会开启本机的20端口。然后向客户端的随机端口发送数据。
二、被动模式:
1、客户端通过用户名和密码登录服务器端,登录的是21端口。
2、 登陆成功,客户端会开启PASV命令,通过PASV,告知服务器端,采用被动模式连接。
3、服务器端会开启一个1024以上随机端口。
4、服务器端会把随机端口的号发送给客户端,客户端通过自己本机的随机端口向服务器端传递数据。
主被动之间比较
主动模式中:管理员只能控制服务器端,不能控制客户端,客户端不在管理员的控制范围,对方的防火墙有可能造成连接中断。被动模式中:虽然开启的是随机端口,但是服务器端在管理员的控制当中,只要把随机端口指定清楚,在服务器的防火墙通过这些访问,从而不会造成ftp连接中断。
问题:被动模式中随机开启的端口范围太多!!!
解决:服务器端可以修改配置文件将随机开打的端口压成10个或100个,在服务器端防火墙中把这针对100个随机端口的访问打开,ftp就可以正常访问。
关于端口
FTP连接端口(主动模式中)控制连接:TCP 21,用于发送FTP命令信息
数据连接:TCP 20,用于上传、下载数据
FTP访问方式
1、匿名用户:anonymous或ftp2、本地用户:使用Linux系统用户和密码
3、虚拟用户:管理员自定义的模拟用户
实验环境
系统环境:centos6.5、windows7Server端IP地址:192.168.1.77(Linux)
Client端IP地址:192.168.1.10(windows7)
yum挂载目录:/mnt/sr0
使用的rpm包:vsftpd-2.2.2-11.el6_4.1.x86_64.rpm (主包)
搭建步骤
一、使用匿名用户方式进行访问
1、关闭iptables以及selinux
[root@redhat6 ~]# chkconfig iptables off[root@redhat6 ~]# vim /etc/sysconfig/selinux
2、Server端安装Vsftp服务rpm包
[root@redhat6 ~]# cd /mnt/sr0/Packages/[root@redhat6 Packages]# rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
3、修改配置文件
[root@redhat6 ~]# cd /etc/vsftpd/[root@redhat6 vsftpd]# vim vsftpd.conf
4、修改默认上传目录权限
[root@redhat6 ~]# chmod 777 /var/ftp/pub/ #一定要注意!!!不要对/var/ftp设置目录权限,/var/ftp是ftp服务器站点,如果权限过大,意味着可以将整个站点进行删除,登录就会报错。此时系统专门准备pub目录进行权限设置。5、上传目录写入测试文件
[root@redhat6 ~]# echo "this is testFile" > /var/ftp/pub/test.txt6、虚拟机访问ftp实现下载
7、虚拟机访问ftp实现上传
8、查看上传文件
[root@redhat6 ~]# cd /var/ftp/pub/[root@redhat6 pub]# ll
二、使用本地用户方式进行访问_将用户禁锢在指定目录中
1、修改配置文件
[root@redhat6 ~]# cd /etc/vsftpd/[root@redhat6 vsftpd]# vim vsftpd.conf
2、添加本地测试用户
[root@redhat6 ~]# useradd zhangsan[root@redhat6 ~]# passwd zhangsan
[root@redhat6 ~]# useradd lisi
[root@redhat6 ~]# passwd lisi
3、修改指定上传目录权限
[root@redhat6 ~]# chmod 777 /var/ftp/pub/ #之前已经改过了,但是还是要加深一下印象4、用户访问
5、查看上传文件
[root@redhat6 ~]# cd /var/ftp/pub/[root@redhat6 pub]# ll
6、使用dos登录查看用户是否随意切户目录
三、使用本地用户方式进行访问_启用黑名单
1、修改配置文件
[root@redhat6 ~]# cd /etc/vsftpd/[root@redhat6 vsftpd]# vim vsftpd.conf
2、修改用户控制列表文件
[root@redhat6 ~]# cd /etc/vsftpd/[root@redhat6 vsftpd]# echo "zhangsan" >> user_list #将zhangsan用户添加至黑名单中
[root@redhat6 vsftpd]# cat user_list
[root@redhat6 ~]# /etc/init.d/vsftpd restart #重启服务
3、访问测试
四、使用虚拟用户方式进行访问
1、添加虚拟用户口令文件
[root@redhat6 ~]# vim /etc/vsftpd/vuser.txt #创建虚拟用户口令文件。可以叫任何名字,也可以放在任何地方。2、生成虚拟用户口令认证文件
[root@redhat6 ~]# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db#将文本文档转变为认证的数据库(通过用户名、密码文件生成一个数据库)
-T:转换;
-t:指定哈希算法;
-f:指定文件,生成 /etc/vsftpd/vuser.db数据文件。注意vuser.db是二进制文件。
3、编辑vsftpd的PAM认证文件
[root@redhat6 ~]# vim /etc/pam.d/vsftpd.vu #新建一个针对虚拟用户pmd认证文件4、建立本地映射用户并设置宿主目录权限
[root@redhat6 ~]# useradd -d /home/vfproot -s /sbin/nologin vuser #此用户只做本地用户对虚拟的映射[root@redhat6 ~]# chmod 755 /home/vfproot/
5、修改配置文件
[root@redhat6 ~]# cd /etc/vsftpd/[root@redhat6 vsftpd]# vim vsftpd.conf
6、重启vsftpd服务,并测试
[root@redhat6 ~]# /etc/init.d/vsftpd restart7、查看上传文件
[root@redhat6 ~]# cd /home/vfproot/[root@redhat6 vfproot]# ll
五、使用虚拟用户方式进行访问_为每一个用户进行配置
1、修改配置文件
[root@redhat6 ~]# cd /etc/vsftpd/[root@redhat6 vsftpd]# vim vsftpd.conf
2、手工创建目录
[root@redhat6 ~]# mkdir /etc/vsftpd/vusers_dir3、为"罗三炮"用户建立配置文件
[root@redhat6 ~]# cd /etc/vsftpd/vusers_dir/[root@redhat6 vusers_dir]# vim luosanpao #为"罗三炮"创建配置文件。注意!!!!必须要创建同名的配置文件
4、创建上传目录
[root@redhat6 ~]# mkdir /tmp/vluosanpao[root@redhat6 ~]# chown vuser:vuser /tmp/vluosanpao/ #修改所有者、所属组
5、重启并测试
[root@redhat6 ~]# /etc/init.d/vsftpd restart[root@redhat6 ~]# cd /tmp/vluosanpao/
[root@redhat6 vluosanpao]# ll
6、使用"展昭"虚拟用户进行测试
相关文章推荐
- 搭建FTP服务,实现三种方式的访问:1.匿名访问;2,本地用户访问;3虚拟用户访问。
- Rhel5.6下通过Mysql数据库实现虚拟用户登陆Vsftp服务器
- FTP服务器工作原理及如何通过PAM认证实现虚拟用户登录
- Ubunton下搭建ftp服务器 实现虚拟用户、本地用户、匿名用户的登陆及权限
- FTP服务器工作原理及如何通过PAM认证实现虚拟用户登录;
- Axure RP 实现登录用户校验的三种方式
- FTP匿名用户,本地用户,虚拟用户的搭建与详解
- 怎么实现用户匿名访问web,但数据库要用Windows集成验证方式(数据库和web服务器分别在两台机器上)
- vsftpd服务器结合mysql实现虚拟用户登录
- CentOS 7搭建vsftp(虚拟用户方式登录)
- SSO单点登录三种情况的实现方式详解
- vsftp本地用户,虚拟用户,匿名用户同时工作
- SSO单点登录三种情况的实现方式详解
- Vsftp 实现虚拟用户登录
- AdMob通过奖励视频实现用户体验优先的三种方式
- SSO单点登录三种情况的实现方式详解
- CentOS7 下安装和配置本地用户登录VSFTP服务器
- vsftp服务器实现匿名用户上传、修改权限和一些设置
- SSO单点登录三种情况的实现方式详解(一)
- vsftp匿名用户,本地用户,虚拟用户mysql认证详情配置