溫馨提示×

CentOS FTPServer防火墻配置指南

小樊
34
2025-10-22 00:10:53
欄目: 智能運維

CentOS FTP Server防火墻配置指南

一、前置準備:安裝并啟動FTP服務

在配置防火墻前,需確保已安裝并啟動FTP服務(以vsftpd為例,CentOS默認倉庫提供):

# 安裝vsftpd
sudo yum install -y vsftpd

# 啟動服務并設置開機自啟
sudo systemctl start vsftpd
sudo systemctl enable vsftpd

# 檢查服務狀態(確保無報錯)
sudo systemctl status vsftpd

二、配置防火墻(以firewalld為例,CentOS 7/8/9默認使用)

firewalld是CentOS主流版本的默認防火墻管理工具,需通過以下步驟開放FTP所需端口:

1. 開放FTP核心端口

FTP協議依賴**控制端口(21/tcp)**用于命令交互,**數據端口(20/tcp)**用于主動模式數據傳輸。需永久開放這兩個端口:

# 開放控制端口(21/tcp)
sudo firewall-cmd --permanent --add-port=21/tcp

# 開放數據端口(20/tcp)
sudo firewall-cmd --permanent --add-port=20/tcp

2. 開放被動模式端口范圍

被動模式(PASV)下,FTP服務器會隨機開放一個高端口(范圍需提前配置)供客戶端連接。需根據vsftpd配置指定端口范圍(如50000-50050),并開放該范圍:

# 開放被動模式端口范圍(示例:50000-50050)
sudo firewall-cmd --permanent --add-port=50000-50050/tcp

:被動模式端口范圍需與vsftpd配置文件(/etc/vsftpd/vsftpd.conf)中的pasv_min_portpasv_max_port一致,否則客戶端無法連接。

3. 重新加載防火墻配置

修改防火墻規則后,需重新加載以使更改生效:

sudo firewall-cmd --reload

4. 驗證端口開放狀態

通過以下命令確認FTP相關端口已成功開放:

# 查看所有開放端口
sudo firewall-cmd --list-all

# 或檢查特定端口(如21、50000)
sudo firewall-cmd --query-port=21/tcp    # 應返回"yes"
sudo firewall-cmd --query-port=50000/tcp # 應返回"yes"

三、配置SELinux(若啟用)

若系統啟用了SELinux(默認Enforcing模式),需調整策略以允許FTP訪問用戶目錄:

1. 允許FTP訪問用戶主目錄

# 設置FTP用戶可訪問其主目錄
sudo setsebool -P ftp_home_dir on

2. 允許FTP服務器完全訪問(可選)

若需允許FTP用戶訪問系統其他目錄(謹慎使用):

sudo setsebool -P allow_ftpd_full_access on

3. 檢查SELinux布爾值

可通過以下命令查看與FTP相關的SELinux策略:

getsebool -a | grep ftp

四、優化FTP配置(提升安全性)

為避免不必要的風險,需調整vsftpd配置文件(/etc/vsftpd/vsftpd.conf):

# 禁止匿名訪問
anonymous_enable=NO

# 允許本地用戶登錄
local_enable=YES

# 允許用戶寫入文件(需配合chroot)
write_enable=YES

# 將用戶限制在其主目錄(增強安全性)
chroot_local_user=YES

# 允許例外用戶(如需管理員訪問,可添加用戶名到/etc/vsftpd/chroot_list)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

# 允許可寫目錄(解決chroot后無法寫入問題)
allow_writeable_chroot=YES

# 開啟被動模式
pasv_enable=YES

# 設置被動模式端口范圍(與防火墻配置一致)
pasv_min_port=50000
pasv_max_port=50050

# 指定服務器IP(避免客戶端連接錯誤)
pasv_address=your_server_public_ip

修改后重啟vsftpd服務:

sudo systemctl restart vsftpd

五、測試FTP連接

使用FTP客戶端(如ftp、FileZilla)連接服務器,驗證防火墻配置是否生效:

# 使用命令行FTP客戶端測試
ftp your_server_ip

輸入用戶名和密碼后,嘗試上傳/下載文件,確認操作正常。

注意事項

  1. 端口沖突:確保被動模式端口范圍未被其他服務占用(可通過netstat -tuln檢查)。
  2. 生產環境建議:優先使用SFTP(SSH File Transfer Protocol)替代FTP,SFTP通過SSH加密傳輸,無需額外開放端口(僅需開放22/tcp)。
  3. 備份配置:修改配置文件前,建議備份原文件(如cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女