Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
proftpd, CharsetLocal KOI8-R CharsetRemote CP1251
 
Добрый день много уважаемые Олл!
Есть ОС freebsd 6.2, proftpd 1.3.1rc3 (ставился из портов с опциями CYRFIX и CODECONV)
Теперь проблема
когда в конфиг добавляю опции
CharsetLocal KOI8-R
CharsetRemote CP1251
IE перестает работать с фтп, после ввода логина пароля пишет что "The FTP session was terminaled", без этих опций работает нормально
а например TotalCommander отлично рабатает((
В чем грабли?

Конфиг proftpd
Код
cat /usr/local/etc/proftpd.conf


ServerName                      "FTP Server"
ServerType                      standalone
DefaultServer                   On
ScoreboardFile                  /var/run/proftpd.scoreboard
PassivePorts 49152 65534
ServerIdent on "Welcome toFTP"
ShowSymlinks off
# Port 21 is the standard FTP port.
Port                            21
DefaultAddress                  192.168.1.1
SocketBindTight                 on
CharsetLocal                    KOI8-R
CharsetRemote                   CP1251
Umask                           022
MaxInstances                    30
CommandBufferSize               512
User                            nobody
Group                           nogroup
RootLogin                       off
DefaultRoot ~
AllowOverwrite          on

<Limit SITE_CHMOD>
  DenyAll
</Limit>

SystemLog /var/log/proftpd-system.log
 
что при этом в логе proftpd? что, если его запустить с debug и посмотреть?
 
Ничего хорошего,
FTP session opened.
ProFTPD terminating (signal 11)
FTP session closed.
нашел темку читаю
http://forums.proftpd.org/smf/index.php?topic=1764.0
 
Погаси демона и перезапусти его в консоли в режиме отладки без детача от контрольного терминала 'как proftpd -n -d 10'
 
запустил proftpd -n -d 10 и попытался залогинится с помощью IE
меня слущает   эта строчка - dispatching PRE_CMD command 'OPTS utf8 on' to mod_codeconv
причем здесь UTF-8?

Код
 setting default address to XX.XX.XX.XX
 - retrieved UID 65534 for user 'nobody'
 - retrieved GID 65533 for group 'nogroup'
 - SocketBindTight in effect, ignoring DefaultServer
 -
 - Config for FTP Server:
 - Limit
 -  DenyAll
 - DefaultServer
 - PassivePorts
 - ServerIdent
 - ShowSymlinks
 - CharsetLocal
 - CharsetRemote
 - Umask
 - CommandBufferSize
 - UserID
 - UserName
 - GroupID
 - GroupName
 - RootLogin
 - DefaultRoot
 - DefaultRoot
 - DefaultRoot
 - DefaultRoot
 - DefaultRoot
 - DefaultRoot
 - AllowOverwrite
 - MaxClients
 - MaxLoginAttempts
 - ShowSymlinks
 - ROOT PRIVS at mod_delay.c:299
 - RELINQUISH PRIVS at mod_delay.c:301
 - retrieved group ID: 65534
 - setting group ID: 65534
 - SETUP PRIVS at main.c:2847
 - ROOT PRIVS at main.c:1926
 - RELINQUISH PRIVS at main.c:1933
 - ROOT PRIVS at main.c:2257
 - opening scoreboard '/var/run/proftpd.scoreboard'
 - RELINQUISH PRIVS at main.c:2283
 - ROOT PRIVS at inet.c:250
 - RELINQUISH PRIVS at inet.c:267
 - ROOT PRIVS at inet.c:343
 - RELINQUISH PRIVS at inet.c:406
 - ProFTPD 1.3.1rc3 (devel) (built четверг, 12 июля 2007 г. 18:1                                                                              4:09 (MSD)) standalone mode STARTUP
 - ROOT PRIVS at pidfile.c:42
 - RELINQUISH PRIVS at pidfile.c:44
 - ROOT PRIVS at main.c:1054
 - RELINQUISH PRIVS at main.c:1058
 - ROOT PRIVS at main.c:903
 - SETUP PRIVS at main.c:908
 - FTP session requested from unknown class
 - performing module session initializations
 - ROOT PRIVS at mod_delay.c:1221
 - RELINQUISH PRIVS at mod_delay.c:1223
 - ROOT PRIVS at mod_auth.c:151
 - opening scoreboard '/var/run/proftpd.scoreboard'
 - RELINQUISH PRIVS at mod_auth.c:153
 - performing ident lookup
 - ROOT PRIVS at inet.c:250
 - RELINQUISH PRIVS at inet.c:267
 - ident lookup returned 'UNKNOWN'
 - connected - local  : XX.XX.XX.XX:21
 - connected - remote : XX.XX.XX.XX:61017
 - FTP session opened.
 - setting CommandBufferSize to 512
 - dispatching PRE_CMD command 'USER magistrat' to mod_codeconv
 - dispatching PRE_CMD command 'USER magistrat' to mod_core
 - dispatching PRE_CMD command 'USER magistrat' to mod_core
 - dispatching PRE_CMD command 'USER magistrat' to mod_delay
 - dispatching PRE_CMD command 'USER magistrat' to mod_auth
 - dispatching CMD command 'USER magistrat' to mod_auth
 - retrieved group ID: 1003
 - retrieved group name: magistrat
 - dispatching POST_CMD command 'USER magistrat' to mod_delay
 - dispatching LOG_CMD command 'USER magistrat' to mod_log
 - dispatching PRE_CMD command 'PASS (hidden)' to mod_codeconv
 - dispatching PRE_CMD command 'PASS (hidden)' to mod_core
 - dispatching PRE_CMD command 'PASS (hidden)' to mod_core
 - dispatching PRE_CMD command 'PASS (hidden)' to mod_delay
 - dispatching PRE_CMD command 'PASS (hidden)' to mod_auth
 - dispatching CMD command 'PASS (hidden)' to mod_auth
 - retrieved group ID: 1003
 - retrieved group name: magistrat
 - retrieved UID 1003 for user 'magistrat'
 - ROOT PRIVS at mod_auth_pam.c:289
 - RELINQUISH PRIVS at mod_auth_pam.c:464
 - user magistrat authenticated by mod_auth_pam.c
 - ROOT PRIVS at mod_auth.c:488
 - RELINQUISH PRIVS at mod_auth.c:490
 - USER PRIVS 1003 at mod_auth.c:1106
 - RELINQUISH PRIVS at mod_auth.c:1108
 -
 - Config for FTP Server:
 - Limit
 -  DenyAll
 - DefaultServer
 - PassivePorts
 - ServerIdent
 - ShowSymlinks
 - CharsetLocal
 - CharsetRemote
 - Umask
 - CommandBufferSize
 - UserID
 - UserName
 - GroupID
 - GroupName
 - RootLogin
 - DefaultRoot
 - DefaultRoot
 - DefaultRoot
 - DefaultRoot
 - DefaultRoot
 - DefaultRoot
 - AllowOverwrite
 - MaxClients
 - MaxLoginAttempts
 - ShowSymlinks
 - CURRENT-CLIENTS
 - USER
 - USER magistrat: Login successful.
 - ROOT PRIVS at mod_auth.c:1177
 - opening TransferLog '/var/log/xferlog'
 - setting group ID: 1003
 - RELINQUISH PRIVS at mod_auth.c:1212
 - USER PRIVS 1003 at mod_auth.c:637
 - RELINQUISH PRIVS at mod_auth.c:641
 - Preparing to chroot to directory '/www/ftp/magistrat'
 - ROOT PRIVS at mod_auth.c:80
 - RELINQUISH PRIVS at mod_auth.c:87
 - Environment successfully chroot()ed.
 - ROOT PRIVS at mod_auth.c:1255
 - SETUP PRIVS at mod_auth.c:1262
 - unable to chdir to /usr/home/magistrat (No such file or directory), defaulting to chroot directory /www/ftp/magistrat
 - in dir_check_full(): path = '/', fullpath = '/www/ftp/magistrat/'.
 - dispatching POST_CMD command 'PASS (hidden)' to mod_delay
 - dispatching POST_CMD command 'PASS (hidden)' to mod_log
 - dispatching POST_CMD command 'PASS (hidden)' to mod_ls
 - dispatching POST_CMD command 'PASS (hidden)' to mod_auth
 - RELINQUISH PRIVS at mod_auth.c:1622
 - dispatching LOG_CMD command 'PASS (hidden)' to mod_log
 - dispatching PRE_CMD command 'OPTS utf8 on' to mod_codeconv
 - dispatching PRE_CMD command 'OPTS utf8 on' to mod_core
 - dispatching PRE_CMD command 'OPTS utf8 on' to mod_core
 - dispatching CMD command 'OPTS utf8 on' to mod_core
 - dispatching PRE_CMD command 'OPTS_UTF8 on' to mod_codeconv
 - ProFTPD terminating (signal 11)
 - FTP session closed.
^C - ProFTPD terminating (signal 2)
 - ROOT PRIVS at main.c:1789
 - ROOT PRIVS at mod_delay.c:1084
 - RELINQUISH PRIVS at mod_delay.c:1086
 - RELINQUISH PRIVS at main.c:1811
 - ProFTPD 1.3.1rc3 standalone mode SHUTDOWN
 - ROOT PRIVS at main.c:1818
 - deleting existing scoreboard '/var/run/proftpd.scoreboard'
 - RELINQUISH PRIVS at main.c:1820

 
А на какую кодировку настроен IE?
 
Сменил CharsetRemote CP1251 на UTF8
стал заходить, но на сервере в консоли папка отображается кракозябриками(
 
Цитата
Roman Mokin пишет:
меня слущает эта строчка - dispatching PRE_CMD command 'OPTS utf8 on' to mod_codeconv
причем здесь UTF-8?
Это IE согласует поддержку RFC-2640 после чего proftpd сегфолтится. А запрашивает он ее после того, как видит в FEATURES сервера "UTF8".
Оригинальный FTP определял, что имена файлов должны быть ASCII, поэтому CP-1251 и KOI-8R в именах файлов -  нарушение стандарта. А RFC-2640 добавляет интернациональную поддержу в протоколе FTP и требует, чтобы все имена файлов были в UTF-8 если клиент и сервер поддерживают этот стандарт.  Строчка "OPTS utf8 on" от клиента - это как раз согласование.
Поведение фтп-сервера когда клиент IE и когда тотальный командир различается потому, что IE поддерживает RFC-2640, а FTP-клиент в TC, как и большинство недо-FTP-клиентов, не поддерживает, поэтому даже не пытается слать 'OPTS utf8 on' .
Думаю, скорее всего, падение proftpd вызвано кривым или криво примененным патчем, который конвертирует чарсеты, потому что proftpd-1.3.0-rus.patch на 1.3.1 без напильника не встает.
 
оказываетца это нормально)
http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/114502
 
Как вариант предлагаю использовать вместо proftpd сервер pure-ftpd с хорошо зарекомендовавшим себя встроенным модулем преобразования кодировки charconv либо vsftpd с нормальным и достаточно оперативно поддерживаемым патчем с http://vsftpd.devnet.ru.
ЗЫ
Скорее бы уже все фтп-клиенты подобные TC и  фтп-сервера научились поддержке RFC-2640, которой обладает IE, FileZilla, lftp, pure-ftpd и т.д. или по умолчанию использовали кодировку UTF-8,  которая принята в большинстве современных дистрибутивов Linux - тогда костыли-конверторы для однобайтовых кодировок станут ненужны.
 
2 R,
думаю переходить на pure-ftpd так так задолбали эти  :sensored:
зы
Спасибо за помощь ;)
Страницы: 1
Читают тему (гостей: 1)