Страница 1 из 1

ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-08 19:04:06
qindman

Код: Выделить всё

#uname -a
FreeBSD z.z.ru 8.3-STABLE FreeBSD 8.3-STABLE

#proftpd -v
ProFTPD Version 1.3.4a

#cat /usr/local/etc/proftpd.conf
ServerName                      "Our FTP server"
ServerType                      standalone
DefaultServer                   on
ScoreboardFile          /var/run/proftpd/proftpd.scoreboard
ServerIdent             on      "You are welcome :)"
Port                            21

PassivePorts 60000 65000

Umask                           022
MaxInstances                    30
CommandBufferSize       512
User                            nobody
Group                           nogroup
AllowOverwrite          on
AllowStoreRestart       on
DefaultRoot ~
ListOptions "-la"
DefaultRoot ~
SyslogLevel notice
TransferLog /var/log/ftp/tranfer.log
SystemLog /var/log/ftp/error.log
ExtendedLog /var/log/ftp/read.log read
ExtendedLog /var/log/ftp/write.log write
UseEncoding UTF-8 UTF-8
ProFTPd игнорирует собственную директиву PassivePorts. Пробовал помещать в тэг <Global> - не помогает: клиенты всё равно в пассивном режиме цепляются на порты из диапазона от

Код: Выделить всё

#sysctl net.inet.ip.portrange.first
10000

до

Код: Выделить всё

#net.inet.ip.portrange.last
65535
наглейшим образом игнорируя мою строку конфига

Код: Выделить всё

PassivePorts 60000 65000
Есть у кого-нибудь идеи?

P.S. Конфиг IPFW не привожу - там всё разрешено, да и соединения проходят, только на ненужный порт, например

Код: Выделить всё

#netstat -an | grep 21
tcp4       0     78 x.x.x.x.21      y.y.y.y.57537     ESTABLISHED
tcp4       0      0 x.x.x.x.21      *.*                    LISTEN

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-09 5:47:34
qindman
И фиг бы с ним, но из-за этого приходится открывать в ipfw все порты в диапазоне net.inet.ip.portrange, как-то не кошерно это делать ради только пассивного ФТП

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-09 6:03:22
sudo
Should no open ports be found within the given range, the server will default to a normal kernel-assigned port, and a message logged.
Посмотри наверное все-таки логи и еще раз ipfw проверь

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-09 7:13:30
qindman
Если мой английский не врёт, то это значит, что если не найден открытый порт в указанном диапазоне, то будет использован дефолтный порт и будет добавлена запись в лог.
В моём случае открытый порт не может быть не найден: я для теста открывал всем и всё в ipfw.
В логах пишется только

Код: Выделить всё

my.host.ru (client.host.ru[x.x.x.x]): USER _userlogin_: Login successful
Причем, судя по netstat -an | grep 21 из моего верхнего поста, сервер внаглую подключает клиента на НЕДЕФОЛТНЫЙ порт, выходящий за рамки PassivePorts.

Подключает действительно на рандомный порт, поэтому иногда этот порт всё-таки попадает в диапазон PassivePorts :)

А у кого-нибудь эта директива вообще срабатывает?

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-10 20:49:48
FiL
qindman писал(а): P.S. Конфиг IPFW не привожу - там всё разрешено, да и соединения проходят, только на ненужный порт, например

Код: Выделить всё

#netstat -an | grep 21
tcp4       0     78 x.x.x.x.21      y.y.y.y.57537     ESTABLISHED
tcp4       0      0 x.x.x.x.21      *.*                    LISTEN
Пассивные порты (порты на которые коннектится клиенты для DATA) и порты с которых конектятся клиенты для CONTROL - это совершенно разные вещи.

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-11 18:24:10
sudo
qindman писал(а):Если мой английский не врёт, то это значит, что если не найден открытый порт в указанном диапазоне, то будет использован дефолтный порт и будет добавлена запись в лог.
В моём случае открытый порт не может быть не найден: я для теста открывал всем и всё в ipfw.
В логах пишется только

Код: Выделить всё

my.host.ru (client.host.ru[x.x.x.x]): USER _userlogin_: Login successful
Причем, судя по netstat -an | grep 21 из моего верхнего поста, сервер внаглую подключает клиента на НЕДЕФОЛТНЫЙ порт, выходящий за рамки PassivePorts.

Подключает действительно на рандомный порт, поэтому иногда этот порт всё-таки попадает в диапазон PassivePorts :)

А у кого-нибудь эта директива вообще срабатывает?
Я лично использую pure-ftpd с диапазоном 7000-7100 + pf, все норм

sockstat -4 | grep ftp - так лучше.

