我之我见:ftp共享

目录

1.ftp服务概述... 1

1.1简介... 1

1.2复合TCP连接... 1

1.3数据连接模式... 1

1.3.1主动模式... 1

1.3.2被动模式... 1

1.4数据传输模式... 1

1.5ftp类型... 1

2.部署ftp. 2

2.1安装ftp. 2

2.2ftp功能划分... 2

2.2.1ftp访问控制... 2

2.2.2ftp连接及传输控制... 2

2.2.3ftp上传文件默认权限和归属... 3

2.2.4ftp欢迎信息... 3

2.2.5ftp的日志配置... 3

2.2.6是否开启二进制传输... 3

2.6.7ftp用户禁锢... 3

2.6.8常用的ftp全局设置... 4

2.6.9ftp防火墙配置... 4

2.3配置匿名用户... 4

2.4配置验证用户... 5

3.访问ftp. 5

3.1Windows访问ftp. 5

3.1.1在dos环境下直接访问ftp. 5

3.1.2浏览及下载工具... 6

4.出现的错误... 6

4.1bool值出错... 6

1.ftp服务概述

1.1简介

file transfer protocol 基于C/S结构的文件传输协议,它工作在OSI模型的第七层,即应用层,使用TCP传输, ftp客户端和服务器建立连接前就要进过“三次握手”的过程。

1.2复合TCP连接

--控制连接:tcp 21端口,发送ftp命令信息

--数据连接:tcp 20端口,上传/下载数据

1.3数据连接模式

1.3.1主动模式

1)主动模式:服务器20端口    主动连接    客户端

2)具体过程:第一个操作一定是由客户端发起的,服务器端不可能莫名其妙的去连接一个客户端。连接21端口,21端口是固定的。如果是主动模式,客户端连接21端口,还会告诉服务器我起了一个端口1120这个是随机的,一般是大于1024,连接21端口,服务器说ok,可以相互通信。客户端会先起一个端口,1121同时把端口号通过通道告诉服务器,我要下载你的数据,你传输的时候记得发给我的1121端口,服务器用自己的20端口发给客户端的1121端   口。

3)缺点:一般我随便上网,但是不希望别人可以随便连我。防火墙只限制入站,不限制出去。你可以出去。在第二步服务器把数据发给你的时候,你本身的防火墙或路由器的防火墙可能会拦截,这是个主动模式的缺点。除非客户端没有防火墙。所以更多时候是被动模式。

1.3.2被动模式

1)被动模式:服务端??端口   被动连接  客户端

2)具体过程:客户端先访问服务器,使用21端口,连接上之后说我要下载你的数据。服务器不会直接把数据给客户端。服务器随机开一个端口,比如说1230,同时把端口号通过21端口告诉客户端。于是客户端随机开一个端口,2340连上服务器的1230,好了,我连上你了,你可以发送给我了。这条通道是客户端建立的。服务器端的端口是随机的。

3)配置文法:a可以改配置文件,将这个端口固定死。作为管理员可以自己定义了。b通过iptables,专门给ftp的工作模式设置一个特有的规则。只要是服务器起来的端口,我无所谓你开什么端口。被动模式默认端口号是随机的。

1.4数据传输模式

文本模式:ASCLL模式,文本序列传输

二进制模式:程序,图片,只要做ftp,就会有多种多样的数据,图片是记事本写不出来的。注意:采用哪种模式,程序会自己会选择的,不用我们太多的关注

1.5ftp访问类型

①匿名用户:ftp或anonymous,不用输用户名密码,一般存放公司的一些公共文件

②本地用户:linux服务器本机的系统用户账号,需要改密码,人多的时候就不合适了

③虚拟用户:账号信息存放在独立的文件或数据库内   在里面写用户名密码,让ftp读我的文件,但是用户名密码不在我的系统里。在一个文件里。为了安全,可能会转码,就成乱码了,就是说加密了。

2.部署ftp

2.1安装ftp

