文档章节

ftp服务备忘录

码上有春天
 码上有春天
发布于 2016/09/03 17:50
字数 1334
阅读 20
收藏 0

NFS,SAMBA都是基于RPC的网络文件系统,用户可以挂载共享目录到本地来使用,与本地磁盘分区上的文件系统使用方式无区别。
FTP是不用RPC而基于C/S模式来运行的7层协议,提供文件传输服务。

一 两种工作模式

    主动模式:服务端命令连接监听在端口21,数据连接使用端口20。客户端通过某个本地端口(如12340)去连接服务端,服务端通过21端口接收客户端的命令。当有数据传输时客户端又再打开一个本地端口12340+1(如这个端口已被占用,再+1)并通知服务端,服务端使用20端口主动去请求连接客户端新打开的端口,完成数据传输。

    被动模式:服务端命令连接监听在端口21。客户端通过某个本地端口(如12340)去连接服务端,服务端通过21端口接收客户端的命令。当有数据传输需求时,服务端打开一个随机端口并通知客户端(服务端会发送两个数字如[123,31],客户端通过计算123*256+31的结果得知端口号),然后客户端再打开一个本地端口12340+1(如这个端口已被占用,再+1)去请求连接服务端打开的随机端口,完成数据传输。由于每次数据连接端口都是随机的,所以也就有了多用户同时下载功能。

    客户端为了网络安全都有防火墙,一般不会允许外部的连接请求,从而导致主动模式的ftp数据传输失败。服务器工作于被动模式下的同时使用防火墙的连接追踪功能可以避免这个问题。

二 数据传输格式
流式化数据有两种形式:文本格式/二进制格式。
不能流式化的数据不能通过网络发送,也不能存储到文件中(文件就是文件流)。
ftp能传输文本格式和二进制格式的数据。http传输二进制数据的功能,是基于mime协议以base64编码二进制格式数据为文本格式后再传输的。
数据传输安全
    sftp(基于ssh协议)
    ftps(基于ssl协议)

三 程序包
服务端程序:vsftpd
客户端程序:GUI(flashfxp,cuteftp),CLI(ftp,lftp,wget)
安装    yum -y install vsftpd ftp

主配置文件:/etc/vsftpd/vsftpd.conf(配置项行首无空格,等号两边无空格)
基于pam认证用户的配置文件:/etc/pam.d/vsftpd(rpm包方式安装才有,主要包括:身份检查/账号检查/会话检查/修改密码检查等)
ftp用户家目录:/var/ftp/(匿名用户默认被禁锢在这个目录,windows上匿名用户登录用anonymous)
所有三种类型的用户上传文件的umask都为077

四 匿名用户登录控制

允许匿名用户登录
	anonymous_enable=YES
允许匿名用户上传(需要文件系统权限+服务权限),最好在/var/ftp目录下新建任意目录,并给这个目录加facl权限rwx给ftp用户
	anon_upload_enable=YES		#上传文件
	anon_other_write_enable=YES	#删除文件
	anon_mkdir_write_enable=YES	#创建目录
指定匿名用户上传文件的属主
	chown_uploads=YES
	chown_username=ftp
如果开启了SELinux,还需要命令行中修改域
	setsebool -P ftpd_full_access=on

五 本地用户登录控制

允许本地用户登录
	local_enable=YES
允许本地用户上传
	write_enable=YES
匿名用户或ftp用户都默认被禁锢在家目录中,为了安全,本地用户也应该禁锢在各自家目录中
	chroot_local_user=YES
或者使用下面的(用户名写入文件,每行一个,写入的全部禁锢)
	chroot_list_enable=YES
	chroot_list_file=/etc/vsftpd/chroot_list
控制本地用户登录机制
1./etc/pam.d/vsftpd中定义了规则,限制写在文件/etc/vsftpd/ftpusers文件中的用户不能登陆。
2.还可以在主配置文件中设置
	userlist_enable=YES	#启用文件/etc/vsftpd/user_list
	userlist_deny=YES	#默认值,表示黑名单,如果是NO则是白名单
3.ftpusers文件中的规则优先于user_list文件

六 虚拟用户登录控制

创建虚拟用户库文件
	cd /etc/vsftpd
	vim vuser.txt	#写入用户名密码,单数行写用户名,双数行写密码
		zhangsan
		123456
		lisi
		123
	db_load -T -t hash -f vuser.txt vuser.db
	chmod 600 vuser.db
	rm -rf vuser.txt
