Пассивный режим по умолчанию в ProFTPD

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
warlock
рядовой
Сообщения: 13
Зарегистрирован: 2008-05-15 16:45:04

Пассивный режим по умолчанию в ProFTPD

Непрочитанное сообщение warlock » 2010-02-05 13:06:04

Проинсталлировав Proftpd и активировав на нём пассивный режим, я столкнулся с тем, что
большинство клиентов используют по умолчанию активный режим и ни в какую не хотят
переключаться в пассивный, если не выставлена галочка. Сам же сервер по умолчанию
работает в активном режиме и разработчиками не предусмотрено переключение режимов
его состояния по умолчанию, за исключением режимов передачи данных (binary/ascii).

Подсмотрев за своим хостером я увидел интересное поведение его Proftpd-сервера

Код: Выделить всё

----------
Connect to: (05.02.2010 11:42:26)
hostname=vh15.mirohost.net
username=megap
startdir=
vh15.mirohost.net=193.178.145.193
220 ProFTPD 1.3.1rc3 Server (ProFTPD Mirohost.net) [193.178.145.193]
USER megap
331 Password required for megap
PASS ***********
230 User megap logged in
SYST
215 UNIX Type: L8
FEAT
211-Features:
 LANG en
 MDTM
 UTF8
 REST STREAM
 SIZE
211 End
Connect ok!
PWD
257 "/" is the current directory
Чтение каталога...
TYPE A
200 Type set to A
PORT 192,168,100,100,198,168
500 Illegal PORT command
PASV
227 Entering Passive Mode (193,178,145,193,202,27).
LIST
150 Opening ASCII mode data connection for file list
Загрузка
Ожидание ответа сервера...
226 Transfer complete
Тоесть получив команду:
PORT 192,168,100,100,198,168
c локальным адресом 192.168.100.100 он выдаёт
500 Illegal PORT command
И автоматом сваливается в пассивный режим:
PASV
227 Entering Passive Mode (193,178,145,193,202,27).


Поискав в интернете я наткнулся на такое решение
- запретить команду PORT т.е. вообще запретить активный режим.

Код: Выделить всё

  <Limit PORT>
    DenyAll
  </Limit>
Но её применение ни к чему не привело - всё равно мой сервер зависает на активном соединении

Код: Выделить всё

Connect to: (05.02.2010 11:52:38)
hostname=78.24.78.122
username=test
startdir=
220 ProFTPD 1.3.2c Server (SolarStone FTP Server) [78.24.78.122]
USER test
331 Password required for rejki
PASS ***********
230 User rejki logged in
SYST
215 UNIX Type: L8
FEAT
211-Features:
 XSHA256
 MDTM
 MFMT
 UTF8
 AUTH TLS
 MFF modify;UNIX.group;UNIX.mode;
 MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
 LANG en-US*
 XSHA1
 PBSZ
 PROT
 REST STREAM
 XCRC
 XMD5
 SIZE
211 End
Connect ok!
PWD
257 "/" is the current directory
Чтение каталога...
TYPE A
200 Type set to A
PORT 192,168,100,100,203,171
Конфиг сервера привожу ниже:

Код: Выделить всё


ServerName            "SolarStone"
ServerType              standalone
DefaultServer           on
ScoreboardFile         /var/run/proftpd.scoreboard
Port                        21
Umask                    022
MaxInstances          30
User                       ftp
Group                     ftp
PassivePorts           60000 65000
SQLAuthTypes            Plaintext
SQLAuthenticate         users
SQLConnectInfo          ftp@localhost:3306 ftp ftp
SQLUserInfo             `users_table` `username` `password` `uid` `gid` \
                        `homedir` `shell`

RequireValidShell off
SQLLogFile      /var/log/proftpd.log
SQLLog          PASS            counter_login
SQLNamedQuery   counter_login   UPDATE "`last_login`=UNIX_TIMESTAMP(), \
                                `login_count`=`login_count`+1 WHERE \
                                `username`='%u'" `users_table`
SQLLog          ERR_PASS        counter_err
SQLNamedQuery   counter_err     UPDATE "`last_err_login`=UNIX_TIMESTAMP(), \
                                `err_login_count`=`err_login_count`+1 WHERE \
                                `username`='%U'" `users_table`
SQLLog          RETR,STOR               log_story_transfer
SQLNamedQuery   log_story_transfer      INSERT "'',\
                                        UNIX_TIMESTAMP(),'%u',\
                                        '%f', '%b', '%h', \
                                        '%a', '%m', '%T'" \
                                         `xfer_table`
SQLLOG          ERR_RETR,ERR_STOR,ERR_DELE,ERR_RMD,ERR_RNTO\
                                        log_err_modify
SQLNamedQuery   log_err_modify          INSERT "'',\
                                        UNIX_TIMESTAMP(),\
                                        '%u', '%f', '%h', \
                                        '%a', '%m'" `xfer_errors`

DefaultRoot             ~       

<Limit PORT>
   DenyAll
</Limit>

<Directory ~>
AllowOverwrite          on
<Limit Write>
AllowAll
</Limit>
<Limit READ>
AllowAll
</Limit>
</Directory>

Никто не сталкивался с похожей ситуацией ???

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Пассивный режим по умолчанию в ProFTPD

Непрочитанное сообщение Alex Keda » 2010-03-13 11:05:58

клиентам инструкцию написать да и всё
Убей их всех! Бог потом рассортирует...