不简单的s,增加ftp的安全性 ----ftps

ftp的简介和工作模式

FTP(File Transfer Protocol, FTP)是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。

FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)

主动模式:FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。

被动模式:FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

注意:被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

实验环境

1操作系统 linux redhat enterprise 5 版本号2.6.18-164.el5

案例一:

需求分析:通过为自己企业的ftp增加ssl的功能,有效提高ftp服务器的安全性。

一:搭建自己的证书服务器(CA服务器,我们使用linux 自带的openssl 来进行搭建即可)

1:安装openssl 的rpm包

[root@zzu ~]# mount /dev/cdrom /mnt/cdrom/ 将自己的光盘进行挂载

[root@zzu Server]# ll openssl*

-r--r--r-- 319 root root 845408 2008-12-23 openssl097a-0.9.7a-9.el5_2.1.i386.rpm

-r--r--r-- 108 root root 1513450 2009-07-20 openssl-0.9.8e-12.el5.i386.rpm

-r--r--r-- 130 root root 1499080 2009-07-20 openssl-0.9.8e-12.el5.i686.rpm

-r--r--r-- 125 root root 1955524 2009-07-20 openssl-devel-0.9.8e-12.el5.i386.rpm

-r--r--r-- 108 root root 34568 2009-07-20 openssl-perl-0.9.8e-12.el5.i386.rpm

[root@zzu Server]# rpm -ivh openssl-0.9.8e-12.el5.i386.rpm

[root@zzu Server]# rpm -ivh openssl-devel-0.9.8e-12.el5.i386.rpm

[root@zzu Server]# rpm -ivh openssl-devel-0.9.8e-12.el5.i386.rpm

2:修改ca服务器的配置文件

[root@zzu ~]# cd /etc/pki/

[root@zzu pki]# ll

drwx------ 3 root root 4096 2012-02-08 CA

drwxr-xr-x 2 root root 4096 2012-02-08 nssdb

drwxr-xr-x 2 root root 4096 2012-02-08 rpm-gpg

drwxr-xr-x 5 root root 4096 2012-02-08 tls

[root@zzu pki]# vim tls/openssl.cnf

45 dir = /etc/pki/CA/    更改第45行

88—90行将match 改为optional ,允许ca服务器为其他部门的服务器颁发证书

88 countryName = optional

89 stateOrProvinceName = optional

90 organizationName = optional

3:切换到CA 目录下面,建立3个目录和2个文件

[root@zzu pki]# pwd

/etc/pki

[root@zzu pki]# cd CA

[root@zzu CA]# mkdir certs newcerts crl 证书目录 ,证书的吊销列表目录

[root@zzu CA]# touch index.txt index.txt文件

[root@zzu CA]# echo "01" >serial serial文件

[root@zzu CA]# ll

drwxr-xr-x 2 root root 4096 Feb 7 19:47 certs

drwxr-xr-x 2 root root 4096 Feb 7 19:47 crl

-rw-r--r-- 1 root root 0 Feb 7 19:47 index.txt

drwxr-xr-x 2 root root 4096 Feb 7 19:47 newcerts

drwx------ 2 root root 4096 Jun 30 2009 private

-rw-r--r-- 1 root root 3 Feb 7 19:47 serial

4:为ca服务器建立自己的钥匙和证书文件

[root@zzu CA]# openssl genrsa 1024 >private/cakey.pem 产生钥匙文件

Generating RSA private key, 1024 bit long modulus

.....................++++++

..++++++

e is 65537 (0x10001)

[root@zzu CA]# chmod 600 private/cakey.pem 改变私钥的相应的权限,增加安全性

[root@zzu CA]# ll private/cakey.pem

-rw------- 1 root root 891 Feb 7 19:49 private/cakey.pem

##这里我们可以指明证书的格式为-x509,有效日期10年

