Linux FTPServer如何设置防火墙

175
2025/3/11 3:32:24
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Linux系统上设置FTP服务器的防火墙,通常涉及以下几个步骤:

1. 确认FTP服务使用的端口

FTP服务默认使用以下两个端口:

  • 21:用于控制连接(命令通道)
  • 20:用于数据传输(数据通道)

此外,被动模式(PASV)FTP还需要开放一系列动态端口范围。

2. 配置防火墙规则

你可以使用iptablesfirewalld来配置防火墙规则。以下是两种方法的示例:

使用 iptables

# 允许FTP控制连接(端口21)
sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

# 允许FTP数据连接(端口20)
sudo iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT

# 允许被动模式FTP数据连接(假设被动模式端口范围为50000-50050)
sudo iptables -A INPUT -p tcp --dport 50000:50050 -m state --state NEW,ESTABLISHED -j ACCEPT

# 允许已建立的连接
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 保存iptables规则
sudo iptables-save > /etc/iptables/rules.v4

使用 firewalld

# 启用firewalld服务
sudo systemctl start firewalld
sudo systemctl enable firewalld

# 允许FTP控制连接(端口21)
sudo firewall-cmd --permanent --add-port=21/tcp

# 允许FTP数据连接(端口20)
sudo firewall-cmd --permanent --add-port=20/tcp

# 允许被动模式FTP数据连接(假设被动模式端口范围为50000-50050)
sudo firewall-cmd --permanent --add-port=50000-50050/tcp

# 重新加载firewalld配置
sudo firewall-cmd --reload

# 查看当前firewalld配置
sudo firewall-cmd --list-all

3. 配置FTP服务器以使用被动模式

确保你的FTP服务器配置文件(通常是/etc/vsftpd/vsftpd.conf/etc/proftpd/proftpd.conf)中启用了被动模式,并设置了正确的被动模式端口范围。

例如,在vsftpd中:

pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50050

proftpd中:

PassivePorts 50000 50050

4. 重启FTP服务

最后,重启FTP服务以应用新的配置。

# 对于vsftpd
sudo systemctl restart vsftpd

# 对于proftpd
sudo systemctl restart proftpd

5. 验证防火墙规则

确保防火墙规则已正确应用,并且FTP服务可以正常工作。

# 检查iptables规则
sudo iptables -L -v

# 检查firewalld状态
sudo firewall-cmd --state

通过以上步骤,你应该能够成功配置Linux系统上的FTP服务器防火墙。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: linux文件句柄名称如何看