在CentOS上限制vsftpd访问可以通过以下几种方法实现:
编辑vsftpd配置文件:
打开/etc/vsftpd/vsftpd.conf
文件。
sudo vi /etc/vsftpd/vsftpd.conf
添加IP地址限制: 在配置文件中添加或修改以下行,以限制特定IP地址访问FTP服务器。
tcp_wrappers=YES
然后编辑/etc/hosts.deny
和/etc/hosts.allow
文件来控制访问。
在/etc/hosts.deny
中添加:
vsftpd: ALL
在/etc/hosts.allow
中添加允许访问的IP地址:
vsftpd: 192.168.1.100 192.168.1.101
创建一个专用FTP用户:
sudo adduser ftpuser
sudo passwd ftpuser
配置vsftpd使用该用户:
编辑/etc/vsftpd/vsftpd.conf
文件,确保以下配置项存在并正确设置:
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
创建用户列表文件:
创建并编辑/etc/vsftpd/user_list
文件,添加允许访问的用户。
sudo vi /etc/vsftpd/user_list
添加用户名:
ftpuser
启用防火墙(如果尚未启用):
sudo systemctl start firewalld
sudo systemctl enable firewalld
添加FTP服务规则:
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --zone=public --add-port=21/tcp
sudo firewall-cmd --reload
如果SELinux处于 enforcing 模式,可能需要调整SELinux策略。
检查SELinux状态:
sestatus
临时设置SELinux为permissive模式(仅用于测试):
sudo setenforce 0
调整SELinux策略:
如果需要永久更改,可以编辑/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=permissive
。
一些FTP服务器软件提供了更高级的访问控制功能,例如ProFTPD。如果需要更复杂的访问控制,可以考虑使用这些软件。
通过以上方法,您可以在CentOS上有效地限制vsftpd的访问。