[root@zzu CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

###证书的相关信息

Country Name (2 letter code) [GB]:CN

State or Province Name (full name) [Berkshire]:BEIJING

Locality Name (eg, city) [Newbury]:BEIJING

Organization Name (eg, company) [My Company Ltd]:SENCICE

Organizational Unit Name (eg, section) []:TEC

Common Name (eg, your name or your server's hostname) []:rootca.net.net

Email Address []:

[root@zzu CA]# ll

total 28

-rw-r--r-- 1 root root 1147 Feb 7 19:54 cacert.pem

drwxr-xr-x 2 root root 4096 Feb 7 19:47 certs

drwxr-xr-x 2 root root 4096 Feb 7 19:47 crl

-rw-r--r-- 1 root root 0 Feb 7 19:47 index.txt

drwxr-xr-x 2 root root 4096 Feb 7 19:47 newcerts

drwx------ 2 root root 4096 Feb 7 19:49 private

-rw-r--r-- 1 root root 3 Feb 7 19:47 serial

这样我们的CA服务器就搭建好啦,接下来我们就来搭建自己的ftp服务器

二: 搭建自己企业的ftp服务器

1: 安装vsftp的rpm包

[root@zzu ~]# cd /mnt/cdrom/Server/

[root@zzu Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm

warning: vsftpd-2.0.5-16.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:vsftpd ########################################### [100%]

[root@zzu Server]#

2:创建一个自己的certs目录存放自己的ftp的证书的钥匙、请求文件、证书文件。

[root@zzu ~]# cd /var/ftp/

[root@zzu ftp]# ll

total 4

drwxr-xr-x 2 root root 4096 May 13 2009 pub

[root@zzu ftp]# mkdir certs

[root@zzu ftp]# ll

total 8

drwxr-xr-x 2 root root 4096 Feb 7 20:00 certs

drwxr-xr-x 2 root root 4096 May 13 2009 pub

[root@zzu ftp]# cd certs/

[root@zzu certs]# openssl genrsa 1024 >ftp.key 产生钥匙文件

Generating RSA private key, 1024 bit long modulus

................++++++

.....++++++

e is 65537 (0x10001)

[root@zzu certs]# openssl req -new -key ftp.key -out ftp.csr 产生请求的文件

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----请求的相关信息

Country Name (2 letter code) [GB]:CN

State or Province Name (full name) [Berkshire]:HENAN

Locality Name (eg, city) [Newbury]:HENAN

Organization Name (eg, company) [My Company Ltd]:ZZU

Organizational Unit Name (eg, section) []:ZZU

Common Name (eg, your name or your server's hostname) []:www.zzu.com

Email Address []:

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

[root@zzu certs]# openssl ca -in ftp.csr -out ftp.crt请求CA服务器为自己的ftp服务器签发证书

Using configuration from /etc/pki/tls/openssl.cnf

Check that the request matches the signature

Signature ok

Certificate Details:

Serial Number: 1 (0x1)

Validity

Not Before: Feb 7 12:04:20 2012 GMT

Not After : Feb 6 12:04:20 2013 GMT

Subject:

countryName = CN

stateOrProvinceName = HENAN

organizationName = ZZU

organizationalUnitName = ZZU

commonName = www.zzu.com

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

E6:E2:BD:31:F6:4A:3C:9A:FB:E4:6F:75:71:87:65:BD:99:5E:49:94

X509v3 Authority Key Identifier:

keyid:11:03:59:C8:3D:8E:B0:59:8D:BF:EF:7A:7F:C7:47:5C:D9:7A:0E:66

Certificate is to be certified until Feb 6 12:04:20 2013 GMT (365 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

[root@zzu certs]# ll 我们已经有啦自己的证书和钥匙文件

-rw-r--r-- 1 root root 3068 Feb 7 20:04 ftp.crt

-rw-r--r-- 1 root root 639 Feb 7 20:02 ftp.csr

-rw-r--r-- 1 root root 891 Feb 7 20:00 ftp.key

3:更改文件的权限为600,提高ftp的安全性

[root@zzu certs]# chmod 600 *

[root@zzu certs]# ll

total 12

-rw------- 1 root root 3068 Feb 7 20:04 ftp.crt

-rw------- 1 root root 639 Feb 7 20:02 ftp.csr

-rw------- 1 root root 891 Feb 7 20:00 ftp.key

4:将ftp服务器设置为自动启动

[root@zzu certs]# service vsftpd start

Starting vsftpd for vsftpd: [ OK ]

You have mail in /var/spool/mail/root

[root@zzu certs]# chkconfig vsftpd on

[root@zzu certs]# netstat -tupln|grep ftp

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 4172/vsftpd

三:在客户端进行验证

1:安装wireshark的抓包工具 wireshark-1.0.8-1.el5_3.1.i386.rpm

[root@zzu ~]# cd /mnt/cdrom/Server/

[root@zzu Server]# yum install wireshark

2:增加一个本地账户

[root@zzu Server]# useradd user1

[root@zzu Server]# echo "123"|passwd --stdin user1

Changing password for user user1.

passwd: all authentication tokens updated successfully.

3:登录

4:查看抓到的包

[root@zzu certs]# tshark -ni eth0 -R "tcp.dstport eq 21"

Running as user "root" and group "root". This could be dangerous.

18.103720 192.168.10.10 -> 192.168.10.100 FTP Request:USER user1

18.360719 192.168.10.10 -> 192.168.10.100 TCP 3560 > 21 [ACK] Seq=13 Ack=55 Win=65481 Len=0

20.532824 192.168.10.10 -> 192.168.10.100 FTP Request: PASS 123

20.674152 192.168.10.10 -> 192.168.10.100 TCP 3560 > 21 [ACK] Seq=23 Ack=78 Win=65458 Len=0 这样的话我们的密码就泄露啦

5:将ftp服务器与自己的钥匙和证书进行捆绑

[root@zzu ftp]# man 5 vsftpd.conf 我们可以参考vsftpd的配置手册进行帮助

在这里我们需要使用以下的参数

force_local_logins_ssl=YES 对本地用户进行ssl的加密验证

force_local_data_ssl=YES 对本地用户所传输的数据进行ssl的加密

ssl_enable=yes 开启ssl的验证功能

ssl_tlsv1=YES 支持ssl的v1版本 (由于被标准化组织给收购啦,前身叫tls,所以仍然保留该名称)

ssl_sslv2=YES 支持ssl的v2版本

ssl_sslv3=YES 支持ssl的v3版本

rsa_cert_file=/var/ftp/cert/ftp.crs 指出ftp的证书文件的所在的位置

rsa_private_key_file=/var/ftp/certs/ftp.key 指出ftp的私钥文件的所在的位置

6:修改ftp的配置文件

[root@zzu certs]# vim /etc/vsftpd/vsftpd.conf

7:重新启动vsftpd的服务

[root@zzu ~]# service vsftpd restart

Shutting down vsftpd: [ OK ]

Starting vsftpd for vsftpd: [ OK ]

8:由于在命令行的提示符下我们无法看到相应的提示,所以在这里我们使用专用的客户的软件进行测试

软件的名称 FlashFXP-v4.0.154 你只要一路向下即可完成相应的安装,软件的主页面

9:在站点管理器增加自己的ftp的地址

10.我们已经登录上了郑州大学的ftp服务器啦

11:我们再次来观察我们抓到的ip包,我们看到我们的用户名和密码已经被加密啦

4761.621409 192.168.10.10 -> 192.168.10.100 FTP Request: AUTH SSL

4761.710102 192.168.10.10 -> 192.168.10.100 FTP Request: \200\310\001\003\001\000\237\000\000\000 \000\300\024\000\300

4761.712400 192.168.10.10 -> 192.168.10.100 FTP Request: \026\003\001\000\206\020\000\000\202\000\200\210go\216\027`\314\374\360\217A\302\351\207aMp\316\017\216\031tp@\tcJ\005\350F\001\240\375\302t\223\b\316q\350

4761.817309 192.168.10.10 -> 192.168.10.100 TCP 1122 > 21 [ACK] Seq=403 Ack=893 Win=64643 Len=0

4796.023936 192.168.10.10 -> 192.168.10.100 FTP Request: \027\003\001\000\030\023\336\036\3609\245u\205\004\210\232\270B\212\214O\257\303,\257h\004\244\231\027\003\001\000 \223\024

4796.026042 192.168.10.10 -> 192.168.10.100 FTP Request: \027\003\001\000\030T.\3445P\263\372\353\370\337\240\305U\023r}\315\372L\214\376\360\256\002\027\003\001\000(\317h\3406\356"9\367\312\360\270kZ\361C\226:\220\356`!\335Q$\366\264\346\205\213u^\241\017NQ\373\f\241\342\231

6e\330`J\027\003\001\000 5\346\026\230*\200\225Y\360

4970.008940 192.168.10.10 -> 192.168.10.100 TCP 1122 > 21 [ACK] Seq=10785 Ack=10641 Win=65281 Len=0

4970.009087 192.168.10.10 -> 192.168.10.100 TCP 1122 > 21 [ACK] Seq=10785 Ack=10660 Win=65262 Len=0

4970.009707 192.168.10.10 -> 192.168.10.100 TCP 1122 > 21 [ACK] Seq=10785 Ack=10680 Win=65242 Len=0

4970.009985 192.168.10.10 -> 192.168.10.100 FTP Request: \025\003\001\000\030{\340\217\327\023\242\202\312t/tQW\374\255\367\321F`\246E\352v\241

4970.010162 192.168.10.10 -> 192.168.10.100 TCP 1122 > 21 [FIN, ACK] Seq=10814 Ack=10682 Win=65240 Len=0

4970.010164 192.168.10.10 -> 192.168.10.100 TCP 1122 > 21 [RST, ACK] Seq=10815 Ack=10682 Win=0 Len=0

小结:

FTPS是在安全套接层使用标准的FTP协议和指令的一种增强型TFP协议,为FTP协议和数据通道增加了SSL安全功能。FTPS也称作“FTP-SSL”和“FTP-over-SSL”。SSL是一个在客户机和具有SSL功能的服务器之间的安全连接中对数据进行加密和解密的协议。

ftps linux 服务器,linux下ftps服务器的搭建总结相关推荐

  1. Red Hat EnterPrise Linux 5.4下web服务器的综合使用(普通站点、虚拟主机、安全性、...

    在这篇博客中,小编我将详细的讲解一下linux下web服务器的使用,相信这对于web网站维护人员来说是非常有用的,在linux下实现web服务器的软件有很多,最常用的就是apache啦,小编这里使用的 ...

  2. linux aaa认证服务器,Windows下AAA服务器的搭建及身份认证!

    一 .Linux下的配置: 1.配ip [Quidway]int Vlan-interface 1 [Quidway-Vlan-interface1]ip add 192.168.101.28 255 ...

  3. Linux服务器IP下了,linux – DDOS攻击下的服务器 – 如何查找IP?

    tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more 看一下顶级IP地址.如果有人从其他人中脱颖而出,那些将成 ...

  4. deepin安装tftp服务器_ubuntu下tftp服务器搭建

    tftp服务器搭建步骤 1.安装tftp-server 使用 sudo apt-get install tftpd-hpa 命令下载tftp服务端 使用 sudo apt-get install tf ...

  5. Linux|UNIX下LAMP环境的搭建及常见问题[连载4]

     特别注意因为接下来要添加SSL认证,所以下面的操作请留到第四部分配置好SSL证书之后再行操作.把这部分内容放置在这里的目的是为了保持文章的逻辑性.关于数据库的启动 # cd /usr/local/m ...

  6. 红帽linux lnmp搭建,Linux(redhat5.4)下lnmp环境的搭建

    在前面我们已经实现了lamp架构的创建,今天就让我们来看一看lnmp架构是如何实现的.计划的实验步骤如下: 1. 数据库mysql的安装 2. Nginx的安装,libevent(编译库代码)的安装, ...

  7. Linux Ubuntu系统下Java开发环境搭建

    软件151田杰中 1. 前往ORACLE官网下载最新版本的Java JDK:http://www.oracle.com/technetwork/java/javase/downloads/index. ...

  8. 超详细,linux虚拟机的下的hadoop环境搭建

    一.虚拟机网络配置 1.查看ip地址 ifconfig 2.关闭系统防火墙命令 systemctl stop firewalld.service 3.关闭系统防火墙自启动命令 systemctl di ...

  9. Linux下不同服务器间数据传输

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  10. linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

最新文章

  1. ORACLE安装报错解决
  2. vc6.0报delete and rebuild Error executing link.exe.错误
  3. DL之DNN:自定义2层神经网络TwoLayerNet模型(封装为层级结构)利用MNIST数据集进行训练、预测
  4. PP 关于工单领料的总结
  5. Linux内核笔记--内存管理之用户态进程内存分配
  6. 1分钟 Zookeeper 快速入门_windows环境
  7. MCITP第十二课——642课件2新知识点笔记
  8. java获取C盘下的隐藏目录文件名称
  9. 表格数字乘以百分比怎么算_Excel输入多位数字之后有了“E”,用文本格式一步到位,恢复原状...
  10. RobotFramework Library
  11. rocketmq消息持久化到mysql_RocketMQ之事务消息
  12. WebStorm光标经常自动变为块状解决方案
  13. 电子商务网站优化之策略篇
  14. 第五章平稳过程(1)
  15. presto----grouping sets/cube/rollup 函数
  16. 两种单例模式总结--(饿汉式、懒汉式)(java代码)
  17. IPC$经典入侵步骤和常用net命令
  18. 使用firefox color自定义firefox的主题
  19. DreamweaverCS6破解安装
  20. FTP上传失败报错解决

热门文章

  1. 批处理当前文件夹下所有文件和子文件夹中的文件
  2. html yy直播,网页YY直播间进入方法 网页YY迷你版怎么用
  3. php js条形码扫描,使用JavaScript根据图片获取条形码的方法
  4. java 无锁并发_高并发情况下怎样尽量实现无锁编程
  5. css 清除表单样式,css form表单样式清除
  6. 计算机二级office学习之Excel操作题考点整理
  7. java 根据ftl文件生成word
  8. 什么是物联网数据采集网关?物联网数据采集网关的特点
  9. 超级计算机比赛规则,AlphaGo是什么如何运行?人机大战比赛规则+交手记录资料...
  10. 卡尔曼滤波算法详细推导