自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在CentOS 7中使用SSL/TLS加固FTP服務器進行安全文件傳輸

系統(tǒng) Linux
在這篇文章中,我們會介紹在 CentOS/RHEL 7 以及 Fedora 中如何在 FTP 服務器中手動啟用數據加密服務;我們會介紹使用 SSL/TLS 證書保護 VSFTPD(Very Secure FTP Daemon)服務的各個步驟。

[[191190]]

在一開始的設計中,FTP(文件傳輸協(xié)議)就是不安全的,意味著它不會加密兩臺機器之間傳輸的數據以及用戶的憑據。這使得數據和服務器安全面臨很大威脅。

在這篇文章中,我們會介紹在 CentOS/RHEL 7 以及 Fedora 中如何在 FTP 服務器中手動啟用數據加密服務;我們會介紹使用 SSL/TLS 證書保護 VSFTPD(Very Secure FTP Daemon)服務的各個步驟。

前提條件:

  • 你必須已經在 CentOS 7 中安裝和配置 FTP 服務 。

在我們開始之前,要注意本文中所有命令都以 root 用戶運行,否則,如果現在你不是使用 root 用戶控制服務器,你可以使用 sudo 命令 去獲取 root 權限。

第一步:生成 SSL/TLS 證書和密鑰

1、 我們首先要在 /etc/ssl 目錄下創(chuàng)建用于保存 SSL/TLS 證書和密鑰文件的子目錄:

  1. # mkdir /etc/ssl/private 

2、 然后運行下面的命令為 vsftpd 創(chuàng)建證書和密鑰并保存到一個文件中,下面會解析使用的每個選項。

  • req - 是 X.509 Certificate Signing Request (CSR,證書簽名請求)管理的一個命令。
  • x509 - X.509 證書數據管理。
  • days - 定義證書的有效日期。
  • newkey - 指定證書密鑰處理器。
  • rsa:2048 - RSA 密鑰處理器,會生成一個 2048 位的密鑰。
  • keyout - 設置密鑰存儲文件。
  • out - 設置證書存儲文件,注意證書和密鑰都保存在一個相同的文件:/etc/ssl/private/vsftpd.pem。
  1. # 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 

第二步:配置 VSFTPD 使用 SSL/TLS

3、 在我們進行任何 VSFTPD 配置之前,首先開放 990 和 40000-50000 端口,以便在 VSFTPD 配置文件中分別定義 TLS 連接的端口和被動端口的端口范圍:

  1. # firewall-cmd --zone=public --permanent --add-port=990/tcp 
  2. # firewall-cmd --zone=public --permanent --add-port=40000-50000/tcp 
  3. # firewall-cmd --reload 

4、 現在,打開 VSFTPD 配置文件并在文件中指定 SSL 的詳細信息:

  1. # vi /etc/vsftpd/vsftpd.conf 

找到 ssl_enable 選項把它的值設置為 YES 激活使用 SSL,另外,由于 TSL 比 SSL 更安全,我們會使用 ssl_tlsv1_2 選項讓 VSFTPD 使用更嚴格的 TLS:

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

5、 然后,添加下面的行來定義 SSL 證書和密鑰文件的位置:

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

6、 下面,我們要阻止匿名用戶使用 SSL,然后強制所有非匿名用戶登錄使用安全的 SSL 連接進行數據傳輸和登錄過程中的密碼發(fā)送:

  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 會話;這樣它們會知道控制通道的主密碼。

因此,我們需要把它關閉。

  1. require_ssl_reuse=NO 

另外,我們還要用 ssl_ciphers 選項選擇 VSFTPD 允許用于加密 SSL 連接的 SSL 算法。這可以極大地限制那些嘗試發(fā)現使用存在缺陷的特定算法的攻擊者:

  1. ssl_ciphers=HIGH 

8、 現在,設置被動端口的端口范圍(最小和最大端口)。

  1. pasv_min_port=40000 
  2. pasv_max_port=50000 