[[email protected] ~]# yum -y install vsftpd                //安装vsftpd服务

[[email protected] ~]# service vsftpd start                 //启动ftp服务

[[email protected] ~]# chkconfig vsftpd on                 //将ftp服务设为开机自启

[[email protected] ~]# chkconfig vsftpd –list                //检查开机自启状态


/var/ftp/pub


主目录


/usr/sbin/vsftpd


主程序


/etc/init.d/vsftpd  start


脚本,可以用来启动,关闭等


service /etc/init.d/vsftpd start


脚本,可以用来启动,关闭等


/etc/vsftpd/vsftpd.conf


主配置文件

注意:1:起服务是用以上两个脚本都可以,它们是用来管理我们的程序的。有一个脚本就可以了。

2:最原始的方法,就是查一下进程号,然后kill掉进程号,这是很麻烦的。用源码包装完后启动脚本是没有的,得自己写。

3: 匿名用户根目录默认是/var/fpt/pub,真实用户是自己的家目录

4:ftp一个是配置文件中用户所拥有的权限,还有就是文件夹本身的权限,要实现某一功能,必须文件夹和用户所拥有的权限是一致的,或者说拒绝优先,交集是最终的权限。

2.2ftp功能划分

2.2.1ftp访问控制

/etc/vsftpd/ftpusers                     //黑名单

/etc/vsftpd/user_list                     //黑/白名单

userlist_enable=YES                     //YES为启用user_list,只有启用才会读这个文件

userlist_deny= NO/ YES                  //NO为白名单YES为黑名单

注意:

1:user_list要么不用,要么就作为白名单,bool值为NO,是白名单

2:ftpusers,列入其中的用户被禁止访问

3:内容格式为一行一个用户名称即可

4:两表冲突时拒绝优先

2.2.2ftp连接及传输控制

max_clients=100                           //限制并发的客户端个数为100个

max_per_ip=2                             //限制每个客户机IP的并发连接数为2个

anon_max_rate=50000                      //匿名最大速度50kb/s(字节/秒)

local_max_rate=500000                      //验证用户最大速率500kb/s(字节/秒)

accept_timeout=60                         //将客户端空闲一分钟后中断,(秒)

connect_timeout=60                        //中断一分钟后又重新连接(秒)

idle_session_timeout=600                    //用户会话空闲后10分钟(秒)

data_connection_timeout=120                //将数据连接空闲2分钟后断(秒)

注意:一台计算机跟另一台计算机通信,但是因为网络的延迟问题,迟迟没有通讯上。不会立马退出,至少再努力一把。连不通没关系,我再试一次,但是会有一个超时时间。迅雷下载就是可以改并发,所以速度就快了。网络实际传输的时候,是数据包,都是打散了。

2.2.3ftp上传文件默认权限和归属

local_umask=022                     //决定了文件的默认权限,文件666-mask值,目录777-mask值,为什么文件是666呢,目录是777呢,一个普通文件有的最大权限就是666,目录一定得有x权限,如果一个目录可读可写,必须得有x权限来进去这个目录。所以一般这么减

chown_uploads=YES                  //是否开启上传文件后,改变文件的归属

chown_username=whoerver           //你指定的是谁就是谁,比如说,有多个静态页面,负责的人不同,上传之后是root有时候就会出现权限问题,此时将所有者和所属组设为一样的权限,将上传文件所有者改为上级目录的所有者,大家都在这个组里,就都可以正常访问自己上传的文件了。

2.2.4ftp欢迎信息

ftpd_banner=写上你要说的话     //要说什么,写在这

dirmessage_enable=YES          //有一个客户端过来访问的时候,要不要出现一个欢迎词

.message                      //欢迎词在这个文件中

注意:

1:浏览器会把欢迎信息屏蔽掉。

2: ftpd_banner这句话加上后,每次将要登陆的时候会出现这句话,即一开始登陆的时候,这个时候要求你输入用户名和密码就会出现这句话。

