设为首页 收藏本站
查看: 2992|回复: 6

[经验分享] linux下的实现FTP服务器的安全搭建

[复制链接]

尚未签到

发表于 2012-9-15 09:41:58 | 显示全部楼层 |阅读模式
一、FTP的概述
   文件传输协议(FTP)是TCP/IP提供的标准机制,用来将文件从一个主机复制到另一个主机。FTP使用TCP的服务。
FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。
74f200ac3e5c3ad9133842a331858982.jpg
控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的, PI称为控制连接。
数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。
FTP协议中,控制连接均有客户端发起。
数据连接有两种工作方式:PORT(主动)方式和PASV(被动)方式。
主动方式:
1.客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。   
2.客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。   
3.服务器打开20号源端口并且建立和客户端数据端口的连接。此时,源端口为20,远程数据端口为(x+1)。   
4.客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。
被动方式:
当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
FTP的优点:   
1.促进文件的共享  
2.鼓励间接或者隐式的使用远程计算机   
3.向用户屏蔽不同主机中各种文件存储系统的细节   
4.可靠和高效的传输数据   
FTP的缺点:   
1.密码和文件内容都使用明文传输,可能产生不希望发生的窃听。   
2.因为必须开放一个随机的端口以建立连接,当防火墙存在时,客户端很难过滤处于主动模式下的FTP流量。这个问题通过使用被动模式的FTP得到了很大解决。   
3.服务器可能会被告知连接一个第三方计算机的保留端口。
登录FTP服务器有三种方式
匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。
本地用户登录:使用/etc/passwd中的系统用户登录。
虚拟用户登录:有两种方式实现虚拟用户:本地数据文件(DB)和数据库服务器(MySQL)。FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。
FTPS简介
一种多传输协议,相当于加密版的FTP。当你在FTP服务器上收发文件的时候,你面临两个风险。第一个风险是在上载文件的时候为文件加密。第二个风险是,这些文件在你等待接收方下载的时候将停留在FTP服务器上,这时你如何保证这些文件的安全。你的第二个选择(创建一个支持SSLFTP服务器)能够让你的主机使用一个FTPS连接上载这些文件。这包括使用一个在FTP协议下面的SSL层加密控制和数据通道。一种替代FTPS的协议是安全文件传输协议(SFTP)。这个协议使用SSH文件传输协议加密从客户机到服务器的FTP连接。   FTPS是在安全套接层使用标准的FTP协议和指令的一种增强型FTP协议,为FTP协议和数据通道增加了SSL安全功能。
FTPS也称作“FTP-SSL”和“FTP-over-SSL”。SSL是一个在客户机和具有SSL功能的服务器之间的安全连接中对数据进行加密和解密的协议。
实验安全机密的访问机制
拓扑图
5378942bda17b6158e336e3685526a8a.jpg
二、配置步骤
1、安装vsftpd软件包
yum install -y vsftpd-2.0.5-16.el5.i386.rpm
启动vsftpd服务
service vsftpd start
安装抓包工具
yum -y install wireshark-1.0.8-1.el5_3.1.i386.rpm
创建账号user1
useradd user1
passwd user1
user1登陆ftp服务器
9bf8e117dd93e846dc96c8c04d8251ad.jpg
因为传递是明文的,我们看是否能够抓到用户的账号信息
[iyunv@mail Server]# tshark -ni eth0 -R "tcp.dstport eq 21"
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
203.336196 192.168.10.15 -> 192.168.10.10 TCP 50487 > 21 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=2
203.337266 192.168.10.15 -> 192.168.10.10 TCP 50487 > 21 [ACK] Seq=1 Ack=1 Win=8192 Len=0
203.545563 192.168.10.15 -> 192.168.10.10 TCP 50487 > 21 [ACK] Seq=1 Ack=21 Win=8172 Len=0
206.871753 192.168.10.15 -> 192.168.10.10 FTP Request: USER user1
207.071412 192.168.10.15 -> 192.168.10.10 TCP 50487 > 21 [ACK] Seq=13 Ack=55 Win=8136 Len=0
208.183262 192.168.10.15 -> 192.168.10.10 FTP Request: PASS 123
208.827546 192.168.10.15 -> 192.168.10.10 TCP 50487 > 21 [ACK] Seq=23 Ack=78 Win=8112 Len=0
我们得到用户名称user1,密码:123,显然这种明文传递的方式显然是存在安全隐患的,我们为了提高ftp访问的安全性,采取ftps加密的访问方式
2、CA的相关配置
[iyunv@mail ~]# cd /etc/pki/
[iyunv@mail pki]# vim tls/openssl.cnf
45 dir             = /etc/pki/CA         #证书路径
颁发证书机构与申请机构必须在同一地区,改为可选的
88 countryName            = optional
89 stateOrProvinceName     = optional
90 organizationName        = optional
在CA目录下创建三个目录两个文件
[iyunv@localhost CA]# mkdir crl certs newcerts
[iyunv@localhost CA]# touch index.txt  serial
颁发的证书的序列号码从01开始
[iyunv@localhost CA]# echo "01" >serial
为证书颁发机构产生钥匙,并重定向到private目录下的cakey.pem文件中,钥匙长度为1024位
[iyunv@localhost CA]# openssl genrsa 1024 >private/cakey.pem
修改文件权限,确保钥匙的安全,其他用户没有权限
[iyunv@localhost CA]# chmod 600 private/*
产生密钥       #–new表示新的钥匙 –x509表示一种格式
[iyunv@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650
Country Name (2 letter code) [CN]:
State or Province Name (full name) [BEIJING]:
Locality Name (eg, city) [BEIJING]:
Organization Name (eg, company) [My Company Ltd]:SECCENTER
Organizational Unit Name (eg, section) []:TEC
Common Name (eg, your name or your server's hostname) []:rootca.net.net                                    
ftp服务器的配置
创建存放私有钥匙,证书等信息的目录
mkdir -pv /etc/ftpd/certs
产生钥匙
cd /etc/httpd/certs/
openssl genrsa 1024 >ftpd.key
向根机构请求证书,
[iyunv@localhost certs]# openssl req -new -key ftpd.key -out ftpd.csr
Country Name (2 letter code) [CN]:
State or Province Name (full name) [BEIJING]:
Locality Name (eg, city) [BEIJING]:
Organization Name (eg, company) [My Company Ltd]:abc
Organizational Unit Name (eg, section) []:tec
Common Name (eg, your name or your server's hostname) []:ftp.abc.com
利用请求,得到证书
[iyunv@localhost certs]# openssl ca -in ftpd.csr -out ftpd.cert
Web服务器申请证书信息
Subject:
            countryName              = CN
            stateOrProvinceName       = BEIJING
            organizationName          = abc
            organizationalUnitName     = tec
            commonName             = ftp.abc.com
修改钥匙证书所在目录的权限,保证信息的安全
[iyunv@localhost certs]# chmod 600 *
3、配置vsftpd的配置文件
钥匙
119 rsa_cert_file=/etc/ftpd/certs/ftpd.cert        #证书路径和名字
120 rsa_private_key_file=/etc/ftpd/certs/ftpd.key  #私钥的位置
121 ssl_tlsv1=YES
122 ssl_ssl2=YES
123 ssl_ssl3=YES                       #支持ssl_tls的三个版本
124 force_local_logins_ssl=YES           #本地账号登陆加密   
125 force_local_data_ssl=YES             #传递数据加密
126 ssl_enable=YES                     #开启ssl加密
三、客户端测试
安装ftp的客户端软件,新建站点
2b697fd7a9ba30b098e4019d5fc10ee0.jpg
连接到ftp服务器
552ae7ac3ca95c7a2679bba7bf5c276f.jpg
由于没有配置DNS,所以证书提示证书名称与访问不匹配,信任证书,可以成功实现加密访问ftp
7448e5e92483acbb7c3846e9f1fee733.jpg
继续在eth0网卡的21端口抓包,我们看到验证方式为ssl,增加安全性
tshark -ni eth0 -R "tcp.dstport eq 21"
4890.084795 192.168.10.15 -> 192.168.10.10 FTP Request: AUTH SSL
4890.160493 192.168.10.15 -> 192.168.10.10 FTP Request: \200\310\001\003\001\000\237\000\000\000 \000\300\024\000\300
4890.276378 192.168.10.15 -> 192.168.10.10 FTP Request: \026\003\001\000\206\020\000\000\202\000\200\032g\314\373\006\360\236\360~\233\326\221\032\225\335\004\030^H\201~-\375\v<\025/z\237O;\002\301x\310\241\267\026\304@\217l\313=\031\000P\223\253\301\f\356^
4890.488872 192.168.10.15 -> 192.168.10.10 TCP 51921 > 21 [ACK] Seq=403 Ack=896 Win=64804 Len=0
案例二
待续。。。。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-1173-1-1.html 上篇帖子: Linux下FTP服务器原理简介及简单应用 下篇帖子: tftp服务器配置(简单文件传输协议)_ 服务器 通道

尚未签到

发表于 2013-3-13 17:38:32 | 显示全部楼层
过来看看的

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-15 21:06:38 | 显示全部楼层
很多女明星不红的原因是因为没有张开腿*^_^*

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-16 08:38:43 | 显示全部楼层
有道理。。。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-16 18:55:03 | 显示全部楼层
啥时硬件也可以COPY就好了!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 08:27:28 | 显示全部楼层
我抢、我抢、我抢沙发~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 17:29:07 | 显示全部楼层
穿别人的鞋,走自己的路,让他们找去吧。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表