在 Ubuntu 上使用 SSL/TLS 搭建一个安全的 FTP 服务器

简介:

在遵循本指南中的各个步骤之后,我们将了解在 FTP 服务器中启用加密服务的基本原理,以确保安全的数据传输至关重要。

要求

在我们进行下一步之前,确保本文中的所有命令都将以root身份或者 sudo 特权账号运行。

第一步:在 Ubuntu 上为 FTP 生成 SSL/TLS 证书

1、我们将首先在 /etc/ssl/ 下创建一个子目录来存储 SSL/TLS 证书和密钥文件,如果它不存在的话这样做:


 
 
  1. $ sudo mkdir /etc/ssl/private

2、 现在我们在一个单一文件中生成证书和密钥,运行下面的命令:


 
 
  1. $ sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

上面的命令将提示你回答以下问题,不要忘了输入合适于你情况的值:


 
 
  1. Country Name (2 letter code) [XX]:IN
  2. State or Province Name (full name) []:Lower Parel
  3. Locality Name (eg, city) [Default City]:Mumbai
  4. Organization Name (eg, company) [Default Company Ltd]:TecMint.com
  5. Organizational Unit Name (eg, section) []:Linux and Open Source
  6. Common Name (eg, your name or your server's hostname) []:tecmint
  7. Email Address []:admin@tecmint.com

第二步:在 Ubuntu 上配置 vsftpd 来使用 SSL/TLS

3、在我们进行 vsftpd 配置之前,对于那些已启用 UFW 防火墙的用户,你们必须打开端口 990 和 40000 -50000,来在 vsftpd 配置文件中分别启用 TLS 连接端口和被动端口的端口范围:


 
 
  1. $ sudo ufw allow 990/tcp
  2. $ sudo ufw allow 40000:50000/tcp
  3. $ sudo ufw status

4、现在,打开 vsftpd 配置文件并定义 SSL 详细信息:


 
 
  1. $ sudo vi /etc/vsftpd/vsftpd.conf
  2. $ sudo nano /etc/vsftpd/vsftpd.conf

然后,添加或找到选项 ssl_enable,并将它的值设置为 YES 来激活使用 SSL ,同样,因为 TLS 比 SSL 更安全,我们将通过启用 ssl_tlsv1 选项限制 vsftpd 只使用 TLS:


 
 
  1. ssl_enable=YES
  2. ssl_tlsv1=YES
  3. ssl_sslv2=NO
  4. ssl_sslv3=NO

5、 接下来,使用  字符注释掉下面的行,如下所示:


 
 
  1. #rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
  2. #rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

然后,添加以下行以定义 SSL 证书和密钥文件的位置(LCTT 译注:或径直修改也可):


 
 
  1. rsa_cert_file=/etc/ssl/private/vsftpd.pem
  2. rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6、现在,我们也可以阻止匿名用户使用 SSL 登录,并且迫使所有的非匿名登录使用安全的 SSL 链接来传输数据和在登录期间发送密码:


 
 
  1. allow_anon_ssl=NO
  2. force_local_data_ssl=YES
  3. force_local_logins_ssl=YES

7、此外,我们可以使用以下选项在 FTP 服务器中添加更多的安全功能 。对于选项 require_ssl_reuse=YES,它表示所有的 SSL 数据链接都需重用已经建立的 SSL 会话(需要证明客户端拥有 FTP 控制通道的主密钥),但是一些客户端不支持它,如果没有客户端问题,出于安全原因不应该关闭(默认开启)。(LCTT 译注:原文此处理解有误,译者修改。)


 
 
  1. require_ssl_reuse=NO

此外,我们可以通过 ssl_ciphers 选项来设置 vsftpd 允许使用那些加密算法。 这将有助于挫败攻击者使用那些已经发现缺陷的加密算法的尝试:


 
 
  1. ssl_ciphers=HIGH

8、 然后,我们定义被动端口的端口范围(最小和最大端口)。


 
 
  1. pasv_min_port=40000
  2. pasv_max_port=50000

9、 要启用 SSL 调试,把 openSSL 连接诊断记录到 vsftpd 日志文件中,我们可以使用 debug_ssl 选项:


 
 
  1. debug_ssl=YES

最后,保存配置文件并且关闭它。然后重启 vsftpd 服务:


 
 
  1. $ systemctl restart vsftpd

第三步:在 Ubuntu 上使用 SSL / TLS 连接验证 FTP

10、 执行所有上述配置后,通过尝试在命令行中使用 FTP 来测试 vsftpd 是否现在使用了 SSL / TLS 连接,如下所示。

从下面的输出来看,这里有一个错误的信息告诉我们 vsftpd 仅允许用户(非匿名用户)从支持加密服务的安全客户端登录。


 
 
  1. $ ftp 192.168.56.10
  2. Connected to 192.168.56.10 (192.168.56.10).
  3. 220 Welcome to TecMint.com FTP service.
  4. Name (192.168.56.10:root) : ravi
  5. 530 Non-anonymous sessions must use encryption.
  6. Login failed.
  7. 421 Service not available, remote server has closed connection
  8. ftp>

该命令不支持加密服务从而导致了上述错误。因此,要安全连接到启用了加密服务的 FTP 服务器,我们需要一个默认支持 SSL/TLS 连接的 FTP 客户端,例如 FileZilla。

第四步:在客户端上安装FileZillaStep来安全地连接FTP

11、FileZilla 是一个强大的,广泛使用的跨平台 FTP 客户端,支持在 SSL/TLS 上的 FTP。为了在 Linux 客户端机器上安装 FileZilla,使用下面的命令。


 
 
  1. --------- On Debian/Ubuntu ---------
  2. $ sudo apt-get install filezilla
  3. --------- On CentOS/RHEL/Fedora ---------
  4. # yum install epel-release filezilla
  5. --------- On Fedora 22+ ---------
  6. $ sudo dnf install filezilla

12、 一旦安装完成,打开它然后点击File=>Sites Manager或者(按Ctrl+S)来获取下面的Site Manager。

Filezilla Site Manager

Filezilla Site Manager

13、 现在,定义主机/站点名字,添加 IP 地址,定义使用的协议,加密和登录类型,如下面的屏幕(使用适用于你方案的值):

点击 New Site 按钮来配置一个新的站点/主机连接。

  • Host: 192.168.56.10
  • Protocol: FTP – File Transfer Protocol
  • Encryption: Require explicit FTP over #推荐
  • Logon Type: Ask for password #推荐
  • User: 用户名

在 Filezilla 上配置新的 FTP 站点

在 Filezilla 上配置新的 FTP 站点

14、 然后从上面的界面单击连接以输入密码,然后验证用于 SSL / TLS 连接的证书,并再次单击确定以连接到 FTP 服务器:

验证 FTP 的 SSL 证书

验证 FTP 的 SSL 证书

15、现在,你应该通过 TLS 连接成功地登录到了 FTP 服务器,检查连接状态部分,来获取有关下面接口的更多信息。

连接 Ubuntu 的 FTP 服务器

连接 Ubuntu 的 FTP 服务器

16、 最后,让我们在文件夹中从本地的机器传送文件到 FTP 服务器, 查看 FileZilla 界面的下端来查看有关文件传输的报告。

使用 Filezilla 安全的传输 FTP 文件

使用 Filezilla 安全的传输 FTP 文件

就这样! 始终记住,安装 FTP 服务器而不启用加密服务具有某些安全隐患。 正如我们在本教程中解释的,您可以在 Ubuntu 16.04 / 16.10 中配置 FTP 服务器使用 SSL / TLS 连接来实现安全性。

原文发布时间为:2017-03-12

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
1月前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
2月前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
341 4
|
3月前
|
Ubuntu 应用服务中间件 开发工具
Ubuntu16.04搭建gitlab服务器,搭建pip源服务器(两种方式),搭建apt源服务器
这篇文章是关于如何在Ubuntu 16.04系统上搭建GitLab服务器、pip源服务器(使用pypiserver和NGINX两种方式),以及apt源服务器的详细教程。
54 0
Ubuntu16.04搭建gitlab服务器,搭建pip源服务器(两种方式),搭建apt源服务器
|
3月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
73 3
|
3月前
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
102 1
|
3月前
|
并行计算 Ubuntu 算法
Ubuntu18 服务器 更新升级CUDA版本 pyenv nvidia ubuntu1804 原11.2升级到PyTorch要求12.1 全过程详细记录 apt update
Ubuntu18 服务器 更新升级CUDA版本 pyenv nvidia ubuntu1804 原11.2升级到PyTorch要求12.1 全过程详细记录 apt update
163 0
|
2月前
|
安全 网络安全 数据安全/隐私保护
SSL/TLS证书**是一种用于加密网络通信的数字证书
SSL/TLS证书**是一种用于加密网络通信的数字证书
139 6
|
11天前
|
监控 安全 网络协议
永久免费SSL证书教程—自动续签
要实现免费SSL证书的自动续签,选择合适的证书颁发机构(CA)至关重要。推荐使用JoySSL,填写注册码230922可获得免费且支持自动续签的SSL证书。申请步骤包括注册账户、选择证书类型、提交申请、验证域名所有权及安装证书。配置自动续签需安装续签工具、生成密钥和CSR,并设置续签参数。定期检查证书状态、备份证书和密钥,确保续签顺利进行。注意CA机构的政策和服务条款变化,以保持证书的有效性。
|
29天前
|
小程序 安全 网络协议
小程序免费SSL证书获取申请
小程序免费SSL证书的获取与申请流程包括:1. 选择可靠的证书颁发机构(如JoySSL);2. 注册并申请证书,填写注册码230922;3. 根据需求选择单域名或通配符证书;4. 提交并完成域名所有权验证;5. 下载并安装证书文件;6. 配置小程序的HTTPS设置;7. 启用并测试SSL证书;8. 定期更新维护证书。通过这些步骤,确保小程序数据传输的安全性和可靠性。
|
1月前
|
存储 监控 安全
告别手动续签烦恼:一键实现免费SSL证书自动更新
告别手动续签烦恼,一键实现免费SSL证书自动更新。通过自动化续签过程,减少人为错误,提高安全性,节省时间,确保网站始终提供安全、可信的服务。选择支持自动续签的证书颁发机构,并配置相应的工具,轻松管理SSL证书。

热门文章

最新文章