3:当开启dirmessage后,在你要访问的目录下建立一个.message的隐藏文件,在这个文件中输入你想要说的话,登陆或切换到这个目录的时候就会出现.message文件当中的话。

2.2.5ftp的日志配置

Xferlog_enable=YES                         //日志功能是否开启

Xferlog_file=/var/log/xferlog                  //指定ftp的日志目录

Xferlog_std_format=YES                      //是否启用标准的日志格式

2.2.6是否开启二进制传输

Ascii_upload_enable=YES                     //允许二进制文件上传

Ascii_download_enable=YES                     //允许二进制文件下载

注意:自己会选择,不要强制设置,要不然传输的可能会有损坏

2.6.7ftp用户禁锢

chroot_local_user=YES                       //禁锢所有本地账户

chroot_list_enable=YES                      //开启禁锢列表

chroot_list_file=/etc/vsftpd/chroot_list         //指定禁锢列表,在此表中添加,一行一个

注意:不禁锢是一件非常危险的事情,禁锢就是将用户禁锢在一个特定的目录下,活动范围就是在这个里边。

2.6.8常用的ftp全局设置

write_enable:是否启用写入权限

download_enable:是否允许下载

listen=YES                                  //是否以独立运行的方式监听服务,是否监听端口,必须开,开ftp,始终监听21端口

listen_port                                  //设置监听ftp服务的端口,可以修改

listen_address                               //设置监听ftp服务的ip地址

listen_ipv6=YES                              //是否可以listen
ipv6的地址

connect_from_port_20=YES                    //ftp主动模式传输数据的端口

local_enble=YES                             //验证用户是否开启
write_enable=YES                           
//是否可写

2.6.9ftp防火墙配置

经典案例:

公司在一台服务器上部署了网站,出于安全的考虑,要求网站只能在自己的分公司访问,所以做了防火墙。这个网站只是一个静态页面,所以只需要做一个ftp就可以了,把ftp的目录指定为网站的根目录,直接覆盖文件就好了。

pasv_min_port=30001                       //在配置文件中指定最小端口

pasv_max_port=31000                       //在配置文件中指定最大端口

-A INPUT -p tcp  -m multiport --dport 20,21  -m state --state NEW -j ACCEPT

-A OUTPUT -p tcp --sport 21 -m state
--state NEW,ESTABLISHED -j ACCEPT

-A INPUT -p tcp --dport 30001:31000 -j
ACCEPT

-A OUTPUT -p tcp --sport 30001:31000 -j
ACCEPT   //在防火墙中添加以上4条记录

这就是ftp的被动模式,服务器端设置防火墙,客户端直接过来连接。

2.3配置匿名用户

anonymous_enable=YES                    //开启匿名用户,开启后可匿名下载文件

anon_upload_enable=YES                   //匿名用户是否有上传文件权限,不包括目录

anon_mkdir_write_enable=YES               //匿名用户是否有创建目录的权限,开启后可以创建,上传目录。

anon_other_write_enable=YES               //开启后匿名用户拥有重命名,删除等权限

no_anon_password=YES                    //开启此项后不需要进行秘钥验证,直接进入

anon_root=匿名ftp的根目录               //此项可以定义匿名用户的家目录

1:此四项开启后是匿名用户可以达到的最大权限,根据实际情况调整;

2:在配置文件生效有时会有一定的延迟或缓存,解决方法有稍等、重新进入、刷新等操作。

3:要关闭匿名用户,将anonymous改为NO即可。相当于总开关,即使不注释anon的相关配置,匿名用户仍不可用。

4:注:匿名用户下载是使用的是nobody这个用户,所以相应的O这个位置要有R权限才能被下载。若想让匿名用户能上传和删除权限,必需设置

5:anon_world_readable_only=YES   这个设置按理说可以控制匿名用户的下载权限,但是做了多次试验后基本几次都失败了,需要以后注意。

6:但是可以用另一个方法实现控制匿名用户的下载权限,即download_enable全局设置,是否允许下载,但是这个会制约本地用户。视情况使用

