要防止未经授权访问Linux vsftpd服务器,需从防火墙规则、服务配置和权限管理三方面入手,具体步骤如下:
- 配置防火墙规则
- 开放必要端口:允许FTP控制端口(21)、数据端口(20)及被动模式端口范围(如30000-31000)通过防火墙。
- Ubuntu/Debian(ufw):
sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 30000:31000/tcp sudo ufw reload - CentOS/RHEL(firewalld):
sudo firewall-cmd --permanent --add-port=20/tcp sudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp sudo firewall-cmd --reload
- Ubuntu/Debian(ufw):
- 开放必要端口:允许FTP控制端口(21)、数据端口(20)及被动模式端口范围(如30000-31000)通过防火墙。
- 限制vsftpd服务访问
- 禁用匿名访问:在
/etc/vsftpd.conf中设置anonymous_enable=NO,仅允许本地用户登录。 - 启用chroot限制:通过
chroot_local_user=YES将用户限制在主目录,防止访问系统其他路径。 - 设置用户权限:使用
userlist_enable=YES指定允许登录的用户列表,配合userlist_deny=NO仅允许列表内用户访问。
- 禁用匿名访问:在
- 启用加密传输(可选但推荐)
- 配置SSL/TLS加密,在
/etc/vsftpd.conf中设置ssl_enable=YES,并指定证书路径,强制使用加密连接。
- 配置SSL/TLS加密,在
关键命令总结:
- 防火墙规则:
ufw或firewall-cmd开放20、21及被动模式端口。 - 服务配置:修改
/etc/vsftpd.conf,禁用匿名、启用chroot和用户列表限制。
通过以上设置,可有效阻止未经授权的访问,确保FTP服务器安全。