Установил ftpd на linux (RH9). Настроил netfilnet + запустил модуль ip-conntrack_ftp. В итоге пассивный режим не работает, в логах после каждой попытки коннекта:
Jan 26 14:27:37 gw kernel: conntrack_ftp: partial 227 4144999967+24.
Насколько я понял из поиска в гугле, он не может полностью собрать сегмент, где находятся сведения об устанавливаемом соединении, т.е. строка:
227 Entering Passive Mode (xx,xxx,xxx,xxx,18,0)
.
Загруженные модули, имеющие отношение к ip:
.
Module Size Used by Not tainted
ipt_MASQUERADE 2200 16 (autoclean)
ipt_state 1048 2 (autoclean)
ip_nat_ftp 4112 0 (unused)
iptable_nat 21720 2 [ipt_MASQUERADE ip_nat_ftp]
ip_conntrack_ftp 5296 1
ip_conntrack 26976 3 [ipt_MASQUERADE ipt_state ip_nat_ftp iptable_nat ip_conntrack_ftp]
iptable_filter 2412 1 (autoclean)
ip_tables 15096 7 [ipt_REJECT ipt_MASQUERADE ipt_state iptable_nat iptable_filter]
.
Правила из rc.firewall, имеющие отношение к ситуации:
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp --src $MY_EXT_NET --dport 21 -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp --src $MY_EXT_NET --dport 20 -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
где
$MY_EXT_NET -- моя наружная сеть с реальными адресами.
$EXTIF -- внутренний интерфейс
$INTIF -- наружный интерфейс.
.
Для внутренней сети включен NAT и разрешена марщрутизация.
.
Я так понял, что самые вероятные причины:
1. Я что-то упустил
2. Надо выставить дефрагментацию пакетов при поступлении в netfilter, перед тем, как его будут анализировать.
3. Баг в ядре (наименее вероятен).
Версия ядра -- 2.4.20-8 от RH
.
Как сделать 2 пункт (если его не делает ядро само) я так и не смог найти.
может у кого есть какие идеи / опыт?
|