创建一个本地用户,用于虚拟用户映射
	useradd -d /var/ftproot	-s /sbin/nologin virtual
	chmod -Rf 755 /var/ftproot
提供pam认证规则,写入这个文件中/etc/pam.d/vsftpd.vu
	auth	required	pam_userdb.so	db=/etc/vsftpd/vuser
	account	required	pam_userdb.so	db=/etc/vsftpd/vuser
在主配置文件中支持虚拟用户
	anonymous_enable=NO		#启用虚拟用户必须关闭匿名用户
	local_enable=YES
	guest_enable=YES
	guest_username=virtual		#虚拟用户映射的本地用户名
	pam_service_name=vsftpd.vu	#pam规则配置文件
	allow_writeable_chroot=yes	#vsftpd2.2 中不支持这一项,可以不用
	user_config_dir=/etc/vsftpd/vuser_dir	#虚拟用户权限控制文件存放目录
给虚拟用户分别设置访问权限
	mkdir /etc/vsftpd/vuser_dir
	vim /etc/vsftpd/vuser_dir/zhangsan
		anon_upload_enable=YES
		anon_other_write_enable=YES
		anon_mkdir_write_enable=YES
重启vsftpd服务即可检查虚拟用户登录效果

 

© 著作权归作者所有

码上有春天
粉丝 5
博文 82
码字总数 55905
作品 0
广州
程序员
私信 提问
不小心删除了华为手机备忘录里的内容如何恢复?

不小心删除了华为手机备忘录里的内容,如果手机开着云服务功能,云端备忘录里该条内容也会被删除,无法找回! 小编一直都是用的华为手机,不管是功能还是外观,华为手机都质量过关,所以用了...

wangzhen1219
2018/09/26
0
0
第三代iPad即将退出历史舞台

导读 一份发给苹果授权服务提供商的内部备忘录中提到,苹果将于 2017 年 10 月 31 日在全球范围内把第三代 iPad 平板电脑加入到其过时产品的目录中。据了解,这份备忘录已经得到了 MacRumor...

linuxprobe16
2017/11/07
0
0
CentOS 7.0 使用Vsftpd服务传输文件

CentOS 7.0 使用Vsftpd服务传输文件 文件传输协议 文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,...

新网学会
2017/12/13
0
0
美国奥巴马总统下令,所有政府单位要开放 API 出来

笔者观察到即使是先进者美国,也在奥巴马的支持下,通过了类kickstarter群众募资平台的法源基础。进一步给予已经蓬勃发展的第三方支付,线上创新金流法律上支持的力道。这预计也将创造数以百...

oschina
2012/06/03
4.6K
66
linux下开通ftp bash:ftp:command not found

linux自己提供了ftp(文件传输)服务和ssh(远程登陆,类似tlenet,不过比telnet安全)服务,那么怎么使用呢? 一 FTP: FTP服务有好多种,本文是使用的vsftp 1.查看ftp服务状态: 首先要确定...

xinspace
2013/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

代码持续自动发布

需求: 自动更新私人gitbook项目代码 如果代码没更新,不做务必要的构建操作 思路 定时任务加shell脚本,无论更新没更新都执行git pull。 优点:能满足需求 资源浪费,代码仓库不更新也执行p...

阿dai学长
34分钟前
6
0
sparkstreaming原理

Spark Streaming是Spark生态系统当中一个重要的框架,它建立在Spark Core之上,下面这幅图也可以看出Sparking Streaming在Spark生态系统中地位。 Spark Streaming是Spark Core的扩展应用,它...

七旬少女
54分钟前
1
0
springmvc集成cas,并解决前后端分离情况

1.最近项目需要集成已经存在的cas系统。 但是目前已集成的系统都是jsp。而我们项目是前后端分离开发(伪),没有分开部署。 2.cas原理就不介绍了 网上例子很多。基本都是使用302重定向实现的...

起名字什么的太麻烦了
今天
4
0
HDFS-原理

1. 写操作 客户端要向HDFS写数据,首先要跟Namenode通信以确认可以写文件并获得接收文件block的Datanode,然后,客户端按顺序将文件逐个block传递给相应Datanode,并由接收到block的Datanod...

叶枫啦啦
今天
3
0
聊聊elasticsearch的MembershipAction

序 本文主要研究一下elasticsearch的MembershipAction MembershipAction elasticsearch-6.7.1/server/src/main/java/org/elasticsearch/discovery/zen/MembershipAction.java public class M......

go4it
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部