????本文将介绍如何在Linux中实现文件传输,这里主要使用FTP、SFTP。

????FTP

????废话少说,直接进入正题,需要注意,FTP采用Client/Server架构,并且有两个信道(控制信道、数据信道)。

????

????当Client发起连接时,目标端口为TCP/21 ,Server对其身份验证通过后,建立连接,也就是控制信道,此信道用于Client传输FTP指令,例如ls、cd、get、put, user等; 当Server收到指令后,在本端分析将结果传输至Client,注意此时传输的命令执行后的内容是需要另建连接,也就是数据信道。

????

根据数据信道发起者的身份不同分为,FTP将其分为主动模式、被动模式:

????

1. 主动模式: Server端主动与Client建立连接。

a. 控制信道建立: Client 与 Server建立三次握手后,Client将自己的地址、监听端口发送至Server , a , b ,c ,d 为IP地址,e*256+f 为端口。

b. 数据信道建立: Server主动发起连接,源端口TCP/20, 目标端口为Client发送的端口(e*256+f)。

?

?2. 被动模式:Server端随机生成一串数字作为Server端的端口等待客户端连接。

a. 控制信道建立: Client与Server建立三次握手后,Client发送FTP指令PASV 表示采用被动模式,等待Server的地址(a,b,c,d)、端口信息(e*256+f)。

b. 数据信道建立: Client收到Server的地址、端口信息后,Client发起连接,源端口随机,目标端口e*256+f 。

vsftpd

????FTP仅是一种协议、规范,而vsftpd就是众多FTP协议、规范中的一种实现,其在安全方面较为优秀。

1.通过YUM方式安装VSFTPD

[[email protected] ~]# yum -y install vsftpd

2.VSFTPD程序文件结构:

/etc/vsftpd/vsftpd.conf #主配置文件

/etc/vsftpd/ftpuser #

/etc/vsftpd/user_list #

/etc/pam.d/vsftpd #FTP通过pam对用户进行认真

/var/ftp #默认vsftpd定义的共享目录

3.创建一个匿名FTP下载站点:

/myftp/pub #共享目录,所有用户都可以创建、删除、修改

???????a.首先关闭防火墙、SELinux 避免影响实验

[[email protected] ~]# iptables -F

[[email protected] ~]# setenforce 0

????????b.创建相应目录并修改其权限:

[[email protected] ~]$ mkdir -pv /myftp/{doc,pub}

mkdir: created directory ‘/myftp’

mkdir: created directory ‘/myftp/pub’

[[email protected] ~]# cp /etc/fstab /myftp/pub/

[[email protected] ~]# chown -R ftp /myftp/

?????????c.修改配置文件

[[email protected] ~]# cp /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf /etc/vsftpd/vsftpd.conf

[[email protected] ~]# systemctl restart vsftpd

???? d. 修改ftp用户的家目录,因为匿名用户实际上是访问映射至ftp用户的家目录。

[[email protected] ~]# vim /etc/passwd

ftp:x:14:50:FTP User:/myftp:/sbin/nologin

????e.注意事项:

i. 匿名用户不能被chroot,否则会报错,如果不需要本地用户,建议如下配置:

chroot_local_user=NO

local_enable=NO

ii.自vsftpd 2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

解决方法:

chmod a-w /var/ftp -R 去掉主目录的写权限或者添加指令允许写入

allow_writable_chroot=YES

iii. anon_world_readable_only 指令,当值未YES时(默认),其他用户必须要对文件有读权限,才能下载;值为NO时,只要FTP用户有读权限即可下载。

原文:http://blog.51cto.com/jying/2149770

