Linux vsftpd防火墻規則配置:強化FTP服務器安全
FTP服務依賴**控制端口(21/tcp)**用于命令傳輸,**數據端口(20/tcp)**用于主動模式數據傳輸,被動模式端口范圍(如40000-50000/tcp)用于被動模式數據傳輸(需在vsftpd配置中開啟pasv_enable=YES并設置端口范圍)。以下是不同防火墻工具的配置方法:
# 允許FTP控制端口(21/tcp)
sudo ufw allow 21/tcp
# 允許FTP數據端口(20/tcp,主動模式必需)
sudo ufw allow 20/tcp
# 允許被動模式端口范圍(自定義,如40000-50000)
sudo ufw allow 40000:50000/tcp
# 啟用防火墻并檢查狀態
sudo ufw enable
sudo ufw status
# 允許FTP服務(自動包含21/tcp和20/tcp)
sudo firewall-cmd --permanent --add-service=ftp
# 允許被動模式端口范圍(自定義,如40000-50000)
sudo firewall-cmd --permanent --add-port=40000-50000/tcp
# 重新加載防火墻配置
sudo firewall-cmd --reload
防火墻規則需與vsftpd配置協同,避免因配置不當導致安全漏洞:
/etc/vsftpd.conf)# 禁用匿名登錄(防止未授權訪問)
anonymous_enable=NO
# 允許本地用戶登錄
local_enable=YES
# 開啟寫入權限(根據需求設置,若僅需下載可設為NO)
write_enable=YES
# 限制用戶在其主目錄(防止訪問系統其他目錄)
chroot_local_user=YES
# 允許chroot目錄可寫(若用戶目錄需上傳文件)
allow_writeable_chroot=YES
# 設置被動模式端口范圍(與防火墻規則一致)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
# 限制登錄嘗試(可選,需配合pam_tally2模塊)
max_login_attempts=3
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd # 開機自啟
通過/etc/hosts.allow和/etc/hosts.deny限制訪問IP:
# 僅允許特定IP訪問(如192.168.1.0/24)
echo "vsftpd: 192.168.1.0/24" | sudo tee -a /etc/hosts.allow
echo "vsftpd: ALL" | sudo tee -a /etc/hosts.deny
若系統啟用SELinux,需調整策略允許FTP訪問用戶目錄:
# 允許FTP訪問用戶主目錄
sudo setsebool -P ftp_home_dir on
# 允許FTP完全訪問(謹慎使用,生產環境建議細化權限)
sudo setsebool -P allow_ftpd_full_access off
# 設置用戶目錄SELinux上下文
sudo chcon -Rv --type=public_content_t /home/ftpuser
加密傳輸數據,防止中間人攻擊:
# 生成SSL證書(自簽名,生產環境建議使用CA簽發)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt
# 修改vsftpd.conf
echo "ssl_enable=YES" | sudo tee -a /etc/vsftpd.conf
echo "rsa_cert_file=/etc/ssl/certs/vsftpd.crt" | sudo tee -a /etc/vsftpd.conf
echo "rsa_private_key_file=/etc/ssl/private/vsftpd.key" | sudo tee -a /etc/vsftpd.conf
echo "force_local_logins_ssl=YES" | sudo tee -a /etc/vsftpd.conf
echo "force_local_data_ssl=YES" | sudo tee -a /etc/vsftpd.conf
# 重啟vsftpd
sudo systemctl restart vsftpd
/var/log/vsftpd.log(或/var/log/messages),監控可疑登錄嘗試(如多次失?。?。sudo apt update && sudo apt upgrade vsftpd # Debian/Ubuntu
sudo yum update vsftpd # CentOS/RHEL
通過以上步驟,可有效利用防火墻規則配合vsftpd配置,顯著提升Linux FTP服務器的安全性,防范未授權訪問、數據泄露等風險。