Problemer ved ftp over vpn
Hva er aktiv/passiv FTP
FTP oppretter først en kontrollforbindelse (heretter KF) fra klient til server. Deretter vil det for hver fil som sendes opprettes en filsendingsforbindelse (heretter FF) som filen sendes over. Det som skiller aktiv og passiv FTP er hvordan dette gjøres.
Aktiv FTP
Her opprettes først en KF fra en tilfeldig port N hos klienten, der N er høyere enn 1023. Denne KF går til port 21 hos server. Klienten setter så på port N+1, altså et portnummer høyere enn det KF gikk på, for å lytte etter en FF, og gir server beskjed om dette via KF. Server oppretter FF fra sin port 20 til porten klient meldte om.
Klient Server
p>1023 -> p=21 (KF)
p>>1023 <- p=20 (FF)
Passiv FTP
Her opprettes en KF på samme måte som i aktiv FTP. Serveren setter opp en port høyere enn 1023 der den lytter etter en FF, og gir klienten beskjed om dette via KF. Klienten oppretter da en FF fra en port høyere 1023 til porten server meldte om. Serveren sin port 20 står ubrukt.
Klient Server
p>1023 -> p=21 (KF)
p>1023 -> p>1023 (FF)
Hvordan fungerer Cisco VPN
VPN oppretter en kryptert tcp/udp forbindelse til VPN-konsentratoren som tildeler VPN-klienten en egen ip (VPN-ip) Deretter legger VPN seg inn i protokollstacken til nettverkskortet.
Heretter vil den eneste tillatte forbindelse til og fra maskinen være VPN-forbindelsen. Kommer det trafikk til maskinen utenom denne forbindelsen, vil pakkene bli kastet. Alle pakker som sendes ut vil VPN "ta over", de krypteres, pakkes inn og sendes til konsentratoren via forbindelsen den opprettet.
Konsentratoren vil så pakke ut, dekryptere og forandre headerne i pakken, slik at det ser ut som om den kom fra VPN-ip, og sende dem videre. Mottager av pakken vil sende pakker tilbake til VPN-ip (som dermed går til konsentratoren). Konsentratoren vil kryptere, pakke inn og sende pakkene til klienten som fikk tildelt denne VPN-ip over VPN-forbindelsen. VPN hos klienten vil så pakke ut, dekryptere og forandre headere i pakkene, slik at det ser ut som om pakkene var ment til klienten som kjører VPN.
Mao ser programmene kun ip-adressen nettverkskortet bruker, ikke VPN-ipen.
Alle forbindelser som opprettes "utenfra" til VPN-ipen vil gå via VPN-forbindelsen til klienten, og vil dermed bli opprettet. Alle forbindelser som forsøkes opprettet direkte til klenten som kjører VPN, vil feile (ikke via VPN-ip)
Problemet med VPN og FTP (og liknende protokoller)
Med VPN vil alltid KF bli opprettet riktig. Problemet er FF. Pakken som blir sendt over KF, med beskjed om hvilken port klient/server lytter på, inneholder også lokal ip til nettverkskortet klient/server lytter på.
Siden programmene ikke får oppgitt VPN-ip, men lokal ip (som er sperret for alt annet enn VPN-forbindelsen), vil FTP hos VPN-klienten raportere "gal" ip. Konsentratoren forandrer kun headerne i pakken, ikke meldingen.
Eksempel:
-FTP-server kjører ikke VPN.
-FTP-klient kjører VPN.
-FTP-klient vil prøve aktiv FTP.
-FTP-klient har ip 80.80.80.80 og får tildelt VPN-ip 90.90.90.90
FTP-klient oppretter KF fra p>1024 til FTP-server sin
p=21.
FTP-klient sender beskjed om at den lytter på p>1023 for FF og at den har
ip 80.80.80.80
FTP-server prøver å opprette FF fra sin p=20 til FTP-klient sin p>1023 på
ip 80.80.80.80
VPN har sperret 80.80.80.80 for alt annet enn VPN-forbindelsen, og FF blir
ikke opprettet.
Her må man bruke passiv FTP.
Eksempel slutt.
Dette problemet gjelder også alle andre protokoller som er avhengig av direkte forbindelser hvor ip rapporteres i pakkens melding i stedet for å bruke headere til å finne ip.
Løsninger
Kjører FTP-klient VPN og FTP-server ikke, bruk passiv FTP. Kjører FTP-server VPN mens FTP-klienten ikke gjør det, bruk aktiv FTP. Kjører begge VPN, vil ikke FTP fungere. Her kan du lese mer om hvordan du benytter deg av passiv ftp.
En alternativ måte å løse det på, er å bruke SFTP (kryptert "FTP" over en SSH forbindelse ), evt andre måter å sende/motta filer.
En del versjoner av Mirabilis ICQ har dette problemet. Her er en løsning å velge "use external ip" under options.
| Språk: | Kommentarer: | 0 | Aid: | 207 | Brukervurdering: |
|
|
| Sist oppdatert: | 2007-07-01 | Forfatter: | ninaul | Lest: | 13788 ganger |