所以这是我的'问题',我设置了一个FTP服务器,感谢 vsftpd ,以便登录和放大数据传输应加密。
以下是我的 vsftpd.conf 文件的有趣部分。
ssl_enable=YES
allow_anon_ssl=NO
require_ssl_reuse=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_ciphers=HIGH
我使用 Filezilla 作为FTP客户端,连接配置如下:
Protocol : FTP - File Transfer Protocol
Encryption : Require explicit FTP over TLS
Logon type: Normal
有些注意事项:
加密:普通FTP :不起作用,我很满意。 (响应:530非匿名会话必须使用加密。)
加密:需要通过TLS隐式FTP :也不起作用,服务器拒绝连接。我想这是因为我强制进行SSL连接。
现在,一旦建立(显式)连接,Filezilla就会在窗口底部显示一个小锁图标,说明 连接已加密。点击图标了解详情 。
我想确保数据传输确实是加密的而不是简单的,所以我捕获了我的eth上的所有内容。从我的服务器下载文件到我的电脑时,用 Wireshark 卡。
除了我找不到单个SSL协议包外,一切都是TCP。
我不知道如何确保传输的数据是加密的,即使filezilla这样说,每次我谷歌“vsftpd如何确保数据传输都是加密的”,我得到的唯一答案是“ssl_enable = YES“或”选中“使用SSL”框......
提前感谢您的帮助!
答案 0 :(得分:4)
经过一番研究,特别是在http://wiki.wireshark.org/SSL上完成完成漫步之后,我对整个事情有了更深入的了解。
我正在回答我自己的问题,希望有一天这会有所帮助,只要下面的内容是正确的......
对我来说,写下来对我来说是个好方法,看看是否能清楚地理解我的问题。写这个答案的任何困难都会证明我错了。
第一:
通常,SSL使用TCP作为其传输协议。
SSL包含在TCP中,这就是我在捕获数据包时无法明确观察SSL协议的原因。
在分析TCP数据包时,我只能" 关注TCP流"但不是" 关注SSL流"这误导我认为数据包没有保存加密数据。这很有趣,因为可观察的数据不是人类可读的......所以加密了。
为了能够解密它我必须提供wireshark加密密钥:
RSA密钥列表
此选项指定IP地址,端口,协议和解密密钥之间的绑定。
然后,我可以观察加密/未加密的数据。
另外,在http://wiki.filezilla-project.org/上阅读之后:
当您对FTP服务器应用加密时,CPU必须进行许多计算以加密正在发送的数据并解密正在接收的数据。
我只是决定在下载文件时运行UNIX top 命令。我能够观察到filezilla客户端进程的高CPU使用率,这与未加密的数据传输相反。这是第二个论证,证实转移的数据确实是加密的,因此需要解密。