在CentOS系統中,使用VSFTPD(Very Secure FTP Daemon)作為FTP服務器時,需要正確配置防火墻以允許FTP流量。以下是配置防火墻的步驟:
首先,確保你的系統上安裝了firewalld或iptables。CentOS 7及更高版本默認使用firewalld。
sudo yum install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld
FTP使用兩個端口:21(控制連接)和20(數據連接)。你需要允許這兩個端口的流量。
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --reload
被動模式下,FTP客戶端會打開一個隨機端口來接收數據。你需要允許這些隨機端口的流量。通常,被動模式的端口范圍是49152到65535。
sudo firewall-cmd --permanent --add-port=49152-65535/tcp
sudo firewall-cmd --reload
你可以使用以下命令來驗證端口是否已經開放:
sudo firewall-cmd --list-all
你應該能看到類似以下的輸出,表明端口已經開放:
ports: tcp 21/tcp 20/tcp 49152-65535/tcp
如果你的系統啟用了SELinux,可能還需要配置SELinux以允許FTP流量。
sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access on
sestatus
確保SELinux處于enforcing模式。
最后,重啟VSFTPD服務以應用所有更改:
sudo systemctl restart vsftpd
現在,你的CentOS系統應該已經正確配置了防火墻,允許VSFTPD的FTP流量。