L’accés FTP funciona, però el llistat de carpetes es penja: per què
Els accessos FTP i els llistats de carpetes fan servir dues connexions diferents. Quan un llistat es penja, comproveu l’adreça de dades passiva i el rang de ports, no la contrasenya.
El nom d’usuari funciona, la contrasenya funciona i el client diu que està connectat. Llavors espera per sempre un llistat de carpeta, o la primera transferència de fitxer, i res de les credencials ho explica. L’FTP obre una segona connexió per a cada llistat i cada fitxer, i és aquesta segona connexió la que falla. L’accés només demostra que la primera conversa funciona.
Feu les comprovacions per ordre. Cadascuna descarta una capa diferent, així que atureu-vos a la primera que produeixi una anomalia.
Separeu primer les dues connexions
Una connexió de control transporta ordres i respostes al port d’escolta del servidor. Una connexió de dades transporta el llistat del directori o el cos del fitxer, i en mode passiu el servidor tria el seu punt final i l’anuncia a la resposta PASV o EPSV. Permetre el port 21 no diu res sobre si el port de dades és abastable, i és exactament per això que un accés té èxit mentre cada llistat expira. La guia de WinSCP sobre els modes FTP explica aquesta separació i els seus requisits de xarxa.
Si el client és darrere la VPN, el camí de dades travessa el mateix túnel però no necessàriament la mateixa política.
Llegiu l’adreça a la resposta PASV
Executeu un client detallat i llegiu la resposta en lloc d’endevinar. curl -v ftp://user@host/ imprimeix la línia PASV amb l’adreça i el port que vol el servidor, i és en aquesta adreça on el client es connecta després. Si és una adreça privada que no significa res al costat del client del túnel, la connexió de dades no va enlloc mentre el canal de control es manté sa.
Compareu aquesta adreça amb l’adreça que el client ha aconseguit realment. La discrepància és la resposta, i normalment ve de NAT o d’un servidor configurat amb una adreça interna.
Comproveu el rang de ports i la política del túnel
Els servidors passius assignen ports de dades d’un rang configurat, i aquest rang s’ha de permetre a través de la VPN i de qualsevol tallafoc del camí. Una política que permet 21 i res més és una política només per a l’accés. Confirmeu el rang amb qui gestiona el servidor i després proveu un port d’aquest rang en lloc de suposar que tot el rang es comporta igual.
Els canals de control xifrats ho fan més difícil, perquè un element intermediari ja no pot reescriure l’adreça anunciada en ple vol.
Saber quan ajuda l’EPSV o un recurs alternatiu
L’EPSV retorna un port sense una adreça separada, cosa que elimina la fallada per adreça incorrecta quan tots dos extrems l’admeten. També es pot indicar a alguns clients que ignorin l’adreça anunciada i reutilitzin la destinació de la connexió de control. Tots dos són eines legítimes adreçades a una topologia concreta, no una solució universal.
No desactiveu TLS només perquè un auxiliar inspeccioni la sessió. Això canvia un protocol que funciona per un model d’amenaces trencat.
Confirmeu-ho amb un llistat i una transferència
Després que canviï la política d’adreça o de port, obriu una sessió nova pel mateix camí VPN i lliste un directori. Després transferiu un fitxer petit, perquè un llistat i una transferència poden seguir camins de codi diferents en alguns servidors. Reviseu el registre del client per una connexió de dades a l’adreça i el port esperats i confirmeu que els bytes han arribat.
Manteniu FTP, FTPS i SFTP separats al cap mentre ho feu. Un canvi de port passiu no és una opció de SFTP, i la solució no es trasllada entre protocols.