好久沒有寫 skill 分類下的文章了, 最近一直都在專注於 C++ 或者 資料結構 的文章
如果閣下是按照本博客之前給出的 vsFTPd 安裝教學進行安裝的話, 可以直接繼續配置. 如果不是的話, 出現任何問題請 Google
首先, SSL 加密與 FTP 伺服器連線是有必要的, 因為非加密的連線非常可能造成資料被他人獲取, 而對你造成一定的困擾
本教學主要使用 OpenSSL
在前面的安裝教學中, 我們其實已經安裝了 OpenSSL 這一個組件, 但是如果你還未安裝, 那麼執行一下命令
yum install -y openssl
首先要確定, vsFTPd 支援 SSL 加密
ldd $(which vsftpd) | grep ssl
如果回傳的結果中出現類似於這樣的字樣 :

不同的伺服器回傳的結果可能不同, 但是大致都是相同的, 一定會出現 libssl.so
的字樣
接下來我們需要為 vsFTPd 建立專門的憑證, 這裡我們將憑證放在 CentOS 專門為憑證準備的一個檔案夾 /etc/pki/tls/certs/
內
cd /etc/pki/tls/certs/
make 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 的檔案夾下
cp -a vsftpd.pem /etc/vsftpd
接下來配置 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=59000 #連接埠可以自己設定
pasv_max_port=59010 #連接埠可以自己設定, 請注意要比最小連接埠要大, 具體數量自訂
之後設定 firewall :
firewall-cmd --permanent --zone=public --add-port=59000-59010/tcp
連接埠要和剛剛設定的連接埠一致
然後重新開啟 vsFTPd 和 firewalld 服務
systemctl restart vsftpd
firewall-cmd --reload
完成之後我們可以使用 FileZilla 連線, 以下是連線訊息 :
狀態: 正在解析 xxx.xxx.xxx 的 IP Address 狀態: 正在連線到 0.0.0.0:21... 狀態: 連線已建立, 正在等候歡迎訊息... 狀態: 正在初始 TLS... 狀態: 正在驗證憑證... 狀態: TLS 連線已建立. 狀態: 記錄 狀態: 正在取得目錄列表... 狀態: 成功取得 "/dir/file" 的目錄
自創文章, 原著 : Jonny, 如若需要轉發, 在已經授權的情況下請註明出處 :《在 CentOS 7 下為 vsFTPd 增加 SSL 連線加密》https://jonny.vip/2018/07/10/%e5%9c%a8-centos-7-%e4%b8%8b%e7%82%ba-vsftpd-%e5%a2%9e%e5%8a%a0-ssl-%e9%80%a3%e7%b7%9a%e5%8a%a0%e5%af%86/
Leave a Reply