установил vsftpd 2.0.1 (эта версия была выбрана потому, что патчи для перекодирования "на лету" из UTF-8 в CP1251 нашёл только для 2.0.1). (ось: Kubuntu 5.10)
всё заработало, но в логах не совсем корректно отражается айпишник.организовано всё так: за роутером находится несколько компьютеров, образующих локальную сеть вида 10.x.x.x, в том числе и описываемый мною компьютер. роутер приучен пробрасывать 21 порт на эту самую машину, где и бегает vsftpd. (сам роутер находится в другой локальной сети 192.168.x.x.)
суть проблемы:
когда на фтп лезет компьютер из этой же подсети (вида 10.x.x.x) -- айпишник пишется в лог правильно. если же на фтп лезет кто-то из-за роутера (то есть из сети 192.168.x.x) -- вместо его айпишника в логи попадает айпишник роутера (вида 10.x.x.x).
/параметр xferlog_std_format изменялся -- не помог, ибо он делает другое./где копать?
ЗЫ: раньше на этой машине стояла винда, под которой бегал Serv-U (фтп-сервер такой). так вот этот самый Serv-U в логах отображал айпишники корректно. из этого я делаю вывод, что копать надо не в роутере, а именно в фтп-сервере.
С трудом верю что не в роутере. Как настроено на роутере - NAT?
>С трудом верю что не в роутере. Как настроено на роутере -
>NAT?в качестве роутера -- LinkSys WRT54G. с официальной прошивкой v4.20.7.
кстати, под виндами заметил, что у FileZilla-server та же петрушка -- логирует только роутровский аупишник, так что дело в том числе и не в оси.
но вот Serv-U под win2k корректно пишет оба айпишника: "Connected to 192.168.x.x (Local address 10.3.23.11)". (10.3.23.11 -- это адрес машины с фтп). поскольку с Serv-U всё работает корректно -- отсюда и делаю вывод, что копать надо не в роутере.
>Как настроено на роутере - NAT?
да, NAT. наружу -- 192.168.x.x. внутрь -- 10.3.23.x.
как уже писал, всё средствами официальной прошивки. OpenWRT пока не ставил, только собираюсь.
Почему это происходит - понятно, тоже мне бином Ньютона. Serv-U использует по умолчанию пассивный режим ftp, а vsftpd - активный. В результате, при работе с vsftpd, клиент выдает команду PORT 192,168,x,x,N,M. Эта команда преобразуется NAT-ом в PORT 10,x,x,x,N,M где 10.x.x.x - адрес роутера. Таким вот образом.
Как с этим бороться - ну, например, выключить NAT на роутере (нафиг он там нужен), и сделать просто маршрутизацию. Или включить в конфиге vsftpd пассивный режим по умолчанию - хотя беглый просмотр man vsftpd.conf не обнадёживает.
> Или включить в конфиге vsftpd пассивный режим по умолчанию -
> хотя беглый просмотр man vsftpd.conf не обнадёживает.Ага, вот она.
port_enable
Set to NO if you want to disallow the PORT method of obtaining a data connection.