linux做完sftp端口分离后ftp,Linux 中实现文件传输服务(FTP、SFTP)
????本文将介绍如何在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)相关推荐
- 文件传输协议FTP、SFTP和SCP
ftp.sftp.vsftp.ssh.vsftpd.sshd.scp 通信协议分层: 应用层: HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页) DNS(D ...
- 搭建SFTP服务,并SSH和SFTP端口分离、用户权限控制
学习目标: 能够完成sftp服务的部署,且实现ssh和sftp的端口分离,不使用默认的端口,sftp用户的权限只可以访问该用户的家目录里的文件和其下的子目录,实现权限控制. 学习内容: SFTP是SS ...
- Linux网络文件共享服务(一)存储类型和文件传输协议FTP
成功不易,加倍努力! 网络文件共享服务 本章总目录 1 存储类型 1.1 DAS存储 1.2 NAS存储 1.3 SAN存储 1.4 三种存储比较 2 文件传输协议 FTP 2.1 FTP工作原理介绍 ...
- 【传输文件】文件传输协议FTP、SFTP和SCP
网络通信协议分层 应用层: HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页) DNS(Domain Name System) FTP(File Transf ...
- tomcat端口修改后在Eclipse中启动无效问题解决
tomcat端口修改后在Eclipse中启动无效问题解决 参考文章: (1)tomcat端口修改后在Eclipse中启动无效问题解决 (2)https://www.cnblogs.com/TBhome ...
- ftp服务器中更改文件路径,ftp服务器中更改文件路径
ftp服务器中更改文件路径 内容精选 换一换 文件作用:可以关闭/打开监听端口.指定监听端口.指定监听IP等.文件路径:在运行环境上,在~/ide_daemon目录下查看ide_daemon.cfg配 ...
- 文件传输协议FTP/TFTP/SSH/SCP——应用层
常见的文件传输协议:FTP.TFTP.SSH.SCP 一.FTP(英文:File Transfer Protocol,缩写:FTP) 1.概念 FTP是在网络层传输文件的应用层协议,基于TCP连接,使 ...
- 详解“FTP文件传输服务”安装配置实例
"FTP文件传输服务"安装配置实例 家住海边喜欢浪:zhang789.blog.51cto.com 目录 简介 ftp工作原理 常见的FTP服务 Vsftpd服务器的安装 Vsft ...
- asc码转换 linux_Linux网络服务04——FTP文件传输服务
Linux网络服务04--FTP文件传输服务 一.FTP连接及传输模式 1.控制连接:TCP 21,用于发送FTP命令信息 2.数据连接:TCP 20,用于上传.下载数据 3.数据连接的建立类型: ( ...
最新文章
- [C#参考]锁定lock
- Sqlserver中使用ISNULL、CAST、CASE完成对jsTree数据的查询
- CRM Fiori Application top N Opportunity
- PWN-PRACTICE-CTFSHOW-7
- Python入门--以主程序的方式运行,if __name__==‘__main__‘
- python 新浪博客_Python实现新浪博客备份的方法
- java模拟器gba模拟器,CAPRunner-JavaCard字节码仿真器-Benoît Allard
- 对于利用blender获取谷歌地图3D模型的补充
- Cisco交换机链路聚合配置
- 泛函分析 04.06 有界线性算子 - 习题课
- java 微服务架构图_图解微服务架构演进
- opengl 3D平衡球小游戏
- 水溶性CdTe/CdSe/ZnS量子点荧光波长620nm-820nm
- Window10 IoT家庭物联网网关系统设计
- html5中背景图片的大小怎么调,css中怎么改变背景图片大小?
- 尚筹网-前台-会员系统(springboot,springcloud 实战)
- webstorm11 破解办法
- 队列 如何 判断 已满
- 网页拼图游戏html代码,JavaScript网页拼图游戏
- android 克隆攻击原理,通过CTF学习Android漏洞(炸弹引爆+dex修复)2015 RCTF / 攻防世界高手区 where...
热门文章
- 怎么结束linux里的redis进程,linux 怎么结束redis的monitor命令
- 华为的JAVA面试题及答案(部分)
- 使用Keras实现鸢尾花分类
- Spring框架学习笔记02:初探Spring——利用组件注解符精简Spring配置文件
- 12.混淆——混叠图像,对比敏感度,图像压缩_4
- 队列C++ | 用数组实现队列_1
- 复数基础——复数的绝对值,复数的极坐标形式的直观解释练习_8
- ie11浏览器可以下载java吗_如何卸载IE11? 如何安装低版本的IE浏览器?
- 电脑怎么改网络ip地址_电脑的桌面路径怎么改?
- Excel数据导入数据库(Java)