在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用户的访问权限。