在CentOS系統中,要限制vsftpd用戶的訪問,可以通過以下幾種方法實現:
安裝vsftpd(如果尚未安裝):
sudo yum install vsftpd
配置vsftpd:
編輯/etc/vsftpd/vsftpd.conf
文件,確保以下配置項存在并正確設置:
chroot_local_user=YES
allow_writeable_chroot=YES
重啟vsftpd服務:
sudo systemctl restart vsftpd
創建用戶并設置密碼:
sudo useradd -m ftpuser
sudo passwd ftpuser
驗證chroot jail: 確保用戶被限制在其主目錄中。你可以嘗試登錄FTP并查看當前目錄。
編輯vsftpd配置文件:
sudo vi /etc/vsftpd/vsftpd.conf
添加IP地址限制: 在配置文件中添加以下行來限制特定IP地址的訪問:
tcp_wrappers=YES
然后,在/etc/hosts.deny
和/etc/hosts.allow
文件中進行配置:
echo "vsftpd: ALL" | sudo tee -a /etc/hosts.deny
echo "vsftpd: 192.168.1.1" | sudo tee -a /etc/hosts.allow
重啟vsftpd服務:
sudo systemctl restart vsftpd
啟用防火墻(如果尚未啟用):
sudo systemctl start firewalld
sudo systemctl enable firewalld
添加FTP端口規則:
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --reload
限制特定IP訪問FTP端口:
sudo firewall-cmd --permanent --zone=trusted --add-source=192.168.1.1
sudo firewall-cmd --permanent --zone=trusted --add-service=ftp
sudo firewall-cmd --reload
如果你的系統啟用了SELinux,可能需要調整相關策略以允許vsftpd正常工作。
檢查SELinux狀態:
sestatus
臨時禁用SELinux(僅用于測試):
sudo setenforce 0
調整SELinux策略:
如果需要,可以編輯/etc/selinux/config
文件,將SELINUX=enforcing
改為SELINUX=permissive
,然后重啟系統。
通過以上方法,你可以有效地限制vsftpd用戶的訪問權限。