摘要訊息 : 為 vsFTPd 配置 SSL 連線教學.
0. 前言
為 FTP 軟體的連線進行加密還是非常有必要的, 否則我們在網路上的資料傳輸就是明文的, 一旦被攻擊者獲取到, 這些資料不需要解密就可以直接看到內容.
本文在 2022 年 3 月 24 日進行一次更新和修正. 修正之後本文已經歸檔, 不再享受更新.
1. 檢查依賴套件
在前面的安裝教學中, 我們其實已經安裝了 OpenSSL 這一個組件, 但是如果你還未安裝, 那麼執行一下指令 yum install -y openssl
. 較新的 vsFTPd 都是支援 SSL 加密的, 或者可以用 ldd $(which vsftpd) | grep ssl
指令檢查一下, 如果出現libssl.so
的字樣, 就說明支援 SSL 沒有問題.
2. 配置
接下來我們需要為 vsFTPd 建立專門的憑證. 輸入指令 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.key -out /etc/vsftpd/vsftpd.pem
, 老手可以個性化指令. 輸入指令之後你需要填寫一些基本資料 :
- Country Name (2 letter code) [XX] : 國家縮寫;
- State or Province Name (full name) [] : 洲/省份全稱;
- Locality Name (eg, city) [Default City] : 城市名稱;
- Organization Name (eg, company) [Default Company Ltd] : 組織名稱;
- Organizational Unit Name (eg, section) [] : 部門名稱;
- Common Name (eg, your name or your server's hostname) [] : 伺服器名稱;
- Email Address [] : 郵箱地址.
接下來配置 vsFTPd : vim /etc/vsftpd/vsftpd.conf
, 在最後增加以下設定 :
#SSL
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
pasv_min_port=50000
pasv_max_port=50000
之後讓防火牆開放 59000 連接埠即可, 對於 Firewall, 執行下面指令 :
firewall-cmd --permanent --zone=public --add-port=59000-59010/tcp
firewall-cmd --reload
然後重新開啟 vsFTPd 服務 : systemctl restart vsftpd
即可.
現在我們可以使用 FileZilla 連線, 連線信息包含正在初始 TLS, 正在驗證憑證和 TLS 連線已建立, 並且連線成功, 就代表配置已經完成.
自創文章, 原著 : Jonny. 如若閣下需要轉發, 在已經授權的情況下請註明本文出處 :