linux中的ftps

本文涉及的产品
云防火墙,500元 1000GB
简介:

FTP简介

FTP是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一。尽管WorldWideWeb(WWW)已经替代了FTP的大多数功能,FTP仍然是通过Internet把文件从客户机复制到服务器上的一种途径。FTP客户机可以给服务器发出命令来下载文件,上传文件,创建或改变服务器上的目录。原来的FTP软件多是命令行操作,有了像CUTEFTP这样的图形界面软件,使用FTP传输变得方便易学。主要使用它进行“上载”。即向服务器传输文件。由于FTP协议的传输速度比较快,我们在制作诸如“软件下载”这类网站时喜欢用FTP来实现,同时我们这种服务面向大众,不需要身份认证,即“匿名FTP服务器

FTP应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输。FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIMEUnicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。

FTP服务一般运行在20和21两个端口。端口20用于在客户端服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误

优点:

1.促进文件的共享(计算机程序或数据)

2.鼓励间接或者隐式的使用远程计算机

3.向用户屏蔽不同主机中各种文件存储系统的细节

4.可靠和高效的传输数据

缺点:

1.密码和文件内容都使用明文传输,可能产生不希望发生的窃听。

2.因为必须开放一个随机的端口以建立连接,当防火墙存在时,客户端很难过滤处于主动模式下的FTP流量。这个问题通过使用被动模式的FTP得到了很大解决。

3.服务器可能会被告知连接一个第三方计算机的保留端口。

FTP虽然可以被终端用户直接使用,但是它是设计成被FTP客户端程序所控制。

运行FTP服务的许多站点都开放匿名服务,在这种设置下,用户不需要帐号就可以登录服务器,默认情况下,匿名用户的用户名是:“anonymous”。这个帐号不需要密码,虽然通常要求输入用户的邮件地址作为认证密码,但这只是一些细节或者此邮件地址根本不被确定,而是依赖于FTP服务器的配置情况。

FTP有两种使用模式:主动和被动。主动模式要求客户端服务器端同时打开并且监听一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。(选择主动或者被动决定权是由客户端决定的)

一个主动模式的FTP连接建立要遵循以下步骤:

1.客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。

2.客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。

3.服务器打开20源端口并且建立和客户端数据端口的连接。此时,源端口20,远程数据端口为(x+1)。

4.客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。

被动模式FTP

为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。

在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器客户端的数据端口的入方向连接被防火墙过滤掉的问题。

当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N>1024N+1)。第一个端口连接服务器21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P>1024),并发送PORTP命令给客户端。然后客户端发起从本地端口N+1服务器的端口P的连接用来传送数据。

对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP

1.从任何大于1024的端口到服务器21端口(客户端的初始化连接)

2.服务器21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接)

3.从任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到服务器指定的任意端口)

4.服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)

安全ftps

抓包工具:rpm-ivhlibsmi-0.4.5-2.el5.i386.rpm库文件

抓包主程序wireshark-1.0.8-1.el5_3.1.i386.rpm

利用抓包工具,很容易会把用户的账号密码给抓出来

173837279.png

CA的产生

1.cd/etc/pki

2.vimtls/openssl.cnf

3.45dir=/etc/pki/CA

4.88,90s/match/optional更改选项,这些地区身份都可以颁发

5.2

174031727.png

6.cdCA

7.[root@localhostCA]#mkdircrlcertsnewcerts

8.[root@localhostCA]#touchindex.txtserial

9.[root@localhostCA]#echo"01">serial序列号

10.[root@localhostCA]#opensslgenrsa1024>private/cakey.pem

11.[root@localhostCA]#chmod600private/*

12.[root@localhostCA]#opensslreq-new-keyprivate/cakey.pem-x509-outcacert.pem自己给自己颁发证书

13.为服务器颁发证书

14.[root@localhostCA]#mkdir-pv/etc/vsftpd/certs

15.[root@localhostCA]#cd/etc/vsftpd/certs/

16.[root@localhostcerts]#opensslgenrsa1024>vsftpd.key

17.[root@localhostcerts]#opensslreq-new-keyvsftpd.key-outvsftpd.req

18.[root@localhostcerts]#opensslca-invsftpd.req-outvsftpd.cert

19.[root@localhostcerts]#vim/etc/vsftpd/vsftpd.conf证书的捆绑

20.3

174526750.png

21.serviceftpdrestart

22.利用flashfxp(参考百度搜索)

23.7

174717212.png

24.8

174755290.png

25.9

174817830.png

26.10

174858375.png

ftp配置文档选

12.anonymous_enable=YES支持匿名访问

15local_enable=YES本地账号

27#anon_upload_enable=YES匿名账号支持上传

27anon_upload_enable=YES支持上传文件

31#anon_mkdir_write_enable=YES匿名账号实现创建目录

Anon_umask设置UMASK的值

anon_other_write_enable用户支持写权限(命名删除)

36dirmessage_enable=YES说明文件,提示

40xferlog_enable=YES启用日志文件

53#xferlog_file=/var/log/xferlog日志文件存放地址

xferlog_std_format=YES日志的格式

#idle_session_timeout=60010分钟自动断开

data_connection_timeout=120连接超时间

#ascii_upload_enable=YES是否使用ascii来传递

ftpd_banner=WelcometoblahFTPservice连接FTP提示信息

90#deny_email_enable=YES邮箱的地址作为匿名登陆的密码

#banned_email_file=/etc/vsftpd/banned_emails存放邮箱地址的文件

chroot_list_enable=YES对本地账号登陆进行限制,限制于某个文件下,无法去访问其他的目录文件

chroot_list_file=/etc/vsftpd/chroot_list限制某个用户的列表

chroot_local_user=YES如果把文件存放到文件列表里面的用户则可以切换根目录,否则

pam_service_name=vsftpdpam支持验证模块

userlist_enable=YES存放在这个列表里面的账号信息则可以登陆验证账号,是否打开密码不发布网络

userlist_deny=NO放在在这个列表的账号,直接拒绝登陆

tcp_wrappers=YES来源控制

vim/etc/hosts.allow或者/etc/hosts.deny










本文转自 only223wym 51CTO博客,原文链接:http://blog.51cto.com/ymchaofeng/1297916,如需转载请自行联系原作者
目录
相关文章
|
算法 Linux 网络安全
|
11天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
94 6
|
12天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
49 3
|
12天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
37 2
|
20天前
|
缓存 监控 Linux
|
23天前
|
Linux Shell 数据安全/隐私保护
|
24天前
|
域名解析 网络协议 安全
|
7天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
34 3
下一篇
无影云桌面