在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服务器的访问。根据你的具体需求选择合适的方法进行配置。