Добрый день!
Не работает FTP через NAT.
Имеется Linux 7.2 машина. eth0 - смотрит в 1 локалку, ppp0 - соединяется с ftp сервером в 2 локалке. Необходимо выходить на ftp из 1 локалки.
В качестве Nat
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
все остальное ACCEPT
модули ip_conntrack_ftp ip_nat_ftp подгружены.
Из 1 локалки ping на ftp проходит. Ftp соединение выдаёт unnknown error number. C машины Linux ftp соединение устанавливается.
Посмотрите сниффером ftp-сессию клиента из 1 локалки с сервером.
>Посмотрите сниффером ftp-сессию клиента из 1 локалки с сервером.А такое правило присутствует
$IPTABLES -A INPUT -i $INTER -m state --state ESTABLISHED,RELATED -j ACCEPT
Могет конечно и не прав быть.
>>Посмотрите сниффером ftp-сессию клиента из 1 локалки с сервером.
>
>А такое правило присутствует
>
>$IPTABLES -A INPUT -i $INTER -m state --state ESTABLISHED,RELATED -j ACCEPT
>
>Могет конечно и не прав быть.
правила на INPUT по умолчанию ACCEPT
>Посмотрите сниффером ftp-сессию клиента из 1 локалки с сервером.
Ftp сессия вообще не устанавливается :(
Покажите все-таки
iptables -nvL
iptables -nvL -t nat
>Покажите все-таки
>iptables -nvL
>iptables -nvL -t natiptables -nvL:
Chain INPUT (policy ACCEPT 7444 packets, 656K bytes)
pkts bytes target prot opt in out source destinationChain FORWARD (policy ACCEPT 34 packets, 2118 bytes)
pkts bytes target prot opt in out source destinationChain OUTPUT (policy ACCEPT 48 packets, 2395 bytes)
pkts bytes target prot opt in out source destinationiptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 708 packets, 123K bytes)
pkts bytes target prot opt in out source destinationChain POSTROUTING (policy ACCEPT 5 packets, 348 bytes)
pkts bytes target prot opt in out source destination
2 120 MASQUERADE tcp -- * * 0.0.0.0/0 0.0.0.0/0
14 900 MASQUERADE all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0Chain OUTPUT (policy ACCEPT 6 packets, 426 bytes)
pkts bytes target prot opt in out source destination
>Chain POSTROUTING (policy ACCEPT 5 packets, 348 bytes)
> pkts bytes target prot opt in
> out source destination
> 2 120 MASQUERADE tcp -- * * 0.0.0.0/0 0.0.0.0/0
> 14 900 MASQUERADE all -- * * 0.0.0.0/0 0.0.0.0/0
> 0 0 MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0
А вот это непонятно. Удалите все правила из таблицы nat, а потом добавьте
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
>>Chain POSTROUTING (policy ACCEPT 5 packets, 348 bytes)
>> pkts bytes target prot opt in
>> out source destination
>> 2 120 MASQUERADE tcp -- * * 0.0.0.0/0 0.0.0.0/0
>> 14 900 MASQUERADE all -- * * 0.0.0.0/0 0.0.0.0/0
>> 0 0 MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0
>А вот это непонятно. Удалите все правила из таблицы nat, а потом
>добавьте
>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
всё сделал, привожу результат iptables-save
# Generated by iptables-save v1.2.3 on Wed May 4 13:14:09 2005
*mangle
:PREROUTING ACCEPT [100:9013]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Wed May 4 13:14:09 2005
# Generated by iptables-save v1.2.3 on Wed May 4 13:14:09 2005
*filter
:INPUT ACCEPT [100:9013]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Wed May 4 13:14:09 2005
# Generated by iptables-save v1.2.3 on Wed May 4 13:14:09 2005
*nat
:PREROUTING ACCEPT [8:1837]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Wed May 4 13:14:09 2005
СЕЙЧАС iptables -nvL -t nat:Chain PREROUTING (policy ACCEPT 39 packets, 6617 bytes)
pkts bytes target prot opt in out source destinationChain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
12 720 MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destinationПричём количество пропущеных пакетов возрастает только после команды ping
с рабочей станции локальной сети 1
Здесь подробнее. От кого пакеты уходят, от кого ответы есть/нет и т.п.
>Здесь подробнее. От кого пакеты уходят, от кого ответы есть/нет и т.п.
>С клиента в сети 1 проходит пинг FTP сервера в сети 2.
при этом увеличивается счётчик пакетов, прошедших через ppp0Ftp сессия С клиента в сети 1 на FTP сервер в сети 2 не устанавливается.
при этом счётчик пакетов прошедших через ppp0 не увеличивается
Очень ценная информация. Вы можете описать, что Вы видите сниффером? Пакеты от клиента на ftp-сервер приходят на локальный интерфейс? Уходят с ppp0? Есть ответы от сервера на ppp0? Уходят ли они через локальный интерфейс к клиенту?
>Очень ценная информация. Вы можете описать, что Вы видите сниффером? Пакеты
>от клиента на ftp-сервер приходят на локальный интерфейс? Уходят с ppp0?
>Есть ответы от сервера на ppp0? Уходят ли они через локальный
>интерфейс к клиенту?
пакеты от клиента при попытке установить FTP сессию доходят до eth0, т.к.
увеличивается счётчик PREROUTING. через ppp0 пакеты уже не проходят. От ftp сервера соответственно никаких пакетов не идёт, т.к. к нему ничего не приходит.
Странно. Получается, что даже TCP-сессия не устанавливается? Раз ping проходит, то маршрутизация работает. Попробуйте на клиенте включить режим passive и посмотреть все-таки сниффером, что происходит.
>Странно. Получается, что даже TCP-сессия не устанавливается? Раз ping проходит, то маршрутизация
>работает. Попробуйте на клиенте включить режим passive и посмотреть все-таки сниффером,
>что происходит.Спасибо за потраченное на меня время.
Достал меня этот трабл.
Решил поставить версию 8.0