Ubuntu与vsftp防火墙配置
Ubuntu与vsFTP防火墙配置指南
一、前提:安装并配置vsftpd
在配置防火墙前,需先完成vsftpd的安装与基础配置,确保FTP服务正常运行。
1. 安装vsftpd
使用apt包管理器安装vsftpd:
sudo apt update
sudo apt install vsftpd
2. 配置vsftpd核心参数
编辑vsftpd主配置文件/etc/vsftpd.conf
,调整以下关键参数(以安全性和常用功能为例):
sudo nano /etc/vsftpd.conf
- 启用独立监听模式:
listen=YES
(避免通过xinetd管理,提升稳定性); - 禁用IPv6:
listen_ipv6=NO
(若无需IPv6支持,减少配置复杂度); - 禁止匿名登录:
anonymous_enable=NO
(防止未授权访问); - 允许本地用户登录:
local_enable=YES
(启用系统用户登录); - 开启写权限:
write_enable=YES
(允许用户上传/修改文件); - 限制用户至主目录:
chroot_local_user=YES
(将用户锁定在自家目录,提升安全性); - 允许chroot目录可写:
allow_writeable_chroot=YES
(解决chroot后目录不可写的问题); - 配置被动模式端口范围(可选但推荐):
pasv_enable=YES
(启用被动模式)、pasv_min_port=50000
(被动模式最小端口)、pasv_max_port=50100
(被动模式最大端口,范围建议≥100个端口,避免连接超时)。
配置完成后,保存文件并重启vsftpd服务使更改生效:
sudo systemctl restart vsftpd
二、配置Ubuntu防火墙(以UFW为例)
Ubuntu默认使用**UFW(Uncomplicated Firewall)**作为防火墙管理工具,以下是针对vsftpd的防火墙配置步骤:
1. 启用UFW
若尚未启用UFW,执行以下命令:
sudo ufw enable
启用后,UFW会默认阻止所有入站连接,仅允许出站连接。
2. 允许FTP控制连接
FTP控制连接用于客户端与服务器之间的命令交互(如登录、切换目录),默认使用21端口,需明确允许:
sudo ufw allow 21/tcp
3. 允许FTP数据连接
FTP数据连接用于文件传输,分为主动模式和被动模式,需根据实际使用场景配置:
-
主动模式:服务器主动连接客户端的动态端口(范围1024-65535),需允许该端口范围:
sudo ufw allow 1024:65535/tcp
注:主动模式需客户端开放高端口,易受防火墙拦截,建议优先使用被动模式。
-
被动模式:客户端主动连接服务器的指定端口范围(需与vsftpd配置中的
pasv_min_port
/pasv_max_port
一致),例如允许50000-50100端口:sudo ufw allow 50000:50100/tcp
4. 检查防火墙规则
执行以下命令确认规则是否生效:
sudo ufw status
正常输出应包含以下内容(以被动模式为例):
21/tcp ALLOW Anywhere
50000:50100/tcp ALLOW Anywhere
5. 重新加载防火墙规则
若修改了UFW规则,需重新加载以应用更改:
sudo ufw reload
三、常见问题排查
1. 被动模式连接失败
若客户端提示“无法建立数据连接”,需检查:
- vsftpd配置中的
pasv_min_port
/pasv_max_port
是否与UFW开放的端口范围一致; - UFW是否允许了该端口范围的TCP流量;
- 客户端防火墙是否允许出站连接到服务器的被动模式端口。
2. 主动模式连接失败
若客户端提示“服务器拒绝连接”,需检查:
- 客户端是否开启了高端口(1024-65535);
- UFW是否允许了该端口范围的TCP流量;
- 服务器防火墙是否允许入站连接到客户端的动态端口。
四、其他防火墙工具(iptables,可选)
若需使用iptables配置,可参考以下命令(需提前安装iptables-persistent
保存规则):
# 允许FTP控制连接
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# 允许FTP数据连接(主动模式)
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
# 允许FTP数据连接(被动模式)
sudo iptables -A INPUT -p tcp --dport 50000:50100 -j ACCEPT
# 保存规则
sudo apt install iptables-persistent
sudo netfilter-persistent save
通过以上步骤,即可完成Ubuntu系统下vsftpd与防火墙的配置,确保FTP服务安全、稳定地运行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu与vsftp防火墙配置
本文地址: https://pptw.com/jishu/725821.html