在CentOS上限制FTP服務器訪問可以通過多種方法實現,包括使用防火墻規則、配置vsftpd服務器以及使用SELinux策略。以下是一些常見的方法:
安裝并啟用firewalld(如果尚未安裝):
sudo yum install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
允許FTP流量: FTP使用兩個端口,一個是控制連接(通常是21),另一個是數據連接(通常是20)。你可以使用firewalld來允許這些端口的流量。
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --reload
安裝vsftpd(如果尚未安裝):
sudo yum install vsftpd
編輯vsftpd配置文件:
sudo vi /etc/vsftpd/vsftpd.conf
在配置文件中進行以下修改:
限制用戶訪問:
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
限制IP訪問:
tcp_wrappers=YES
配置被動模式端口范圍:
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
重啟vsftpd服務:
sudo systemctl restart vsftpd
檢查SELinux狀態:
sestatus
如果SELinux是啟用的,可以設置SELinux策略來限制FTP訪問:
sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access off
安裝并啟用acl(如果尚未安裝):
sudo yum install acl
sudo systemctl enable acl
sudo systemctl start acl
編輯/etc/fstab文件,為FTP目錄設置ACL:
sudo vi /etc/fstab
添加以下行:
/path/to/ftp/directory /path/to/mountpoint xfs defaults,acl 0 2
重新掛載目錄:
sudo mount -o remount /path/to/mountpoint
設置ACL規則:
sudo setfacl -m u:username:rwx /path/to/ftp/directory
sudo setfacl -m u:username:--- /path/to/ftp/directory
通過以上方法,你可以有效地限制CentOS上FTP服務器的訪問。根據你的具體需求選擇合適的方法進行配置。