FTP.EXE "cannot open data connection"

Diverse d.  04. december. 2013, skrevet af tf-uno
Vist: 12649 gange.

tf-uno
 
Elitebruger
Tilføjet:
04-12-2013 09:51:24
Svar/Indlæg:
317/39
Hej Hwt

Nogle der har godt styr på ftp.exe..?
Jeg er ved at lave noget script som uploader/downloader et par filer til en ftp server, dog er jeg løbet ind i et problem.

Connector jeg til min ftp server ude fra, med filezilla connector den fint.

Bruger jeg ftp.exe, kan jeg også godt connecte, men så snart jeg prøver og lave en dir, får jeg følgende fejl "Cannot open data connection".

Nogle forslag..?

Connector jeg internt fra, er der ingen problemer.
What to do..


Tråden blev redigeret 2 gange, sidst af tf-uno d. 04-12-2013 09:54:38.
Had
 
Elitebruger
Tilføjet:
04-12-2013 12:10:20
Svar/Indlæg:
804/29
http://geekswithblogs.net/Lanc...

Edit: tjek dine porte, er de rigtige åbne?


Svaret blev redigeret 1 gang, sidst af Had d. 04-12-2013 12:11:20.


tf-uno
 
Elitebruger
Tilføjet:
04-12-2013 12:22:15
Svar/Indlæg:
317/39
Det mærkelige er jo netop at det virker hvis jeg bruger filezilla clienten istedet for ftp.exe..
Går derfor ud fra at de rigtige porte er åben. (synes jeg har lavet mine firewall regler efter bogen :)


martinta
 
Senior Skribent
Tilføjet:
04-12-2013 12:28:08
Svar/Indlæg:
2826/100
#2

Du skal lige være opmærksom på at der er forskel imellem active og passive ftp.. mener explorer kører passiv hvorimod filezilla kører active..

prøv evt. at gå ind i internet explorer (det er her den tager settings fra normalt), vælg funktioner --> internet indstillinger --> find "brug passiv FTP" og slå den til/fra (modsat af hvad den står til nu) og se om det så virker..



tf-uno
 
Elitebruger
Tilføjet:
04-12-2013 13:25:33
Svar/Indlæg:
317/39
Det ser faktisk ud til det er den aktive del som driller.!
Filezilla står default til at køre passiv, sættes den til aktiv kan jeg ikke forbinde.
Men tjekker jeg mine firewall/nat regler ser de rigtige ud. (har oprettet en gruppe hvor både passiv og aktiv ligger i) har derfor tildelt de samme rettigheder gennem firewallen. MEn hvorfor virker den aktive del så ikke :/ (tydeligvis kun ude fra). Må kigge reglerne igennem igen. mange tak for hjælpen.


tf-uno
 
Elitebruger
Tilføjet:
04-12-2013 13:34:55
Svar/Indlæg:
317/39
Kunne se Filezilla var sat til at "spørg os efter extern ip" sættes den til at finde ens extern ip via en hjemmeside så kan den connecte til ftp'en. Men så snart jeg laver en dir kan den heller ikke komme igennem..
Hvad faen gør jeg forkert.


Svaret blev redigeret 1 gang, sidst af tf-uno d. 04-12-2013 13:39:40.


martinta
 
Senior Skribent
Tilføjet:
04-12-2013 14:28:44
Svar/Indlæg:
2826/100
#4

Damn.. bytter altid rundt på aktiv/passiv :)

Hvilke porte har du åbent inadtil?

vil du ikke prøve lige at lave en kort beskrivelse af din portforwarding (port --> ip)

bruger du filezilla som FTP server?


tf-uno
 
Elitebruger
Tilføjet:
04-12-2013 14:45:37
Svar/Indlæg:
317/39
Har åbnet port 2222.

port 2222 samt port 50000-50100 er forwardet til 192.168.1.10.

Det hele sidder bag en sonicwall, som godt kan være ret kompleks og konfigurere.
Men som skrevet tidligere har jeg lavet en gruppe hvor port 2222, 50000-50100 er tilføjet. denne gruppe har så fået adgang gennem firewallen, samt nattet ind til serveren.

Jeg må lige prøve at kigge på det imorgen igen.
http://www.sonicwall.com/us/en...
Hvis man ser det sidste billede i denne guide, så har jeg sat den til servicen "ftp passive" (50000-50100), måske fejlen kan ligge der.