匿名用户其它配置

2.4配置验证用户

[[email protected] ~]# mkdir -p /ftp/zhang                     //创建共享目录

[[email protected] ~]# useradd -d /ftp/zhang/ ftper              //新建用户,并且指定家目录

[[email protected] ~]# echo "ftper123" |
passwd --stdin ftper      //修改用户密码

[[email protected] ~]# usermod -s /sbin/nologin ftper            //修改用户的登录shell,禁止此用户登录系统

[[email protected] ftp]# chown ftper.ftper
/ftp/zhang/            //更改目录的权限

[[email protected] ftp]# vim
/etc/vsftpd/vsftpd.conf              //修改配置文件

anonymous_enable=NO //禁止匿名用户登录,开启后用匿名用户登录就会提示身份验证失败

local_enable=YES                                       //开启本地用户

chroot_list_enable=YES                                  //开启禁锢,即只能在自己的

家目录范围内活动

chroot_list_file=/etc/vsftpd/chroot_list                     //指定禁锢文件

[[email protected] ftp]# vim
/etc/vsftpd/chroot_list              //添加需要禁锢的用户

Ftper

[[email protected] ftp]# usermod -s
/usr/bin/passwd ftper     //用户在远程连接后只能修改密码

1:这个经过我实验,是不能登录的,修改密码后只可以再次修改密码,但是,用来登录ftp提示验证失败,使用之前的密码也是提示验证失败。

2:也可以把用户加入一个组,因为这个文件夹的权限是所有者和所属组分配的,当你需要权限时,所有者不是自己,但是加入所属组以后会继承组成员的权限。

3:如果是linux不能识别的乱码文件,即使有权限,也不能删除。

4:一般本地用户登录后,默认配置就基本够了,一些基本权限都可以实现。

5:本地账户ftp,默认共享路径为自己的家目录

3.访问ftp

3.1Windows访问ftp

3.1.1在dos环境下直接访问ftp

1:在window里边也可以直接打ftp,表名这个软件是可以用的

2:格式 ftp  IP地址输入用户名和密码就可以了。匿名的话直接输入ftp,回车就可以了。

3:在window里可以打help查看命令。

4:在进ftp之前的当前目录下!命令,临时调用/执行系统命令

3.1.2浏览及下载工具

浏览器,wget,curl等

专用的ftp管理工具

Filezilla CuteFTp WinSCp等

Wget ftp://192.168.4.5/passwd

Wget http://www.hao.com/a.txt 下载东西直接把链接粘过来就可以了

Firefox ftp://user:[email protected]/passwd

4.出现的错误

4.1bool值出错

我在修改了配置文件之后,重启服务,报如下的错误,原来是配置文件中tcp_wrappers=YE

这一行少了一个字母。像这种的它=后面识别的是bool值,bool值有YES和NO,而YES和NO也可以写为1和0。将S加上或者将值改为1即可。后边也不能加空格,加空格也会报如下的错,也不能不写,不写的话就会有missing value的报错

4.2账户无法创建目录,但是可以创建文件

这个问题我一开始还以为是配置文件的问题,但是一直以来就没有动过配置文件,一直找不到原因,最后发现磁盘空间满了,删除之后就可以了

时间: 2024-10-08 11:43:20

我之我见:ftp共享的相关文章

AVplayer搭建ftp共享PC端

1.安装FTP服务 2.关闭防火墙 3.添加FTP站点 设置ip时,需要查询本机的ip 本机测试 4.iphone安装AVPlayer,并设置 原文地址:https://www.cnblogs.com/komean/p/10317644.html

软件分享:比FTP,Windows共享更易用的局域网文件夹共享方式