Но это во время установки соединения. 21-й порт нужен только для установки соединения, потом FTP-сервер сообщает в дейтаграмме IP-пакета в поле DATA порт клиенту, который открывает из своей конфигурации и клиент коннектится к нему, образно говоря как-то так. Старый ебанутый протокол ))

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-12 12:04:27
qindman
FiL писал(а):Пассивные порты (порты на которые коннектится клиенты для DATA) и порты с которых конектятся клиенты для CONTROL - это совершенно разные вещи.
sudo писал(а): Но это во время установки соединения. 21-й порт нужен только для установки соединения, потом FTP-сервер сообщает в дейтаграмме IP-пакета в поле DATA порт клиенту, который открывает из своей конфигурации и клиент коннектится к нему, образно говоря как-то так
Друзья, объясните непутёвому: как сделать так, чтобы proFTPd работал, не открывая весь диапазон ip.portrange на фаерволе :) Или этого не сделаешь?

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-14 5:56:25
FiL
не открывая куда?
От клиента к серверу коннекты проходят только на порты 21 и на диапазон passiveports.
A вот порт на стороне клиента может быть любой. Да и хрен с ним, пускай будет. Кому это мешает-то?

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-14 6:30:09
qindman
FiL писал(а):не открывая куда?
Наружу :)
FiL писал(а):От клиента к серверу коннекты проходят только на порты 21 и на диапазон passiveports.
Вот этот самый passiveports диапазон и не хотелось открывать )
FiL писал(а):Да и хрен с ним, пускай будет. Кому это мешает-то?
Да, наверное, я просто параноик. Ведь критически важные для безопасности службы работают на портах <1024 (поправьте меня, пожалуйста, если я не прав).
В моём случае началось всё с того, что мой демон memcached работает на порту 11211 и строка

Код: Выделить всё

memcached_flags="-l 127.0.0.1 -p 11211 -U 0"
в rc.conf по непонятной мне причине не заставляет его слушать только 127.0.0.1 и, в итоге, он слушает x.x.x.x:11211 (внешний адрес моего сервера). В доках memcached сказано, что необходимо ставить его за фаерволом, либо ограничивать диапазон адресов и портов для "прослушки". Так вот если мне для ФТП открывать порты от net.inet.ip.portrange.first, то порт 11211 получается открытым и, как говорится, кто хочет пользуется моим memcached :)
По всей видимости, проблему с proFTPd решить не удастся, я, видимо, один пока столкнулся с этой проблемой, поэтому теперь прошу подсказать как настроить memcached на прослушку только 127.0.0.1 :)

Ну а если и с этим не получится, придётся, наверное, оставлять как есть фаервол и указывать для memcached порт из диапазона < net.inet.ip.portrange.first.

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-14 22:29:02
FiL
1. Таки порты "наружу" или "снаружи"? Вы там определитесь.

2. Так не хотелось открывать Passiveports диапазон или порты не входящие в этот диапазон?

3. А какая разница на каких портах работают "критически важные для безопасности службы" и какое это вообще имеет отношение к данной теме?
Ну поставьте себе passiveports 900-1000 и радуйтесь. Теоретически оно должно работать. Но смысла я в этом не вижу вообще никакого.

4. Я таки до сих пор не вижу ни слова о том, чем вам мешают коннекты приходящие с высоких портов. Какая вам разница какой там порт на той стороне?

5. Для особо параноиков можно закрыть исключительно коннекты на порт 11211 снаружи на фаерволе.

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-15 0:50:30
Анонимус

Код: Выделить всё

freebsp# netstat -an
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        (state)
tcp4       0      0 ____________.21        108.178.4.18.33432     ESTABLISHED
тот адрес что вам не нравится это не пассивный порт фтп а порт клиента С КОТОРОГО было открыто соединение

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-15 10:02:47
qindman
FiL писал(а):1. Таки порты "наружу" или "снаружи"? Вы там определитесь.
Определился. И снаружи, и наружу.
FiL писал(а):2. Так не хотелось открывать Passiveports диапазон или порты не входящие в этот диапазон?
Не хотелось открывать Passiveports диапазон.
FiL писал(а):3. А какая разница на каких портах работают "критически важные для безопасности службы" и какое это вообще имеет отношение к данной теме?
Никакой, об этом можно забыть.
FiL писал(а):Ну поставьте себе passiveports 900-1000 и радуйтесь. Теоретически оно должно работать. Но смысла я в этом не вижу вообще никакого.
Тема началась именно с того, что оно НЕ заработало.
FiL писал(а):4. Я таки до сих пор не вижу ни слова о том, чем вам мешают коннекты приходящие с высоких портов. Какая вам разница какой там порт на той стороне?
Вы правы, никакой. Мне совсем нет разницы какой порт на той стороне. Меня больше беспокоит то, что приходится открывать этот же порт на своей стороне.
FiL писал(а):5. Для особо параноиков можно закрыть исключительно коннекты на порт 11211 снаружи на фаерволе.
Вы правы, придётся мне, наверное, так и сделать.

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-15 10:06:59
qindman
Анонимус писал(а):

