Итак, я, как и многие пользуются прекрасным ftp сервером Pure-FTPd. Однако сегодня я столкнулся с некоторой неприятностью…
В общем, дело было так. Поставил на машине Pure-FTPd, завёл виртуальных пользователей. Проверил, всё работало прекрасно. Подняд, файервол, в котором открыл 21 порт. Работать перестало, совсем… Ну конечно, надо ведь ещё открыть в файерволе PassivePortRange для пересылки данных. Откываем конфигурациооный файл Pure-FTPd и видем следующее.
Внимательно посмотрели? Ну соответственно раскомментируем и получаем.
Перезапускаем Pure-FTPd, добавляем в файервол правила на пропуск данных для этих портов. Пробуем… не работает! Хм, то есть работает, вы можете соединиться, а вот данные ходят через раз… Странно.
Включаем голову. Понимаем, что файервол пропускает через раз. Но как такое может быть? Открываем лог и видим, что почему-то у нас данные попадают не только на порты 30000:50000, а ещё на некоторые другие. Как такое может быть? Мы же задали их в конфигурационном файле!
Запускаем прекрасную утилиту pure-config-args.
Ну и где наши порты? А? Открывем опять конфиг и пишем.
Все заметили, что появилась «:». И теперь всё у нас нормально. И порты в конфиге появились, и конечно же заработало всё сразу. Конечно по уму, диапазон всегда пишется через «:», ну никак не через пробел. Но, когда видешь, что в чистом, я бы даже сказал девственном конфигурационном файле стоит пробел, то пишешь пробел.
Вывод: не верьте девственным конфигам и rtfm!
P.S. У меня стоит Pure-FTPd 1.0.21–182.32.1, система — OpenSuse 11.1
P.P.S Перенёс в Open Source. Сделал баг-репорт.
P.P.P.S Только что мне написал Frank (главный разработчик Pure-FTPd), сказал, что это косяк во всей версии, а не только в OpenSuse, будет устранён в следующей сборке.
В общем, дело было так. Поставил на машине Pure-FTPd, завёл виртуальных пользователей. Проверил, всё работало прекрасно. Подняд, файервол, в котором открыл 21 порт. Работать перестало, совсем… Ну конечно, надо ведь ещё открыть в файерволе PassivePortRange для пересылки данных. Откываем конфигурациооный файл Pure-FTPd и видем следующее.
- # Port range for passive connections replies. - for firewalling.
- # PassivePortRange 30000 50000
Внимательно посмотрели? Ну соответственно раскомментируем и получаем.
- # Port range for passive connections replies. - for firewalling.
- PassivePortRange 30000 50000
Перезапускаем Pure-FTPd, добавляем в файервол правила на пропуск данных для этих портов. Пробуем… не работает! Хм, то есть работает, вы можете соединиться, а вот данные ходят через раз… Странно.
Включаем голову. Понимаем, что файервол пропускает через раз. Но как такое может быть? Открываем лог и видим, что почему-то у нас данные попадают не только на порты 30000:50000, а ещё на некоторые другие. Как такое может быть? Мы же задали их в конфигурационном файле!
Запускаем прекрасную утилиту pure-config-args.
- request:/etc/pure-ftpd pure-config-args pure-ftpd.conf
- -A -c10 -B -C3 -z -D -e -fftp -H -I15 -lpam -L2000:8 -m4 -s -U177:077 -u40 -x -r -i -k99 -G -Z
Ну и где наши порты? А? Открывем опять конфиг и пишем.
- # Port range for passive connections replies. - for firewalling.
- PassivePortRange 30000:50000
Все заметили, что появилась «:». И теперь всё у нас нормально. И порты в конфиге появились, и конечно же заработало всё сразу. Конечно по уму, диапазон всегда пишется через «:», ну никак не через пробел. Но, когда видешь, что в чистом, я бы даже сказал девственном конфигурационном файле стоит пробел, то пишешь пробел.
Вывод: не верьте девственным конфигам и rtfm!
P.S. У меня стоит Pure-FTPd 1.0.21–182.32.1, система — OpenSuse 11.1
P.P.S Перенёс в Open Source. Сделал баг-репорт.
P.P.P.S Только что мне написал Frank (главный разработчик Pure-FTPd), сказал, что это косяк во всей версии, а не только в OpenSuse, будет устранён в следующей сборке.