Вышел ftp-сервер ProFTPD 1.3.3

26.02.2010 07:41

Спустя год с момента выхода прошлой версии вышел релиз ftp-сервера ProFTPD 1.3.3 в котором исправлено 150 ошибок и внесено несколько улучшений:

  • Новые модули:
    • mod_exec - позволяет привязать запуск внешних скриптов к определенным событиям внутри сессии;
    • mod_sftp - реализует поддержку протоколов SSH2, SFTP и SCP. Из расширений SFTP поддерживается check-file, copy-file, vendor-id, version-select, posix-rename@openssh.com, fstatvfs@openssh.com и statvfs@openssh.com.
    • mod_sftp_pam - предназначен для задействования в mod_sftp метода аутентификации 'keyboard-interactive' SSH2;
    • mod_sftp_sql - позволяет хранить публичные ключи SSH2 в SQL-базе;
    • mod_shaper - дает возможность ограничить пропускную способность для всего сервера в целом;
    • mod_tls_shmcache - организует кэширование данных SSL-сессий в памяти. Для управления используется директива TLSSessionCache;
    • mod_sql_passwd - организует возможность проверки в SQL-базе паролей, представленных в виде хэшей MD5, SHA1, SHA256 и SHA512;
  • Новые конфигурационные директивы:
    • RewriteHome - для переопределения домашней директории пользователя на основе заданного регулярного выражения. Для перезаписи в mod_rewrite нужно использовать псевдокоманду "REWRITE_HOME", например: "RewriteCondition %m REWRITE_HOME", "RewriteRule (.*) /my/new/prefix$1";
    • SQLPasswordUserSalt - для привязки к конкретному пользователю заданного "salt" при создании хэша для аутентификации. Например, в качестве "salt" может использоваться имя пользователя или результат SQL-запроса.
    • SFTPExtensions - для выборочного включения/выключения поддержки в mod_sftp заданных расширений протокола SFTP;
    • HiddenStores - для задания префиксов скрытых директорий, по умолчанию используется префикс ".in.";
    • SQLOptions - для определения дополнительных параметров обращения к SQL-серверу, например, указание "noReconnect" запрещает в mod_sql автоматическое повторное соединение с БД в случае обрыва текущего соединения;
  • Изменение поведения директив:
    • В AllowOverride отныне запрещено указывать группы и пользователей, вместо этого нужно использовать модуль mod_ifsession. Т.е. вместо "AllowOverride off user !admin" следует создать серию блоков "IfUser" с "AllowOverride on/off" внутри;
    • В BanOnEvent появилась возможность привязки к таймауту (TimeoutLogin);
    • В VirtualHost можно указывать адрес 0.0.0.0;
    • В директивах mod_rewrite к переменным окружения теперь можно обращаться через "%{ENV:var}";
    • В SQLGroupInfo и SQLUserInfo теперь допустимо использовать собственные SQL-запросы для получения информации о группе и пользователе;
    • Удалена поддержка директивы AnonymousGroup.
  • При обработке .ftpaccess, заданные в .ftpaccess директивы больше не могут изменять параметры уже определенные в основной конфигурации;
  • Задействован алгоритм для оптимизации передачи большого числа мелких файлов;
  • Добавлена опция командной строки "-S" ("--serveraddr"), дающая возможность указать в момент запуска IP для привязки сервера, при указании 0.0.0.0 прием соединений будет производиться на всех доступных сетевых интерфейсах;
  • В модуль mod_tls добавлен код, отключающий возможность выполнения операций согласования для установленного соединения (renegotiation), что делает невозможным проведение атаки по подстановке данных в устанавливаемое между двумя точками защищенное соединение.
  • Изменена организация обращений к SQL серверу, которые теперь не производятся до момента аутентификации, что позволяет избавиться от лишних SQL-запросов при блокировании соединений такими модулями как mod_ban, mod_dnsbl и mod_wrap2_sql;
  • Налажена корректная обработка символа 0xFF в однобайтовых киррилических кодировках.