Frequently Asked Questions about wu-ftpd, с ответами[Русская редакция]

Эта статья содержит ответы на часто задаваемые вопросы (FAQ) связанные с программным продуктом wu-ftpd. Если у вас есть редакторские замечания или вы хотели бы добавить новый раздел присылайте ваши предложения на: faq@wu-ftpd.org. Если вы хотите получить последнюю версию этого файла, то она доступна

по WWW : <URL:http://www.cetis.hvu.nl/~koos/wu-ftpd-faq.html>

по FTP : <URL:ftp://ftp.cetis.hvu.nl/pub/koos/wu-ftpd-faq.txt>

и по E-mail : отправьте письмо по адресу wu-ftpd-faq@wu-ftpd.org указав в subject строке send faq.

Комментарии: в данной версии все еще отсутствуют замечания по работе wuftpd на некоторых операционных системах. Добро пожаловать к нам если они у вас есть.


  1. Содержание этого FAQ.

    1. Содержание этого FAQ.
    2. О чем этот документ?
    3. Что такое wu-ftpd и его список-рассылки?
      1. Как можно подписаться/отписаться?
      2. Этот список сохраняется где-либо?
      3. Какие еще есть материалы в этом плане?
      4. Какие есть альтернативы Wu-FTPD?

    4. Где можно взять wu-ftpd?
      1. Где можно взять последнюю версию?
      2. Чем являлись VR правки для wu-ftpd?
      3. Что такое BeroFTPD?

    5. Компиляция wu-ftpd.
      1. "cc" выдает ошибку при отсутствии _определений_ strunames, typenames, modenames, ...
      2. в системе отсутствует "yacc".
      3. wu-ftpd не 'видит' что пользователи входят в multiple группы.
      4. возникают "конфликтные ситуации для `realpath`".
      5. wu-ftpd не использует "shadow passwords" на Linux машинах.
      6. Не проходит компиляция wuftpd в новых версиях Linux. Попробуйте следующее:
      7. Дата не соответствует timezone в xferlog.
      8. ls выдает дату не соответствующую timezone.
      9. Digital Unix не собирает статистику команд после входа анонимного пользователя.
      10. установка завершается с диагностикой 'install: ...'
      11. Digital Unix (Unix изветсный как OSF/1) и Enhanced C2 security,
      12. Вовсе не компилируется в Digital Unix, из-за ошибок связанных со структурой timeval.
      13. Что нужно делать для возможности использования wu-ftpd в HP-UX 10.01.
      14. Что делать для полноценной работы wuftpd в HP-UX 10.10.
      15. Замечания по установке wuftpd в HP-UX 10.20.

    6. Использование специальных опций при компиляции wuftp.
      1. Что нужно для проверки реальных пользователей через AFS?
      2. Что нужно для использования S/KEY авторизации?
      3. Как заблокировать определенные адреса, например: IE30User@, mozilla@ и тп.?

    7. Установка wu-ftpd.
      1. Опции командной строки в wu-ftpd.
      2. Тестирование на портах отличных от стандартного командного порта - ftp:21.
      3. Кажется что не все параметры командной строки используются демоном wu-fpd?
      4. Как воспользоваться готовыми пакетами WUFtpd250.wu-ftpd-2.5.0.SPARC.ULTRASparc.2.5.1.2.5.pkg.tar?

    8. Как обстоят дела у wu-ftpd с переходом 2000 года?
    9. Конфигурационный файл ftpaccess.
      1. Некоторые файлы (banners, etc) не отображаются анонимным пользователям.
      2. Как правильно интерпретировать формат <times> параметра в "limit"?
      3. Чем проверить правильность конфигурации wu-ftpd?
      4. Почему %M выдает (Max unlimited) во входном banner'е?

    10. Программы (ls, gzip, tar) работают для real users, но не работают для anonymous, выдавая сообщение об ошибках 425 Can't create data socket (0.0.0.0,20): Bad file number или совсем без диагностики.
      1. Solaris.
      2. Возможны ошибки в случае неправильно статически собранной команды "ls" для Solaris.
      3. Linux.
      4. Dec OSF.
      5. SunOS4.1.x.
      6. AIX.
      7. IRIX (5.3, 6.2).
      8. SCO Unix.
      9. BSD vs SVR4 ls.
      10. Все работало до тех пор пока не проапгрейдили Операционную Систему.

    11. Запуск wu-ftpd.
      1. ftpd всегда выдает "221 Server shutting down. Goodbye."
      2. Анонимный ftp работает как положено, а реальным пользователям доступ закрыт.
      3. ftpconversions не работает.
      4. И компрессия, и архивирование работают "В полете" по отдельности, НО не вместе.
      5. Можно ли использовать ZIP компрессию (InfoZip)?
      6. Как сделать чтобы реальные пользователи имели доступ к машине только по ftp, а не telnet?
      7. Кто-то закачивает файлы с "безумными" именаи?
      8. Каким образом можно максимально использовать секретность при разрешении UPLOAD'а анонимным пользователям?
      9. Неправильно работает "umask" когда реальные пользователи делают UPLOAD.
      10. Ходят слухи что в команде 'SITE EXEC' имеются дыры связанные с секретностью?
      11. Как сделать читабельной и понятной данные статистики?
      12. Возникают сбои при приеме входящих файлов в случаях либо смонтированного по NFS incoming, либо в SunOS?
      13. Обычные ftp клиенты работают, Netscape ftp's не работает. В чем дело, не работает режим passive?
      14. Почему символьный линк сделанный внутри anonymous дерева не работает для анонимного пользователя?
      15. Как перенаправить анонимных пользователей на другую машину?
      16. ftpd перестает устанавливать соединения когда их приходит очень много?
      17. Запуск wu-ftpd на *огромных* архивах.
      18. Только 8-мь первых символов пароля воспринимаются сервером для анонимных пользователей.
      19. wu-ftpd выдает ошибку '500 Illegal PORT Command' в AIX 4.3?
      20. Можно ли вести несколько ftp серверов на одной машине?
      21. После апгрейда никто не может войти, до этого все работало.

    12. Прочее.
      1. Где описан FTP протокол?
      2. Как сделать ftp-архив доступным по Email (ftpmail)?

    13. Заслуги/разное.
      1. Как связаться с командой разработчиков WU-FTPD?
      2. Мной сделаны поправки/новые возможности, как вынести их на рассмотрение команды разработчиков WU-FTPD?
      3. Мной обнаружены проблемы в плане безопасности работы демона и не хотелось бы писать об этом по почте. Можно ли обсудить это по телефону?

  2. Содержание этого FAQ.

    Это FAQ (ответы на часто задаваемые вопросы) по новой версии wu-ftpd, утвержденный на ftp.wu-ftpd.org.

    Самый ПЕРВЫЙ ответ: Обязательно обновите свою версию на последнюю (на сегодня: 2.5.0). В этой реализации было исправлено несколько ошибок, в том числе и проблемы связанные с безопасностью.

    Примечание: Все адреса e-mail использованные в этом документе приведены только для контакта с авторами отдельных частей FAQ. Использование этих адресов в целях не имеющих отношения к данному документу запрещено.

  3. Что такое wu-ftpd и его список-рассылки?

    Wuarchive-ftpd, широко известный как wu-ftpd, является заменой стандартному ftpd демону Unix систем и был разработан в Вашингтонском Университете(*.wustl.edu) Bryan D. O'Connor. (который больше не занимается его поддержкой!) wu-ftpd один из наиболее поппулярных ftp демонов в Internet, используемый огромным количеством публичных и анонимных серверов во всем мире.

    Этот список рассылки обсуждает проблемы связанные с сопровождением этого демона и ftp-машин где он используется.

    1. Как можно подписаться/отписаться?

      Чтобы подписаться, отправьте письмо со строкой в теле

      SUBSCRIBE WU-FTPD <your full name>

      на адрес списка рассылки: listproc@mail.wustl.edu.

      Чтобы отписаться, отправьте письмо со строкой в теле

      UNSUBSCRIBE WU-FTPD

      на адрес списка рассылки: listproc@mail.wustl.edu.

      Чтобы отправить сообщение всем подписчикам, пишите на адрес: wu-ftpd@mail.wustl.edu.

    2. Этот список сохраняется где-либо?

      Да. Существует два архива. Старый находится здесь <URL:http://www.osat.hq.nasa.gov/wuarchive.html>. Утверждается что он имеет средства поиска, а создан и ведется Judy Pellerin (judy@machina.oact.hq.nasa.gov). На момент (February 1997) Я не смог соединиться по этому адресу. [Просто отсутствует в DNS. /комент. Lavr]

      Архив существующий с июня 1994 по сей день и доступный на WWW: <URL:http://www.landfield.com/wu-ftpd/mail-archive>, и на ftp: <URL:ftp://ftp.landfield.com/wu-ftpd/mail-archive>. С возможностью поиска: <URL:http://www.landfield.com/wu-ftpd/mail-archive/search.html> Этот архив сопровождается Kent Landfield (kent@landfield.com).

    3. Какие еще есть материалы в этом плане?

      Документы RFC описывающие FTP протокол: rfc959 и rfc1579. Вероятно их можно получить здесь: <URL:http://info.internet.isi.edu:80/in-notes/rfc/files/rfc959.txt> <URL:http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1579.txt>

      Документы по специфическим частям конфигурации и использования wu-ftpd:

      Kent Landfield ведет архив всех ресурсов относящихся к wu-ftpd <URL:http://www.landfield.com/wu-ftpd/>

      Darci Chapman ведет HOWTO руководство wu-ftpd касающееся Solaris <URL:http://www.wildheart.org/wu-ftpd/>

      Страницы manpage для wu-ftpd можно посмотреть в режиме online: <URL:http://www.academ.com/cgi-bin/bsdi-man?proto=1.1&apropos=0&msection=local&query=ftpd> страницы manpage по ftpaccess на: <URL:http://www.academ.com/cgi-bin/bsdi-man?proto=1.1&query=ftpaccess&msection=5&apropos=0>

      Academ страницы посвященные wu-ftpd: <URL:http://www.academ.com/academ/wu-ftpd/>.

      'ANONYMOUS FTP CONFIGURATION GUIDELINES'

      Руководства от CERT (Computer Emergency Response Team/Подразделение отвечающее за компьютерную безопасность) об установке анонимного ftp.

      <URL:ftp://ftp.cert.org/pub/tech_tips/anonymous_ftp_config>

      <URL:ftp://ftp.cert.org/pub/tech_tips/anonymous_ftp_abuses>

      'How to set up a secure ftp server'

      Документ в основном посвящен методам безопасности при установке анонимного ftp.

      <URL:ftp://sunsite.unc.edu/pub/sun-info/sun-faq/FAQs/SettingUpSecureFTP.faq>

      'guestgroup howto'

      Документ описывающий установку-настройку гостевых-групп для сервера wu-ftpd, в настоящий момент это отдельный от данного FAQ материал.

      <URL:ftp://ftp.fni.com/pub/wu-ftpd/guest-howto>

      Документ описывающий настройку виртуальных ftp серверов

      <URL:http://www.westnet.com/providers/multi-wu-ftpd.txt>

      Ftpaccess на виртуальных ftp серверах

      <URL:ftp://ftp.meme.com/pub/software/wu-ftpd-2.4.2/README.ALT.FTPACCESS>

      upload.configuration.HOWTO

      <URL:ftp://ftp.wu-ftpd.org/pub/wu-ftpd/upload.configuration.HOWTO> Как настроить конфигурацию для UPLOAD в версиях 2.4.2 Beta 18 VR14 и выше(включая 2.5.0).

      Обязательно прочтите это. Подобное:

      #> telnet xxx.yyy.nl
      Trying XXX.XXX.XXX.XXX ...
      Connected to xxx.yyy.nl.
      Escape character is '^]'.
      
      SunOS UNIX (xxx.yyy.nl)
      
      login: ftp
      Last login: Sat Oct 28 22:11:36 from xxxxxx.xxx.xxx.nl
      SunOS Release 4.1.3 (HSIS_X25) #1: Wed Apr 7 14:19:15 MET DST 1993
      %>
      
      НЕ ДОЛЖНО ПРОИЗОЙТИ!(иначе будет взлом).

    4. Какие есть альтернативы Wu-FTPD?

      Troll Ftpd, свободнораспространяемый ftp-server, доступный с: <URL:http://www.troll.no/freebies/ftpd.html>

      FileDrive, коммерческий fileserver для которого нужен его собственный клиент доступен с: <URL:http://www.filedrive.com/>

      NcFTPd, коммерческий ftp сервер (свободен при использовании образовательных доменов), доступен с: <URL:http://www.ncftpd.com/>

      ProFTPD, свободный ftpserver (GPL/под лицензией GNU), доступен с: <URL:http://www.proftpd.org/>

  4. Где можно взять wu-ftpd?

    Оригинальный wu-ftpd находится на wuarchive.wustl.edu, но в настоящий момент wuarchive больше не поддерживает и не сопровождает wu-ftpd. Теперь _верное_ месторасположение wu-ftpd: ftp://ftp.wu-ftpd.org/pub/wu-ftpd/ (please use a real ftp client to access this).

    Зеркала архива:

    1. Где можно взять последнюю версию?

      Группа разработчиков сопровождает wu-ftpd и размещает последние версии по адресу ftp.wu-ftpd.org: ftp://ftp.wu-ftpd.org/pub/wu-ftpd/ (пожалуйста используйте ftp для доступа к этому архиву). Данная версия wu-ftpd теперь сопровождается группой разработчиков доступных по email адресу: (wuftpd-dev@wu-ftpd.org).

    2. Чем являлись VR правки для wu-ftpd?

      VR-серия Wu-FTPD содержала набор расширений и исправлений ftp-сервера, которые отсутствовали в базовой версии wu-ftpd. Набор VR исправлений был интегрирован в версию wu-ftpd 2.5.0 и перестал был доступным на ftp.vr.net с конца августа месяца 1999.

    3. Что такое BeroFTPD?

      BeroFTPD это эволюционная версия wu-ftpd, в которой существеено расширены возможности "virtual hosts". Правки от версий VR были включены в дистрибутив.

      Достпнен с:
      <URL:ftp://beroftpd.unix.eu.org/pub/BeroFTPD/>
      <ftp://ftp.croftj.net/usr/bero/BeroFTPD/>
      <ftp://ftp.sunet.se/pub/nir/ftp/servers/BeroFTPD/>
      <ftp://sunsite.cnlab-switch.ch/mirror/BeroFTPD/>

  5. Компиляция wu-ftpd.

    Обычно, редактирования src/pathnames.h и выполнения build arch должно быть достаточно для компиляции wu-ftp.

    1. "cc" выдает ошибку при отсутствии _определений_ strunames, typenames, modenames, ...

      Эта ошибка полностью рассмотрена в файлах INSTALL/INSTALL.orig дистрибутива wu-ftpd. Несколько строк по-теме:

      Компилятор "cc" обнаружил что не неопределены: strunames, typenames, modenames,
      в этом случае вы можете установить "support/ftp.h" в "/usr/include/arpa/ftp.h",
      обязательно сделав копию старого системного header'а "ftp.h" и запустить build
      снова. Новый "ftp.h" должен быть полностью совместим с бывшим системным, те
      у вас не должно возникнуть проблем с этой заменой. 
      

    2. в системе отсутствует "yacc".

      Замените "yacc" на "bison -y" в файле Makefile.

    3. wu-ftpd не 'видит' что пользователи входят в multiple группы.

      Эти ошибки исправлены в последних версиях. Сделайте апгрейд wu-ftpd, желательно на последнюю версию.

    4. возникают "конфликтные ситуации для `realpath`".

      Эти ошибки исправлены в определенных версиях. Сделайте апгрейд wu-ftpd, желательно на последнюю версию.

    5. wu-ftpd не использует "shadow passwords" на Linux машинах.

      Сначала попробуйте проверить ftpd на предмет поддержки "shadow passowrd", при условии что компиляция прошла успешно. Последняя версия изменена так чтобы "shadow password" использовался автоматически, если необходимио и возможно.

      С тех пор как старые Linux дистрибутивы (в libc.5.3 исправлено) не включают "shadow password", wu-ftpd может решить что ваша система не использует "shadow passwords". В таких случаях, для использования shadow при компиляции wu-ftpd в Linux необходимо следующее:

      • Возьмите shadow.h из последнего shadow пакета.
      • После сборки пакета shadow получите библиотеку libshadow.a.
      • Скопируйте shadow.h в src директорию wu-ftpd.
      • Скопируйте libshadow.a в support директорию wu-ftpd.
      • Отредактируйте src/config.h заменив #undef на '#define SHADOW_PASSWORD'.
      • Замените строку LIBES в src/Makefile на :
        LIBES = -lsupport -lbsd -lshadow (для некоторых версий также необходимо добавить -lcrypt)

      Измените файл src/ftpd.c в районе строки 1061 на :

      	xpasswd = pw_encrypt(passwd, salt);
      

    6. Не проходит компиляция wuftpd в новых версиях Linux. Попробуйте следующее:

      Добавьте опцию -DDIRENT_ILLEGAL_ACCESS в значения флага CFLAGS в файл src/makefiles/Makefile.lnx.

    7. Дата не соответствует timezone в xferlog.

      Либо, вы скомпилировали wu-ftpd с поддрежкой установки имени процесса (process title - SPT_TYPE) на машине которая этого не позволяет, тогда при изменении "process title" происходит перекрытие среды с "разрушением" переменной TZ. Перекомпилируйте wu-ftpd изменив SPT_TYPE на SPT_NONE.

      Системы не поддерживающие SPT_TYPE : Aix, SGI Irix.

      Либо скопируйте zoneinfo файлы в дерево ~ftp. Сюда могут относиться:

      /etc/TIMEZONE
      /etc/default/init
      /etc/localtime (FreeBSD)
      /usr/share/lib/zoneinfo/..
      
      Имя соответсвующего файла в /usr/share/lib/zoneinfo зависит от вашей временной зоны - timezone. Необходимые файлы зависят также и от вашей операционной системы или вашей собственной настройки временной зоны timezone. Смотрите соответствующие руководства для timezone(4) и zic(1M).

    8. ls выдает дату не соответствующую timezone.

      Описано выше, тем не менее если ваша система имеет /etc/default/init (например Solaris 2.5) проверьте в нем правильность установки переменной TZ. Этот файл должен присутствовать затем в среде с измененным через chroot() новом корневом дереве.

      Описано Francois Belanger (francois@goltier.com).

      Для Digital Unix требуется /etc/zoneinfo/localtime.

    9. Digital Unix не собирает статистику команд после входа анонимного пользователя.

      Системные вызовы system на Digital Unix несколько иные чем обычно. Следуйте приведенному ниже руководству чтобы исправить это.

      Входящий в Digital Unix стандартный ftpd записывает статистику после отработки
      chroot и Benoit Maillard (maillard@fgt.dec.com) что это происходит потому что
      они не используют стандартные системные вызовы.
       Во время просмотра дистрибутива, был найден файл syslog.c в директории support
      и затем изменен файл Makefile.osf в директории support/makefiles на предмет
      включения syslog.c в собираемую библиотеку.
      Затем в ходе компиляции получены две ошибки от этого файла, точнее одно предупреждение и одна ошибка.
       
      Предупреждение относилось к:
       
      if ((p = malloc(strlen(ident) + 1)) == NULL)
       
      для исправление необходимо следующее изменени:
       
      if ((p = (char *)malloc(strlen(ident) + 1)) == NULL)
      
      Ошибка же возникала врезультате "переопределения" openlog (или closelog).
      Она связана с переопределением следующих вызовов в <syslog.h> 
      extern int      openlog __((const char *, int, int));
      extern int      syslog __((int, const char *, ...));
      extern void     closelog __((void));
      extern int      setlogmask __((int));
       
      После копирования /usr/include/syslog.h в директорию support и изменений в файле
      syslog.c
      
      #include <syslog.h> на #include "syslog.h"
      
      сообщения исчезли.
      После этих изменений все должно работать корректно как для анонимных, так и для
      реальных пользователей в отношении записи статистики в daemon.log файл. 
      
      Это замечание было послано в список рассылки Daniel Clar (Daniel.Clar@supelec.fr).

    10. установка завершается с диагностикой 'install: ...'

      Установка в makefile написана под использование программы install версиий bsd. Некоторые Операционные системы используют программу install версий SVR4. В этом случае сделайте соответствующие изменения в makefile, например:
      INSTALL = /usr/ucb/install

    11. Digital Unix (Unix изветсный как OSF/1) и Enhanced C2 security,

      Необходимые изменения зависят от версии Digital unix. Так для Digital unix 4.0 строка LIBES в makefile должна быть LIBES = -lsupport и никаких изменений в crypt() не требуется.
      Внесите следующие изменения в ./src/config/config.osf :

      #define SecureWare
      #include <sys/secdefines.h>
      #include <sys/types.h>
      #include <sys/security.h>
      #include <sys/audit.h>
      #include <prot.h>
      
      и добавьте строку в файл ./src/makefiles/Makefile.osf
      LIBES = -lsupport -lsecurity -laud
      
      И замените везде вызов crypt() на bicrypt.

      А для работы необходимо полностью скопировать /etc/sia в ~ftp/etc/sia. Самый простой способ:

      # cd /etc
      # tar -cvf - sia | (cd ~ftp/etc;tar -xpf -)
      
      Также, для того чтобы воспринимались пароли больше чем 8-мь символов, необходимо заменить строку:

      crypt_alg = AUTH_CRYPT_OLDCRYPT;
      
      на
      crypt_alg = AUTH_CRYPT_BIGCRYPT;
      
      Этот кусок был добавлен Andrew C. Saylor (asaylor@comsource.net).

    12. Вовсе не компилируется в Digital Unix, из-за ошибок связанных со структурой timeval.

      Добавьте в ./src/ftpd.c

      #define SPT_SCO         6       /* write kernel u. area */
      
      /* FTP server. */
      #include "config.h"
      #include <cma.h>		<-- добавьте это
      
      #include <sys/types.h>
      
      информация предоставлена Andrew C. Saylor (asaylor@comsource.net).

    13. Что нужно делать для возможности использования wu-ftpd в HP-UX 10.01.

      Чтобы скомпилировать для типа "trusted system" необходимы следующие изменения В файле src/config.h замените строку:

      примечание: "trusted system" - в зависимости от контекста имеет разное трактование, в данном документе это относится к системе защиты (обычно это C2 security), в то время как дословный перевод "системы доверия>

      #undef SHADOW_PASWWORD
      
      на
      #define SHADOW_PASSWORD
      
      В файле src/makefiles/Makefile.hpx, строка LIBES должна быть такой:
      LIBES = -lsupport -lc -lPW -lsec
      
      Криптование "root" пароля отличается от метода используемого для обычных пользователей. И в таком случае необходимо использовать вызов функции bigcrypt. Ниже приведены необходимые изменения в исходном коде:

      В файле src/ftpd.c, в самом начале:

      #ifdef _HPUX_SOURCE
      #include <hpsecurity.h>
      #include <prot.h>
      #endif
      
      и в этом же файле в функции pass(), найдите где находится похожий код и внесите изменения (возможны небольшие отличия):
        char *xpasswd,
             *bpasswd,*salt;
      
        #ifdef KERBEROS
                xpasswd = crypt16(passwd, salt);
        #else
                xpasswd = crypt(passwd, salt);
                bpasswd = bigcrypt(passwd, salt); <-- КАК ДОЛЖНО БЫТЬ
        #endif
      
        #ifdef ULTRIX_AUTH
                if ((numfails = ultrix_check_pass(passwd, xpasswd)) < 0) {
        #elif defined(_HPUX_SOURCE)
                if (pw == NULL || *pw->pw_passwd == '\0' ||
                    (strcmp(xpasswd, pw->pw_passwd) && 
                     strcmp(bpasswd, pw->pw_passwd))) {  <-- И ЗДЕСЬ ТОЖЕ
        #else
                /* The strcmp does not catch null passwords! */
                if (pw == NULL || *pw->pw_passwd == '\0' ||
                    strcmp(xpasswd, pw->pw_passwd)) {
        #endif
                  reply(530, "Login incorrect.");
      
      Информация предоставлена Jose Luis Martinez Garcia (jluis@sitecal.es).

    14. Что делать для полноценной работы wuftpd в HP-UX 10.10.

      Если описанное выше не помогло, рассмотрим более расширенно: If the above doesn't work, some more notes :

      /usr/include/shadow.h: Этот *системный* файл приводит к падению gcc при
      компиляции. Необходимо изменить следующее объявление:
      
           extern int lckpwdf(void), 
                  to 
           extern int lckpwdf(void); <<--- note the ';'
      
      realpath.c: Помнится была одна внешняя ссылка (мб больше чем одна?) которая
      не соответствовала внутреннему объявлению. Помнится изменил объявление
      realpath в соответствии со внешним. Оригиналю были удалены и поэтому нет
      возможности точно описать изменения.
      
      ftpcmd.c: Этот файл создается из ftpcmd.y (через yacc/bison). Увы созданный
      код невозможно откомпилировать. Пришлось вставлять 2-е структуры взяв их из
      более ранней версии wu-ftpd. Вроде бы это были 'cmdtab[]' и 'sitetab[]'
      структуры и они вызывались до их объявления.
      
      Makefile.hpx: Изменен так чтобы не удалял исправления в ftpcmd.c описанные выше.
      
      ftpd.c: 1) установлены правки в соответствие с инструкцией в FAQ-е. Новый код
      работает без проблем (Вероятно попробую портировать его в POP3 сервер).
      2) изменен printf где-то в районе SEPPROCTITLE для включения "wuftpd" в строку
      процесса (подобно hp-ux ftpd). Тут необходимо небольшое лечение связанное с
      тем что при RETR к именам файлов приклеиваются ^M^J.
      
      Описание прислано Chuck Davis (cdavis@wrair-amss.army.mil).

      Доп. ремарка: В "trusted system'е" HP's вызов getpwnam не применяется при работе с криптованными паролями. Вместо нее нужно использовать getprpwnam. Измените ftpd.c на предмет использования getprpwnam.

               pr_pw = getprpwnam(pw->pw_name);      /* get shadow password */
               xpasswd = crypt(passwd, pr_pw->ufld.fd_encrypt);
               bpasswd = bigcrypt(passwd, pr_pw->ufld.fd_encrypt);
      

    15. Замечания по установке wuftpd в HP-UX 10.20.

      Суммарные замечания по установке wu-ftpd в HP-UX 10.20:
      wu-ftp2.4 была установлена на "чистой" HPUX 10.20, которая пришла прямо от HP с уже постренным ядром и важное отличие этой сборки от "generic" в том что были урезаны X-libs и X-utils (что имеет смысл порекомендовать если вы собираете HP 10.20 только для ftp).

      - Возьмите ОБА пакета wu-ftp2.4 и ansi-c компилятор для сборки (я получил свой у HP, вы можете запросить ansic.hp-10.20.tar.gz)

      - сначала разверните накет содержащий "C" (HP приходит со стандартным компилятором, который можно использовать ЛИШЬ для сборки ЯДРА). Для установки компилятора "C" следуйте документации README/INSTALL. Не забудьте чтобы новый компилятор был доступен в пути или укажите где нужно откуда его вызывать.

      - Соберите wu-ftpd

      - Установите сервер

      - Специальные замечания по настройке для сильно загруженного сервера ftp:
      Сопровождаемый мной ftp сервер имеет очень сильную загрузку и это потребовало некоторых изменений в конфигурации ядра в отношении "lock" файлов и одновременному доступу к одним и тем же файлам. Все это было реализовано через SAM. Существенным моментом для сохранения доступа к сильно загруженной машине было необходимое уменьшение состояния fin_wait так чтобы "lock" на открытые файлы сохранялся бы минимальное время. В моем случае fin_wait был уменьшен до 5 минут или меньше.

  6. Использование специальных опций при компиляции wuftp.

    Этот раздел обсуждает особенности компиляции wuftpd в необычных ситуациях.

    1. Что нужно для проверки реальных пользователей через AFS?

      Добавьте в Makefile для вашей OS поддержку AFS libs/includes. На данный момент такая поддержка сделана в Makefile только для AIX. Используйте как пример. затем добавьте следующую строку в #include section of src/ftpd.c :

      #include <afs/stds.h>
      
      добавлено Perry L. Morgan (pmorgan@uceng.uc.edu).

    2. Что нужно для использования S/KEY авторизации?

      Michael Brennen (mbrennen@fni.com) написал в список рассылки следующее:

      Для использования SKEY необходимо следующее:
      
      Раскоментировать строку #undef SKEY в config.h.
      Иногда нужно время чтобы найти это место, но думается что это не проблема.
      
      Скопируйте skey.h в директорию src.
      
      Скопируйте библиотеку libskey.a в директорию support.
      
      Добавьте в нужный вам файл Makefile.* из src/makefiles следующие строки:
         добавьте "-DSKEY" в макроопределение CFLAGS;
         добавьте "-lskey" в макроопределение LIBES;
      
      Это должно помочь, если нет, попросите помощи.
      

    3. Как заблокировать определенные адреса, например: IE30User@, mozilla@ и тп.?

      Посмотрите опцию 'deny-mail' в руководстве ftpaccess(5).

  7. Установка wu-ftpd.

    Обычно достаточно изменить строку для ftp сервера в файле /etc/inetd.conf (файл в котором определяется какие серверы запускются через inetd. Однако в некоторых операционных системах за это отвечает другой файл).

    1. Опции командной строки в wu-ftpd.

      В последних версиях, если не задано никаких опций в командной строке, wuftpd запустится с опциями которые у него заданы по-умолчанию, в этом режиме он не анализирует конфигурацию из файла ftpaccess. Чтобы использовать конфигурацию из ftpaccess добавьте в командную строку опцию -a в файле inetd.conf.

    2. Тестирование на портах отличных от стандартного командного порта - ftp:21.

      Это может быть задано в командной строке или использую специальное переопределение в файлах /etc/services и /etc/inetd.conf. Для задания порта через командную строку ищите использование опции -P и -p в руководстве ftpaccess(5).

      Или используйте специальные переопределения, добавьте 2-а порта в /etc/services (используйте не задействованные другими службами на вашей машине) и затем запустите wuftpd на этих портах (для примера посмотрите как определены порты для стандартного ftp). Вы можете попробовать так:

      ftptest         4021/tcp        #command port    
      ftptest-data    4020/tcp        #data port
      
      Затем сделайте изменения в /etc/inetd.conf для запуска wuftpd :
      ftptest stream tcp nowait root /usr/etc/in.ftpd in.ftpd
      
      примеч.: Строка должна соответствовать вашей OS и конфигурации, это всего лишь пример.

      Получено от W. James Showalter (gamma@mintaka.disa.mil)

    3. Кажется что не все параметры командной строки используются демоном wu-fpd?

      Возможно что ваш демон inetd обрезает строку с большим списком параметров (4 или 5) В этом случае вы можете попытаться воспользваться следующей программой wrapper'ом:

      /* wrapper for wuftpd to add command line arguments
         that don't fit under inetd */
      
      #include <stdio.h>
      #include <stdlib.h>
      #include <unistd.h>
      #include <errno.h>
      #include <syslog.h>
      
      int main(argc,argv)
         int argc;
         char **argv;
      {
         char *path="/local-adm/bin/ftpd";
         char *cmd="ftpd";
      
         fflush(stderr);
         fflush(stdout);
         errno=0;
         execl(path,cmd,"-a","-l","-L","-u022",NULL);
      
         openlog("wrapftpd",LOG_PID, LOG_LOCAL6);
         syslog(LOG_WARNING,(const char *)strerror(errno));
         closelog();
         exit(EXIT_FAILURE);
      
      }
      
      Код от Albert Lunde (Albert-Lunde@nwu.edu)

    4. Как воспользоваться готовыми пакетами WUFtpd250.wu-ftpd-2.5.0.SPARC.ULTRASparc.2.5.1.2.5.pkg.tar?

      Распакуйте этот файл в пустую директроию с именем WUFtpd250 Не заходя в эту директорию наберите 'pkgadd -d .' и получите на экран сообщение схожее с:

      # pkgadd -d .
      
      The following packages are available:
        1  WUFtpd250     wu-ftpd 2.5.0 SPARC/ULTRAsparc 2.5.1 - 2.5
                         (sun4c,sun4d,sun4e,sun4m,sun4u,sun4u1) 2.5.0
      
      Select package(s) you wish to process (or 'all' to process
      all packages). (default: all) [?,??,q]: 
      

  8. Как обстоят дела у wu-ftpd с переходом 2000 года?

    Оригинальная версия wu-ftpd имела проблему представления 2000-ого года при разборе MDTM (время модификации файла). В этой версии не велось никаких работ по решению этой проблемы.

    Эта проблема была решена в версии wu-ftpd 2.4.2 beta 14 реализованной в Августе 1997. После этой правки wu-ftpd считается полностью соответствующей Y2K.

    Правка заключалась в следующем :
    В ftpcmd.y было добавлено следующее (эта часть касается синтаксиса: MDTM check_login SP pathname CRLF)

    		reply(213,
    			"19%02d%02d%02d%02d%02d%02d",
    			t->tm_year, t->tm_mon+1, t->tm_mday,
    			t->tm_hour, t->tm_min, t->tm_sec);
    
    19%02d необходимо было заменить на %04d и t->tm_year на t->tm_year + 1900:
    		reply(213,
    			"%04d%02d%02d%02d%02d%02d",
    			t->tm_year + 1900, t->tm_mon+1, t->tm_mday,
    			t->tm_hour, t->tm_min, t->tm_sec);
    

  9. Конфигурационный файл ftpaccess.

    1. Некоторые файлы (banners, etc) не отображаются анонимным пользователям.

      Когда анонимный пользователь осуществляет вход, banner файлы открываются относительно "корня" структуры анонимного пользователя. Имейте это ввиду. Это нужно иметь ввиду в случае расположения banner'а или использования на него link'а.

    2. Как правильно интерпретировать формат <times> параметра в "limit"?

      Этот формат содержит параметры ДНЯ и ВРЕМЕНИ доступа. Возможные элементы: Sa,Su,Mo, ... Any (для любого дня). Например: SaSu|Any1800-0700 означает возможность круглосуточного доступа в Субботу и Воскресенье или с 18:00 по 07:00 во все остальные дни. Проверьте ftpd на правильность восприятия временной зоны.

    3. Чем проверить правильность конфигурации wu-ftpd?

      Можно воспользоваться ftpcheck который находится на <URL:ftp://ftp.cle.ab.com/pub/ftpcheck.v2.3

    4. Почему %M выдает (Max unlimited) во входном banner'е?

      Все счетчики и _максимально_количество_ в том числе, зависят от класса к которому относится пользователь, однако, до входа пользователя класс к которому он принадлежит, естественно еще не определен(с тех пор как wu-ftpd стал брать переменные realuser/anonymous/guestuser для вычисления класса пользователя).

  10. Программы (ls, gzip, tar) работают для real users, но не работают для anonymous, выдавая сообщение об ошибках 425 Can't create data socket (0.0.0.0,20): Bad file number или совсем без диагностики.

    Во первых, убедитесь что эти утилиты собраны статически и не требуют "shared" библиотек. Что касается GNU fileutils, их можно взять здесь: <URL:ftp://prep.ai.mit.edu/pub/gnu/fileutils-3.16.tar.gz> (номера версий могут отличаться).

    Для разных операционных систем могут дополнительно требоваться различные библиотеки или устройства. Вы можете проверить это через "chroot" для домашней директории ftp. Например, проверить как в этом случае работает /bin/ls в ~ftp директории:

    chroot ~ftp /bin/ls

    Или, если партиция смонтирована с "-nosuid", что также приводит к подобной ошибке в таких системах как SunOS или Solaris, для уточнения смотрите страницу: <URL:http://www.stokely.com/stokely/sunservice.tips/11991.html>

    1. Solaris.

      Сначала почитайте руководства системы - man, оригинального in.ftpd(1m). Который должен содержать скрипт для полной установки ftp, посмотрите его через призму того как вы установили сами. Затем, если файловая система с ~ftp смонтирована с опцией "-nosuid" файлы специальных устройств работать не будут.

      Solaris'у необходимо наличие файлов спец.устройств ~ftp/dev/tcp и ~ftp/dev/zero и дополнительных библиотек. Для получения более точной информации читайте системные руководства Solaris или используйте команду man command-name. Для определения библиотек необходимых для работы команд выполните команду ldd ls например и так далее. Также необходимо наличие файла ~ftp/etc/group для выполнения команды ls, без которого она не будет исполняться. Как и ~ftp/etc/group так и ~ftp/etc/passwd эти файлы должны содержать минимум информации необходимой лишь для работы ftp, те никаких строк из /etc/passwd для реальных пользователей и всего что может послужить хотя бы намеком на возможные проблемы security.

      Обычно требуется включения следующих библиотек :
      ld.so, ld.so.1, libc.so.1, libdl.so.1, libintl.so.1, libmp.so.1, libnsl.so.1, libsocket.so.1, libw.so.1, nss_compat.so.1, nss_dns.so.1, nss_files.so.1, nss_nis.so.1, nss_nisplus.so.1, straddr.so

      Проблемы связанные с /etc/group описаны Eric (ewedaa@kset.com).

    2. Возможны ошибки в случае неправильно собранной статически команды "ls" для Solaris.

      Решение этой проблемы обсуждалось в FAQ группы comp.unix.solaris: <URL:http://www.fwi.uva.nl/pub/solaris/solaris2> пункт 6.24 (на данный момент).

    3. Linux.

      Воспользуйтесь командой ldd чтобы определить какие библиотеки используются этими командами. Кроме того в случае испоняемых модулей в ELF формате добавьте ELF загрузчик ld-linux.so в ~ftp/lib.

      ELF изменения присланы Al Longyear (longyear@sii.com).

    4. Dec OSF.

      Скопируйте в ваше дерево ftp статическую версию ls (/sbin/ls) вместо динамической, статическая имеет размер около 400K.
      Создайте файлы passwd и group в ~ftp/etc. Скопируйте содержимое /etc/sia в ~ftp/etc/sia это файлы matrixconf и siainitgood.

    5. SunOS4.1.x.

      SunOS требует наличия файлов ~ftp/dev/zero, ~ftp/dev/tcp и некоторых библиотек, действуйте в соответствие с man. И проверьте флаги доступа указанных выше файлов.

    6. AIX.

      AIX поставляется со скриптом для автоматической установки.

      AIX 3.2.5 - /usr/lpp/tcpip/samples/anon.ftp
      AIX 4.1.4 - /usr/samples/tcpip/anon.ftp

      После выполнения скрипта измените ражимы доступа к ~ftp/pub на безопасные.

      Кроме того AIX поставляется с утилитой 'dump' с помощью которой можно посмотреть какие библиотеки использовались для сборки команды-программы.

      Пояснения присланы Eilon Gishri (eilon@aristo.tau.ac.il)

    7. IRIX (5.3, 6.2).

      Для IRIX 6.2 требуется наличие файла ~/ftp/dev/zero и библиотек. Перед созданием /dev/zero, проверьте его текущие номера major и minor :

      ls -lL /dev/zero
      
      И создайте подобное устройство а ~ftp используя :
      cd ~ftp/dev
      mknod zero c <major> <minor>
      cd ..
      chmod 555 dev
      
      Возможно потребуется скопировать следующие библиотеки /lib/libc.so.1 в ~ftp/lib/libc.so.1 и /lib/rld в ~ftp/lib/rld. Они требуются для команд ls, compress, gtar и gzip.

      Можно определить какие библиотеки нужны для этих програм:

      csh# setenv _RLD_PATH /usr/lib/rld.debug
      csh# setenv _RLD_ARGS '-v -quickstart_info -stat'
      
      Для остановки просмотра достаточно установить переменные среды:
      csh# unsetenv _RLD_PATH
      csh# unsetenv _RLD_ARGS
      
      Полную информацию по Irix можно найти в IRIX Insight Library (Online Books) в книге/глава "IRIX Admin: Networking and Mail" в параграфе "How to Set Up a Proper Anonymous FTP Account". Информация получена от Frans Stekelenburg (gjs@knmi.nl) and Jim Davis (jdavis@cs.arizona.edu)

    8. SCO Unix.

      SCO требует /dev/socksys.

    9. BSD vs SVR4 ls

      Это совершенно некорректно по отношению к системе. Цитата : Проблема в том что ls_short и ls_long были определены неверно (система была скомпилирована BSD-вым компилятором с использованием BSD конфигурационного файла) используя ls -lA и ls -lgA соответственно. Это привело к тому что команда ls работает с ошибками (поскольку в данный момент операционка SVR4) и самое главное что весь вывод ls направляет только в stderr и нет возможности посмотреть stdout.
      просто Ноу Комментц

      Информация от Perry A. Stupp (pstupp@i-com.com)

    10. Все работало до тех пор пока не проапгрейдили Операционную Систему.

      После апгрейда произошли изменения с вашей OS. Чаще всего: новые библиотеки в том числе и shared. Также могли измениться major/minor номера устройств. Пересмотрите ваши разделямые библиотеки и устройства если такое произошло после апгрейда.
      А лучше пересобирите wu-ftpd заново.

  11. Запуск wu-ftpd.

    Wu-ftpd поставляется с прекрасными руководствами, man, которые содержат всю необходимую информацию по данному вопросу.

    Тем не менее, стоит отметить что ряд особенностей связанный со сменой среды после chroot для анонимных пользователей применим и к guest.

    1. ftpd всегда выдает "221 Server shutting down. Goodbye."

      Направление shutdown в файле ftpaccess указывает на существующий в настоящий момент файл. Либо измените направление, либо удалите файл для перехода из режима shutdown в рабочий режим.

      В случае, если вы использовали команду ftpshut, необходимо помнить что для возобновления работы ftp демона необходимо удалить файл созданный ftpshut вручную.

    2. Анонимный ftp работает как положено, а реальным пользователям доступ закрыт.

      Проверьте следующее :

      • Наличие shell таких пользователей в файле /etc/shells. Замечание: AIX вообще не имеет такого файла в системе, вам самим необходимо его создать.
      • Данная проблема была исправлена в более свежих версиях для AIX. Установите последнюю версию.
      • /etc/shells требует корректных прав доступа (чтения но не записи для всех).
      • Если вы используете shadow passwords : убедитесь что правильно скомпилировали wu-ftpd.

    3. ftpconversions не работает.

      Существует несколько возможных вариантов, большинство связано с отличием задания параметров командной строки для разных версий команды tar.

      • Solaris 2.4 : если вы используете Solaris tar, и задали командную строку как /bin/tar -cf - %s, результат будет как в случае использования /bin/tar -cvf - %s. Опция -v будет добавлять лишние данные в поток. Решение : заменить на следующее /bin/tar cf - %s без первого "-".
      • Также проверьте ваши описания 'tar' и 'compress' в файле ftpaccess.

    4. И компрессия, и архивирование работают "В полете" по отдельности, НО не вместе.

      В случае использования Solaris 2.4 и GNU's tar-1.11.8 (сконфигурированным и скомпилированным с флагом --disable-nls) используйте флаг в GNU tar --use-compress-program=путь к программе сжатия

      например :
      : : :.tar.Z:/bin/ftp-exec/tar -c --use-compress-program=/bin/ftp-exec/compress -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
      : : :.tar.gz:/bin/ftp-exec/tar -c --use-compress-program=/bin/ftp-exec/gzip -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP

    5. Можно ли использовать ZIP компрессию (InfoZip)?

      Да. Строки для файла ftpconversions такие :

       :.zip: : :/bin/unzip  -qq -p %s:T_REG|T_ASCII:O_UNCOMPRESS:UNZIP
       : : :.zip:/bin/zip -qq -r - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:ZIP
      
      Сам Info-ZIP можно найти на <URL:http://quest.jpl.nasa.gov/Info-ZIP/>

    6. Как сделать чтобы реальные пользователи имели доступ к машине только по ftp, а не telnet?

      Создайте для этой цели соответствующий SHELL (например отредактировав под свои цели /[usr/]bin/true[false]. Затем отразив это в соответствующих изменениях /etc/shells. И последнее, после отладки заменить shell пользователя на ваш.
      Затем : убедитесь что пользователь не сможет каким-либо путем выполнить из под этого account'а команды.Одна из проблем связана с работой sendmail.

      Дополнительную информацию и скрипты можно найти на : <URL:http://www.landfield.com/wu-ftpd/ftponly/ftponly.html>

      Подобно этому для AIX.
      Воспользуйтесь "chuser" (или SMIT) чтобы запретить пользователю login=no, su=no, telnet=no, rlogin=no.

    7. Кто-то закачивает файлы с "безумными" именаи?

      Возможно кто-то пытается использовать вашу машину для передачи _своих_данных_ (это в худшем случае). Проверьте наличие path-filter в файле ftpaccess, который должен выглядеть подобно :

      path-filter anonymous /etc/paths.msg ^[-A-Za-z0-9\._]*$ ^\. ^-
      

    8. Каким образом можно максимально использовать секретность при разрешении UPLOAD'а анонимным пользователям?

      В основном вы не можете этого сделать. Но, еслы вы настолько упрямы...

      Прочтите upload.configuration.HOWTO, указатель на него в начале этого faq. Убедитесь что у вас установлена последняя версия wu-ftpd (2.5.0), установите ваш path-filter как указано выше. Посмотрите кто и какие имеет права доступа в директорию incoming и кто владелец, на предмет отличия от ftp (root или nobody), например :

      drwx-wx-wt       root    nobody        incoming
      
      В данном примере разрешается записывать всем в эту директорию, но запрещается читать. Попробуйте установить upload в файле ftpaccess например такой :
      upload    /home/ftp    /incoming   yes root daemon 0400 nodirs
      
      Одно замечание : файлы будут создаваться как от владельца root и группы daemon следуя указанию в верхнем upload. Однако это может отрабатывать неверно на некоторых secure установленных NFS.

    9. Неправильно работает "umask" когда реальные пользователи делают UPLOAD.

      Соответствующая umask наследуется от inetd. Однако в этом случае возможна ошибка. Воспользуйтесь параметром задания umask с командной строки -u. Отредактируйте строку в inetd.conf подобно ftpd -A -L -l -u077.

    10. Ходят слухи что в команде 'SITE EXEC' имеются дыры связанные с секретностью?

      В некоторых версиях Slackware переменная _PATH_EXECPATH была установлена в что-то похожее на /bin. Перекомпилируйте wu-ftpd установив специальный путь например, /bin/ftp-exec.

      Для проверки этой дыры, наберите (когда зайдете как real пользователь, а не anonymous) :
      ftp> SITE EXEC bash -c id

      Если в ответ получите '200-uid=0(root) gid=0(root)' , у вас проблемы с security.

    11. Как сделать читабельной и понятной данные статистики?

      Существует несколько готовых скриптов позоляющих создавать более удобные и понятные отчеты из файла статистики xferlog.

      • dumpxfer разбирает xferlog и выдает понятную человеку статистику
      • processlog в свою очередь запускает dumpxfer, отправляет вам почтой результат обрезая ненужное
      Эти скрипты доступны по anonymous ftp с <URL:ftp://tnt.microimages.com/tools/> для обоих скриптов требуется Perl.

      Koos van den Hout написал на Perl скрипты разбора статистики, отсылки по почте ежедневной статистики и аплоада и создания рейтинга наиболее популярных файлов. Доступен с <URL:ftp://ftp.cetis.hvu.nl/pub/koos/ftplogcheck>

      iistat создает красивый граф на основе файла xferlog (и других ресурсов) Доступен с <URL:ftp://ftp.support.lotus.com/pub/utils/InternetServices/iisstat/iisstat.html>

      Phil Swan написал xferstats, доступный с <URL:ftp://sod.off.net:211/pub/xferstats/xferstats-2.00/> or <URL:http://xferstats.off.net:8080>

    12. Возникают сбои при приеме входящих файлов в случаях либо смонтированного по NFS incoming, либо в SunOS?

      Получаете ошибку подобную :

      Dec 7 11:14:33 ftphost vmunix: NFS write error 13 on host fileserver
      fh 746 1 a0000 5fea7 3b5a1bd8 a0000 2 1e0a6aed 
      
      Это известная проблема. Установите последнюю версию wu-ftp, либо возможны следующие решения :
      • Распологайте incoming на локальных дисках где запускает wu-ftpd (те не используйте раздачу по ftp подмонтированных по NFS ресурсов)
      • В файле /etc/ftpaccess в качестве владельца установлен ftp, группа имеет ограниченные права доступа, например 0040 (только чтение), проверьте это.
      Спасибо Peter Glassenbury (pete@cosc.canterbury.ac.nz) за это описание.

    13. Обычные ftp клиенты работают, Netscape ftp's не работает. В чем дело, не работает режим passive?

      Очевидно ftpd требует доступа на запись к ~ftp/dev/tcp в случае работы в режиме passive (Solaris). Установите для него те же права доступа что соответствует системным полученным по команде ls -lL /dev/tcp, должны быть 666. Кроме того прочитайте соответствующие руководства Solaris. Отличия от предыдущих версий

      Fix:

      cd ~ftp/dev
      chmod 666 tcp
      
      Спасибо Simon Rakov (Simon_Rakov@iongate.staff.ichange.com) за это дополнение.

    14. Почему символьный линк сделанный внутри anonymous дерева не работает для анонимного пользователя?

      Вероятно символьный линк относительно вашего active root. Если вы хотите иметь доступ к files/directories/diskspace внешним по отношению к вашей chroot среде, можно воспользоваться loopback mount'ом. Это можно делать в последних Solaris и Linux, для других OS читайте руководства.

    15. Как перенаправить анонимных пользователей на другую машину?

      Это малоизвестное значение ftpaccess : добавьте 'guestserver anon.ftp.server.hostname' в ваш ftpaccess файл...

    16. ftpd перестает устанавливать соединения когда их приходит очень много?

      Это зависит от inetd, а не ftpd. Inetd ограничивает количество обслуживаемых соединений к данному сервису производимых в минуту [в данном контексте число запускамых им дочерних процессов обслуживаемого сервиса. Некоторые версии позволяют изменять их количество непосредственно в inetd.conf, указывая их количество в парметре "nowait" :

      ftp stream tcp nowait.256 root /usr/sbin/ftpd ftpd -a
      
      что позволит производить 256 соединений в минуту. Смотрите "man inetd" для вашей системы.

    17. Запуск wu-ftpd на *огромных* архивах.

      Wu-ftpd разработан с учетом работы на машинах с большими архивами. Правки приведенные ниже включены по-умолчанию.

      Например sunsite.doc.ic.ac.uk сделал несколько правок под себя доступных на : <URL:ftp://sunsite.doc.ic.ac.uk/packages/mirror/experimental/wu-2.4.2-upd13.shar>

      Из примечаний к этим исправлениям:

      DAEMON
      Если ftpd запускается с опцией -D как отдельный daemon который слушает ftp
      порт, то в этом случае скорость его ответов может возрасти поскольку для
      их обработки ему нужно запускать свою копию для обработки запроса через fork.
      В случае inetd новая копия запускается через вызов "exec".
      
      FILEWHAT
      Если SETPROCTITLE не работает или если у вас так много пользователей что
      для PS требуется много времени чтобы FILEWHAT сохранило информацию в
      файл которую ftpcount затем просто напечатал.
      

    18. Только 8-мь первых символов пароля воспринимаются сервером для анонимных пользователей.

      В настоящий момент это всего лишь ошибка старых ftp-клиентов которые посылают в качестве пароля первые 8-мь символов считая что он ограничен этим значением. Установите новый ftp-клиент.

    19. wu-ftpd выдает ошибку '500 Illegal PORT Command' в AIX 4.3?

      В AIX 4.3 по-умолчанию в inetd.conf используется версия TCP/IP IPv6, которую wu-ftpd не поддерживает(пока). Исправьте протокол с tcp6 на tcp.

    20. Можно ли вести несколько ftp серверов на одной машине?

      На данный момент это возможно лишь в случае на каждый IP-address по серверу. wu-ftpd 2.5.0 поддерживает эту возможность с большими ограничениями. Однако много полезных вещей BeroFTPD поддерживает гораздо шире и лучше, однако прочтите некоторые хитрости ниже.

      Существует draft для расширения ftp протокола известного как HOST для поддержки виртуальных-хостов как в HTTP. Но, это всего лишь draft и масса старых клиентов не поддерживает его, поэтому не закладывайтесь на его широкое использование.

    21. После апгрейда никто не может войти, до этого все работало.

      Вы пытались посмотреть системную статистику? В зависимости от настройки вашего syslog.conf все демоны должны выдавать сообщения об ошибках или на консоль или в системные логи. Попробуйте посмотреть, эта информация должна вам помочь. Наиболее распространенная ошибка, на данный момент, после апгрейда в системных логах syslog выдает 'not in any class'. Это означает что вы используете старую, ненадежную технологию определения классов, как например: class lcl real,guest,anonymous 127.*.*.* Последняя версия не поддерживает такое задание класса в целях безопасности. Используйте сетевую маску - NETMASK или блок - CIDR, как в примере: class lcl real,guest,anonymous 127.0.0.0/8 or class lcl real,guest,anonymous 127.0.0.0:255.0.0.0.

  12. Прочее.

    1. Где описан FTP протокол?

      Смотрите документы RFC959 по протоколу FTP.

    2. Как сделать ftp-архив доступным по Email (ftpmail)?

      Существует коллекция Perl-скриптов под названием ftpmail. Она доступна на множестве ftp-машин (используйте archie или ftpsearch для поиска 'ftpmail'), некоторые изветсные :

      <URL:ftp://sunsite.doc.ic.ac.uk/packages/ftpmail/>, nic.funet.fi, ftp.warwick.ac.uk, ftp.loria.fr, ftp.germany.eu.net.

  13. Заслуги/разное.

    Часть людей достойных заслуги :

    (No chocolate cookies. Yet/думаю что по русски это: Пирожных нет. Пока. :)

    1. Как связаться с командой разработчиков WU-FTPD?

      Пошлите письмо по адресу (wuftpd-members@wu-ftpd.org)

    2. Мной сделаны поправки/новые возможности, как вынести их на рассмотрение команды разработчиков WU-FTPD?

      Команда разработчиков предпочитает контекстные-отличия(сделанные diff) вместо последних версий исходного кода. Законченные файлы могут быть включены отдельно или как отличия context-diff.

      Если ваш полный патч небольшой (меньше чем 25K) вы можете послать его почтой с которотким описанием изменений по адресу wuftpd-members@wu-ftpd.org.

      Если ваши прваки или добавления большие (более 25K) или состоят из нескольких файлов, создайте сжатый архив (tar.gz или tar.Z) и положите в ftp://ftp.wu-ftpd.org/incoming после чего отправьте короткое описание правок с именем файла вашего дополнения-архива по адресу wuftpd-members@wu-ftpd.org.

    3. Мной обнаружены проблемы в плане безопасности работы демона и не хотелось бы писать об этом по почте. Можно ли обсудить это по телефону?

      Да, но вы должны быть уверены. Убедитесь что вы прочитали и поняли весь FAQ и документацию которая включена в дистрибутив. Если вы убеждены в проблеме связанной с безопасностью сервера, можете связаться с Gregory A Lundberg

              1-800-809-2195 or 1-937-298-5254 (office)
              1-888-977-5370 or 1-937-299-7653 (home)
                                1-937-299-8743 (FAX)
      

Last modified : Fri Aug 6 10:53:56 MET 1999
Created by : Koos van den Hout (koos@wu-ftpd.org)
Email related to this faq: (faq@wu-ftpd.org)
Homepage (private/daytime job): http://www.cetis.hvu.nl/~koos/
Homepage (my company): http://www.xs4all.nl/~koos/
Русская редакция: Андрей Лаврентьев (lavr@unix1.jinr.ru)