Проблема с proftpd [SOLVED]
kirx 2 декабря, 2006 - 21:23
Всем привет! :)
Я столкнулся с неожиданной проблемой установив proftpd на новую машину с gentoo-linux. При попытке зайти на ftp с самой машины всё работает нормально. Но если входить с удалённой машины (любой) вход осуществляется нормально но не возможно выполнит многие простайшие команды, например dir. Выдаётся сообщение
500 Illegal PORT command ftp: bind: Address already in use
Вот как это выглядит:
[kirx@epsilon ~]$ ftp МОЯ_МАШИНА.ru Connected to МОЯ_МАШИНА.ru. 220 ProFTPD 1.3.0a Server (ProFTPD on МОЯ_МАШИНА.ru) [АЙПИ_МОЕЙ_МАШИНЫ] 500 AUTH not understood Name (МОЯ_МАШИНА.ru:kirx): 331 Password required for kirx. Password: 230 User kirx logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" is current directory. ftp> dir 500 Illegal PORT command ftp: bind: Address already in use ftp> ftp> ftp> 221 Goodbye. [kirx@epsilon ~]$
Повторюсь, что при заходе на ФТП с самой машины (условно названной МОЯ_МАШИНА.ru) всё работает нормально. Фаервол на машине не установлен.
Если у кого-то есть мысли как решить эту проблему - буду очень признателен. :)
»
- Для комментирования войдите или зарегистрируйтесь
.
может в inetd или xinetd прописана строчка с каким-то фтп сервисом - может он мешает?
Не, это было-бы
Не, это было-бы слишком просто... :( Там inetd не запущен.
Нашёл на
Нашёл на каклм-то форуме совет добавить в proftpd.conf директиву
AllowForeignAddress on
Попробовал, и это действительно как-то повлияло: теперь пишет что "200 PORT command successful" но содержимое папки всё равно не показывает, уже с формулировкой: "425 Unable to build data connection: No route to host".
Уф, теперь
Уф, теперь кажется всё работает!
Похоже проверяя командой ftp я не устанавливал пассивный режим, а без него с "серых" адресов ничего и не должно работать. Это на сколько я понял. Вот с таким proftpd.conf я стал счастливым:
Порты 60000 61000 открыты.
ProFTPD
Не могу зайти на FTP сервер даже локальным пользователем. Настроил все по HOWTO: emerge -av proftpd с флагами -ipv6 ncurses pam ssl. Добавил группу и юзера. Скопировал файл proftpd.conf.sample в proftpd.conf. Открыл 21 порт: -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT. Запустил proftpd -nd 4. При запуске сервер на конфиг не ругался. Вроде все путем. Вхожу рутом и юзером нормально, но НИ ОДНА команда не отрабатывает кроме pwd. На нее сервер бодро отвечает: ftp://localhost. Далее делаю ls ...тишина...и через некоторое время: Could not read reply from control connection -- timed out.
List failed. В логах сервера: localhost (localhost[127.0.0.1]) - dispatching PRE_CMD command 'PWD' to mod_tls
localhost (localhost[127.0.0.1]) - dispatching PRE_CMD command 'PWD' to mod_corelocalhost (localhost[127.0.0.1]) - dispatching PRE_CMD command 'PWD' to mod_corelocalhost (localhost[127.0.0.1]) - dispatching CMD command 'PWD' to mod_core
localhost (localhost[127.0.0.1]) - dispatching LOG_CMD command 'PWD' to mod_log . Где-то недокрутил, а где не знаю. Может кто встречался. P.S. Сервер обычный не анонимный.
Re: ProFTPD
1 Posadite ego na eth a ne na lo
2 USE="-ssl" dla proverki (mod_tls)(i minus lishnee vrode libclamav -
nastroite -dobavte)
3 polzovatela NE dolzno bit v /etc/ftpusers (root ne hodit na ftp)
Re: ProFTPD
1. Не понял... Сервер посадить на eth ? Хост он и есть хост. "Зайти" на него можно через разные интерфейсы. Насколько я понимаю, команда ncftp localhost читает из /etc/hosts , а там естесно 127.0.0.1 localhost. Впрочем...Для чистоты эксперимента попробовал присвоить localhost свой IP - не прошло. Опять выпал по таймауту. Я до того, как сюда постить, уже пробовал зайти на сервер "криво" т.е. через тырнет (ncftp <мой_IP>) пускать-пускает, а дальше...бесполезно. Анамнез тот же. 2. Раза три перекомпиливал с разными флагами и без флагов-бесполезно. clamav и его библиотек вообще нет, в этом месте все чисто. 3. Ни юзера ftp, ни юзеров в /etc/ftpusers НЕТ (про root-а я не допер - мозги уже кипят). Права доступа на директории юзеров установил уже 777 (заходи кто хошь, делай чего хошь) :-D . Где накосячил не пойму. Какие еще есть мысли, советы?
Буквально
Буквально вчера пришлось мне пройтись ещё раз мордой по этим же граблям на другой машине. Хорошо что я уже привык. Итак, фишка в том что для работы по фтп нужно 2 (ДВА) открытых порта, для комманд (стандартный порт - 21) и для передачи данных (стандартный порт - 20). Так что если стоит задача "зайти по фтп к самому себе" проще всего открыть 20й порт. Если же стоит задача сделать фтп-сервер, нормально видимый из любой точки интернета то нужно чтобы фтп-демон умел использовать пассивный режим. Для этого ему надо выделить диапазон (почему?) портов и открыть их в файерволе.
Пример настройки proftpd в подобной ситуации есть тут:
http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-NAT.html
pocemu diapazonpo protokolu
pocemu diapazon
po protokolu FTP v pass rezime klient prosit okrit kakie-to porti
dla dannih, a ne rabotat 4erez 20 port,(po komande PORT server vidaet nomera c4erez kotorie budut idti dannie sootv kolvo portov ravno
(koli4estvo klientov)*(kolicestvo potokov zakacki na 1 klienta)
PS. pro 20 port nu eto klassika smotret /etc/services
Ну вот и
Ну вот и все...Проблема была в файрволе и решилась открытием ТОЛЬКО 21 порта и загрузкой модуля modprobe ip_conntrack_ftp. Модуль сам разруливает пакеты по портам и в активном режиме и в пассивном. Второй режим пока не опробовал, а в активном всё летает. Естественно, для автозагрузки модуля при старте системы стоит сделать: echo ip_conntrack_ftp >> /etc/modules.autoload.d/kernel-2.X
Modul
Modul mozno i sredstvami IPtables podgruzit opcija --modprobe