Linux被动FTP无法正常工作的问题和解决方案

时间:2020-01-09 10:41:05  来源:igfitidea点击:

问题描述:正在运行带有FTP服务器和被动ftp客户端请求的GNU/Linux系统时,我无法正常工作。
在Linux iptables防火墙下如何解决此问题?

解决方法:ftp连接还需要使用主动或被动会话的数据传输通道。

确保防火墙没有阻止您的FTP会话。
如果端口打开,请确保IPtables允许被动ftp。
要解决此问题,请添加ip_conntrack_ftp模块。
执行以下命令以加载该模块:

# modprobe ip_conntrack_ftp

iptables被动ftp规则

相同的iptables防火墙脚本可处理传入的ftp请求,包括主动和被动连接。

#!/bin/bash
# Sample iptables shell script to deal with FTP server issues including
# active and passive FTP connections issues.
IPT=/sbin/iptables
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
 
# Setting default filter policy
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
 
# Allow FTP connections @ port 21
$IPT -A INPUT  -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
 
# Allow Active FTP Connections
$IPT -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT 
 
# Allow Passive FTP Connections
$IPT -A INPUT -p tcp --sport 1024: --dport 1024:  -m state --state ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 1024: --dport 1024:  -m state --state ESTABLISHED,RELATED -j ACCEPT 
 
### Add the rest of rules below ###
 
### log and drop everything else
$IPT -A INPUT -j LOG 
$IPT -A FORWARD -j LOG 
$IPT -A INPUT -j DROP