# proftpd: 500 Illegal PORT command

## kirx

Всем привет!  :Smile: 

Я столкнулся с неожиданной проблемой установив 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) всё работает нормально. Фаервол на машине не установлен.

Если у кого-то есть мысли как решить эту проблему - буду очень признателен.  :Smile: 

От модератора: у нас тут KOI8-R...

----------

## Laitr Keiows

Первая ссылка в гугле.

Попробуй прописать следующее в конфиге:

```
PassivePorts 60000 61000
```

----------

## kirx

2 Laitr Keiows

Пробовал устанавливать PassivePorts. Ничего не меняется.  :Confused: 

За кодировку сорри.  :Sad: 

----------

## viy

```
ftp: bind: Address already in use
```

говорит о том, что используемый порт занят. вот и надо копать в сторону --- кто пользует эти порты.

Есть какие-нить аппликухи, которые висят на портах 20 и 21?

Используются ли iptables?

----------

## kirx

2 viy в том и загадка. Нет там никаких апликух и айпитейблз я на ту машину ещё не ставил!  :Shocked: 

Нашёл на каклм-то форуме совет добавить в proftpd.conf директиву

```
AllowForeignAddress on
```

Попробовал, и это действительно как-то повлияло: теперь пишет что "200 PORT command successful" но содержимое папки всё равно не показывает, уже с формулировкой: "425 Unable to build data connection: No route to host".

```
[kirx@epsilon winefk]$ 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> dir

200 PORT command successful

425 Unable to build data connection: No route to host

ftp>

ftp> 221 Goodbye.

[kirx@epsilon winefk]$
```

Ещё момент: теперь со всех "белых" айпишников содержимое каталогов можно смотреть нормально. Проблема "ноу роут ту хост" есть только для серых айпи.

----------

## viy

Что значит "белые" и что "серые"?

----------

## kirx

я имею в виду "серые" - адреса в подсетях 10.0.0.0, 192.168.0.0 и ещё там какой-то диапазон есть (локальные сетки), "белые" - остальные, нормальные айпи адреса.

----------

## kirx

Уф, теперь кажется всё работает!

Похоже проверяя командой ftp я не устанавливал пассивный режим, а без него с "серых" адресов ничего и не должно работать. Это на сколько я понял. Вот с таким proftpd.conf я стал счастливым:

```
ServerName                      "ProFTPD"

ServerType                      standalone

DefaultServer                   on

Port                            21

Umask                           022

MaxInstances                    30

User                            nobody

Group                           nogroup

DefaultRoot ~

IdentLookups  off

UseReverseDNS off

PassivePorts 60000 61000

AllowForeignAddress on

MasqueradeAddress       АЙПИ_АДРЕС_МОЕЙ_МАШИНЫ   # using an IP address

AllowOverwrite          on

<Anonymous ~ftp>

  User                          ftp

  Group                         ftp

  UserAlias                     anonymous ftp

  MaxClients                    10

  DisplayLogin                  welcome.msg

  DisplayFirstChdir             .message   

  <Limit READ CWD RETR CWD>

    AllowAll

  </Limit>  

  <Limit WRITE>

    DenyAll

  </Limit> 

  <Directory uploads/*>

   <Limit STOR MKD RMD XMKD XRMD>

    AllowAll

   </Limit> 

  </Directory>

</Anonymous> 
```

Порты 60000 61000 открыты.

----------

