1. 安裝vsftpd和OpenSSL
首先確保系統已安裝vsftpd(FTP服務器軟件)和OpenSSL(證書生成工具)。若未安裝,執行以下命令安裝:
sudo yum install vsftpd openssl -y
2. 生成SSL證書和私鑰
使用OpenSSL生成自簽名證書(生產環境建議替換為CA頒發的證書)。執行以下命令生成有效期365天、RSA密鑰長度2048位的證書:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/vsftpd.key -out /etc/pki/tls/certs/vsftpd.pem
執行過程中需輸入國家、組織名稱、域名等信息(如無域名可直接回車),生成的私鑰(.key
)和證書(.pem
)將分別保存至指定路徑。
3. 配置vsftpd啟用SSL
編輯vsftpd主配置文件/etc/vsftpd/vsftpd.conf
,添加或修改以下關鍵參數以啟用SSL并強化安全性:
ssl_enable=YES # 啟用SSL/TLS加密
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem # 證書文件路徑
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key # 私鑰文件路徑
force_local_data_ssl=YES # 強制數據傳輸使用SSL
force_local_logins_ssl=YES # 強制登錄過程使用SSL
ssl_tlsv1=YES # 允許TLSv1協議(更安全)
ssl_sslv2=NO # 禁用SSLv2(不安全)
ssl_sslv3=NO # 禁用SSLv3(不安全)
allow_anon_ssl=NO # 禁止匿名用戶使用SSL
userlist_enable=YES # 啟用用戶列表控制
userlist_deny=NO # 允許用戶列表中的用戶登錄(需配合/etc/vsftpd/user_list使用)
保存并退出配置文件。
4. 配置防火墻放行流量
若系統啟用了firewalld防火墻,需允許FTP及HTTPS(SSL)流量通過:
sudo firewall-cmd --permanent --add-service=ftp # 允許FTP服務
sudo firewall-cmd --permanent --add-service=https # 允許HTTPS(SSL)服務
sudo firewall-cmd --reload # 重新加載防火墻規則
若使用iptables,需添加對應端口規則(FTP默認21端口,SSL加密流量同理)。
5. (可選)配置SELinux(若啟用)
若系統SELinux處于enforcing
模式,需調整策略以允許vsftpd訪問用戶目錄:
sudo setsebool -P ftp_home_dir on # 允許FTP訪問用戶家目錄
sudo setsebool -P allow_ftpd_full_access on # 允許FTP完全訪問(根據需求調整)
6. 重啟vsftpd服務并驗證狀態
應用配置變更,重啟vsftpd服務:
sudo systemctl restart vsftpd
檢查服務運行狀態,確保無報錯:
sudo systemctl status vsftpd
若顯示“active (running)”,則表示服務已正常啟動。
7. 測試SSL加密連接
使用支持SSL的FTP客戶端(如FileZilla)連接服務器:
注意事項
vsftpd.conf
中添加pasv_enable=YES
、pasv_min_port=1024
、pasv_max_port=1048
,并在防火墻中開放對應端口范圍。600
,證書文件設置為644
),防止未授權訪問:sudo chmod 600 /etc/pki/tls/private/vsftpd.key
sudo chmod 644 /etc/pki/tls/certs/vsftpd.pem