linux做完sftp端口分离后ftp,Linux 中实现文件传输服务(FTP、SFTP)相关推荐

  1. 文件传输协议FTP、SFTP和SCP

    ftp.sftp.vsftp.ssh.vsftpd.sshd.scp 通信协议分层: 应用层: HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页) DNS(D ...

  2. 搭建SFTP服务,并SSH和SFTP端口分离、用户权限控制

    学习目标: 能够完成sftp服务的部署,且实现ssh和sftp的端口分离,不使用默认的端口,sftp用户的权限只可以访问该用户的家目录里的文件和其下的子目录,实现权限控制. 学习内容: SFTP是SS ...

  3. Linux网络文件共享服务(一)存储类型和文件传输协议FTP

    成功不易,加倍努力! 网络文件共享服务 本章总目录 1 存储类型 1.1 DAS存储 1.2 NAS存储 1.3 SAN存储 1.4 三种存储比较 2 文件传输协议 FTP 2.1 FTP工作原理介绍 ...

  4. 【传输文件】文件传输协议FTP、SFTP和SCP

    网络通信协议分层 应用层: HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页) DNS(Domain Name System) FTP(File Transf ...

  5. tomcat端口修改后在Eclipse中启动无效问题解决

    tomcat端口修改后在Eclipse中启动无效问题解决 参考文章: (1)tomcat端口修改后在Eclipse中启动无效问题解决 (2)https://www.cnblogs.com/TBhome ...

  6. ftp服务器中更改文件路径,ftp服务器中更改文件路径

    ftp服务器中更改文件路径 内容精选 换一换 文件作用:可以关闭/打开监听端口.指定监听端口.指定监听IP等.文件路径:在运行环境上,在~/ide_daemon目录下查看ide_daemon.cfg配 ...

  7. 文件传输协议FTP/TFTP/SSH/SCP——应用层

    常见的文件传输协议:FTP.TFTP.SSH.SCP 一.FTP(英文:File Transfer Protocol,缩写:FTP) 1.概念 FTP是在网络层传输文件的应用层协议,基于TCP连接,使 ...

  8. 详解“FTP文件传输服务”安装配置实例

    "FTP文件传输服务"安装配置实例 家住海边喜欢浪:zhang789.blog.51cto.com 目录 简介 ftp工作原理 常见的FTP服务 Vsftpd服务器的安装 Vsft ...

  9. asc码转换 linux_Linux网络服务04——FTP文件传输服务

    Linux网络服务04--FTP文件传输服务 一.FTP连接及传输模式 1.控制连接:TCP 21,用于发送FTP命令信息 2.数据连接:TCP 20,用于上传.下载数据 3.数据连接的建立类型: ( ...

最新文章

  1. [C#参考]锁定lock
  2. Sqlserver中使用ISNULL、CAST、CASE完成对jsTree数据的查询
  3. CRM Fiori Application top N Opportunity
  4. PWN-PRACTICE-CTFSHOW-7
  5. Python入门--以主程序的方式运行,if __name__==‘__main__‘
  6. python 新浪博客_Python实现新浪博客备份的方法
  7. java模拟器gba模拟器,CAPRunner-JavaCard字节码仿真器-Benoît Allard
  8. 对于利用blender获取谷歌地图3D模型的补充
  9. Cisco交换机链路聚合配置
  10. 泛函分析 04.06 有界线性算子 - 习题课
  11. java 微服务架构图_图解微服务架构演进
  12. opengl 3D平衡球小游戏
  13. 水溶性CdTe/CdSe/ZnS量子点荧光波长620nm-820nm
  14. Window10 IoT家庭物联网网关系统设计
  15. html5中背景图片的大小怎么调,css中怎么改变背景图片大小?
  16. 尚筹网-前台-会员系统(springboot,springcloud 实战)
  17. webstorm11 破解办法
  18. 队列 如何 判断 已满
  19. 网页拼图游戏html代码,JavaScript网页拼图游戏
  20. android 克隆攻击原理,通过CTF学习Android漏洞(炸弹引爆+dex修复)2015 RCTF / 攻防世界高手区 where...

热门文章

  1. 怎么结束linux里的redis进程,linux 怎么结束redis的monitor命令
  2. 华为的JAVA面试题及答案(部分)
  3. 使用Keras实现鸢尾花分类
  4. Spring框架学习笔记02:初探Spring——利用组件注解符精简Spring配置文件
  5. 12.混淆——混叠图像,对比敏感度,图像压缩_4
  6. 队列C++ | 用数组实现队列_1
  7. 复数基础——复数的绝对值,复数的极坐标形式的直观解释练习_8
  8. ie11浏览器可以下载java吗_如何卸载IE11? 如何安装低版本的IE浏览器?
  9. 电脑怎么改网络ip地址_电脑的桌面路径怎么改?
  10. Excel数据导入数据库(Java)