南京市环保局官方南京做网站,指定关键词seo报价,服务器上发布网站,一级建设造师网站引言
FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之一。是目前Internet上使用最广泛的文件传送协议
一、FTP概述 FTP(File TransferProtocol#xff0c;文件传输协议)是典型的C/S架构的应用层协议#xff0c;需要由服务端软件、客户端软件两个部分共同实…引言
FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之一。是目前Internet上使用最广泛的文件传送协议
一、FTP概述 FTP(File TransferProtocol文件传输协议)是典型的C/S架构的应用层协议需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的面向连接的为数据的传输提供了可靠的保证。TCP协议:20,21端口。
20端口用于建立数据连接并传输文件数据。
21端口用于建立控制连接并传输FTP控制命令
1、Standard模式主动模式 FTP客户端首先和FTPServer的TCP21端口建立通过这个通道发送命令客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候服务器通过自己的TCP 20端口发送数据。FTPserver必须和客户端建立一个新的连接用来传送数据。
2、Passive模式被动模式 在建立控制通道的时候和standard模式类似当客户端通过这个通道发送PASV命令的时候FTPserver打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求然后FTP server将通过这个端口进行数据的传送这个时候FTp server不再需要建立一个新的和客户。
二、文件存储类型
1、DAS ---- 直连式存储
Direct-Attached Storage简称DAS。 DAS存储是最常见的一种存储方式尤其是在中小企业应用中。PC中的硬盘或只有一个外部SCSI接口的JBOD都属于DAS架构。DAS是指存储设备直接连接到服务器总线上存储设备只与一台独立的主机连接其他主机不能使用这个存储设备。DAS存储设备与服务器主机之间的连接通道通常采用SCSI连接DAS存储设备主要是磁盘阵列RAID: Redundant Arrays of Independent Disks、磁盘簇JBOD:Just a Bunch Of Disks等。
2、SAN ---- 存储区域网络
存储区域网络Storage Area Network简称SAN可以使用空间管理也是你来管理。 存储区域网络这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机最后成为一个专用的存储网络。
3、NAS ---- 网络附加存储
网络附加存储Network-Attached Storage简称NAS存储和管理空间都在远程。 NAS存储就是存储设备通过标准的网络拓扑结构(比如以太网)添加到一群计算机上。与DAS以及SAN不同NAS是文件级的存储方法。NAS是文件级的存储方法它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。 NAS产品是真正即插即用的产品。NAS设备一般支持多计算机平台用户通过网络支持协议可进入相同的文档因而NAS设备无需改造即可用于混合Unix/Windows NT局域网内同时NAS的应用非常灵活。但NAS有一个关键性问题即备份过程中的带宽消耗。与将备份数据流从LAN中转移出去的存储区域网SAN不同NAS仍使用网络进行备份和恢复。NAS 的一个缺点是它将存储事务由并行SCSI连接转移了网络上。这就是说LAN除了必须处理正常的最终用户传输流外还必须处理包括备份操作的存储磁盘请求。
DASNASSAN传输类型SCSIIPIP、FC、SAS数据类型数据块文件数据块典型应用任何文件服务器数据库应用优点 磁盘与服务器分离 便于统一管理 不占用应用服务器资源 广泛支持操作系统 扩展较容易 即插即用安装简单方便 高扩展性 高可用性 数据集中容易管理 缺点 连接距离短 数据分散共享困难 存储空间利用率不高 扩展性有限 不适合存储量大的块级应用 数据备份及恢复占用网络带宽 相比NAS成本成本较高 安装和升级比NAS复杂
4、三种存储架构的应用场景
DAS虽然比较古老了但是还是很适用于那些数据量不大对磁盘访问速度要求较高的中小企业NAS多适用于文件服务器用来存储非结构化数据虽然受限于以太网的速度但是部署灵活成本低SAN则适用于大型应用或数据库系统缺点是成本高、较为复杂
5、常见的端口号 ftp 20数据 21命令 软件 要利用协议 协议是通过应用程序实现ssh 22http 80https 443telnet 23mysql 3306redis 6379 以后会经常使用
三、FTP工作原理介绍
FTP文件传输协议FTP是早期的三个应用级协议之一基于C/S结构
数据传输格式二进制默认和文本
双通道协议命令和数据连接 21 命令端口权限认证 20数据端口真实传数据
1、FTP作用
internet上用来远程传输文件的协议。
2、FTP工作原理与流程
从服务器角度
FTP数据连接分为主动模式和被动模式 主动(PORT style)服务器开启20端口主动连接客户端传递数据 命令控制客户端随机port --- 服务器21/tcp 数据客户端随机port ---服务器20/tcp
主动模式服务器主动发起数据连接 被动(PASV style)服务器开启随机端口被动等待客户端连接然后传递数据 命令控制客户端随机port --- 服务器21/tcp 数据客户端随机port --- 服务器随机port /tcp
被动模式服务器被动等待数据连接
1.主动模式流程图 主动模式工作原理FTP 客户端连接到FTP 服务器的21号端口发送用户名、密码和连接模式命令端口等客户端随机开放一个端口(1024以上)发送PORT 命令到FTP 服务器告知服务器客户端采用主动模式并开放端口FTP服务器收到PORT主动模式命令和端口后通过服务器的20号端口和客户端开放的端口连接发送数据。
主动模式有个弊端客户端必须关闭防火墙否则不能传输数据。
2.被动模式流程图 被动模式工作原理: PASV是Passive的缩写中文成为被动模式。FTP客户端连接到FTP服务器所监听的21号端口发送用户名和密码发送PASV命令到FTP服务器服务器在本地也随机开放一个端口(1024以上)然后把开放的端口告知客户端而后客户端再连接到服务器开放的端口进行数据传输
注:以上的说明主动和被动是相对于的FTP server端而判断如果server去连接client开放的端口说明是主动的相反如果client去连接server开放的端口则是被动。
注意:
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信windowsServ-U、FTP server、filezilla serverLinuxProFTPD 重点Very Secure FTPvsftp工作环境中都用这个FTP服务TFTP端口号69简单FTP没有加密协议ssh SFTP 文件传输
FTP服务状态码
1XX信息 125 数据连接打开
2XX成功类状态 200命令OK 230登录成功
3XX补充类 331用户名OK
4XX客户端错误 425不能打开数据连接
5XX服务器错误 530不能登录
用户认证 匿名用户ftp,anonymous,对应Linux用户ftp root 系统用户Linux用户,用户/etc/passwd,密码/etc/shadow 虚拟用户特定服务的专用用户独立的用户/密码文件
3、常见的FTP相关的软件
Wu-ftpd,Proftpd,Pureftpd,Filezilla Server,Serv-U,Wing FTP Server,IIS
vsftpdVery Secure FTP DaemonCentOS 默认FTP服务器
高速稳定下载速度是WU-FTP的两倍
ftp.redhat.com数据:单机最多可支持15000个并发
四、搭建和配置FTP服务 vsftpd官网 https://security.appspot.com/vsftpd.html 1、安装前的准备工作
服务端
1.关闭防火墙和核心防护
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #开机自关闭防火墙
setenforce 0 #临时关闭增强型安全功能
vim /etc/selinux/confing #永久关闭防火墙 将里面的配置改为 SELINUXdisabled2.查看信息并安装服务
rpm -qa|grep vsftpd #查看vsftp信息
[rootlocalhost ~]#rpm -qa |grep vsftpd
[rootlocalhost ~]#yum install -y vsftpd ##安装ftp服务
[rootlocalhost ~]#systemctl start vsftpd ##开启服务
[rootlocalhost ~]#systemctl status vsftpd ##查看服务状态给服务端做备份 客户端连接服务端
先下载ftp ftp里面的一些指令 退出用 quit 或着使用 ctrld 五、vsftpd服务常见配置
配置文件 vim /etc/vsftpd/vsftpd.conf 1、修改默认命令端口 listen_port628 默认值为21 服务端修改默认命令端口
[rootnode2 pub]#vim /etc/vsftpd/vsftpd.conf #随便一行插入listen_port628[rootnode2 pub]#systemctl restart vsftpd #重启服务[rootnode2 pub]#ss -ntl #查看端口 操作
在服务端修改端口号 进入客户端要共享文件时必须带上已修改的端口号 2、主动模式端口
connect_from_port_20YES ##主动模式端口为20
ftp_data_port20 ##默认 指定主动模式的端口
3、被动模式端口
pasv_min_port6000 ##0为随机分配端口范围会影响客户端的并发数
pasv_max_port6010
4、使用当地时间
use_localtimeYES ##使用当地时间默认为NO使用GMT
##格林威治 8 当地时间
5、匿名用户登录
anonymous_enableYES ##支持匿名用户CentOS8 默认不允许匿名
no_anon_passwordYES ##匿名用户略过口令检查 , 默认NO
6、匿名用户上传
anon_upload_enableYES ##匿名上传注意:文件系统权限
anon_mkdir_write_enableYES ##匿名建目录chmod 777 /var/ftp/pub
########客户端#########
ftp !ls #使用! 代表 在本地使用命令
abc.txt anaconda-ks.cfg initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面
ftp cd pub
ftpput abc.txt #上传 文件 ftp 默认不允许上传文件 安全考虑 人人都传空间病毒等问题
local: abc.txt remote: abc.txt
227 Entering Passive Mode (192,168,91,101,126,214).
550 Permission denied.#########服务端#####
[rootnode2 pub]#vim /etc/vsftpd/vsftpd.conf
#此处是被注释开启就可以了
anon_upload_enableYES
anon_mkdir_write_enableYES
[rootnode2 pub]#ll /var/ftp/pub/
#没权限写 在传文件时需要考虑 文件系统权限 你是远程用户把文件放在磁盘上需要考虑文件系统的权限
#程序权限文件系统权限
总用量 1048576
-rw-r--r--. 1 root root 1073741824 8月 4 16:02 bigfile[rootnode2 pub]#setfacl -m u:ftp:rwx /var/ftp/pub/
#添加ftp 用户的权限
[rootnode2 pub]#setfacl -m u:ftp:rwx /var/ftp
[rootnode2 pub]#setfacl -b /var/ftp属主 权限发生了改变######客户端#####
ftp cd pub ####注意文件夹位置
250 Directory successfully changed.
ftp put abc.txt
local: abc.txt remote: abc.txt
227 Entering Passive Mode (192,168,91,101,181,62).
150 Ok to send data.
226 Transfer complete.### 是可以对ftp的根目录设置权限的 一般是不对根做操作的
### 但是再次登录会有问题
注意还需要开启文件系统访问的权限不能给FTP根目录写权限否则报如下错误
anon_world_readable_onlyno ##只能下载全部读的文件, 默认YES
anon_umask0333 ##指定匿名上传文件的umask默认077注意0333中的0不能省略
anon_other_write_enableYES ##可删除和修改上传的文件默认NO
7、匿名用户 下载、删除文件
在 vsftpd 软件中 只可以 下载有 读权限的文件 没有读权限的文件时不可以直接下载的需要修改下面的选项
anon_world_readable_onlyNO ##只能下载全部读的文件, 默认YES
anon_umask0333 ##指定匿名上传文件的umask默认077注意0333中的0不能省略
anon_other_write_enableYES ##可删除和修改上传的文件默认NO
举例
1.可以下载上传上去的文件
[rootnode2 pub]#vim /etc/vsftpd/vsftpd.conf ##修改配置文件anon_world_readable_onlyNO
anon_umask0333
2.可以删除文件
[rootnode2 pub]#vim /etc/vsftpd/vsftpd.conf ##修改配置文件anon_other_write_enableYESftp cd pub. ftp lsftp delete abc.txt ftp ls227 Entering Passive Mode (192,168,91,101,112,18).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 1073741824 Aug 04 08:02 bigfile
-rw------- 1 14 50 471 Aug 04 09:20 dm.sh
226 Directory send OK.
8、指定匿名用户的上传文件的默认的所有者和权限
匿名用户上传文件默认的所有者是ftp 用户 是可以修改的
chown_uploadsYES #默认NO
chown_usernamezhangsan
chown_upload_mode0644
9、Linux系统用户
local_enableYES ##是否允许linux用户登录
write_enableYES ##允许linux用户上传文件
local_umask022 ##指定系统用户上传文件的默认权限对应umask
例子 系统用户登录使用普通用户登录默认是在 系统用户的 家目录
[rootlocalhost ~]#ftp 20.0.0.100
Connected to 20.0.0.100 (20.0.0.100).
220 (vsFTPd 3.0.2)
Name (20.0.0.100:root): zhangsan
331 Please specify the password.
Password:
ftp pwd
257 /home/zhangsan
举例控制系统用户等信息
[rootnode2 pub]#vim /etc/vsftpd/vsftpd.conf #最后加入 复制注意空格
guest_enableYES
guest_usernameftp
#local_root/ftproot 可以注释此行默认所有用户都在 ftp用户的家目录
10、将所有系统用户映射为指定的guest用户
guest_enableYES ##所有系统用户都映射成guest用户
guest_usernameftp ##配合上面选项才生效指定guest用户
local_root/ftproot ##指定guest用户登录所在目录,但不影响匿名用户的登录目录
user_config_dir/etc/vsftpd/conf.d/ ##每个用户独立的配置文件目录
11、禁锢系统用户
1.禁锢所有系统用户在家目录中
chroot_local_userYES #禁锢系统用户默认NO即不禁锢
2.禁锢用户开启白名单和黑名单
chroot_list_enableYES #默认是NO
chroot_list_file/etc/vsftpd/chroot_list #默认值当chroot_local_userYES和chroot_list_enableYES时则chroot_list中用户不禁锢即白名单在文件里的不禁锢
当chroot_local_userNO和chroot_list_enableYES时 则chroot_list中用户禁锢即黑名单在文件里的 禁锢
12、日志
ftp 默认启动日志
#wu-ftp 日志默认启用
xferlog_enableYES #启用记录上传下载日志此为默认值
xferlog_std_formatYES #使用wu-ftp日志格式此为默认值
xferlog_file/var/log/xferlog #可自动生成 此为默认值#vsftpd日志默认不启用
dual_log_enableYES 使用vsftpd日志格式默认不启用
vsftpd_log_file/var/log/vsftpd.log 可自动生成 此为默认值
13、提示信息
ftpd_bannerwelcome to kgc ftp server
banner_file/etc/vsftpd/ftpbanner.txt
14、pam模块实现用户访问
pam_service_namevsftpd
#pam配置文件:/etc/pam.d/vsftpd/etc/vsftpd/ftpusers ###默认文件中用户拒绝登录默认是黑名单但也可以是白名单##由于ftp是明文传输 抓取是可可以获取密码的 默认是不让使用root 用户登录的
15、传输速率单位字节/秒
anon_max_rate0 ##匿名用户的最大传输速率,以字节为单位,比如:1024000表示1MB/s
local_max_rate0 ##本地用户的最大传输速率#限速
[rootcentos8 ~]#vim /etc/vsftpd/vsftpd.conf
anon_max_rate1024000
local_max_rate102400
六、建立内网的yum仓库 1、通过ftp服务搭建内网yum仓库服务器
1.先关闭服务端和客户端的防火墙和核心防护
1.服务端 2.安装vsftp服务 3.挂载磁盘 4.客户端
5.关闭防火墙和核心防护安装ftp服务并检查 6.搭建ftp仓库 lisi用户的根 7.测试安装 2、通过http服务搭建内网yum仓库服务器
1.先关闭服务端和客户端的防火墙和核心防护
1.服务端 2.安装httpd并开启 浏览器输入服务端地址可以查看20.0.0.100 3.挂载磁盘 4.客户端
5.关闭防火墙和核心防护安装服务并检查 6.搭建http仓库 7.测试安装