说到局域网文件夹共享工具,很多人就会自动联想到Windows文件共享,FTP共享.不过这两种文件夹共享方式已经差不多是半个世纪前的产物了,按照工龄,也该到了退休的节点.比较尴尬的是,即使很多FTP工具一直在不停迭代更新,但终究逃不过被替换. 市场竞争愈演愈烈,企业各部门的文档管理需求也越来越高,特别对于中大型企业来说,仅实现共享是远远不够的,存储安全.禁止下载等更细致的权限设置,外发安全,以及文档的在线编辑协作等慢慢成为刚需.企业云盘不仅延续了个人云盘文件共享的DNA,并在此的基础上加入更丰富的

FTP文件传输服务器(详解)

  FTP文件传输服务器 一实验目标 安装配置VSFTP 实战匿名访问VSFTP 实战用户名密码方式访问VSFTP 实战ftp虚拟帐号方式访问VSFTP   二实验环境 FTP服务端xuegod63.cn   IP192.168.1.63 FTP客户端xuegod64.cn   IP192.168.1.64   三FTP服务概述     FTP服务器File Transfer Protocol Server是在互联网上提供文件存储和访问服务的计算机它们依照FTP协议提供服务.VSFTP是一个基于

linux系统ftp服务器详解

匿名FTP服务 1.检查并安装vsFTPD软件包在终端窗口输入命令:"rpm –qa|grep vsftpd 命令检查系统是否安装了VsFTPD软件包,如下图所示:如上图所示 vsftpd 软件包并没有安装,可以使用命令 yum install vsftpd –y 进行安装 查看是否已经安装成功使用命令 rpm –qa vsftpd 如上图所示已经成功下载安装了软件包vsftpd VsFTPD在安装时会自动创建FTP系统用户组ftp,和属于该组的FTP系统用户ftp, 该用户的主目录为/var/

Linux: FTP服务原理及vsfptd的安装、配置

1.FTP 服务的安装# yum install -y vsftpd [[email protected] pub]# ls -l /etc/vsftpd/ total 20 -rw-------. 1 root root 125 Aug 3 2015 ftpusers -rw-------. 1 root root 361 Aug 3 2015 user_list -rw-------. 1 root root 5030 Aug 3 2015 vsftpd.conf -rwxr--r--. 1

在Windows XP系统下架设FTP服务器需要5个步骤。

4步win7下简单FTP服务器搭建:http://blog.sina.com.cn/s/blog_3f7e47f20100haur.html 申请网域护照(即帐户),开通免费域名.连接到www.oray.net,在页面左边点击“注册护照”,按照提示完成注册即可.然后在左面再点“域名服务中心”,选择下拉菜单的“注册域名记录”,之后在“免费域名”框内输入你的个性域名就行了.   本机安装动态域名解析软件.即花生壳客户端.下载完成后同样按提示安装,在到如下图的步骤时,请输入我们刚才在网站上注册的帐户及

6.FTP服务

1.概述 (1)FTP(File transfer protocol)文件传输协议 常见的FTP Linux:VSFTP(Very Secure FTP).ProFTPD(Daemon 守护进程) Windows:Serv-U (2)特点:安全.高速.稳定 (3)端口 21:传指令 20:传数据 2.服务安装 (1)服务端 [[email protected] Desktop]# rpm -ivh /mnt/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm

ftp服务器搭建(一)

系统环境:RHEL6.5 IP地址:10.10.125.4 服务描述: ftp服务器(File Transfer Protocol:文件传输协议):Internet上用来传送文件的协议 vsftp:一个基于GPL发布的linux系统上使用的FTP服务器软件,全称为Very Secure FTP: 工作模式:C/S 使用端口:21/20    其中20端口是数据传输端口,21是监听端口 安装: rpm -ivh/mnt/Packages/vsftpd-2.2.2-6.el6_0.1.x86_64.

FTP使用MariaDB完成虚拟用户认证

文件传输协议(英文:File Transfer Protocol,:FTP)是用於在上行文件的一套.它属于网络传输协议的应用层.FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样.但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长:并且不时的必执行一些冗长的登陆进程. FTP是一个应用层协议,明文传输,使用C/S架构,其服务端监听在21/TCP和20/TCP,21号端口为命令端口即控制端口,20号端