LINUX.ORG.RU
решено ФорумAdmin

не могу настроить proftpd за nat-ом


0

1

Добрый день

На фТП сервере (192.168.2.2) «крутится» Ubuntu 11.04, proftd ставил из репозитория, конфигурация такая:

Include /etc/proftpd/modules.conf
UseIPv6				on
IdentLookups			off
UseReverseDNS off
ServerName			"Debian"
ServerType			standalone
DeferWelcome			off
MultilineRFC2228		on
DefaultServer			on
ShowSymlinks			on
TimeoutNoTransfer		600
TimeoutStalled			600
TimeoutIdle			1200
DisplayLogin                    welcome.msg
DisplayChdir               	.message true
ListOptions                	"-l"
DenyFilter			\*.*/
DefaultRoot			~
Port				21
MasqueradeAddress		1.1.1.1
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>
MaxInstances			30
User				proftpd
Group				nogroup
AllowOverwrite			on
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
Include /etc/proftpd/conf.d/
Других настроек не делал

В качестве шлюза (192.168.2.1, внешний 1.1.1.1) стоит Ubuntu 11.04, команды/настройки iptables такие:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p igmp -j ACCEPT
iptables -A FORWARD -s 1.1.1.1/24 -p udp -j ACCEPT

iptables -A INPUT -s 192.168.2.0/255.255.255.0 -i eth1 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -p udp -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -j MASQUERADE

iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 80 -j DNAT --to-destination 192.168.2.2:80
iptables -A FORWARD -i eth0 -d 192.168.2.2 -p tcp --dport 80 -j ACCEPT

#пробрасываю порты ftp
iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 21 -j DNAT --to-destination 192.168.2.2:21
iptables -A FORWARD -i eth0 -d 192.168.2.2 -p tcp --dport 21 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 20 -j DNAT --to-destination 192.168.2.2:20
iptables -A FORWARD -i eth0 -d 192.168.2.2 -p tcp --dport 20 -j ACCEPT

filezilla мне пишет:

Статус:	Соединяюсь с 1.1.1.1:21...
Статус:	Соединение установлено, ожидание приглашения...
Ответ:	220 ProFTPD 1.3.3d Server (Debian) [1.1.1.1]
Команда:	USER user
Ответ:	331 Необходим пароль для пользователя user
Команда:	PASS **********
Ответ:	230 Пользователь user подключён
Команда:	SYST
Ответ:	215 UNIX Type: L8
Команда:	FEAT
Ответ:	211-Features:
Ответ:	 MDTM
Ответ:	 MFMT
Ответ:	 TVFS
Ответ:	 UTF8
Ответ:	 MFF modify;UNIX.group;UNIX.mode;
Ответ:	 MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
Ответ:	 SITE MKDIR
Ответ:	 SITE RMDIR
Ответ:	 SITE UTIME
Ответ:	 LANG en-US.UTF-8;en-US
Ответ:	 SITE SYMLINK
Ответ:	 REST STREAM
Ответ:	 SIZE
Ответ:	211 Конец
Команда:	OPTS UTF8 ON
Ответ:	200 UTF-8 активирован
Статус:	Соединение установлено
Статус:	Получение списка каталогов...
Команда:	PWD
Ответ:	257 "/" является текущей директорией
Команда:	TYPE I
Ответ:	200 Тип установлен в I
Команда:	PASV
Ответ:	227 Entering Passive Mode (1,1,1,1,166,221).
Команда:	MLSD
Ошибка:	Превышено время ожидания соединения
Ошибка:	Не могу получить список каталогов!

Пожалуйста, подскажите что я не так настроил.

★★

Читаем про пассивный и активный режимы ФТП сервера!!! И что куда при этом коннектится!

Nefer
()
Ответ на: комментарий от greek_31

А есть какой-нибудь способ запустить за нат фтп в активном режиме? С l7 заменой соответствующих полей?

spunky ★★
()

В настройках iptables написал так:

#пробрасываю порты ftp
iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 21 -j DNAT --to-destination 192.168.2.2:21
iptables -A FORWARD -i eth0 -d 192.168.2.2 -p tcp --dport 21 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 49152:65534 -j DNAT --to-destination 192.168.2.2:49152-65534
iptables -A FORWARD -i eth0 -d 192.168.2.2 -p tcp --dport 49152:65534 -j ACCEPT

В конфигурации proftpd установил значение PassivePorts 49152 65534

Теперь все работает. Всем спасибо.

dicos ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.