9、 選擇性啟用 debug_ssl 選項以允許 SSL 調試,這意味著 OpenSSL 連接診斷會被記錄到 VSFTPD 日志文件:

  1. debug_ssl=YES 

保存所有更改并關閉文件。然后讓我們重啟 VSFTPD 服務:

  1. # systemctl restart vsftpd 

第三步:用 SSL/TLS 連接測試 FTP 服務器

10、 完成上面的所有配置之后,像下面這樣通過在命令行中嘗試使用 FTP 測試 VSFTPD 是否使用 SSL/TLS 連接:

  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 安全連接

從上面的截圖中,我們可以看到這里有個錯誤提示我們 VSFTPD 只允許用戶從支持加密服務的客戶端登錄。

命令行并不會提供加密服務因此產生了這個錯誤。因此,為了安全地連接到服務器,我們需要一個支持 SSL/TLS 連接的 FTP 客戶端,例如 FileZilla。

第四步:安裝 FileZilla 以便安全地連接到 FTP 服務器

11、 FileZilla 是一個現代化、流行且重要的跨平臺的 FTP 客戶端,它默認支持 SSL/TLS 連接。

要在 Linux 上安裝 FileZilla,可以運行下面的命令:

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

12、 當安裝完成后(或者你已經安裝了該軟件),打開它,選擇 File => Sites Manager 或者按 Ctrl + S 打開 Site Manager 界面。

點擊 New Site 按鈕添加一個新的站點/主機連接詳細信息。

 

在 FileZilla 中添加新 FTP 站點

下一步,像下面這樣設置主機/站點名稱、添加 IP 地址、定義使用的協(xié)議、加密和登錄類型(使用你自己情況的值):

  1. Host:  192.168.56.10 
  2. Protocol:  FTP – File Transfer Protocol 
  3. Encryption:  Require explicit FTP over   #recommended  
  4. Logon Type: Ask for password            #recommended  
  5. User: username 

 

在 Filezilla 中添加 FTP 服務器詳細信息

14、 然后點擊 Connect,再次輸入密碼,然后驗證用于 SSL/TLS 連接的證書,再一次點擊 OK 連接到 FTP 服務器:

驗證 FTP SSL 證書 

驗證 FTP SSL 證書

到了這里,我們應該使用 TLS 連接成功地登錄到了 FTP 服務器,在下面的界面中檢查連接狀態(tài)部分獲取更多信息。

通過 TLS/SSL 連接到 FTP 服務器 

通過 TLS/SSL 連接到 FTP 服務器

15、 最后,在文件目錄嘗試 從本地傳輸文件到 FTP 服務器,看 FileZilla 界面后面的部分查看文件傳輸相關的報告。

使用 FTP 安全地傳輸文件 

使用 FTP 安全地傳輸文件

就是這些。記住 FTP 默認是不安全的,除非我們像上面介紹的那樣配置它使用 SSL/TLS 連接。在下面的評論框中和我們分享你關于這篇文章/主題的想法吧。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2017-03-14 09:22:05

2017-05-22 20:00:15

2020-08-05 08:31:51

SSL TLSNode.js

2022-08-29 11:04:57

安全文件傳輸數據安全

2015-08-05 09:35:38

Bastille服務器安全

2010-06-09 15:55:20

FTP文件傳輸協(xié)議

2022-12-25 10:09:44

2014-02-09 15:03:37

2009-03-04 06:18:00

FTP服務器雙向傳輸FTP服務器搭建

2018-08-07 14:49:55

2015-12-11 13:16:10

CentOS 7Redis服務器

2010-06-28 14:25:16

2010-07-01 15:55:54

FTP文件傳輸協(xié)議

2010-03-24 15:53:09

2015-05-25 09:13:31

NTP網絡時間協(xié)議NTP服務器

2010-05-18 14:25:11

IIS服務器

2011-03-07 15:16:40

FileZilla SSSLTLS

2014-09-17 09:24:30

2010-05-07 16:19:18

Unix服務器

2017-03-09 13:26:33

點贊
收藏

51CTO技術棧公眾號