# CentOS8通過VSFTPD配置FTPs的方法
## 前言
在當今的互聯網環境中,數據傳輸的安全性越來越受到重視。傳統的FTP協議由于采用明文傳輸,存在嚴重的安全隱患。FTPs(FTP over SSL/TLS)作為FTP的安全擴展,通過SSL/TLS加密技術為文件傳輸提供了安全保障。本文將詳細介紹在CentOS8系統上使用VSFTPD(Very Secure FTP Daemon)配置FTPs服務的完整過程。
## 一、FTPs簡介
### 1.1 FTPs與FTP的區別
FTPs(FTP Secure)是標準FTP協議的加密版本,主要區別在于:
- **加密方式**:FTPs使用SSL/TLS加密所有通信內容
- **端口差異**:FTPs默認使用990端口(控制連接)
- **安全性**:FTPs能有效防止中間人攻擊和數據竊聽
### 1.2 VSFTPD的優勢
VSFTPD作為Linux平臺最流行的FTP服務器之一,具有:
- 輕量級且高性能
- 出色的安全特性
- 支持虛擬用戶
- 良好的兼容性
## 二、環境準備
### 2.1 系統要求
- CentOS8操作系統(最小化安裝)
- 具有sudo權限的用戶
- 穩定的網絡連接
### 2.2 安裝必要組件
```bash
sudo dnf install -y vsftpd openssl
允許FTPs相關端口:
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=990/tcp
sudo firewall-cmd --permanent --add-port=40000-50000/tcp
sudo firewall-cmd --reload
sudo mkdir /etc/vsftpd/ssl
sudo chmod 700 /etc/vsftpd/ssl
使用OpenSSL生成自簽名證書:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /etc/vsftpd/ssl/vsftpd.key -out /etc/vsftpd/ssl/vsftpd.crt \
-subj "/C=CN/ST=Beijing/L=Beijing/O=YourCompany/CN=yourdomain.com"
參數說明:
- -days 3650
:證書有效期(10年)
- -newkey rsa:2048
:使用2048位RSA密鑰
- 請根據實際情況修改subj
參數
sudo chmod 600 /etc/vsftpd/ssl/vsftpd.*
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
sudo vi /etc/vsftpd/vsftpd.conf
添加/修改以下內容:
# 基本設置
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
# 安全設置
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
# SSL/TLS配置
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/ssl/vsftpd.crt
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key
require_ssl_reuse=NO
ssl_ciphers=HIGH
sudo adduser ftpuser
sudo passwd ftpuser
sudo mkdir -p /home/ftpuser/files
sudo chown ftpuser:ftpuser /home/ftpuser/files
sudo chmod 750 /home/ftpuser
sudo sestatus
sudo setsebool -P ftpd_full_access on
sudo setsebool -P ftpd_use_passive_mode on
sudo semanage fcontext -a -t public_content_rw_t "/home/ftpuser(/.*)?"
sudo restorecon -Rv /home/ftpuser
sudo systemctl enable vsftpd
sudo systemctl start vsftpd
sudo systemctl status vsftpd
使用支持FTPs的客戶端(如FileZilla)進行連接測試: - 主機:服務器IP地址 - 協議:FTP over TLS - 用戶:ftpuser - 密碼:設置的用戶密碼 - 端口:21
sudo tail -f /var/log/vsftpd.log
sudo mkdir /etc/vsftpd/virtual_users
sudo touch /etc/vsftpd/virtual_users/logins.txt
sudo vi /etc/vsftpd/virtual_users/logins.txt
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users/logins.txt /etc/vsftpd/virtual_users/vsftpd-virtual-user.db
在vsftpd.conf
中添加:
local_max_rate=102400 # 限制本地用戶速度為100KB/s
anon_max_rate=51200 # 限制匿名用戶速度為50KB/s
deny_file={*.exe,*.sh,*.php}
max_clients=50
max_per_ip=5
VSFTPD日志通常位于:
- /var/log/vsftpd.log
- /var/log/messages
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
xferlog_enable=YES
dual_log_enable=YES
log_ftp_protocol=YES
調整連接參數:
max_clients=100
max_per_ip=10
accept_timeout=60
connect_timeout=60
啟用主動模式優化:
port_enable=YES
port_promiscuous=YES
內核參數調優:
echo "net.ipv4.tcp_window_scaling = 1" >> /etc/sysctl.conf
echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
sysctl -p
通過本文的詳細指導,您應該已經成功在CentOS8系統上配置了安全的FTPs服務。VSFTPD配合SSL/TLS加密,能夠為企業文件傳輸提供可靠的安全保障。建議定期檢查服務器日志,及時更新軟件和證書,以維持服務的安全性和穩定性。
sudo systemctl restart vsftpd
sudo vsftpd /etc/vsftpd/vsftpd.conf
sudo netstat -tulnp | grep vsftpd
”`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。