Код: Выделить всё

freebsp# netstat -an
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        (state)
tcp4       0      0 ____________.21        108.178.4.18.33432     ESTABLISHED
тот адрес что вам не нравится это не пассивный порт фтп а порт клиента С КОТОРОГО было открыто соединение
Мне, наверное, мешают пробелы в азах UNIX из-за обильного употребления пива в университете, но я что-то не могу понять почему мне приходится открывать тот же порт (порт клиента С КОТОРОГО было открыто соединение) у себя на фаерволе, чтобы заработало. Чтож, буду дальше ковырять матчасть, хоть и непрофильная это для меня деятельность.

Re: ProFTPd игнорирует собственную директиву PassivePorts

Добавлено: 2012-06-17 22:11:36
QweЯty
таже самая проблема....
локально работает все....

Код: Выделить всё

# ftp 127.0.0.1 7521
Connected to 127.0.0.1.
220 ProFTPD 1.3.4a Server (FTP server) [внешний ип]
Name (127.0.0.1:useruse): admin
331 Password required for admin
Password:
230 Welcome to FTP server
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||50002|)
150 Opening ASCII mode data connection for file list
drwxrwxrwx   2 admin    nogroup       512 Jun 17 21:18 pub
226 Transfer complete
ftp> exit
221 Goodbye.
# ftp 127.0.0.1 7521
Connected to 127.0.0.1.
220 ProFTPD 1.3.4a Server (FTP server) [83.219.139.180]
Name (127.0.0.1:useruse): admin
331 Password required for admin
Password:
230 Welcome to FTP server
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||50042|)
150 Opening ASCII mode data connection for file list
drwxrwxrwx   2 admin    nogroup       512 Jun 17 21:18 pub
226 Transfer complete
ftp> exit
221 Goodbye.
конфиг

Код: Выделить всё

# cat proftpd.conf
ServerName "FTP server"
ServerType standalone
DefaultServer on
MaxLoginAttempts 5
UseReverseDNS off
IdentLookups off
DefaultRoot /
RequireValidShell off

AuthUserFile /usr/local/etc/proftpd.pass
AuthGroupFile /usr/local/etc/proftpd.grp

SystemLog /var/log/proftpd/system.log
TransferLog /var/log/proftpd/transfer.log
ExtendedLog /var/log/proftpd/extended.log

ScoreboardFile /var/run/proftpd/proftpd.scoreboard

Port 7521
AllowForeignAddress on
PassivePorts 50000 50005
DefaultAddress внешний ип
MasqueradeAddress внешний ип

Umask 022 022
MaxInstances 30

User useruse
Group wheel

LangEngine on
UseEncoding koi8-r cp1251

AccessDenyMsg "Access Denied"
AccessGrantMsg "Welcome to FTP server"

<Limit LOGIN>
  DenyAll
  AllowUser admin
</Limit>

<Anonymous /usr/ftp>
User anonftp
Group anonftp
UserAlias anonymous anonftp
MaxClients 8 "Sorry, SERVER OVERLOADED."
MaxClientsPerHost 2 "Sorry, You can't connect more than TWO times from ONE host"
ShowSymlinks on

<Limit WRITE>
  DenyAll
</Limit>
#<Limit LOGIN>
#  Order deny,allow
#  Allow from all
#</Limit>
</Anonymous>
на стороне клиента:

Код: Выделить всё

----------
Connect to: (17.06.2012 22:07:52)
hostname=ip:7521
username=
startdir=
220 ProFTPD 1.3.4a Server (FTP server) [ip]
USER admin
331 Password required for admin
PASS ***********
230 Welcome to FTP server
SYST
215 UNIX Type: L8
FEAT
211-Features:
 LANG fr-FR.UTF-8;fr-FR;zh-CN.UTF-8;zh-CN;zh-TW.UTF-8;zh-TW;it-IT.UTF-8;it-IT;bg-BG.UTF-8;bg-BG;en-US.UTF-8;en-US*;ja-JP.UTF-8;ja-JP;ko-KR.UTF-8;ko-KR;ru-RU.UTF-8;ru-RU
 MDTM
 MFMT
 TVFS
 MFF modify;UNIX.group;UNIX.mode;
 MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
 REST STREAM
 SIZE
211 End
OPTS UTF8 ON
451 Unable to accept OPTS UTF8
Connect ok!
PWD
257 "/usr/ftp" is the current directory
Чтение каталога...
TYPE A
200 Type set to A
PASV
227 Entering Passive Mode (123,123,123,123,195,84).
PORT 192,168,100,2,16,154
200 PORT command successful
LIST
PORT failed, try PASV mode!
PASV
файервола нету. вообще
проблема в роутере получается?