(står den til ftp 2222, virker passiv mode heller ikke :/ vil prøve og vælge gruppen med begge i, imorgen.


Svaret blev redigeret 1 gang, sidst af tf-uno d. 04-12-2013 14:46:17.


martinta
 
Senior Skribent
Tilføjet:
04-12-2013 17:13:45
Svar/Indlæg:
2826/100
#7

port 50000-50100 og port 2222? o_O

Hvor dælen får du de porte fra??

lige for at få de rene fakta på plads, for med de porte burde aktiv FTP heller ikke virke..

port 20 er data porten til aktiv FTP.
port 21 er control porten til både passiv og aktiv FTP

Aktiv ftp virker ved at du åbner port 20 og 21, klienten bruger port 21 for at authentikere dig mod serveren (brugernavn og kode), når det er i orden og du overfører data bliver det data overført via port 20.

Passiv FTP bruger også port 21 som command port, men her har den ikke en fast data port, dvs. klienten og serveren forhandler om en port..

forestil dig det sådan her:
vi har en klient kaldet klient01 og en server kaldet server01.

klient01 kalder serveren op på port 21, klienten sender med at den vil køre passiv ftp
Server01 svarer klienten at det er accepteret, samt hvilken port klienten nu skal spørge ind på (random imellem 50-60k så vidt jeg husker), serveren svarer klienten ud gennem den port for at firewallen kan se det er en connection åbnet indefra, fordi den er åbnet indefra skal firewallen tillade trafikken...

Alt ovenstående er meget simpelt forklaret, men det er i princippet det der sker..

Det eneste bør gøre er derfor at finde det prædefinerede punkt i din firewall der hedder ftp. sætte den på som firewall regel og så skal det virke

du skal lige være opmærksom på at hvis du sætter op med hvilken IP din FTP server skal svare så skal det være den lokale, det må ikke være din public IP.

Edit: og ja 🙂 FTP er noget L*** at sætte op hvis man ikke er 100% inden i hvad der er hvad, brugte selv en del timer på det sidste gang jeg skulle gøre det på mit arbejde 🙂 Der kæmpede jeg dog med packet drops fordi FTP programmet reklamerede med public addressen i stedet for sin local.. Så husk den detalje


Svaret blev redigeret 1 gang, sidst af martinta d. 04-12-2013 17:15:18.


tf-uno
 
Elitebruger
Tilføjet:
04-12-2013 19:27:32
Svar/Indlæg:
317/39
Beklager selvfølgelig min manglende forklaring, men af sikkerhedsmæssige årsager har jeg netop valgt ikke at bruge standart porten 21. Har valgt følgende
ftp port 2222
ftp passiv port område 50000-50100.

Har altid haft en ftp stående, uden problemer. Fik så ny router/firewall her for et halv år siden, i starten bøvlede jeg lige med at få forwardet portene også spillede det egentlig (troede jeg). Har brugt FTP indtil idag hvor jeg ville lave scriptet der benyttede ftp.exe.
Men som det ser ud har min ftp åbenbart altid kørt på passiv mode. Virker bare mærkeligt man kan connecte, få godkendt brugernavn osv. men så snart den laver en dir, nægtes adgang.

Forstår ikke helt hvad du mener med Ftp'en reklamerede med sin offentlige ip..
JEg bruger selv geneF6 ftp, den har jeg sat til at lytte på min intern adr. Hvilket jo også virker fint på passiv.





martinta
 
Senior Skribent
Tilføjet:
05-12-2013 00:37:13
Svar/Indlæg:
2826/100
#9

Ahh, så giver det mere mening med din portforward 🙂

Grunden til at det virker med at vist dir er ganske simpelt at du kommer igennem, men at den fejler når den forhandler port..

Der hvor jeg har oplevet det har gået galt (og grunden til jeg skrev det med den public ip) er at du kan sætte dit FTP program op til at svare som en IP adresse (efter eget valg)... når du laver port forward vil firewallen genkende din lokale IP på FTP serveren, hvis FTP serveren så pludseligt begynder at "snakke" som den eksterne adresse bliver firewallen forvirret og smider pakkerne..

evt. vil du kunne se ovenstående hvis du SSH'er ind til din Firewall og kigger på liveloggen med et grep mod den eksterne IP (De fleste firewalls understøtter dette, så jeg gætter på at sonicwall også gør)


tf-uno
 
Elitebruger
Tilføjet:
05-12-2013 10:29:07
Svar/Indlæg:
317/39
Tror ikke helt jeg forstår :)

Du skriver den fejler når den forhandler port. Men sker denne forhandling ikke kun når det er passiv..??
Ved aktiv er porten vel forud difineret (mit tilfælde 2222) right..?

umiddelbart ville det give god mening hvis fejlen ligger i at ftp serveren svare med den forkerte adr. tænker den svare med sin interne ip, hvilket ville forklare hvorfor det virker intern.
Dog kan jeg ikke se nogle steder det kan ændres i opsætningen for aktiv ftp.

Har dog sat min externe ip for passiv mode.
http://tinypic.com/r/2qdwqdj/5
Ud for "Redirect passiv ip" står min extern ip. (er blot fjernet på billedet)


tf-uno
 
Elitebruger
Tilføjet:
05-12-2013 10:54:22
Svar/Indlæg:
317/39
Lige for at være helt sikker så er vi enig om man godt både kan køre aktiv og passiv samtidig ik..??

Et bonus spørgsmål
Normal bruger man føglende porte
21 = ftp control
20 = ftp data

Hvis man så ændre default port til f.eks. 2222, hvilken port bruges så til data..??


Svaret blev redigeret 1 gang, sidst af tf-uno d. 05-12-2013 11:05:32.