在CentOS系统中,您可以通过配置vsftpd(Very Secure FTP Daemon)来限制FTP访问权限。以下是一些常见的方法:
首先,创建一个专门用于FTP访问的用户:
sudo useradd ftpuser
sudo passwd ftpuser
编辑vsftpd的配置文件 /etc/vsftpd/vsftpd.conf
:
sudo vi /etc/vsftpd/vsftpd.conf
确保以下配置项正确设置:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=YES
:启用vsftpd监听。anonymous_enable=NO
:禁止匿名用户登录。local_enable=YES
:允许本地用户登录。write_enable=YES
:允许FTP写入权限。chroot_local_user=YES
:将本地用户锁定在其主目录中。allow_writeable_chroot=YES
:允许chroot目录可写(如果需要)。您可以编辑 /etc/hosts.deny
和 /etc/hosts.allow
文件来控制IP访问。
编辑 /etc/hosts.deny
:
sudo vi /etc/hosts.deny
添加以下内容以拒绝所有IP访问:
vsftpd: ALL
编辑 /etc/hosts.allow
:
sudo vi /etc/hosts.allow
添加允许访问的IP地址或IP范围:
vsftpd: 192.168.1.0/24
vsftpd: 192.168.1.100
您也可以使用iptables来限制IP访问:
sudo iptables -A INPUT -p tcp --dport 21 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
如果您需要使用虚拟用户而不是系统用户,可以按照以下步骤进行配置:
sudo yum install db4-utils
创建一个虚拟用户数据库文件:
sudo touch /etc/vsftpd/virtusers.txt
sudo db_load -T -t hash -f /etc/vsftpd/virtusers.txt /etc/vsftpd/virtusers.db
创建一个虚拟用户映射文件:
sudo touch /etc/pam.d/vsftpd-virt
sudo vi /etc/pam.d/vsftpd-virt
添加以下内容:
auth required pam_userdb.so db=/etc/vsftpd/virtusers
account required pam_userdb.so db=/etc/vsftpd/virtusers
编辑 /etc/vsftpd/vsftpd.conf
文件:
sudo vi /etc/vsftpd/vsftpd.conf
添加以下配置项:
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
pam_service_name=vsftpd-virt
user_sub_token=$USER
local_root=/home/$USER
chroot_local_user=YES
allow_writeable_chroot=YES
最后,重启vsftpd服务以应用更改:
sudo systemctl restart vsftpd
通过以上步骤,您可以有效地限制CentOS系统中VSFTP的访问权限。根据您的具体需求,可以选择适合的方法进行配置。