Portál AbcLinuxu, 30. října 2025 19:37
ServerType standalone DefaultServer on Port 42666Mám veřejnou IP. Připojení localhost:42666 funguje ok, ale zvenčí (prý) klienti dostávají:
ftp> ls 500 Illegal PORT command ftp: bind: Address already in use ftp> ls 500 Illegal PORT command ftp> put soubor local: soubor remote: soubor 500 Illegal PORT commandŽádné další služby spuštěné nejsou. Při přehození na port 21 běží ok. Díky za všechny rady.
ukázka /etc/proftpd.conf:
ServerName "xxx"
ServerType standalone
ServerIdent on "xxx"
DeferWelcome on
MultilineRFC2228 on
DefaultServer on
DefaultRoot ~
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
ListOptions "-l"
DenyFilter \*.*/
Port 0
MaxInstances 50
User nobody
Group nogroup
Umask 022 022
AllowOverwrite on
# ***********************
# **** ANONYMOUS ****
# ***********************
<Anonymous /home/ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
<Limit WRITE>
DenyAll
</Limit>
<Directory incoming>
<Limit WRITE>
AllowAll
</Limit>
</Directory>
<Limit LOGIN>
Allow from all
</Limit>
</Anonymous>
<VirtualHost xx.xx.xx.xx>
Servername "xxx"
Port 42666
DeferWelcome on
ServerIdent on "xxx"
RequireValidShell off
DefaultRoot ~
<Limit LOGIN>
DenyAll
</Limit>
</VirtualHost>
Myslim, ze nemusis vytvaret Virtualni Host. Musis zmenit port v proftpd.conf a pak musis restartovat cely server. Ted si presne nepamatuju, jestli musis jeste nekam jinam zadat tuto zmenu, ale da se to vygooglovat.
nejspíš ano, protože po přepsání portu a restartu serveru to venkovním userům dělá to co popisuju v dotazu.jestli musis jeste nekam jinam zadat tuto zmenu
Měl jsem stejný problém, ale s tím rozdílem že klient dostal odpověď 500 Illegal PORT command i když ProFTPd běžel na portu 21. Způsoboval to zřejmě několikerý NAT mezi klientem a serverem.
V auth.log jsem našel hlášku:
server proftpd[21413]: server (x.x.x.x[x.x.x.x]) - Refused PORT y,y,y,y,233,147 (address mismatch)
Klient posílá příkaz PORT s vloženou vnitřní IP y.y.y.y , ta se při překladu mění na veřejnou x.x.x.x a server tedy odmítne příkaz vykonat.
Šlo to vyřešit nakonec pouze vložením "AllowForeignAddress on" do proftpd.conf. Pak server příkaz PORT provede i když se adresy liší.
Z pohledu bezpečnosti to ale určitě není ideální řešení...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.