Два Proftpd + iptables
От: HunteX http://troyashka.ru/
Дата: 24.10.11 13:56
Оценка:
Всем привет! Есть сервер с IP 192.168.2.10. Также на сервере крутятся 2 виртуальные машины (виртуализация от KVM). Связующим звеном между сервером и виртуалками является виртуальный мост с IP 10.0.0.1. На каждой виртуальной машине установлен Proftpd 1.3.3f. Задача: необходимо предоставить доступ к FTP обеих виртуалок.

Для этого на сервере (хосте) сделано следующее:

iptables -t nat -I PREROUTING -p tcp -d 192.168.2.10 --dport 21 -j DNAT --to-destination 10.0.0.50:21
iptables -t nat -I PREROUTING -p tcp -d 192.168.2.10 --dport 221 -j DNAT --to-destination 10.0.0.60:21
iptables -t nat -I POSTROUTING -p tcp --sport 20 -j SNAT --to-source 192.168.2.10:20

(больше правил в iptables нет)

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp ports=21,221


политика iptables хоста по умолчанию везде ACCEPT

Проблема возникает при входе на 221 порт (то есть на виртуалку 10.0.0.60).
Соединение проходит успешно, логинится, но потом обламывается. Вот лог из Total Commander:
PASV
227 Entering Passive Mode (10,0,0,60,223,226).
PORT мой_внешний_(белый)_IP,93,8
200 PORT command successful
LIST
PORT failed, try PASV mode!
PASV
(---НЕ РАБОТАЕТ---)


+ еще заметил такую вещь: Так как у меня еще стоит шлюз, который делает порт-форвардинг на 192.168.2.10, получил в логах следующее:
При подключении на 21 порт:
PASV
227 Entering Passive Mode (мой_внешний_IP,180,146).
LIST
(---ВСЕ ОК---)


При подключении на 221 порт:
PASV
227 Entering Passive Mode (192,168,2,10,201,6).
PORT мой_внешний_IP,98,228
200 PORT command successful
LIST
PORT failed, try PASV mode!
PASV
(---НЕ РАБОТАЕТ---)


То есть, в первом случае (21 порт) при входе в пассивный режим я получаю внешний (белый) IP, а во втором случае (221 порт) я получаю 192.168.2.10, причем я уверен в железке (потому что там и настроить то что-то особенно не получится), проблема где-то на сервере.

И если это поможет чем-то:
root@lan:~# lsmod | grep ftp
nf_nat_ftp              2031  0
nf_conntrack_ftp        5537  1 nf_nat_ftp
nf_nat                 13388  3 nf_nat_ftp,ipt_MASQUERADE,iptable_nat
nf_conntrack           46535  6 nf_nat_ftp,nf_conntrack_ftp,ipt_MASQUERADE,iptab           le_nat,nf_nat,nf_conntrack_ipv4

root@lan:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        *               255.255.255.0   U     0      0        0 virbr1
192.168.2.0     *               255.255.255.0   U     1      0        0 eth0
default         192.168.2.111   0.0.0.0         UG    0      0        0 eth0
Re: Два Proftpd + iptables
От: ДимДимыч Украина http://klug.org.ua
Дата: 24.10.11 17:14
Оценка:
Здравствуйте, HunteX, Вы писали:

Не уверен, но можно попробовать:

HX>
HX>iptables -t nat -I PREROUTING -p tcp -d 192.168.2.10 --dport 21 -j DNAT --to-destination 10.0.0.50:21
HX>iptables -t nat -I PREROUTING -p tcp -d 192.168.2.10 --dport 221 -j DNAT --to-destination 10.0.0.60:21
HX>iptables -t nat -I POSTROUTING -p tcp --sport 20 -j SNAT --to-source 192.168.2.10:20

iptables -t nat -I POSTROUTING -p tcp -s 10.0.0.50 --sport 20 -j SNAT --to-source 192.168.2.10:20
iptables -t nat -I POSTROUTING -p tcp -s 10.0.0.60 --sport 20 -j SNAT --to-source 192.168.2.10:220
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[2]: Два Proftpd + iptables
От: HunteX http://troyashka.ru/
Дата: 24.10.11 17:17
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Здравствуйте, HunteX, Вы писали:


ДД>Не уверен, но можно попробовать:


HX>>
HX>>iptables -t nat -I PREROUTING -p tcp -d 192.168.2.10 --dport 21 -j DNAT --to-destination 10.0.0.50:21
HX>>iptables -t nat -I PREROUTING -p tcp -d 192.168.2.10 --dport 221 -j DNAT --to-destination 10.0.0.60:21
HX>>iptables -t nat -I POSTROUTING -p tcp --sport 20 -j SNAT --to-source 192.168.2.10:20

ДД>
ДД>iptables -t nat -I POSTROUTING -p tcp -s 10.0.0.50 --sport 20 -j SNAT --to-source 192.168.2.10:20
ДД>iptables -t nat -I POSTROUTING -p tcp -s 10.0.0.60 --sport 20 -j SNAT --to-source 192.168.2.10:220
ДД>



Это неправильное решение, так как подключенные ранее модулю делаю SNAT автоматически ... и еще, 220 порт не используется, по умолчанию юзается 20
Но все равно спасибо ...
Re: Два Proftpd + iptables
От: HunteX http://troyashka.ru/
Дата: 25.10.11 14:30
Оценка:
http://www.troyashka.ru/2011/10/proftpd.html
Re[2]: Два Proftpd + iptables
От: ДимДимыч Украина http://klug.org.ua
Дата: 25.10.11 17:18
Оценка:
Здравствуйте, HunteX, Вы писали:

HX>http://www.troyashka.ru/2011/10/proftpd.html


Укажите, для какой версии ядра. В 3.0 модули называются nf_nat_ftp и nf_conntrack_ftp. И nf_nat_ftp не принимает параметров.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.